@riddix/hamh 2.1.0-alpha.407 → 2.1.0-alpha.409
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
CHANGED
|
@@ -37,7 +37,7 @@ of port forwarding etc.
|
|
|
37
37
|
|
|
38
38
|
| Channel | Branch | Current Version | Description |
|
|
39
39
|
|---------|--------|-----------------|-------------|
|
|
40
|
-
| **Stable** | `main` | v2.0.
|
|
40
|
+
| **Stable** | `main` | v2.0.27 | Production-ready, recommended for most users |
|
|
41
41
|
| **Alpha** | `alpha` | v2.1.0-alpha.x | Pre-release with new features, for early adopters |
|
|
42
42
|
| **Testing** | `testing` | v4.1.0-testing.x | ⚠️ **Highly unstable!** Experimental features, may break |
|
|
43
43
|
|
|
@@ -52,44 +52,51 @@ of port forwarding etc.
|
|
|
52
52
|
## 🎉 What's New
|
|
53
53
|
|
|
54
54
|
<details>
|
|
55
|
-
<summary><strong>📦 Stable Features (v2.0.
|
|
55
|
+
<summary><strong>📦 Stable Features (v2.0.27)</strong> - Click to expand</summary>
|
|
56
56
|
|
|
57
|
-
**New in v2.0.
|
|
57
|
+
**New in v2.0.27:**
|
|
58
58
|
|
|
59
59
|
| Feature | Description |
|
|
60
60
|
|---------|-------------|
|
|
61
|
-
|
|
|
62
|
-
|
|
|
63
|
-
|
|
|
64
|
-
|
|
|
65
|
-
|
|
|
66
|
-
| **🤖 Vacuum
|
|
67
|
-
|
|
|
68
|
-
|
|
|
69
|
-
|
|
|
70
|
-
|
|
|
71
|
-
|
|
|
72
|
-
|
|
|
73
|
-
|
|
|
74
|
-
|
|
|
75
|
-
|
|
|
76
|
-
|
|
77
|
-
**
|
|
61
|
+
| **🤖 Native Valetudo Support** | Auto-detect Valetudo select entities, map segments, use `segment_cleanup` via MQTT for room cleaning ([#205](https://github.com/RiDDiX/home-assistant-matter-hub/issues/205)) |
|
|
62
|
+
| **🤖 Custom Service Areas** | Define custom room/zone names for generic zone-based robots without native room support ([#177](https://github.com/RiDDiX/home-assistant-matter-hub/issues/177)) |
|
|
63
|
+
| **🤖 ServiceArea Maps** | Multi-floor vacuum support — rooms grouped by floor map in Apple Home |
|
|
64
|
+
| **🤖 Vacuum Identify → Locate** | "Play Sound" in Apple Home triggers `vacuum.locate` to find your robot ([#189](https://github.com/RiDDiX/home-assistant-matter-hub/issues/189)) |
|
|
65
|
+
| **🤖 Vacuum Charging State** | Reports `IsCharging` when docked — Apple Home shows correct charging indicator ([#206](https://github.com/RiDDiX/home-assistant-matter-hub/issues/206)) |
|
|
66
|
+
| **🤖 Vacuum Minimal Clusters** | `vacuumMinimalClusters` feature flag strips non-essential clusters for Alexa compatibility ([#183](https://github.com/RiDDiX/home-assistant-matter-hub/issues/183)) |
|
|
67
|
+
| **🌡️ Composed Air Purifier** | Air purifiers with thermostat/humidity sensors create real Matter Composed Devices (spec 9.4.4) |
|
|
68
|
+
| **🚨 Alarm Control Panel** | `alarm_control_panel` entities exposed as Matter ModeSelect — arm/disarm modes available in controllers ([#209](https://github.com/RiDDiX/home-assistant-matter-hub/issues/209)) |
|
|
69
|
+
| **🖥️ Dashboard Controls** | Bridge Start/Stop/Restart All buttons in header, Settings nav entry |
|
|
70
|
+
| **🖥️ Process Memory Display** | RSS + heap usage shown in System Information page |
|
|
71
|
+
| **🖥️ Compact Include/Exclude Editor** | Collapsible entity filter editor with search |
|
|
72
|
+
| **🖥️ Improved Bridge Config UI** | Better layout and usability for bridge settings editor |
|
|
73
|
+
| **🏢 Vendor Brand Icons** | 20+ new manufacturer icons (Razer, Roborock, iRobot, Signify, and more) |
|
|
74
|
+
| **🐳 linux/arm/v7 Docker** | Added ARM v7 platform for standalone Docker image |
|
|
75
|
+
| **📦 npm Package** | Published as `@riddix/hamh` on npm for standalone installations |
|
|
76
|
+
| **🌡️ Thermostat #207 Fix** | heat_cool-only HVAC zones now dynamically report CoolingOnly/HeatingOnly based on hvac_action |
|
|
77
|
+
| **🌡️ Thermostat #28 Fix** | Devices with auto+cool but no explicit heat (e.g. SmartIR ACs) no longer crash with conformance error |
|
|
78
|
+
| **🤖 Vacuum Alexa Fixes** | Multiple fixes for OnOff, PowerSource, mode IDs, room sorting ([#183](https://github.com/RiDDiX/home-assistant-matter-hub/issues/183), [#185](https://github.com/RiDDiX/home-assistant-matter-hub/issues/185)) |
|
|
79
|
+
| **🔧 Air Purifier Fix** | Added Rocking (oscillation) and Wind feature support, removed incorrect Lighting feature |
|
|
80
|
+
| **🔧 Composed Sensor Fix** | Temperature not updating in composed sensors, missing device types in flat endpoints ([#214](https://github.com/RiDDiX/home-assistant-matter-hub/issues/214)) |
|
|
81
|
+
| **⚡ Performance** | Fingerprint-based registry change detection, reduced refresh overhead |
|
|
82
|
+
|
|
83
|
+
**Previously in v2.0.26:**
|
|
78
84
|
|
|
79
85
|
| Feature | Description |
|
|
80
86
|
|---------|-------------|
|
|
81
|
-
|
|
|
82
|
-
|
|
|
83
|
-
|
|
|
84
|
-
|
|
|
85
|
-
|
|
|
87
|
+
| **🔐 Authentication UI** | Configure authentication credentials directly from the web UI Settings page ([#197](https://github.com/RiDDiX/home-assistant-matter-hub/issues/197)) |
|
|
88
|
+
| **🔌 Select Entity Support** | `select` and `input_select` entities now mapped to Matter ModeSelectDevice |
|
|
89
|
+
| **🔗 Webhook Event Bridge** | HAMH fires `hamh_action` events on the HA event bus for controller command automations |
|
|
90
|
+
| **🔍 Cluster Diagnostics** | Expandable per-cluster state inspection on device cards |
|
|
91
|
+
| **⚙ Matter.js 0.16.10** | Updated from 0.16.8 to 0.16.10 for stability and spec compliance |
|
|
92
|
+
| **� Docker Node 22** | Pinned Docker runtime to Node 22 ([#200](https://github.com/RiDDiX/home-assistant-matter-hub/issues/200)) |
|
|
86
93
|
|
|
87
94
|
</details>
|
|
88
95
|
|
|
89
96
|
<details>
|
|
90
97
|
<summary><strong>🧪 Alpha Features (v2.1.0-alpha.x)</strong> - Click to expand</summary>
|
|
91
98
|
|
|
92
|
-
**Alpha is currently in sync with Stable (v2.0.
|
|
99
|
+
**Alpha is currently in sync with Stable (v2.0.27).** All alpha features have been promoted to stable. New alpha features will appear here as development continues.
|
|
93
100
|
|
|
94
101
|
</details>
|
|
95
102
|
|
|
@@ -115,6 +122,9 @@ of port forwarding etc.
|
|
|
115
122
|
<details>
|
|
116
123
|
<summary><strong>📜 Previous Stable Versions</strong> - Click to expand</summary>
|
|
117
124
|
|
|
125
|
+
### v2.0.26
|
|
126
|
+
Authentication UI, Select entity support, Webhook event bridge, Cluster diagnostics, Matter.js 0.16.10, Docker Node 22, vacuum cleaning mode fallback, vacuum entity filter fix
|
|
127
|
+
|
|
118
128
|
### v2.0.25
|
|
119
129
|
Vacuum mop intensity, vacuum auto-detection, Roborock room auto-detect, live entity mapping, dynamic heap sizing, multi-fabric commissioning, fan speed label fix
|
|
120
130
|
|
|
@@ -158,7 +168,8 @@ Matter Bridge, Multi-Fabric support, Health Monitoring, Bridge Wizard, AirQualit
|
|
|
158
168
|
| `lock` | Door Lock | PIN Credentials, Unlatch/Unbolt |
|
|
159
169
|
| `cover` | Window Covering | `coverSwapOpenClose` |
|
|
160
170
|
| `climate` | Thermostat | Battery via `batteryEntity` |
|
|
161
|
-
| `fan` | Fan, Air Purifier | Oscillation, Wind Modes |
|
|
171
|
+
| `fan` | Fan, Air Purifier | Oscillation, Wind Modes, `filterLifeEntity` |
|
|
172
|
+
| `alarm_control_panel` | Mode Select | Arm/Disarm modes |
|
|
162
173
|
| `binary_sensor` | Contact, OnOff, Occupancy, Smoke/CO, Water Leak, Water Freeze | |
|
|
163
174
|
| `sensor` | Temperature, Humidity, Pressure, Flow, Light, AirQuality | `batteryEntity`, `humidityEntity`, `pressureEntity` |
|
|
164
175
|
| `event` | Generic Switch (Doorbell, Button Events) | |
|
|
@@ -166,7 +177,7 @@ Matter Bridge, Multi-Fabric support, Health Monitoring, Bridge Wizard, AirQualit
|
|
|
166
177
|
| `media_player` | Speaker, Basic Video Player (TV) | |
|
|
167
178
|
| `valve` | Water Valve, Pump | |
|
|
168
179
|
| `select`, `input_select` | Mode Select | |
|
|
169
|
-
| `vacuum` | Robot Vacuum Cleaner | `serverMode`, `roomEntities`, `batteryEntity`, `cleaningModeEntity`, `suctionLevelEntity`, `mopIntensityEntity` |
|
|
180
|
+
| `vacuum` | Robot Vacuum Cleaner | `serverMode`, `roomEntities`, `batteryEntity`, `cleaningModeEntity`, `suctionLevelEntity`, `mopIntensityEntity`, `customServiceAreas`, `vacuumMinimalClusters` |
|
|
170
181
|
| `humidifier` | Humidifier/Dehumidifier | |
|
|
171
182
|
| `water_heater` | Thermostat (Heating) | |
|
|
172
183
|
| `automation`, `script`, `scene` | On/Off Switch | |
|
package/dist/backend/cli.js
CHANGED
|
@@ -167512,7 +167512,7 @@ function thermostatPreInitialize(self) {
|
|
|
167512
167512
|
if (self.features.autoMode) {
|
|
167513
167513
|
self.state.minSetpointDeadBand = self.state.minSetpointDeadBand ?? 0;
|
|
167514
167514
|
}
|
|
167515
|
-
self.state.controlSequenceOfOperation = self.features.cooling && self.features.heating ? Thermostat3.ControlSequenceOfOperation.CoolingAndHeating : self.features.
|
|
167515
|
+
self.state.controlSequenceOfOperation = self.features.cooling && self.features.heating && self.features.autoMode ? Thermostat3.ControlSequenceOfOperation.CoolingAndHeating : self.features.heating ? Thermostat3.ControlSequenceOfOperation.HeatingOnly : Thermostat3.ControlSequenceOfOperation.CoolingOnly;
|
|
167516
167516
|
}
|
|
167517
167517
|
async function thermostatPostInitialize(self) {
|
|
167518
167518
|
const homeAssistant = await self.agent.load(HomeAssistantEntityBehavior);
|
|
@@ -168096,7 +168096,22 @@ var config4 = {
|
|
|
168096
168096
|
(m) => m === ClimateHvacMode.heat || m === ClimateHvacMode.heat_cool || m === ClimateHvacMode.auto
|
|
168097
168097
|
);
|
|
168098
168098
|
if (hasCooling && hasHeating) {
|
|
168099
|
-
|
|
168099
|
+
const hasAutoMode = modes.includes(ClimateHvacMode.heat_cool) && (modes.includes(ClimateHvacMode.heat) || modes.includes(ClimateHvacMode.cool));
|
|
168100
|
+
if (hasAutoMode) {
|
|
168101
|
+
return Thermostat3.ControlSequenceOfOperation.CoolingAndHeating;
|
|
168102
|
+
}
|
|
168103
|
+
if (modes.includes(ClimateHvacMode.heat) && modes.includes(ClimateHvacMode.cool)) {
|
|
168104
|
+
return Thermostat3.ControlSequenceOfOperation.CoolingAndHeating;
|
|
168105
|
+
}
|
|
168106
|
+
const hvacMode = entity.state;
|
|
168107
|
+
if (hvacMode === ClimateHvacMode.cool) {
|
|
168108
|
+
return Thermostat3.ControlSequenceOfOperation.CoolingOnly;
|
|
168109
|
+
}
|
|
168110
|
+
if (hvacMode === ClimateHvacMode.heat) {
|
|
168111
|
+
return Thermostat3.ControlSequenceOfOperation.HeatingOnly;
|
|
168112
|
+
}
|
|
168113
|
+
const direction = getHeatCoolOnlyDirection(entity, agent);
|
|
168114
|
+
return direction === "cooling" ? Thermostat3.ControlSequenceOfOperation.CoolingOnly : Thermostat3.ControlSequenceOfOperation.HeatingOnly;
|
|
168100
168115
|
}
|
|
168101
168116
|
if (hasCooling) {
|
|
168102
168117
|
return Thermostat3.ControlSequenceOfOperation.CoolingOnly;
|