Version 3.1.0-beta2
Adds an RF standalone setup wizard for devices with no I2C connection (e.g. HRU 400), a redesigned firmware update page, a dedicated REST resource for OTA so external tools (like the Home Assistant integration) can natively show update status and trigger installs, and several smaller API additions plus bug fixes.
⚠️ This is a beta release — please report issues at https://github.com/arjenhiemstra/ithowifi/issues
Highlights
- RF standalone setup wizard — first-boot wizard now detects "no I2C device" and offers a guided RF-only setup path including automatic RF remote config and an interactive Join step
- Redesigned Update page — single firmware dropdown listing all available versions (stable, beta, historical), inline install button, embedded progress bar driven by live OTA status
- New REST resource
/api/v2/ota— single endpoint for firmware version info AND install/progress tracking, intended for HA and other integrations /api/v2/remotesnow exposes full remote config alongside the existingremotesinfo(backwards compatible)itho_control_interfaceadded to/api/v2/deviceinfofirmware.jsonfixes — release-download URLs (no more 404s when binary isn't on master), compile-time sized response cap (no more silent failures when the file grows past 2KB), full error logging on every failure path
New Features
RF standalone setup wizard
- New "RF standalone mode" option in System Settings (CC1101 section) for devices with no I2C connection
- Wizard auto-detects the no-I2C scenario (Generic Itho device / no detected I2C type) and presents an info box: "No I2C connection detected. If your Itho device does not have an I2C connector (e.g. HRU 400), you can use RF standalone mode." Two buttons: Use RF Standalone Mode or Keep trying I2C
- In RF standalone mode the wizard:
- Hides the I2C section and disables I2C status queries (
itho_pwm2i2c=0,itho_31da=0,itho_31d9=0,itho_4210=0,itho_sendjoin=0,itho_forcemedium=0,itho_numvrem=0) - Auto-configures RF remote slot 0 as Send + RFT CO2 (
0x1298) - Adds a Join step (Step 3) to pair the add-on with the Itho unit interactively, with success/failure feedback via a new
bind_resultwebsocket message - Sets
itho_rf_standalone=1anditho_control_interface=1on finish - Skips the post-install power-cycle step (just reboot is enough since join already happened in the wizard)
- Hides the I2C section and disables I2C status queries (
- When
itho_rf_standalone=1is active, the I2C, virtual remotes, and status menus are hidden in the web UI - Wizard also recognises "Generic Itho device" as a no-device-type scenario
Update page rewrite
- Single dropdown listing all available firmware versions populated from
firmware.json— current stable, current beta, and any historical versions in theversionsarray. Current version is annotated with "- current" - Show beta firmware version(s) checkbox to filter the list
- Single Install button (replaces the separate "download stable / download beta" buttons) plus a single Release notes link
- Embedded progress bar that shows download/flash percentage live, driven by the
systemstat.ota_progresswebsocket field - 2-minute stuck-progress watchdog — if no progress update arrives for 2 minutes the install is considered stuck and the UI shows an error
- Auto-reload after device returns from reboot
- Manual
.binupload still works as before (fieldset renamed to "Manual firmware update")
REST API additions
GET /api/v2/ota— returnsinstalled_version,latest_fw,latest_beta_fw,fw_update_available, plus livestateandprogressfor an in-progress install. State is one ofidle,starting,downloading,done,errorPOST /api/v2/ota— trigger a firmware install. Body is either{"channel":"stable"},{"channel":"beta"}, or{"url":"https://github.com/arjenhiemstra/ithowifi/..."}for a pinned release asset. The URL form is domain-locked to the project's GitHub repo- OpenAPI spec updated with the new GET / POST endpoints and the
OtaInstallRequestschema. Visible in the device's Swagger UI GET /api/v2/remotesnow returns the full remote configuration in a new top-levelremotesarray. The existingremotesinfoobject is preserved for backwards compatibilityGET /api/v2/deviceinfonow includesitho_control_interface, allowing API consumers to distinguish RF CO2 control mode from regular operation
Bug Fixes
firmware.jsonfetch silently failed when the file grew past 2000 bytes, leavinglatest_fw/latest_beta_fwempty and breaking the device's firmware update card. The cap is now derived from the actualfirmware.jsonsize at compile time with ample headroom, and overridable via theMAX_FIRMWARE_HTTPS_RESPONSE_SIZEbuild flagcheckFirmwareUpdate()had no error logging on any failure path. Every step now emits anE_LOGline on failure (alloc,https.begin,GET, HTTP status, oversized response, JSON parse, missinghw_reventry), making remote diagnosis possible without serial accessfirmware.jsonlinkandlink_betapreviously pointed atraw.githubusercontent.com/.../master/..., which 404'd whenever the binary wasn't yet on master. Both now usehttps://github.com/arjenhiemstra/ithowifi/releases/download/Version-X.Y.Z/...so binaries are reachable from the GH release directlybuild_script.pyupdated to write the same release-download URL form for new releases, so future builds get this right automaticallyWiFiClientSecureleak incheckFirmwareUpdate()— the allocation was leaked on every error path. All paths nowdelete secclientbefore returning
API
- NEW:
GET /api/v2/ota,POST /api/v2/ota - CHANGED:
GET /api/v2/remotesnow also returns aremotesarray (existingremotesinfopreserved) - CHANGED:
GET /api/v2/deviceinfonow includesitho_control_interface - UNCHANGED:
POST /api/v2/debug— the existingupdate/update_beta/update_urlactions there continue to work and remain available; new integrations should prefer/api/v2/ota
Web Interface
- New RF standalone mode radio in System Settings → CC1101 section
- New wizard step for RF standalone setup with Join button and live join-result feedback
- Wizard info box offering RF standalone when no I2C device is detected
- Update page redesigned with dropdown, install button, and embedded progress bar
- Standalone-mode menu visibility: I2C, virtual remotes, and status menus hidden when
itho_rf_standalone=1
Compatibility
This release is fully backwards-compatible with 3.1.0-beta1.
- All existing REST API endpoints continue to return the same fields they did before;
remotesanditho_control_interfaceare additions, not replacements - The legacy
POST /api/v2/debugupdate actions and the WebSocket-basedupdate_urlflow are unchanged - The HA integration version
0.4.0of ithowifi-ha-integration requires this firmware (3.1.0-beta2 or newer) to register the firmware update entity. Older firmware will simply omit the entity rather than fail
Firmware binary
Firmware binary (CVE HW rev.2 and NON-CVE):
https://github.com/arjenhiemstra/ithowifi/releases/download/Version-3.1.0-beta2/nrgitho-v3.1.0-beta2.bin