Files
home-assistant-addons/hamh/CHANGELOG.md
github-actions[bot] 05dacda455 release(hamh): 2.0.25
2026-02-21 14:10:52 +00:00

38 KiB

2.0.25 (2026-02-21)

Bug Fixes

  • #110: restructure RvcCleanMode to flat modes for Apple Home extra features (905bf24), closes #110
  • #176: deferred setpoint nudge for reliable auto-resume (5ab4fe6), closes #176
  • #189: unwrap response.response from roborock.get_maps service call (075df6a), closes #189
  • #190: dynamic Node.js heap sizing based on available system RAM (a619c0d), closes #190
  • #192: recreate endpoints when entity mapping changes (a9c23d1), closes #192
  • limit RvcOperationalState to well-known states and update OOM FAQ (130460d)
  • oom: increase heap limit to 768MB, add memory pressure guard and startup logging (#180) (1cd4201)
  • prevent Apple Home from renaming fan speed 'normal' to 'Automatic' (8a5bba9)
  • responsive mobile layout for dashboard stat cards (157d9c4)
  • update label filter descriptions and value hint in bridge config schema (53c2c31)
  • vacuum: expose fan speed modes for Roborock without cleaning mode entity (7ed5a78)
  • vacuum: use exact match for fan speed tags to prevent deduplication (77be697)

Features

  • #188: show decoded vendor name next to fabric icons in FabricList (86f8aff), closes #188
  • dynamic vacuum fan speed modes + vacuumOnOff feature flag (6cfff16)
  • open commissioning window for multi-fabric pairing (ec808b7)
  • show fabric icons with vendor names in bridge details and health dashboard (3205bd1)
  • vacuum: add mop intensity modes for Apple Home extra features (0f5948d)
  • vacuum: auto-detect cleaning mode, suction level and mop intensity entities (d83f83c)
  • vacuum: auto-detect Roborock rooms via roborock.get_maps service (9679bc1)

2.0.24 (2026-02-20)

Bug Fixes

  • #110: add Vacuum+Mop tags to combination clean modes for Apple Home (b21b8ef), closes #110
  • #110: prevent cleaning mode revert by tracking pending mode from controller commands (036c4d8), closes #110
  • #176: auto-resume climate even when setpoint value unchanged (ee80dfc), closes #176
  • #176: auto-resume climate on same-value setpoint write via class setters (a66e77c), closes #176
  • #176: nudge setpoint when off to defeat matter.js same-value dedup (d4e1a60), closes #176
  • #176: safe auto-resume respecting controlSequenceOfOperation and preventing dual-fire (aabb6ac), closes #176
  • #176: skip setpoint nudge during Off transition to fix Google voice confirmation (93cc045)
  • #182: remove Lighting feature from OnOff for non-light device types (09b341c), closes #182
  • add warm-start state push and diagnostic events to ServerModeBridge (#165) (9294b39)
  • additional minMeasuredValue fixes for humidity and flow measurement clusters (8f501d8)
  • alpha changelog empty due to HEAD^ excluding latest commit (4190ecc)
  • always include PowerSource and ServiceArea on vacuum endpoints (#183) (052dd08)
  • always include RvcCleanMode on vacuum endpoints (#183) (7510001)
  • automation turnOff now disables instead of being null (cd67a2e)
  • change minMeasuredValue from 0 to 1 in electrical measurement clusters (3bb26fb)
  • correct Config Backup icon in Health Dashboard (cloud arrow up) (0f5f762)
  • correct DoorLock supportedOperatingModes inverted semantics, add ElectricalEnergyMeasurement event emission, fix thermostat setpointRaiseLower divisor (0da15a4)
  • handle HA WebSocket connection-lost errors gracefully (#180) (d0cb755)
  • logging: add cache to battery lookup and remove spam (b07cc92)
  • logging: reduce bridge-registry battery warning spam (6dec983)
  • oom: delete endpoints in dispose() to prevent memory leak (#180) (765e185)
  • remove custom subscription monitoring, use matter.js defaults (d044fa2)
  • revert flow minMeasuredValue to 0 (0 is a valid uint16 value, not null) (debf759)
  • set humidity minMeasuredValue to 0 (uint16 cannot be negative) (4fbc9d8)
  • swap import/export icons in bridge overview (c73bfe9)
  • thermostat: add defensive checks to setpoint interceptor to prevent initialization errors (2c7a9b9)
  • thermostat: make setpoint interceptor idempotent to prevent redefine error (40c1946)
  • thermostat: remove broken proxy code causing initialization errors (2ce4f78)
  • thermostat: use Proxy instead of property override for setpoint interception (aa753f9)
  • use negative minMeasuredValue to allow 0 readings in measurement clusters (4cb07d4)
  • vacuum: show docked instead of paused when idle and charging (#165) (91ae4fc)

Features

  • add tooltips to filter type dropdown with descriptions for each option (9627843)
  • add WaterFreezeDetector device type for binary_sensor.cold (e075de9)
  • frontend: improve Dashboard UX - alphabetically sort bridges, add navigation guide, remove duplicate buttons, mobile responsiveness (96964d3)
  • implement real Matter Composed Devices for sensor endpoints (#179) (bca0b28)
  • live diagnostics dashboard with WebSocket event streaming (aed990e)
  • vacuum: add suction level entity mapping for Apple Home extra features (c70c2c2), closes #110
  • wire autoComposedDevices master flag to enable all auto-mapping sub-flags (ffc4487)

Reverts

  • downgrade matter.js to 0.16.8 due to constraint parsing bug in 0.16.9 (35acfad)

2.0.23 (2026-02-19)

Bug Fixes

  • oom: delete endpoints in dispose() to prevent memory leak (#180) (e75902b)

2.0.22 (2026-02-18)

Bug Fixes

  • #176: restore auto-resume heating/cooling when setpoint written while off (754f102), closes #176

2.0.21 (2026-02-18)

Bug Fixes

  • #176: auto-resume heating/cooling when setpoint is written while device is off (c3a661b), closes #176
  • #178: correct vendor ID mappings in Network Map and Health Dashboard (b477148), closes #178
  • revert thermostat auto-resume logic (#176) - caused mode cycling (cf580c1)

2.0.20 (2026-02-18)

Bug Fixes

  • #105: enable orphan detection for commissioned bridges without active sessions (dfd2c6e), closes #105
  • #105: faster session recovery and bridge restart escalation for Alexa (c4f9613), closes #105
  • #105: session stability improvements — reduce MRP traffic and clean shutdown (085e723), closes #105
  • #106: resolve Roborock room names showing entity IDs instead of friendly names (c3035a2)
  • #112: add diagnostic logging for battery auto-mapping in server mode (5126b13), closes #112
  • #117: restore coverSwapOpenClose to force inversion (regression from b88d9a1) (0d46309)
  • #162: auto-detect TV device_class for media_player on/off support (e977a74), closes #162
  • #166: add unit conversion for auto-mapped pressure entities and validate pressure range (6af3cc7), closes #166
  • #174: add debug logging for cover position flags (efbd592), closes #174
  • add native Ecovacs/Deebot room cleaning support via spot_area (#165) (97a890f)
  • add subscription keepalive for ALL bridged devices to prevent Offline/Updating (38f2ed3)
  • add subscription keepalive to prevent Apple Home 'Updating' for vacuums (#103) (8b66fcd)
  • delete subscription persistence before start to prevent premature re-establishment (3b55c49), closes CommissioningServer.#enterOnlineMode
  • disable AutoMode for climate devices without heat_cool (dual setpoint) (9376165)
  • disable subscription persistence to prevent stale re-establishment causing Updating/Offline (#103) (8174d34)
  • increase bridge restart delay and handle port-in-use errors (e2225ea)
  • make subscription keepalive + health checks unconditional (not gated by autoForceSync) (c95d694)
  • stop health check from sabotaging controller reconnection (f40f010)
  • stop sabotaging matter.js subscription recovery (the REAL offline/updating fix) (a68d7be)

Features

  • #163: add Server Mode recommendation for vacuum bridges in Apple Home (2722d8a), closes #163
  • #165: auto-detect Ecovacs cleaning mode support (vacuum/mop/both) (b729565), closes #165
  • add diagnostic export API and graceful entity unavailability guards (be00eed)
  • add entity health indicators with unavailable filter in endpoint list (bbe1ea8)
  • add session/subscription connectivity info to health dashboard (ac948fb)
  • bridge templates, live filter preview, entity diagnostics, wizard enhancement, bulk operations (68a301c)

2.0.19 (2026-02-14)

Bug Fixes

  • #112: add auto-battery-mapping and batteryEntity support to server mode vacuum (a80c5b7), closes #112
  • #164: split label filter into EntityLabel and DeviceLabel types (4a9f4fc), closes #164 #164
  • broadcast bridge 'starting' status via WebSocket for all bridges (#160) (cd6f594)
  • broadcast bridge status changes via WebSocket during startup (#160) (064de02)
  • detect orphaned bridge state and clear resumption records for controller reconnection (f7cda0f), closes #105
  • pass entityState to filter-preview for device_class support and update label docs with display name resolution (88aea83)
  • prevent vacuum.send_command crash for Ecovacs/Deebot vacuums (#165) (47adc83)
  • reduce MRP traffic and improve session recovery for Alexa (#105) (76aa5f6)
  • resolve version 0.0.0-dev shown in UI for manual and workflow_dispatch builds (32e8f65)

Features

  • add device_class filter type for entity filtering by HA device class attribute (395410f)
  • add diagnostics dashboard with entity health indicators, battery levels, and auto-mapping info (11fbaa2)
  • add edit/add filters button to bridge details FiltersCard (4de35e2)
  • add ElectricalPowerMeasurement and ElectricalEnergyMeasurement clusters for switch/plug entities with auto-mapping (3e92cb6)
  • add energy measurement clusters to light devices with auto-mapping support (cc42d56)
  • add event domain support with GenericSwitch device for HA event.* entities (doorbells, buttons) (4c48365)
  • add power/energy entity fields to EntityMappingDialog for manual configuration (c218f77)
  • expand Filter Reference page with all filter types (7ec818b)
  • resolve label display names to slugs in filter matching (0656494)

2.0.18 (2026-02-12)

Bug Fixes

  • resolve version 0.0.0-dev shown in UI for manual and workflow_dispatch builds (63fa12f)

2.0.17 (2026-02-12)

Bug Fixes

  • #103: remove OnOff from bridged vacuum to fix Apple Home Updating status (9fd7968)
  • #105: use initiateForceClose for dead session cleanup instead of initiateClose (6394bf0)
  • #108: move rockSupport/windSupport to .set() defaults - fixes Behaviors have errors (c0b547e)
  • #108: set rockSupport/windSupport so controllers allow enabling oscillation and wind modes (d2235e4), closes #108
  • #112: search full HA registry for battery/humidity entities, not filtered bridge entities (925b29a), closes #112
  • #124: ensure onOff true->false transition for momentary scene/automation reset (3bf2c9c), closes #124
  • #136: fix critical super binding bug in thermostat feature variants (1b86030)
  • #136: use feature-specific thermostat bases for Alexa compatibility (59c1fca), closes #136
  • #137: add debug logging to HumidityMeasurementServer for Alexa humidity diagnosis (2db6106), closes #137
  • #137: set thermostat limits before setpoints to support negative temperatures (dd95a97), closes #137
  • #141: limit Node.js heap to 512MB to prevent OOM kills on low-resource devices (0544a0a), closes #141
  • #142: make Alexa brightness-reset workaround always active, no longer behind feature flag (21423e9), closes #142
  • #143: map auto mode to heat/cool for single-capability thermostats (f9bf7e2), closes #143
  • #144: responsive mobile navigation with hamburger menu drawer (f17654a), closes #144
  • #144: wrap action buttons on Bridges page for mobile screens (e068985), closes #144
  • #145: pass water heater min/max limits at endpoint level to prevent 50°C cap regression (cd48638), closes #145
  • #146: fall back to setpoint when current_temperature unavailable (bad3338), closes #146
  • #146: re-enable AutoMode for full HVAC thermostats to fix Apple Home active display (889010b)
  • #146: set localTemperature to null when current_temperature unavailable - fixes Apple Home display (fe77f88)
  • #146: set thermostatRunningMode for Auto mode only - reactor skips Auto (da04b2e), closes #146
  • #146: stop manually setting thermostatRunningMode - let Matter.js reactor handle it to fix Auto mode (0678d35)
  • #148: fix coverSwapOpenClose not affecting position display - was doing same inversion as default (b88d9a1)
  • #154: map running/plug/power binary sensors to OnOffSensor instead of ContactSensor (e3ca4ba), closes #154
  • #52: per-property error handling in applyPatchState, fix thermostatRunningState (0491822)
  • #52: revert thermostatRunningState to systemMode-based logic for correct mode coloring (d96ffd7), closes #52
  • #52: set thermostatRunningMode and controlSequenceOfOperation from HA entity (cd18e1c), closes #52
  • #52: use HA min/max limits for all thermostat modes, fix local temperature fallback (ec865a4)
  • add OperationCompletion event, GoHome command, remove OnOff from server-mode RVC (121c62e), closes #103
  • add state deduplication and debouncing to ServerModeVacuumEndpoint (f51b19a)
  • add User feature to DoorLock for Apple Home compatibility (df6b860)
  • consistent property ordering in endpoint .set() for negative temperature support (307945e)
  • detect and close dead sessions to recover from Alexa subscription loss (684e6e0)
  • dreame vacuum multi-floor room ID collision causing auto-grouping in Apple Home (0e43473)
  • improve behavior error logging to extract AggregateError details per behavior (d972762)
  • improve crash resilience across bridge lifecycle (6f0daad)
  • initialize thermostatRunningState in defaults so controllers subscribe from start (746cc4e)
  • label filter now also matches device-level labels (dc92455)
  • remove AutoMode feature to fix Apple Home active heating/cooling display (ef0c1c9), closes #3105
  • remove stale minSetpointDeadBand and add NaN guards for thermostat initialization (9bc9859)
  • remove unverified device limit warnings from bridge UI (725b41d)
  • replace confusing API endpoint hint with clear label_id instructions (182eb80)
  • sensor: don't skip humidity entities auto-assigned to temperature sensors (#133) (e76b253)
  • speaker: prevent base LevelControlServer from overwriting volume (#79) (32f67ab)
  • truncate FixedLabel area name to 16 chars and add detailed behavior error logging (cc09c4b)
  • ui: match Startup Order icons to Bridge page style and reduce card padding (7c840e0)
  • ui: network map dark mode for bridge/failed nodes, status chip readability, position persistence with undo/reset (12ee128)
  • ui: network map grid layout for many devices and dark mode support for controls/minimap (f4d1b1e)
  • use hvac_action for thermostatRunningState to show active heating/cooling in Apple Home (771cabd)
  • use MutableEndpoint.with() API for FixedLabel instead of manual spreading (55afbd2)
  • use unlatch action for unlockDoor on locks with Unbolting feature (18912f2)

Features

  • add auto pressure mapping for combined temperature+pressure sensors (35f2ab1)
  • add community tip about device limits to bridge config editor (48d048a)
  • add Labels & Areas reference page to frontend UI (6fae7af)
  • add lock unlatch/unbolt support for locks with OPEN feature (b924c11)
  • automatic room assignment via HA areas using FixedLabel cluster (#77) (bfb11c7)
  • enhanced device state display in EndpointCard with sensor values, light color/brightness, lock state, and more (1c0f47f)
  • expose HA temperature unit via ThermostatUserInterfaceConfiguration cluster (8718708)
  • frontend: add Network Map page with React Flow visualization (78927ea)
  • sensor: add tvoc_sensor to entity mapping options (#134) (c142ac3)
  • ui: add configurable page size selector to All Devices page (266a038)