✨ New Features
- WideVane horizontal swing (Climate Proxy) —
swing_horizontal_modefor WideVane control. (#644) - Persist HEAT_COOL dual-setpoint band — Opt-in
restore_setpointskeeps the dual band across reboots. Thanks @calvindomenico! (#678) - Climate Proxy coordinator single-target mode — Opt-in mode for multi-head coordinator setups. Thanks @dkpnw! (#679)
- Climate Proxy turn-on mode & single-setpoint — Restore last active mode on
climate.turn_on; better single-setpoint source handling. Thanks @jyoushiki! (#730) - MSZ-A24NA support — New
fahrenheit_compatibility: msz_a24namode and setpoint table for this unit family. Thanks @GraphicHealer! (#702) - Defrost as climate action — Defrost is reported as a proper climate action. Thanks @lewinjh! (#722)
- Configurable compressor frequency filtering — Filtering is now opt-in (default off). Thanks @ldwaard! (#738)
- Lossnay ventilation support — Separate profiles for Lossnay ventilation units. Thanks @lewinjh! (#740)
- Polling-cycle state for lambdas — Expose CN105 polling-cycle state to ESPHome automations. Thanks @alikorkmaz! (#742)
- Entity categories & humidity device class — Diagnostic/config defaults and humidity
device_classon CN105 entities. Thanks @johnjohn-11! (#754)
🐛 Bug Fixes
- Remote temp °F→°C in lambda path — Thanks @theflu! (#657)
- Memory leak in
emulateMutex— Thanks @lewinjh! (#662) - Null-pointer panic on unknown settings / wideVane bytes at cold boot — Thanks @Roybie! (#665)
- HEAT_COOL dual-setpoint under Fahrenheit — Band no longer slides/collapses; hardware AUTO sub-mode no longer clobbers user HEAT_COOL. Thanks @dkpnw! (#675, #676, #680) — fixes #673
- HP uptime connection sensor — Honors
update_interval. Thanks @martinemde! (#687) - Quiet fan mode presentation (Proxy) — Correct label/icon. Thanks @sjtrny! (#715)
- Retained setpoint while Proxy is off — Thanks @sjtrny! (#716)
-Wformat=warnings foruint32_tlogs — Thanks @rsaturns! (#718)- Vane snap-back & setpoint clobbering — Fixes #283, #512, #204, #446. (#719)
- Crash when selecting airflow control before settings received — (#734)
- ESPHome ClimateTraits / FixedVector shims & example docs — (#735)
- Submode unknown-value WARN spam — Fixes #668. (#736)
- Uptime / MAC handling for newer ESPHome — Thanks @GioMez! (#744)
- Outdoor temp Fahrenheit normalization — Outside air temp no longer incorrectly normalized (related to #724). Thanks @lebeauc! (#747)
millis()rollover (~49.7 days) — Cycle timing no longer freezes after wrap. Thanks @landont! (#749)- Fahrenheit NaN / dual-setpoint high null & remote Encoding A — Fixes #745 and #650. Thanks @ams2990! (#750)
- Encoding A low setpoints sent as 31 °C — Clamped to 16–31 °C before table lookup. Reported by @cmatthias. (#761)
⚠️ Behavior changes
- #754 (HA UI) — Some entities move to the Diagnostic or Configuration sections when the device reconnects. Target humidity uses
device_class: humidity. No YAML change required; entity IDs are unchanged. - #750 (remote temperature Encoding A) — Byte 7 of the
0x07remote-temperature frame now usesround(T×2) − 17, matching SwiCago (3 + ((T − 10) × 2)). This corrects a +0.5 °C offset introduced by the simplification in #239. Units that read Encoding A will now see the intended remote temperature. Fahrenheit out-of-range values pass through instead of being clamped to the table edge. Also fixes dual-setpoint + FahrenheitNaNhandling (c == NAN→std::isnan), closing #745 and #650. - #761 (Encoding A setpoints) — A setpoint below 16 °C is no longer sent as 31 °C on Encoding A (table is stored high→low; miss previously returned
TEMP_MAP[0]). Values are clamped to 16–31 °C before lookup. Credit to @cmatthias for the report. - #749 (
millis()rollover) — After ~49.7 days of uptime, polling no longer silently stops. Cycle timing uses signed elapsed-time compares so wraparound is safe.
🧪 Testing
- Expanded GoogleTest coverage, including dual-setpoint + Fahrenheit paths (#750) and Encoding A clamp cases (#761).
- Unit-test gate remains required before ESPHome compile.
📄 Documentation
- More units with confirmed outdoor temperature. Thanks @niobos! (#663)
- Highlight ha-mxz-coordinator as a one-click HACS integration. Thanks @dkpnw! (#682)
- CN105 wiring with level shifter and 5 V power. Thanks @eyal0! (#723)
- README updates. Thanks @tsousa1980! (#746)
- LICENSE added. Thanks @ams2990! (#748)
Full Changelog: 2026.5.2...2026.11.0