github echavet/MitsubishiCN105ESPHome 2026.11.0
Temperature encoding fixes, HA entity categories, Lossnay, MSZ-A24NA & cycle stability

4 hours ago

✨ New Features

  • WideVane horizontal swing (Climate Proxy) — swing_horizontal_mode for WideVane control. (#644)
  • Persist HEAT_COOL dual-setpoint band — Opt-in restore_setpoints keeps 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_a24na mode 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_class on 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 for uint32_t logs — 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 0x07 remote-temperature frame now uses round(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 + Fahrenheit NaN handling (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

Don't miss a new MitsubishiCN105ESPHome release

NewReleases is sending notifications on new releases.