Files
home-assistant-addons/hamh/CHANGELOG.md
github-actions[bot] c76823313f release(hamh): 2.0.46
2026-06-03 22:40:02 +00:00

38 KiB

2.0.46 (2026-06-03)

Bug Fixes

  • #287: refresh rvc sessions safely (78d156d), closes #287
  • #309: add companion fan toggle and persist (e7fa03c), closes #309
  • #309: order fan speed presets ascending (a2cd14a), closes #309
  • #313: cast lock fabric index (e6f7f68), closes #313
  • #313: handle lock access code (4b534c6), closes #313
  • #313: harden lock credentials (c5e957c), closes #313
  • #350: tilt-only covers use tilt for lift cmds (9191ff7), closes #350
  • #351: skip unchanged endpoints on HA updates (57c1593), closes #351
  • #352: keep registry resilient to ha connection drops (7723c22), closes #352
  • #358: keep addon heap flag (c3a8d22), closes #358
  • #359: narrow battery auto-mapping (ab6a2ea), closes #359
  • format battery tests (a793703)
  • make automation momentary (#364) (0d46cff)
  • point empty-state docs link to own site (ee01a35)
  • resolve dependency vulnerabilities (e536288)
  • stub bun:sqlite constants export for esbuild bundle (f7d591c)
  • support enum battery states (fa65a69)

Features

  • #291: edit vacuum area data and batch (a9bfb25), closes #291
  • #309: opt-in companion fan for climate ac (89b9866), closes #309
  • add weather domain as matter sensor (01176a9)
  • warn on non-5540 port for alexa bridge (55247a0)

2.0.45 (2026-05-16)

Bug Fixes

  • #348: bind typed text in entity autocomplete (5e6ef44), closes #348

2.0.44 (2026-05-16)

Bug Fixes

  • #287: guard pushKeepalive on construction (c3c69e4), closes #287
  • #287: make rvc clean mode reactor offline (9d6bf93), closes #287
  • #287: rotate aged matter sessions (6272875), closes #287
  • #312: drop EndProductType.Unknown for window class (1839037), closes #312
  • #328: align cover cluster profile with certified Eve (6d569d5), closes #328
  • #328: dedup deferred cover target writes (6b3a020), closes #328
  • #328: drop deferred cover target split (b53ba8a), closes #328
  • #328: drop legacy cover position attrs from updates (6fd2935), closes #328
  • #328: hold cover current update on motion start (07d6095), closes #328
  • #328: split cover state/target/current matter reports (30fac32), closes #328
  • #328: write cover target before state in patch (4af65f6), closes #328
  • #328: write target before current in cover updates (28626a1), closes #328
  • #330: load serialNumberSuffix when editing bridge (bfe068c)
  • #330: preserve serialNumberSuffix when trimming to 32 chars (705ce07)
  • #331: widen cover slider debounce window to 300ms (71795e7), closes #331
  • #334: stop reporting charging once docked vacuum is full (0b8b87f), closes #334
  • #335: clear currentArea when vacuum returns to dock (50e251d), closes #335
  • #335: clear stale currentArea inherited across restarts (a29d5ab), closes #335
  • #335: dispatch custom service areas sequentially (75b6a5f), closes #335
  • #335: preserve customServiceAreas in dynamic RvcRunMode supportedModes (5c7b926), closes #335
  • #335: set observedCleaning on every cleaning event (f9883b4), closes #335
  • #336: swap bridge-icon HEAD probe for /exists (2ab3877), closes #336
  • #340: freeze immediately on off transition, clear on action=off (4c80854), closes #340
  • #340: keep mode through cool to off+idle (8c2adf3), closes #340
  • #341: make HA WS message timeout configurable, raise default to 60s (b71cbfd), closes #341
  • #343: add PowerTopology + cumulativeEnergyImported default (e860165), closes #343
  • #343: default activePower=0 on energy sensor endpoint (8704cd6), closes #343
  • #345: dedupe @codemirror/state for json editor (086b74f), closes #345
  • #347: heap headroom and force-sync pressure guard (eefa259), closes #347

Features

  • #287: bridge setting for session rotation (2c595ad), closes #287
  • #290: add per-entity customVendorId and HA-registry serial fallback (8f252f6), closes #290
  • #331: per-bridge and per-entity cover slider debounce (b61670e), closes #331
  • #337: any_field_regex matcher for grouped AND/OR filters (0169ecf), closes #337
  • #337: regex filters for entity and device labels (8138a07), closes #337
  • #338: entity-id autocomplete in filter rules (183588a), closes #338
  • #340: per-entity climateKeepModeOnIdle for off+idle ACs (847120e), closes #340

2.0.43 (2026-04-29)

Bug Fixes

  • #281: set currentArea on externally-started cleaning (62b371a), closes #281
  • #309: drop matter automode for ha-auto-only ac (66abbfc), closes #309
  • #309: keep ha-auto ac systemMode stable when hvac_action goes idle (e35a052), closes #309
  • #312: map cover device_class=window to Rollershade (adbddbd), closes #312
  • #320: use sibling identify button when vacuum.locate unsupported (f722ece), closes #320 #208
  • #322: recognize UWANT/Xiaomi sweep/mop labels (050c45d), closes #322
  • #323: pick valid Type for lift+tilt window coverings (2ed05af), closes #323
  • #327: make sensor reactors offline so updates reach controllers (ef65ff6), closes #327

Features

  • #321: snap climate setpoints to entity step (e507c0d), closes #321
  • #325: add japanese translation from @kimera257 (5934f4e), closes #325
  • capture matter.js controller traffic in /api/logs (d8d28a2)

2.0.42 (2026-04-26)

Bug Fixes

  • #316: align root softwareVersionString with version (ae4b33d), closes #316
  • #319: clamp climate auto to heat/cool on non-AutoMode bases (6dd4ded), closes #319

2.0.41 (2026-04-23)

Bug Fixes

  • #302: use DeadFrontBehavior for climate OnOff cluster (a64fb9b), closes #302
  • #305: patch matter.js to accept long operational cert serials (2a08033), closes #305
  • #306: put alexa brightness-reset workaround behind feature flag (6e3329d), closes #306
  • #308: use fan.set_percentage so already-on fans accept speed changes (9b27bbc), closes #308
  • #309: expose matter auto mode for climate devices with ha auto (55e7ef6), closes #309
  • #311: apply server-mode root identity via transactional set (4ed4dfd), closes #311
  • #312: avoid TiltBlindTiltOnly for lift-only blinds (01e778f), closes #312
  • add 30s timeout to ha sendMessagePromise calls (a66f150)
  • clear pending debouncers on unregisterAll (2be9c22)
  • compare entity attributes with deep-equal not json round-trip (4ff6d94)
  • correct thermostat running state for unknown modes and drying (b88ec13)
  • dispose AppEnvironment on graceful shutdown (dc94c77)
  • graceful shutdown on api/backup/restart (01349ad)
  • guard auto-refresh against overlapping reloads (22254a3)
  • guard mireds conversion and align colorMode publishing (b858694)
  • log and surface bridge import errors (cba6296)
  • parallelize home assistant registry fetches (6c30827)
  • reject web-api start on port conflict (757348d)
  • retry transient network errors on ha connect (a3e2504)
  • serialize bridge start and stop lifecycle calls (d4a0367)
  • serialize updateStates and detach plugin listeners (7839ef2)
  • stop bridges in parallel during stopAll and restartAll (c89101a)
  • sweep stale optimistic state entries on set (af22805)

Features

  • add boolean state configuration cluster on leak freeze rain contact (67da2b7)
  • wire groups and scenes management on light plug and fan endpoints (220373d)

2.0.40 (2026-04-12)

HOTFIX (from v2.0.39)

  • #297, #299: fix crash loop on startup — Node 22 native WebSocket drops connections on both aarch64 (RPi) and amd64; now forces ws library (d5b07c7)
  • #297: fix service initialization errors being silently swallowed, causing the process to hang instead of exiting
  • #297: registry fetch now waits for WebSocket reconnect between retries with increased retry tolerance

Bug Fixes

  • #298: add select, input_select, siren to filter preview domain map (4804c22), closes #298

Features

  • add support link in footer and docs page (4185c4e)

2.0.38 (2026-04-11)

Bug Fixes

  • #273: auto-map HA moisture sensors to HumiditySensor (924fe4c), closes #273
  • #275: restore fan speed on turn-on and guard speed rounding (1895fb2), closes #275 #219
  • #281: persist cleaning session state across behavior proxy calls (fac2330), closes #281 #281
  • #281: preserve progress across mid-session idle in multi-phase cleans (9a64cf5), closes #281
  • #281: push operationalState and currentMode in keepalive (9d9fdec), closes #281 #281
  • #281: use endpoint instead of agent as WeakMap key for cleaning session (65c2ed7), closes #281 #281
  • #286: guard all behavior update() methods against missing attributes (47f58ae), closes #286
  • #286: guard endpoint-specific sensor update() against missing attributes (d5a6cfc), closes #286
  • #287: keepalive writes directly to RvcOperationalState cluster (cc60f50), closes #287 #287
  • #287: make rvc reactors offline to produce subscription reports (bd9857f), closes #287
  • #287: use counter-based nonce and add keepalive diagnostics (01a781a), closes #287
  • #287: use Date.now() instead of instance nonce for keepalive diff (5e8970b), closes #287 #287 #287
  • #287: use errorStateDetails instead of errorStateLabel for keepalive (10d33c9), closes #287
  • #287: use setStateOf for keepalive instead of act() (87e2062), closes #287
  • #289: derive multiPressMax at endpoint creation time (671543b), closes #289
  • #289: fix GenericSwitch event handling for Apple Home buttons (af66db3)
  • #289: resolve expired-reference error and lost long press events (77a4b7a)
  • #289: split GenericSwitch into single/multi variants (941b7d2), closes #289
  • #290: biome formatter compliance for serialNumber line (243865e), closes #290
  • #290: populate server-mode root BasicInformation from entity data (a1b7174), closes #290
  • #293: honor speaker override for tv media_player entities (255143b), closes #293
  • add startup force sync to server-mode-bridge (#282) (bf59ee2)
  • alpha: correct vacuum spec-violating state combinations (#287) (22aaa0d)
  • alpha: force structural diff in operationalError to trigger subscription reports (#287) (d731f71)
  • alpha: improve currentRoom sensor matching and add INFO logging (#281) (6e42c9e)
  • alpha: preserve activeAreas during brief state transitions and fix Dreame room_id matching (#281) (f8dcf77)
  • alpha: surface silent currentRoom short-circuits and log legacy vacuum auto-assignments at INFO (#281) (3390e42)
  • auto-map radon sensors to RadonSensorDevice (4718b70)
  • auto-map rain binary sensors to RainSensorDevice (f0abbf8)
  • avoid infinite recursion in ServiceArea progress update (3a92134), closes #281
  • biome formatting for activeAreas guard condition (edd1da2)
  • biome formatting in create-legacy-endpoint-type (9c43060)
  • biome formatting in sidebars.ts (cfb0413)
  • bounded HA connection retries and memory leak cleanup on dispose (bc43ebe)
  • correct broken README links to docs-site URLs (8b69473)
  • correct logo path and lint trailing whitespace (#282, #285) (514338a)
  • enable ServiceArea ProgressReporting for room cleaning status display (64fbebd)
  • guard against missing attributes during HA restart (#286) (02d10ba)
  • periodic keepalive to prevent Apple Home "Updating..." (#287) (c20b03b)
  • persist currentRoomEntity in entity mapping API and storage (04089b4)
  • persist custom product/vendor/serial in entity mapping api (933b3c7)
  • persist plugin config to registry on API update (bd6f40b)
  • push new log entries to SSE stream subscribers (5ab1444)
  • remove HEALTHCHECK from addon Dockerfile (932b8aa)
  • restore missing mapping fields in backup restore paths (8ee73bf)
  • retain active areas for progress tracking during cleaning session (28aa0be), closes #281
  • send area_id from area-based bridge wizard (6c02cde)
  • set currentMode in changeToMode and restore currentArea on cleaning transition (7eb8798)
  • strip BasicInformationServer from composed sub-endpoints (29db91b)
  • update ServiceArea currentArea during vacuum cleaning for Apple Home status display (05e82d4)
  • use interval timer for vacuum keepalive instead of in-update check (5952b8e)

Features

  • #290: add customSerialNumber per-entity override (5ec2573), closes #290
  • #55: discrete Open/Close mode for garage and gate covers (30c4b5b)
  • add customProductName and customVendorName entity mapping overrides (0cca498), closes #277
  • add dishwasher device type override for switch entities (5f41e3b)
  • add Docker HEALTHCHECK to standalone and addon images (12ced3b)
  • add Polish (pl) i18n locale (#288) (3a9aa79)
  • add productNameFromNodeLabel bridge flag for aqara (32c49d3)
  • add siren domain support as OnOff Plug-in Unit (ad0e024)
  • dynamic room progress tracking via currentRoomEntity sensor (b95d0c1)
  • emit diagnostic events for commands, sessions, and errors (ddb66d4)
  • emit diagnostic warning for unsupported sensor device_class (cc40bd2)
  • energy/power measurement support on composed devices (977cf34)
  • immediate force sync on startup (#282) (2404f4b)
  • latency instrumentation in state update path (a380d74)
  • mDNS/network diagnostic API endpoint and frontend card (198a222)
  • multi-admin fabric diagnostics in session info and health API (59e7ef9)
  • startup memory guard, reduced log buffer, and low-resource docs (aee5638)