Releases: AndrewDemsDS/hisense-w41h1
Release list
esp32-v1.1.14
Targets: esp32 (classic Xtensa dev board) and esp32c3 (SuperMini).
The images are architecture-specific and not interchangeable -- flash the set
matching your board.
Each target ships a release and a -debug flavour. The debug flavour adds the
unauthenticated :2323 diagnostic console and is for bench units only.
These binaries are CI rebuilds, not the deployed images. ESP-IDF builds are not
byte-reproducible and delta OTA verifies the base image's hash, so a patch generated
against these files will be rejected by the device. The canonical delta base is
published separately byesp32-release.sh publishfrom the machine that flashed the
node (#89).
What's Changed
- fix(#75): recompute every sub-image HMAC on revert, and stop inferring success from silence by @AndrewDemsDS in #107
- docs(#14): point the dry/fan unlock prerequisite at the real integration by @AndrewDemsDS in #108
- feat(#15): virtual_ac answers ProductType so it can advertise ai / swing_dir_8 by @AndrewDemsDS in #109
- docs: standardize on the CH341 install path; remove the stock-conversion wizard by @AndrewDemsDS in #111
- feat(esp32): ESP32-C3 SuperMini support, working RS-485 bus, and OTA for both targets by @AndrewDemsDS in #112
- ci: build both esp32 targets per tag, and shorten release asset names by @AndrewDemsDS in #113
Full Changelog: esp32-v1.1.12...esp32-v1.1.14
Targets: esp32 (classic Xtensa dev board) and esp32c3 (SuperMini).
The images are architecture-specific and not interchangeable -- flash the set
matching your board.
Each target ships a release and a -debug flavour. The debug flavour adds the
unauthenticated :2323 diagnostic console and is for bench units only.
These binaries are CI rebuilds, not the deployed images. ESP-IDF builds are not
byte-reproducible and delta OTA verifies the base image's hash, so a patch generated
against these files will be rejected by the device. The canonical delta base is
published separately byesp32-release.sh publishfrom the machine that flashed the
node (#89).
What's Changed
- fix(#75): recompute every sub-image HMAC on revert, and stop inferring success from silence by @AndrewDemsDS in #107
- docs(#14): point the dry/fan unlock prerequisite at the real integration by @AndrewDemsDS in #108
- feat(#15): virtual_ac answers ProductType so it can advertise ai / swing_dir_8 by @AndrewDemsDS in #109
- docs: standardize on the CH341 install path; remove the stock-conversion wizard by @AndrewDemsDS in #111
- feat(esp32): ESP32-C3 SuperMini support, working RS-485 bus, and OTA for both targets by @AndrewDemsDS in #112
- ci: build both esp32 targets per tag, and shorten release asset names by @AndrewDemsDS in #113
Full Changelog: esp32-v1.1.12...esp32-v1.1.14
esp32-v1.1.12
What's Changed
- feat(amebaz2): surface #12 checksum counter on node 14's console (v1.3.22) by @AndrewDemsDS in #88
- docs: reflect the diagnostics + reliability work shipped this session by @AndrewDemsDS in #89
- feat(tooling): noob-proof convert/backup/revert wizard (#74) by @AndrewDemsDS in #90
- chore(integration): per-bit fault entities in HA (#86) by @AndrewDemsDS in #91
- feat: #12 flip RX checksum verify from observe to reject (closes #12) by @AndrewDemsDS in #92
- fix(release): don't false-abort flash on a resumed subscription; tidy #12 console comments by @AndrewDemsDS in #93
- feat(esp32): #83 brownout defense-in-depth (PHY TX backoff + connectivity log) by @AndrewDemsDS in #94
- chore(integration): bump hisense-unified-ac for entity icons (icons.json) by @AndrewDemsDS in #95
- chore(integration): bump hisense-unified-ac for bundled brand images by @AndrewDemsDS in #96
- chore(integration): bump hisense-unified-ac for HACS versioning + validation by @AndrewDemsDS in #99
- feat(#72): capability-gating predicates + host tests (decision layer) by @AndrewDemsDS in #100
- ci: Bump the actions group with 4 updates by @dependabot[bot] in #97
- build: Bump aiohttp from 3.14.1 to 3.14.3 in /firmware/scripts by @dependabot[bot] in #98
- feat(#72): runtime capability gating wiring (ESP32 + AmebaZ2) by @AndrewDemsDS in #101
- feat(#102): persist-and-gate-at-boot (ESP32 + AmebaZ2) by @AndrewDemsDS in #103
- build: make ENVF overridable (parallel multi-node flashing) by @AndrewDemsDS in #105
- fix(esp32): reboot out of a wedged network stack instead of needing a power cycle by @AndrewDemsDS in #106
Full Changelog: amebaz2-v1.3.22...esp32-v1.1.12
esp32-v1.1.6
What's Changed
- docs: simplify and de-stale the doc tree by @AndrewDemsDS in #70
- Audit: 10 bug fixes, 5 deletions, CI action pinning by @AndrewDemsDS in #71
- feat(77,qa): '77' re-entry lockout, flash-path subscription gate, ship ameba v1.3.7 + esp32 v1.1.3 by @AndrewDemsDS in #73
- Break-glass recovery: :wipekv KV-reset, revert-to-stock tooling, stock-FW feature map by @AndrewDemsDS in #76
- Confirm fault-decode extractor via disassembly (#38); drop dead mfg-cluster writes (#39) by @AndrewDemsDS in #77
- fix(ota): subscription-log check misses post-reboot Re-Subscription (#64) by @AndrewDemsDS in #78
- feat(diag): firmware layer to expose all diagnostics via the mfg cluster (#39) by @AndrewDemsDS in #80
- docs: HA diagnostics-exposure design (#39) + live-confirmed fault runbook (#38) by @AndrewDemsDS in #79
- feat(diag): hardware-validate the f_e_* fault decode (closes #38) by @AndrewDemsDS in #81
- chore(esp32): bump firmware to v1.1.4 by @AndrewDemsDS in #82
- feat(esp32): throttle Wi-Fi TX during Matter BDX OTA (v1.1.5) + subscription-log ANSI fix by @AndrewDemsDS in #84
- chore(integration): bump hisense-unified-ac to main; diagnostics live in HA (#39) by @AndrewDemsDS in #85
Full Changelog: amebaz2-v1.3.5...esp32-v1.1.6
esp32-v1.1.5
What's Changed
- feat(diag): hardware-validate the f_e_* fault decode (closes #38) by @AndrewDemsDS in #81
- chore(esp32): bump firmware to v1.1.4 by @AndrewDemsDS in #82
Full Changelog: esp32-v1.1.4...esp32-v1.1.5
esp32-v1.1.4
What's Changed
- docs: simplify and de-stale the doc tree by @AndrewDemsDS in #70
- Audit: 10 bug fixes, 5 deletions, CI action pinning by @AndrewDemsDS in #71
- feat(77,qa): '77' re-entry lockout, flash-path subscription gate, ship ameba v1.3.7 + esp32 v1.1.3 by @AndrewDemsDS in #73
- Break-glass recovery: :wipekv KV-reset, revert-to-stock tooling, stock-FW feature map by @AndrewDemsDS in #76
- Confirm fault-decode extractor via disassembly (#38); drop dead mfg-cluster writes (#39) by @AndrewDemsDS in #77
- fix(ota): subscription-log check misses post-reboot Re-Subscription (#64) by @AndrewDemsDS in #78
- feat(diag): firmware layer to expose all diagnostics via the mfg cluster (#39) by @AndrewDemsDS in #80
- docs: HA diagnostics-exposure design (#39) + live-confirmed fault runbook (#38) by @AndrewDemsDS in #79
Full Changelog: amebaz2-v1.3.5...esp32-v1.1.4
amebaz2-v1.3.22
What's Changed
- feat(esp32): throttle Wi-Fi TX during Matter BDX OTA (v1.1.5) + subscription-log ANSI fix by @AndrewDemsDS in #84
- chore(integration): bump hisense-unified-ac to main; diagnostics live in HA (#39) by @AndrewDemsDS in #85
- feat(esp32): #12 reliability log-only slice (v1.1.6) - checksum observe, heap watchdog, scoped WDT panic by @AndrewDemsDS in #87
Full Changelog: esp32-v1.1.5...amebaz2-v1.3.22
esp32-v1.1.1
What's Changed
- fix(release): publish the deployed image, and mark CI output as a rebuild by @AndrewDemsDS in #30
- fix(display): make the Display switch actually control the panel by @AndrewDemsDS in #31
- docs(esp32): correct the debug-flavour deployment note by @AndrewDemsDS in #32
- test(hil): scripted ep9 Display actuation + no-collateral check by @AndrewDemsDS in #34
- fix(driver): stop an out-of-range A/C setpoint from killing all control by @AndrewDemsDS in #36
- docs(re): record the cloud attribute table, load base, and the fault namespace by @AndrewDemsDS in #37
- feat(diag): decode the f_e_* fault bits, plus a raw frame dump by @AndrewDemsDS in #40
- feat(status): read the C/F unit bit, and document the desc encoding by @AndrewDemsDS in #41
- docs: publish the docs to GitHub Pages so they are indexable by @AndrewDemsDS in #43
- fix(ota,diag): confirm the fault base, seed ep9 on, unbreak debug releases by @AndrewDemsDS in #44
- fix(pages): copy wiki assets and rewrite wiki-style links by @AndrewDemsDS in #45
- docs(re): restore the corrected section 7, and decode the command encoding by @AndrewDemsDS in #47
- fix(pages): rebuild when the assembler changes by @AndrewDemsDS in #46
- docs: move the guide into the repo and retire the wiki by @AndrewDemsDS in #49
- docs: add the Google Search Console verification file by @AndrewDemsDS in #50
- fix(ci): compare the version gate against the merge-base by @AndrewDemsDS in #51
- docs: link the documentation site from the README by @AndrewDemsDS in #48
- feat(pages): push URLs to IndexNow after each deploy by @AndrewDemsDS in #52
- test(hil): annotated capture/diff for raw status frames by @AndrewDemsDS in #53
- chore(esp32): 1.0.15, bringing node 28 up to main by @AndrewDemsDS in #54
- feat(pages): sidebar, search, and a compatibility page by @AndrewDemsDS in #55
- feat(pages): dark mode, following the browser by default by @AndrewDemsDS in #56
- docs: remove em dashes from every markdown file by @AndrewDemsDS in #57
- fix(temp): handle the A/C display unit on both sides, and harden the OTA by @AndrewDemsDS in #58
- fix(diag): byte 66 bit 7 is a mode flag, not a fault by @AndrewDemsDS in #59
- feat(matter): expose C/F display unit and an aggregate fault flag (esp32 half) by @AndrewDemsDS in #60
- break-glass OTA trigger off the Matter path, and revert the ameba TUIC/ep10 change by @AndrewDemsDS in #62
- AmebaZ2: TUIC display unit, break-glass OTA trigger, and a driver-init stall fix by @AndrewDemsDS in #66
- AmebaZ2: aggregate fault endpoint, and correcting the 0x24 diagnosis by @AndrewDemsDS in #67
- Release: AmebaZ2 v1.3.3 + ESP32 v1.1.0 — C/F write path, contact-sensor polarity, and a "77" recommission that never worked by @AndrewDemsDS in #68
Full Changelog: amebaz2-v1.2.14...esp32-v1.1.1
What's Changed
- fix(release): publish the deployed image, and mark CI output as a rebuild by @AndrewDemsDS in #30
- fix(display): make the Display switch actually control the panel by @AndrewDemsDS in #31
- docs(esp32): correct the debug-flavour deployment note by @AndrewDemsDS in #32
- test(hil): scripted ep9 Display actuation + no-collateral check by @AndrewDemsDS in #34
- fix(driver): stop an out-of-range A/C setpoint from killing all control by @AndrewDemsDS in #36
- docs(re): record the cloud attribute table, load base, and the fault namespace by @AndrewDemsDS in #37
- feat(diag): decode the f_e_* fault bits, plus a raw frame dump by @AndrewDemsDS in #40
- feat(status): read the C/F unit bit, and document the desc encoding by @AndrewDemsDS in #41
- docs: publish the docs to GitHub Pages so they are indexable by @AndrewDemsDS in #43
- fix(ota,diag): confirm the fault base, seed ep9 on, unbreak debug releases by @AndrewDemsDS in #44
- fix(pages): copy wiki assets and rewrite wiki-style links by @AndrewDemsDS in #45
- docs(re): restore the corrected section 7, and decode the command encoding by @AndrewDemsDS in #47
- fix(pages): rebuild when the assembler changes by @AndrewDemsDS in #46
- docs: move the guide into the repo and retire the wiki by @AndrewDemsDS in #49
- docs: add the Google Search Console verification file by @AndrewDemsDS in #50
- fix(ci): compare the version gate against the merge-base by @AndrewDemsDS in #51
- docs: link the documentation site from the README by @AndrewDemsDS in #48
- feat(pages): push URLs to IndexNow after each deploy by @AndrewDemsDS in #52
- test(hil): annotated capture/diff for raw status frames by @AndrewDemsDS in #53
- chore(esp32): 1.0.15, bringing node 28 up to main by @AndrewDemsDS in #54
- feat(pages): sidebar, search, and a compatibility page by @AndrewDemsDS in #55
- feat(pages): dark mode, following the browser by default by @AndrewDemsDS in #56
- docs: remove em dashes from every markdown file by @AndrewDemsDS in #57
- fix(temp): handle the A/C display unit on both sides, and harden the OTA by @AndrewDemsDS in #58
- fix(diag): byte 66 bit 7 is a mode flag, not a fault by @AndrewDemsDS in #59
- feat(matter): expose C/F display unit and an aggregate fault flag (esp32 half) by @AndrewDemsDS in #60
- break-glass OTA trigger off the Matter path, and revert the ameba TUIC/ep10 change by @AndrewDemsDS in #62
- AmebaZ2: TUIC display unit, break-glass OTA trigger, and a driver-init stall fix by @AndrewDemsDS in #66
- AmebaZ2: aggregate fault endpoint, and correcting the 0x24 diagnosis by @AndrewDemsDS in #67
- Release: AmebaZ2 v1.3.3 + ESP32 v1.1.0 — C/F write path, contact-sensor polarity, and a "77" recommission that never worked by @AndrewDemsDS in #68
Full Changelog: amebaz2-v1.2.14...esp32-v1.1.1
amebaz2-v1.3.5
Full Changelog: amebaz2-v1.3.4...amebaz2-v1.3.5
esp32-v1.0.10
What's Changed
- DevOps hardening + ESP32 softwareVersion fix by @AndrewDemsDS in #16
- ci: Bump the actions group with 2 updates by @dependabot[bot] in #17
- fix(driver): decode the three extended ProductType flags + guard the ESP32 IDF toolchain by @AndrewDemsDS in #21
New Contributors
- @dependabot[bot] made their first contribution in #17
Full Changelog: esp32-v1.0.7...esp32-v1.0.10
What's Changed
- DevOps hardening + ESP32 softwareVersion fix by @AndrewDemsDS in #16
- ci: Bump the actions group with 2 updates by @dependabot[bot] in #17
- fix(driver): decode the three extended ProductType flags + guard the ESP32 IDF toolchain by @AndrewDemsDS in #21
New Contributors
- @dependabot[bot] made their first contribution in #17
Full Changelog: esp32-v1.0.7...esp32-v1.0.10
amebaz2-v1.2.9
What's Changed
- DevOps hardening + ESP32 softwareVersion fix by @AndrewDemsDS in #16
- ci: Bump the actions group with 2 updates by @dependabot[bot] in #17
- fix(driver): decode the three extended ProductType flags + guard the ESP32 IDF toolchain by @AndrewDemsDS in #21
New Contributors
- @dependabot[bot] made their first contribution in #17
Full Changelog: esp32-v1.0.7...amebaz2-v1.2.9
What's Changed
- DevOps hardening + ESP32 softwareVersion fix by @AndrewDemsDS in #16
- ci: Bump the actions group with 2 updates by @dependabot[bot] in #17
- fix(driver): decode the three extended ProductType flags + guard the ESP32 IDF toolchain by @AndrewDemsDS in #21
New Contributors
- @dependabot[bot] made their first contribution in #17
Full Changelog: esp32-v1.0.7...amebaz2-v1.2.9