@riddix/hamh 2.0.46 → 2.0.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +68 -30
- package/dist/backend/cli.js +11200 -8305
- package/dist/frontend/assets/index-B3y_RLGV.js +469 -0
- package/dist/frontend/index.html +1 -1
- package/package.json +9 -7
- package/dist/frontend/assets/index-BA-VTrO5.js +0 -469
- /package/dist/frontend/assets/{javascript-BQ_IDdmx.js → javascript-CppQSorr.js} +0 -0
- /package/dist/frontend/assets/{vitesse-dark-tyNGF42e.js → vitesse-dark-BZCL-v6S.js} +0 -0
- /package/dist/frontend/assets/{vitesse-light-B2NYzK0e.js → vitesse-light-VbXTXTou.js} +0 -0
package/README.md
CHANGED
|
@@ -37,41 +37,63 @@ of port forwarding etc.
|
|
|
37
37
|
|
|
38
38
|
| Channel | Branch | Current Version | Description |
|
|
39
39
|
|---------|--------|-----------------|-------------|
|
|
40
|
-
| **Stable** | `main` | v2.0.
|
|
41
|
-
| **Alpha** | `alpha` | v2.1.0-alpha.x |
|
|
40
|
+
| **Stable** | `main` | v2.0.47 | Production-ready, recommended for most users |
|
|
41
|
+
| **Alpha** | `alpha` | v2.1.0-alpha.x (next) | Currently level with Stable; next pre-release lands here first |
|
|
42
42
|
| **Testing** | `testing` | v4.1.0-testing.x | ⚠️ **Highly unstable!** Experimental features, may break |
|
|
43
43
|
|
|
44
44
|
### Which version should I use?
|
|
45
45
|
|
|
46
46
|
- **Most users**: Use **Stable** (`main` branch) - thoroughly tested
|
|
47
|
-
- **Early adopters**: Use **Alpha** (`alpha` branch) -
|
|
47
|
+
- **Early adopters**: Use **Alpha** (`alpha` branch) - currently level with Stable until the next pre-release lands
|
|
48
48
|
- **Developers/Testers**: Use **Testing** (`testing` branch) - bleeding edge, expect breakage
|
|
49
49
|
|
|
50
|
+
### Upgrading from 2.0.46
|
|
51
|
+
|
|
52
|
+
A few entities re-pair once on the first start after the update and lose their room assignment in the controller:
|
|
53
|
+
|
|
54
|
+
- leak and freeze `binary_sensor`s (now Contact Sensors by default) and any entity using the **On/Off Switch** override
|
|
55
|
+
- a light may drop its auto power/energy readout, re-add it by mapping the sensor by hand
|
|
56
|
+
|
|
57
|
+
Re-assign the affected devices to their rooms after they reconnect. See the [docs](https://riddix.github.io/home-assistant-matter-hub/supported-device-types) for detail.
|
|
58
|
+
|
|
50
59
|
---
|
|
51
60
|
|
|
52
61
|
## 🎉 What's New
|
|
53
62
|
|
|
54
63
|
<details>
|
|
55
|
-
<summary><strong>📦 Stable Features (v2.0.
|
|
56
|
-
|
|
57
|
-
**New in v2.0.
|
|
58
|
-
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
-
|
|
64
|
+
<summary><strong>📦 Stable Features (v2.0.47)</strong> - Click to expand</summary>
|
|
65
|
+
|
|
66
|
+
**New in v2.0.47:**
|
|
67
|
+
|
|
68
|
+
- 💧 Leak and freeze `binary_sensor`s now default to a Matter 1.3 **Contact Sensor** so Alexa stays stable; the Matter 1.4 Water Leak, Water Freeze, and Rain detector types are selectable per entity through the device-type override ([#365](https://github.com/RiDDiX/home-assistant-matter-hub/issues/365))
|
|
69
|
+
- 💡 **Lights no longer auto-attach power/energy clusters**; map a light's power or energy sensor explicitly with `powerEntity`/`energyEntity` if you want the readout ([#374](https://github.com/RiDDiX/home-assistant-matter-hub/issues/374))
|
|
70
|
+
- 🔘 The **On/Off Switch** device-type override now exposes a real On/Off Light instead of a no-op plug ([#380](https://github.com/RiDDiX/home-assistant-matter-hub/issues/380))
|
|
71
|
+
- 🔍 New **`manufacturer` entity-filter matcher** ([#382](https://github.com/RiDDiX/home-assistant-matter-hub/issues/382))
|
|
72
|
+
- 🌀 Opt-in: turning the **companion fan** off now turns the AC off too ([#309](https://github.com/RiDDiX/home-assistant-matter-hub/issues/309))
|
|
73
|
+
- 🩺 **Reliability & health**: configurable auto-recovery with failure timestamps, controller-compatibility warnings on each bridge page, and per-entity device-health on the dashboard
|
|
74
|
+
- 🖥️ **Standalone (non-vacuum) devices in server mode**, plus `lawn_mower` entities exposed as a robotic mower
|
|
75
|
+
- 🪟 Cover exposed as a **dimmable light** for Alexa routines ([#372](https://github.com/RiDDiX/home-assistant-matter-hub/issues/372)), per-entity **update throttle** ([#351](https://github.com/RiDDiX/home-assistant-matter-hub/issues/351)), **charging-state sensor** mapping ([#377](https://github.com/RiDDiX/home-assistant-matter-hub/issues/377))
|
|
76
|
+
- 📷 Experimental built-in **WebRTC camera plugin** (SmartThings-only, media path not verified yet)
|
|
77
|
+
- 🧵 **matter.js 0.17.3**
|
|
78
|
+
|
|
79
|
+
**Previously in v2.0.46:**
|
|
80
|
+
|
|
81
|
+
- ❄️ Opt-in **companion fan** for climate ACs: a per-entity toggle exposes the AC's fan as its own Matter fan endpoint, the setting is persisted, and fan-speed presets are now ordered low→high ([#309](https://github.com/RiDDiX/home-assistant-matter-hub/issues/309))
|
|
82
|
+
- 🌦️ **Weather domain support**: `weather.*` entities are exposed as a composed Temperature + Humidity + Pressure sensor read from the entity's attributes (pressure converted to hPa, shown on Google Home)
|
|
83
|
+
- 🤖 **Vacuum service-area editing**: edit area data inline in Entity Mapping and dispatch room cleaning in batches, plus a batch-room-data fix ([#291](https://github.com/RiDDiX/home-assistant-matter-hub/issues/291))
|
|
84
|
+
- 🔒 **Door Lock credential hardening**: safer access-code handling and fabric-index casting on the lock cluster ([#313](https://github.com/RiDDiX/home-assistant-matter-hub/issues/313))
|
|
85
|
+
- ⚡ **Skip unchanged endpoints on HA updates**: only endpoints whose entity or a mapped sub-entity actually changed are refreshed, so CPU no longer scales with entity count × event rate ([#351](https://github.com/RiDDiX/home-assistant-matter-hub/issues/351))
|
|
86
|
+
- 🔌 **Registry stays resilient when HA drops**: an initial reload failure no longer puts the add-on in a restart loop on a flaky HA boot, and a mid-flight "Connection lost" retries once ([#352](https://github.com/RiDDiX/home-assistant-matter-hub/issues/352))
|
|
65
87
|
- 🔁 **RVC sessions refreshed safely** so vacuum reactors don't go stale ([#287](https://github.com/RiDDiX/home-assistant-matter-hub/issues/287))
|
|
66
88
|
- 🪟 **Tilt-only covers** use the tilt channel for lift commands ([#350](https://github.com/RiDDiX/home-assistant-matter-hub/issues/350))
|
|
67
89
|
- 🔋 **Battery auto-mapping narrowed** to avoid false matches, plus support for enum battery states ([#359](https://github.com/RiDDiX/home-assistant-matter-hub/issues/359))
|
|
68
|
-
- 🔘 **`automation` entities are momentary
|
|
90
|
+
- 🔘 **`automation` entities are momentary**: turning one on triggers it and snaps back to off ([#364](https://github.com/RiDDiX/home-assistant-matter-hub/issues/364))
|
|
69
91
|
- 🌀 **Climate swing-mode handling fix**
|
|
70
|
-
- 🚨 **Non-5540 Alexa bridge warning
|
|
71
|
-
- 🧵 **matter.js 0.17.0
|
|
72
|
-
- 🧰 Build/runtime fixes
|
|
92
|
+
- 🚨 **Non-5540 Alexa bridge warning**: a bridge on any other port now warns, since Alexa only pairs on port 5540
|
|
93
|
+
- 🧵 **matter.js 0.17.0**: upgraded from 0.16.11; the local LG-TV NOC-serial patch is dropped because upstream now tolerates 21-octet operational cert serials ([#305](https://github.com/RiDDiX/home-assistant-matter-hub/issues/305))
|
|
94
|
+
- 🧰 Build/runtime fixes: `bun:sqlite` `constants` export stubbed so the esbuild bundle builds against matter.js 0.17.0, add-on heap flag preserved ([#358](https://github.com/RiDDiX/home-assistant-matter-hub/issues/358))
|
|
73
95
|
- ⬆️ Dependency vulnerabilities resolved
|
|
74
|
-
- 📝 Docs
|
|
96
|
+
- 📝 Docs: `hvac_action` requirement for the Auto running-state display ([#309](https://github.com/RiDDiX/home-assistant-matter-hub/issues/309)), Google Home ModeSelect label gap ([#356](https://github.com/RiDDiX/home-assistant-matter-hub/issues/356)), Alexa cover-routine limitation ([#312](https://github.com/RiDDiX/home-assistant-matter-hub/issues/312)), and the new weather domain
|
|
75
97
|
|
|
76
98
|
**Previously in v2.0.45 (hotfix release):**
|
|
77
99
|
|
|
@@ -79,12 +101,12 @@ of port forwarding etc.
|
|
|
79
101
|
|
|
80
102
|
**Previously in v2.0.44:**
|
|
81
103
|
|
|
82
|
-
- 🪟 Cover reliability overhaul
|
|
104
|
+
- 🪟 Cover reliability overhaul: Matter state/target/current reports split and correctly ordered, deferred target writes de-duplicated, legacy position attributes dropped from updates, cluster profile aligned with the certified Eve blind, current position held during external motion ([#328](https://github.com/RiDDiX/home-assistant-matter-hub/issues/328))
|
|
83
105
|
- 🎚️ Per-bridge and per-entity cover slider debounce, window widened to 300 ms for smoother slider control ([#331](https://github.com/RiDDiX/home-assistant-matter-hub/issues/331))
|
|
84
106
|
- 🤖 Vacuum service-area handling: `customServiceAreas` preserved in dynamic `RvcRunMode` supported modes, custom areas dispatched sequentially, `currentArea` cleared on dock return and no longer inherited stale across restarts, `observedCleaning` set on every cleaning event ([#335](https://github.com/RiDDiX/home-assistant-matter-hub/issues/335))
|
|
85
107
|
- 🔋 Docked vacuum stops reporting charging once the battery is full ([#334](https://github.com/RiDDiX/home-assistant-matter-hub/issues/334))
|
|
86
108
|
- ❄️ Per-entity `climateKeepModeOnIdle` for off+idle ACs; mode kept through a cool→off transition, freeze applied immediately on off and cleared on `action=off` ([#340](https://github.com/RiDDiX/home-assistant-matter-hub/issues/340))
|
|
87
|
-
- 🔁 Matter session rotation
|
|
109
|
+
- 🔁 Matter session rotation: opt-in per-bridge setting, aged sessions rotated, RVC clean-mode reactor goes offline correctly, `pushKeepalive` guarded on construction ([#287](https://github.com/RiDDiX/home-assistant-matter-hub/issues/287))
|
|
88
110
|
- 🧠 Heap-headroom and force-sync pressure guard to reduce memory pressure ([#347](https://github.com/RiDDiX/home-assistant-matter-hub/issues/347))
|
|
89
111
|
- 🏷️ Per-entity `customVendorId` with Home Assistant device-registry serial fallback ([#290](https://github.com/RiDDiX/home-assistant-matter-hub/issues/290))
|
|
90
112
|
- 🔢 `serialNumberSuffix` now loads when editing a bridge and is preserved when the serial is trimmed to 32 characters ([#330](https://github.com/RiDDiX/home-assistant-matter-hub/issues/330))
|
|
@@ -97,7 +119,7 @@ of port forwarding etc.
|
|
|
97
119
|
- 🧩 JSON editor de-duplicates `@codemirror/state` ([#345](https://github.com/RiDDiX/home-assistant-matter-hub/issues/345))
|
|
98
120
|
- 🌍 Polish translation update, credited to [@MStankiewiczOfficial](https://github.com/MStankiewiczOfficial) ([#329](https://github.com/RiDDiX/home-assistant-matter-hub/pull/329))
|
|
99
121
|
- ✅ Added regression test coverage for the session-max-age parser ([#287](https://github.com/RiDDiX/home-assistant-matter-hub/issues/287))
|
|
100
|
-
- ⬆️ Dependency hygiene
|
|
122
|
+
- ⬆️ Dependency hygiene: transitive deps flagged by Dependabot patched, `serialize-javascript` bumped to 7.0.5 in docs-site
|
|
101
123
|
|
|
102
124
|
**Previously in v2.0.43:**
|
|
103
125
|
|
|
@@ -296,27 +318,42 @@ Matter Bridge, Multi-Fabric support, Health Monitoring, Bridge Wizard, AirQualit
|
|
|
296
318
|
|
|
297
319
|
| Home Assistant Domain | Matter Device Type | Feature Flags |
|
|
298
320
|
|-----------------------|-------------------|---------------|
|
|
299
|
-
| `light` | On/Off, Dimmable, Color Temp, Extended Color | `powerEntity`, `energyEntity` |
|
|
321
|
+
| `light` | On/Off, Dimmable, Color Temp, Extended Color | `powerEntity`, `energyEntity` (no longer auto-mapped, set explicitly if a light's energy readout disappears, [#374](https://github.com/RiDDiX/home-assistant-matter-hub/issues/374)), `coverExposeAsDimmableLight` ([#372](https://github.com/RiDDiX/home-assistant-matter-hub/issues/372)) |
|
|
300
322
|
| `switch`, `input_boolean` | On/Off Plug-in Unit | `powerEntity`, `energyEntity` |
|
|
301
323
|
| `lock` | Door Lock | PIN Credentials, Unlatch/Unbolt |
|
|
302
324
|
| `cover` | Window Covering | `coverSwapOpenClose` |
|
|
303
|
-
| `climate` | Thermostat | Battery via `batteryEntity` |
|
|
325
|
+
| `climate` | Thermostat | Battery via `batteryEntity`, `climateExposeFan` ([#309](https://github.com/RiDDiX/home-assistant-matter-hub/issues/309)) |
|
|
304
326
|
| `fan` | Fan, Air Purifier | Oscillation, Wind Modes, `filterLifeEntity` |
|
|
305
327
|
| `alarm_control_panel` | Mode Select | Arm/Disarm modes |
|
|
306
|
-
| `binary_sensor` | Contact, OnOff, Occupancy, Smoke/CO
|
|
328
|
+
| `binary_sensor` | Contact, OnOff, Occupancy, Smoke/CO | Leak/freeze default to Contact Sensor (Alexa-safe); the Matter 1.4 Water Leak/Freeze and Rain detector types are per-entity overrides ([#365](https://github.com/RiDDiX/home-assistant-matter-hub/issues/365)) |
|
|
307
329
|
| `sensor` | Temperature, Humidity, Pressure, Flow, Light, AirQuality | `batteryEntity`, `humidityEntity`, `pressureEntity` |
|
|
308
330
|
| `event` | Generic Switch (Doorbell, Button Events) | |
|
|
309
331
|
| `button`, `input_button` | Generic Switch | |
|
|
310
332
|
| `media_player` | Speaker, Basic Video Player (TV) | |
|
|
311
333
|
| `valve` | Water Valve, Pump | |
|
|
312
334
|
| `select`, `input_select` | Mode Select | |
|
|
313
|
-
| `vacuum` | Robot Vacuum Cleaner | `serverMode`, `roomEntities`, `batteryEntity`, `cleaningModeEntity`, `suctionLevelEntity`, `mopIntensityEntity`, `customServiceAreas`, `vacuumMinimalClusters` |
|
|
335
|
+
| `vacuum` | Robot Vacuum Cleaner | `serverMode`, `roomEntities`, `batteryEntity`, `cleaningModeEntity`, `suctionLevelEntity`, `mopIntensityEntity`, `customServiceAreas`, `vacuumMinimalClusters`, `chargingStateEntity` ([#377](https://github.com/RiDDiX/home-assistant-matter-hub/issues/377)) |
|
|
336
|
+
| `lawn_mower` | Robotic Lawn Mower (RVC-based) | reuses the robot-vacuum flags ([#301](https://github.com/RiDDiX/home-assistant-matter-hub/issues/301)) |
|
|
314
337
|
| `humidifier` | Humidifier/Dehumidifier | |
|
|
315
338
|
| `water_heater` | Thermostat (Heating) | |
|
|
316
|
-
| `automation`, `script`, `scene` | On/Off Switch | |
|
|
339
|
+
| `automation`, `script`, `scene` | On/Off Switch | The per-entity "On/Off Switch" override now produces a real `0x0100` On/Off Light (controllers render a switch), needs a one-time re-pair, and no longer carries power/energy fields ([#380](https://github.com/RiDDiX/home-assistant-matter-hub/issues/380)) |
|
|
317
340
|
|
|
318
341
|
> 📖 See [Supported Device Types Documentation](https://riddix.github.io/home-assistant-matter-hub/supported-device-types) for details
|
|
319
342
|
|
|
343
|
+
**Common per-entity flags:** `updateThrottleMs` rate-limits how often an entity pushes updates to controllers ([#351](https://github.com/RiDDiX/home-assistant-matter-hub/issues/351)), `coverExposeAsDimmableLight` exposes a cover as a dimmable light for Alexa routines ([#372](https://github.com/RiDDiX/home-assistant-matter-hub/issues/372)), `chargingStateEntity` maps a charging-state sensor ([#377](https://github.com/RiDDiX/home-assistant-matter-hub/issues/377)), `climateExposeFan` exposes a climate AC's fan as its own endpoint ([#309](https://github.com/RiDDiX/home-assistant-matter-hub/issues/309)).
|
|
344
|
+
|
|
345
|
+
### Entity Filters
|
|
346
|
+
|
|
347
|
+
Filter rules match on these matcher types: `pattern`, `regex`, `domain`, `platform`, `entity_label`, `device_label`, `entity_label_regex`, `device_label_regex`, `any_field_regex`, `area`, `entity_category`, `device_name`, `product_name`, `device_class`. The new **`manufacturer`** matcher matches the device manufacturer (or `default_manufacturer`) and supports `*` wildcards ([#382](https://github.com/RiDDiX/home-assistant-matter-hub/issues/382)).
|
|
348
|
+
|
|
349
|
+
### Reliability & Health
|
|
350
|
+
|
|
351
|
+
Configurable auto-recovery with failure timestamps in Settings, controller-compatibility warnings on each bridge page, per-entity device-health diagnostics on the health dashboard, and a warning when a bridge exposes device types its controller does not support.
|
|
352
|
+
|
|
353
|
+
### Experimental: Camera Plugin
|
|
354
|
+
|
|
355
|
+
A built-in plugin exposes Home Assistant cameras as Matter Cameras (`0x0142`). Experimental, SmartThings-only as of 2026, and the WebRTC media path is not verified end to end.
|
|
356
|
+
|
|
320
357
|
---
|
|
321
358
|
|
|
322
359
|
## 🤖 Robot Vacuum Server Mode
|
|
@@ -335,7 +372,7 @@ This is because these platforms expect robot vacuums to be **standalone Matter d
|
|
|
335
372
|
|
|
336
373
|
### The Solution: Server Mode
|
|
337
374
|
|
|
338
|
-
**Server Mode** exposes
|
|
375
|
+
**Server Mode** exposes a device as a standalone (non-bridged) Matter endpoint without the bridge wrapper. It works for any device type, not just vacuums, and a bridge can host standalone devices. For a robot vacuum this makes it fully compatible with Apple Home and Alexa.
|
|
339
376
|
|
|
340
377
|
### Setup Instructions
|
|
341
378
|
|
|
@@ -347,9 +384,9 @@ This is because these platforms expect robot vacuums to be **standalone Matter d
|
|
|
347
384
|
|
|
348
385
|
### Important Notes
|
|
349
386
|
|
|
350
|
-
- Server Mode
|
|
351
|
-
-
|
|
352
|
-
- Other device types (lights, switches, sensors) work
|
|
387
|
+
- A Server Mode node exposes each device as a standalone endpoint, up to 10 per node; extra entities are skipped
|
|
388
|
+
- For best results give a robot vacuum its own dedicated Server Mode bridge
|
|
389
|
+
- Other device types (lights, switches, sensors) also work on regular bridges
|
|
353
390
|
- After switching to Server Mode, Siri commands like "Hey Siri, start the vacuum" will work
|
|
354
391
|
|
|
355
392
|
### Documentation
|
|
@@ -524,6 +561,7 @@ Newest first.
|
|
|
524
561
|
|
|
525
562
|
| Contributor | Contributions |
|
|
526
563
|
|-------------|---------------|
|
|
564
|
+
| [@qbattersby](https://github.com/qbattersby) | 🤖 **Code Contributor** - LevelControl transitionTime patch for matter.js 0.17, so Google Home can dim already-on lights ([#383](https://github.com/RiDDiX/home-assistant-matter-hub/pull/383)) |
|
|
527
565
|
| [@Yllelder](https://github.com/Yllelder) | 🌐 **Translator** - Spanish translation ([#314](https://github.com/RiDDiX/home-assistant-matter-hub/pull/314)) |
|
|
528
566
|
| [@MStankiewiczOfficial](https://github.com/MStankiewiczOfficial) | 🌐 **Translator** - Polish translation ([#288](https://github.com/RiDDiX/home-assistant-matter-hub/pull/288), [#329](https://github.com/RiDDiX/home-assistant-matter-hub/pull/329)) |
|
|
529
567
|
| [@aetasoul](https://github.com/aetasoul) | 🤖 **Code Contributor** - Immediate force sync on startup to beat stale Alexa queues ([#282](https://github.com/RiDDiX/home-assistant-matter-hub/pull/282)) |
|