Files
home-assistant-addons/hamh/CHANGELOG.md
github-actions[bot] b1a39374c1 release(hamh): 2.0.35
2026-03-14 00:07:30 +00:00

87 KiB

2.0.35 (2026-03-14)

Bug Fixes

  • add missing factories for dimmable_plugin_unit, contact_sensor, occupancy_sensor and remove non-functional controller types (23b2d63)
  • broadcast bridge updates after auto-refresh and await onRefresh (#256) (87392be)
  • bypass matter.js isDeepEqual for mapped entity updates (#237) (ef15bb6)
  • correct contact sensor Open/Closed display in HAMH UI (#254) (5c47998)
  • downgrade misleading battery warning for vacuums with attribute fallback (#255) (ee75860)
  • fix docusaurus build - convert MyST admonitions and internal links (67033bd)
  • guard against null matcher value in patternToRegex (ea7c76e)
  • handle string battery attributes for Rest980/Roomba vacuums (#255) (f2b1d45)
  • harden plugin system (storage debounce, validation, API version check) (03789ac)
  • include device labels, area, name and model in registry fingerprint (a62ae04)
  • include entity labels and area_id in registry fingerprint (#243) (b51561e)
  • make scripts momentary and fix autoReset optimistic guard conflict (#253) (8cf7ede)
  • remove legacy MyST docs build from release workflow (e2c1a7f)
  • sort imports in docusaurus.config.ts (675dd8c)
  • use bridge vendorId for plugin endpoints instead of test vendor (b105a8a)
  • Valetudo segment cleaning sends all rooms instead of selected ones (9c42932)
  • validate plugin endpoint types against Matter spec (10bc4a5)

Features

  • add tgz upload and local path install to plugins UI (44f3e5e)
  • add valetudoIdentifier input to vacuum entity mapping dialog (bd6fcfa)
  • add valetudoIdentifier mapping for MQTT topic case mismatch (b046307)
  • docs: migrate to Docusaurus with new IA, redirects, and search (b4dd687)
  • expand plugin device types and fix endpoint typing (5764b5e)
  • migrate documentation from MyST to Docusaurus (3e2470b)
  • support HA 2026.3 vacuum clean area action (25d86d1)

2.0.34 (2026-03-11)

Bug Fixes

  • allow deprecated feature flags in stored bridge data to pass validation (1fef401)
  • always auto-map battery entity for vacuum endpoints (#237) (29b724a)

Features

  • add automatic backup with retention policy and snapshot management (1af8330)

2.0.33 (2026-03-11)

Bug Fixes

  • preserve endpoint numbers across restarts (#247) (c3c796b)

Features

  • support binary_sensor battery entities in auto-mapping (d83eaff)

2.0.32 (2026-03-10)

Bug Fixes

  • #218: delete standalone sensor endpoints consumed by composed devices (40237c1), closes #218
  • #218: expose mappedEntityIds on composed endpoints for WebSocket subscription (be09431), closes #218
  • #218: use sub-endpoints for sensor clusters on composed air purifier (e8cd716), closes #218
  • #219: cross-cluster OnOff↔FanControl sync per Matter spec §4.4.6.6.1 (13b9abb), closes #219
  • #219: prevent percentSetting restore from overriding Auto mode (cd92c05), closes #219 #225
  • #219: protect optimistic onOff from stale HA state reverts (ee1ce15), closes #219 #230
  • #219: set fanMode=Off when fan is off regardless of preset_mode (e008070), closes #219
  • #219: set percentSetting/speedSetting to 0 when fan is off (ff46776), closes #219 #225
  • #230: replace blanket cooldown with expected-value matching (5d09c2d), closes #230
  • #242: add deprecated 'label' type to matcher schema for backward compat (baa63b4), closes #242
  • add upload size limit and restrict install-local path traversal (fd70aea)
  • clean up stale sessions on new CASE establishment (#105) (c899c91)
  • complete plugin system overhaul — load, validate, command forwarding, install paths (c4c09e1)
  • correct GitHub repo URL in update-check endpoint (ad0d6e2)
  • document unhandled rejection limitation in SafePluginRunner (d0dee2d)
  • improve tgz package name detection using dependency diff (94e0678)
  • plugin endpoint state wiring, light turnOn domain check, plugin runner cleanup (4ee7ccb)
  • remove deprecated alexaPreserveBrightnessOnTurnOn and vacuumMinimalClusters feature flags (5736bf5)
  • remove non-functional Matterbridge adapter and false compatibility claims (7548ded)
  • rewrite example plugin as plain JS (no build step needed) (c54e79d)
  • safe JSON response parsing to prevent cryptic proxy errors (#222) (c03104f)
  • share PluginRegistry and PluginInstaller instances instead of duplicating (4eb512c)
  • skip redundant tilt action on downOrClose/upOrOpen for KNX covers (#246) (6bd432e)
  • validate plugin manifest before import and track started state for safe shutdown (25ac9c5)

Features

  • add 5 new languages and translation contribution hint (f2967a7)
  • add Area Setup to dashboard quick navigation (9abeaa7)
  • add aria-label attributes to interactive UI elements (3a37f23)
  • add ConfirmDialog for destructive actions (f948c8b)
  • add distinct Motion Sensor (PIR) device type for binary_sensor (#244) (fd6ba35)
  • add extended AQ sensors (NO2, O3, formaldehyde, radon, PM1, CO) (bdc8241)
  • add floating language switcher with flags (ee20785)
  • add frontend unit test infrastructure and initial tests (0fe6ac1)
  • add i18n foundation with react-i18next, EN+DE translations (573f11e)
  • add mapping profile export/import for community sharing (P1.4) (a71ffe9)
  • add matter.js spec-based endpoint cluster validation (62b839a)
  • add Rain Sensor device type for binary_sensor entities (9ed657c)
  • add standalone electrical sensor device type (d07f9d1)
  • add Swedish locale and in-app Translation Editor (f577614)
  • add unavailability indicator to endpoint tree view (e0ac880)
  • broaden entity isolation to handle more error patterns (a29859a)
  • cross-fabric diagnostics with per-fabric metadata (b99869f)
  • customizable dashboard widgets with reorder and visibility (88866c1)
  • frontend: add fabric tooltip, pairing hint, wizard text, and active nav state (44f2fac)
  • graceful shutdown on SIGTERM/SIGINT (b39b9b6)
  • i18n: add custom language creation, JSON import, and remove language to TranslationEditor (1be4c7a)
  • i18n: wire useTranslation in all frontend components and sync locale files (40f49fe)
  • per-entity cluster diagnostics with auto-mapping tags, device type IDs, WCAG AA contrast fix (10285fc)
  • plugin system with fault isolation, UI, Matterbridge adapter and npm install/uninstall (f2ab2ef)
  • populate per-entity cluster diagnostics in DiagnosticService (ba74108)
  • selective mapping profile export with entity picker dialog (05ee207)
  • show bridge startup order on dashboard (P0.4) (8ac0f4b), closes #N
  • support Adaptive Lighting color pre-staging (e3f2106)
  • update check endpoint and UpdateChecker component (b74e5d4)
  • version mismatch detection and disconnected banner (c8b0ad1)
  • wire up i18n for BridgeDetailsPage (5292abf)
  • wire up i18n for HealthDashboard (97de0ea)
  • wire up i18n for StatusIndicator, ErrorBoundary, and DashboardPage (09e2982)

Reverts

  • #218: restore flat sensor clusters on composed air purifier (277efe3), closes #218

2.0.31 (2026-03-06)

Bug Fixes

  • #230: prevent stale HA state from reverting optimistic brightness/color updates (9e249e6), closes #230
  • #240: route boundary cover targets to open/close regardless of direction (1729b53), closes #prepareMovement
  • fan speed/preset control not working from controllers (3aba18a), closes #233
  • make autoHumidityMapping default-enabled like autoPressureMapping (8a3eaa6)

Features

  • add controller profiles to wizard and area-based bridge setup (e84ab46)

2.0.30 (2026-03-05)

Bug Fixes

  • #232: surface API errors instead of silently swallowing them (6015d5c), closes #232
  • propagate mapped entity changes (battery, humidity, etc.) to Matter endpoints (14da1bc), closes #237

2.0.29 (2026-03-05)

Bug Fixes

  • #225: retain light currentLevel when off to prevent Apple Home 100% brightness on turn-on (8948764), closes #225
  • #232: decouple save button from RJSF schema validation errors (e7c6ba4), closes #232
  • correct autoHumidityMapping schema default to match runtime behavior (fb0b537)
  • correct FanDeviceFeature TURN_ON/TURN_OFF enum values to match HA (d5f654e)

2.0.28 (2026-03-04)

Bug Fixes

  • #225: retain fan percentSetting/speedSetting when off to prevent 100% on turn-on (e1e3aeb), closes #225
  • add source selection (MediaInput) to VideoPlayerDevice for TVs (#231) (54416e7)
  • biome formatting for composed air purifier lint (1eef2df)
  • flatten composed air purifier to single endpoint (#218) (feddb53)
  • frontend error boundary, 404 page, WCAG contrast, bulk action guards, docs corrections (becd29a)
  • merge API docs, add Testing Features to TOC, fix unsafe cast, use logger in BridgeService, theme-aware colors in Dashboard/NetworkMap/HubNode (0502dca)
  • optimistic state updates for level and color control commands (d4a9579)
  • P0+P1 audit fixes docs, logger, theme-aware UI (27ed337)
  • prevent undefined values in bridge config form data (3f1fc4f)
  • raise fan speedMax cap from 10 to 100 (Matter spec max) (c9e458c)
  • register custom service areas as RvcRunMode room modes for Apple Home zone dispatch (1ff6a80), closes #177
  • remove @matter/main from frontend, fix PR #226 issues (459b3ca)
  • revert dashboard fetch URL to relative path for HA ingress compatibility (94c1ed6)
  • set onLevel to null for lights to prevent brightness reset on turn-on (#225) (ba0e758)
  • snapshot-copy selectedAreas before clearing state to prevent proxy invalidation (042e709), closes #224
  • switch Dreame floor map before vacuum_clean_segment for multi-floor rooms (85efedb)
  • use OnOffPlugInUnit for on/off-only fans (#229) (3734f69)

Features

  • add --http-base-path option for reverse proxy subfolder support (#228) (00034e4)
  • add device image support with z2m integration and custom uploads (#221) (f9412af)

2.0.27 (2026-02-28)

Bug Fixes

  • #105: add session lifecycle diagnostics for Alexa disconnection debugging (944d6f7), closes #105
  • #177: persist customServiceAreas in API and dispatch custom services in cleanRoom (28d59dd), closes #177
  • #183: include OnOff cluster by default for server-mode vacuums (Alexa requires PowerController) (442c2be), closes #183
  • #183: remove PowerSource from server-mode vacuum endpoint (b49cc4e), closes #183
  • #183: remove vacuumOnOff schema default to fix server-mode OnOff inclusion (631500f)
  • #183: skip ServiceArea cluster when no rooms are configured (0e37ff2), closes #183
  • #183: use fieldPathId.path in FeatureFlagsField onChange to prevent wiping bridge config (4343602), closes #183
  • #185,#183: revert RVC mode IDs to 0-based to restore Alexa compatibility (05d8ad7), closes #185 #183
  • #185: align RvcCleanMode default mode IDs with 0-based convention (84f5f2b), closes #185
  • #189: always report IsCharging when docked, downgrade memory log to debug (182dd14), closes #189
  • #205: only include cleaning type modes the vacuum actually supports (29ad38c), closes #205
  • #205: re-enable room-specific RvcRunMode modes for Apple Home room cleaning (e1b7a56), closes #205
  • #205: skip entity targeting for mqtt.publish (HA rejects entity_id in service data) (bd03a9c), closes #205
  • #205: sort room modes alphabetically to match Apple Home display order (1415feb), closes #205
  • #205: use mqtt.publish for Valetudo segment cleanup instead of vacuum.send_command (cabfc22), closes #205
  • #206: fallback to hardcoded cleaning modes when entity options unavailable (8f5c467), closes #206
  • #206: report IsAtFullCharge when battery is at 100% while docked (b8b41cd), closes #206
  • #207: dynamic controlSequenceOfOperation for heat_cool-only HVAC zones (f274bab), closes #207
  • #207: expose heat_cool-only HVAC zones as Heating-only devices (00a561b), closes #207
  • #207: handle heat_cool-only HVAC zones dynamic ControlSequenceOfOperation, no AutoMode (0147e2a), closes #207
  • #207: update internal.controlSequenceOfOperation to bypass Matter.js reactor (16d257a), closes #207
  • #208: always call vacuum.locate on identify regardless of feature flag (d3af7a4), closes #208
  • #209: add alarm-specific OnOff fallback for Apple Home compatibility (6428340), closes #209
  • #210: re-register CommissioningConfigProvider before bridge restart to fix matter.js lifecycle bug (9fe75a2)
  • #214: composed sensor temp not updating + missing device types in flat endpoints (7b55827), closes #214
  • #28: use dynamic controlSequenceOfOperation for non-AutoMode thermostats (ce686fe), closes #28
  • air-purifier: add missing Rocking (oscillation) and Wind feature support (4a12ac6)
  • align minSetpointDeadBand guard with autoMode condition regression from 0147e2a (d973e7d)
  • backend: optimistic onOff state + remove Lighting feature from fan/air purifier (184419d)
  • change periodic registry load log from info to debug (281bc2c)
  • composed: add BridgedNode device type to air purifier parent endpoint (4ef77ff), closes #218
  • composed: make AirPurifierDevice the parent endpoint (0x002D) instead of BridgedNodeEndpoint (0x0013) (305ccd3), closes #218
  • composed: remove thermostat sub-endpoint from composed air purifier (22cb9d2), closes #218
  • composed: revert to AirPurifierDevice base with dual deviceTypeList (34fcd45), closes #218
  • default vacuum OnOff to OFF in server mode OnOff breaks Alexa (#185, #183) (51c5fd4)
  • disable semantic-release success comments to prevent CI failure on fork issue references (69b7737)
  • hide server mode banner when only Google Home is connected (e795de9)
  • lint errors in vacuum-identify-server and bridge-registry optional chaining (ce97733)
  • prefer selectedAreas over room mode in changeToMode for Apple Home (7a5b5a7)
  • remove unnecessary parentheses in home-assistant-actions.ts (biome format) (6f6b6ef)
  • repack npm tarball as @riddix/hamh before publish (82027c1)
  • set correct repository casing (RiDDiX) in npm repack for provenance (05f4ba4)
  • show full description for selected template (8f47da6)

Features

  • #177: add custom service areas for generic zone-based robots (ec0ddf2), closes #177
  • #183: add vacuumMinimalClusters feature flag for Alexa troubleshooting (1a6641e), closes #183
  • #189: map Identify cluster to vacuum.locate for Apple Home 'Play Sound to Locate' (cd84cb5), closes #189
  • #205: native Valetudo support auto-detect select entities, map segments, segment_cleanup (b56bdab), closes #205
  • #206: report Charging state when vacuum is docked and charging (5bf39f7), closes #206
  • add linux/arm/v7 platform for standalone Docker image (66210dc), closes #1230
  • add npm publish job to release workflows (cc8fa35)
  • backend: add composed air purifier endpoint (Matter spec 9.4.4) (d00fe81)
  • compact collapsible include/exclude editor with search (d7e3eec)
  • dashboard: header links to dashboard, add Settings nav entry, add bridge Start/Stop/Restart All controls (faabf2e)
  • enable ServiceArea Maps feature for multi-floor vacuum support (750ce0c)
  • expose alarm_control_panel as ModeSelect instead of OnOffPlugInUnit (#209) (cf87606)
  • frontend: add Razer, Roborock, iRobot vendor brand icons (eeef101)
  • frontend: add Signify icon, replace D-Link SVG, remove LG ThinQ (6c03d9f)
  • frontend: add vendor brand icons for 18 new manufacturers (a5a4600)
  • improve bridge config editor UI (623deb0)
  • improve vendor identification and consolidate vendor name lookups (e388bec)
  • show HAMH process memory (RSS + heap) in System Information (558ee08)

Performance Improvements

  • increase default registry refresh interval from 30s to 60s (d49342b)
  • skip registry refresh when structure unchanged (fingerprint-based change detection) (28536e3)

Reverts

  • undo ServiceArea and PowerSource removal (#183) (13e261d)

2.0.26 (2026-02-23)

Bug Fixes

  • #105: add non-destructive session lifecycle logging for diagnostic visibility (3044f89), closes #105
  • #110: add diagnostic logging for vacuum clean mode changes (d4990b7), closes #110
  • #110: dispatch cleaning mode before intensity and remove stale state check (c56b9c7), closes #110
  • #110: positional fallback for vacuum suction/mop intensity matching (f93626d), closes #110
  • #110: switch cleaning mode entity when Apple Home sends intensity mode (a393aa1), closes #110
  • #110: use target entity for action debounce key (4ca1590), closes #110
  • #148: coverUseHomeAssistantPercentage takes precedence over coverSwapOpenClose for position (8bb457b)
  • #165: restore Auto tag for mid-range fan speeds, add tag dedup logic (b5f5d72), closes #165
  • #176: preserve setpoint nudge while device is Off (d95b37c), closes #176
  • #176: replace unreliable setpoint nudge with property setter interceptor (b5d01e7), closes #176
  • #189: fallback 'Vacuum Then Mop' to 'Vacuum & Mop' when entity lacks dedicated option (fbf9d95), closes #189
  • #190: cgroup-aware heap sizing for Docker/HA OS containers (0dc84c7), closes #190
  • #191: restore subscription persistence disabled to prevent Apple Home Updating status (f9588df), closes #191
  • #198: dispatch all button presses for multi-room ServiceArea selection (91a8c44), closes #198
  • #199: use directional commands for cover open/close instead of position path (176d840)
  • #200: pin Docker runtime to Node 22 to fix ERR_INVALID_PACKAGE_CONFIG (49fa22c)
  • #202: allow editing entity filter for server mode templates in wizard (fcb3909), closes #202
  • #202: entity filter change on server-mode bridge now updates the endpoint (cd24810), closes #202
  • #203: show start/stop/restart buttons with single bridge (f5abfff), closes #203
  • add missing pressureEntity to entity-mapping API, harden API error handling, use proper Logger in lock/water-heater, prune stale sync state, add cover inversion tests (9565655)
  • add setpoint nudge for same-value auto-resume while thermostat is Off (5fafd17), closes #176
  • always auto-detect battery entity for server-mode vacuums (#183) (16e42ed)
  • assign intensity tags to all matching fan speeds for Apple Home visibility (e8d2378)
  • clarify that Alexa requires OnOff cluster for robotic vacuums (#183) (a50314b)
  • coverSwapOpenClose now also inverts position reporting (b5653ff), closes #195
  • implement KeypadInputServer for BasicVideoPlayer media endpoint (dc0c8ca)
  • live diagnostics text overflow and sync sorting with bridge status (44837ac)
  • prevent frontend crash when serializing disposed Matter.js containers (#193) (5ce8c7d)
  • reduce WindowCoveringServer log noise by moving position updates to DEBUG (8b0381b)
  • remove auto-added PowerSource device type from descriptor (#183) (31550cf)
  • remove PowerSource cluster from server-mode vacuum endpoint (#183) (45be591)
  • remove thermostat setpoint write interceptor causing 'Cannot redefine property' crash (93d7ce6), closes #176
  • restore PowerSource device type on vacuum endpoint to match Matterbridge (#183) (1789c73)
  • use 1-based mode IDs for RVC clusters and restore PowerSource (#183) (6a452a9)
  • vacuum OnOff turnOff sends return_to_base instead of stop (046d6cf)
  • validate mode in changeToMode overrides (Matter spec compliance) (400002d)

Features

  • #197: add authentication configuration from UI (c84cf89), closes #197
  • dynamic compatibility warnings in bridge config editor (304d93c)
  • expandable cluster diagnostics in device cards (0cdee8c)
  • support select and input_select entities via ModeSelectDevice (396b663)
  • update matter.js packages from 0.16.8 to 0.16.10 (675713f)
  • webhook event bridge fire hamh_action HA events for controller commands (08ebcb2)

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)