@riddix/hamh 2.1.0-alpha.438 → 2.1.0-alpha.440
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.30 | 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,36 +52,30 @@ 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.30)</strong> - Click to expand</summary>
|
|
56
56
|
|
|
57
|
-
**New in v2.0.
|
|
57
|
+
**New in v2.0.30:**
|
|
58
58
|
|
|
59
59
|
| Feature | Description |
|
|
60
60
|
|---------|-------------|
|
|
61
|
-
|
|
|
62
|
-
| **🖥️
|
|
63
|
-
| **🌀 Fan Device Feature Fix** | Correct FanDeviceFeature TURN_ON/TURN_OFF enum values to match Home Assistant |
|
|
64
|
-
| **🌡️ Humidity Auto-Mapping Fix** | Correct autoHumidityMapping schema default to match runtime behavior |
|
|
61
|
+
| **� Mapped Entity Propagation Fix** | Propagate mapped entity changes (battery, humidity, etc.) to Matter endpoints — fixes stale sensor readings |
|
|
62
|
+
| **🖥️ API Error Surfacing** | Surface API errors instead of silently swallowing them ([#232](https://github.com/RiDDiX/home-assistant-matter-hub/issues/232)) |
|
|
65
63
|
|
|
66
|
-
**Previously in v2.0.
|
|
64
|
+
**Previously in v2.0.29:**
|
|
67
65
|
|
|
68
66
|
| Feature | Description |
|
|
69
67
|
|---------|-------------|
|
|
70
|
-
|
|
|
71
|
-
|
|
|
72
|
-
|
|
|
73
|
-
|
|
|
74
|
-
| **🌀 On/Off-Only Fans** | Fans without speed control correctly use OnOffPlugInUnit ([#229](https://github.com/RiDDiX/home-assistant-matter-hub/issues/229)) |
|
|
75
|
-
| **💡 Light Brightness Fix** | Prevent brightness reset on turn-on by setting onLevel to null ([#225](https://github.com/RiDDiX/home-assistant-matter-hub/issues/225)) |
|
|
76
|
-
| **🌀 Fan Speed Fixes** | speedMax cap raised from 10 to 100 (Matter spec max), retain speed when off ([#225](https://github.com/RiDDiX/home-assistant-matter-hub/issues/225)) |
|
|
77
|
-
| **🌡️ Composed Air Purifier Fix** | Flatten to single endpoint for correct Apple Home primary tile ([#218](https://github.com/RiDDiX/home-assistant-matter-hub/issues/218)) |
|
|
68
|
+
| **� Light currentLevel Fix** | Retain light currentLevel when off to prevent Apple Home 100% brightness on turn-on ([#225](https://github.com/RiDDiX/home-assistant-matter-hub/issues/225)) |
|
|
69
|
+
| **�️ Bridge Config Save Fix** | Decouple save button from RJSF schema validation errors ([#232](https://github.com/RiDDiX/home-assistant-matter-hub/issues/232)) |
|
|
70
|
+
| **🌀 Fan Device Feature Fix** | Correct FanDeviceFeature TURN_ON/TURN_OFF enum values to match Home Assistant |
|
|
71
|
+
| **🌡️ Humidity Auto-Mapping Fix** | Correct autoHumidityMapping schema default to match runtime behavior |
|
|
78
72
|
|
|
79
73
|
</details>
|
|
80
74
|
|
|
81
75
|
<details>
|
|
82
76
|
<summary><strong>🧪 Alpha Features (v2.1.0-alpha.x)</strong> - Click to expand</summary>
|
|
83
77
|
|
|
84
|
-
**Alpha is currently in sync with Stable (v2.0.
|
|
78
|
+
**Alpha is currently in sync with Stable (v2.0.30).** All alpha features have been promoted to stable. New alpha features will appear here as development continues.
|
|
85
79
|
|
|
86
80
|
</details>
|
|
87
81
|
|
|
@@ -107,6 +101,9 @@ of port forwarding etc.
|
|
|
107
101
|
<details>
|
|
108
102
|
<summary><strong>📜 Previous Stable Versions</strong> - Click to expand</summary>
|
|
109
103
|
|
|
104
|
+
### v2.0.29
|
|
105
|
+
Light currentLevel Fix, Bridge Config Save Fix, Fan Device Feature Fix, Humidity Auto-Mapping Fix
|
|
106
|
+
|
|
110
107
|
### v2.0.28
|
|
111
108
|
Device Image Support, Custom Fan Speed Mapping, TV Source Selection, Reverse Proxy Base Path, On/Off-Only Fans, Light Brightness Fix, Fan Speed Fixes, Composed Air Purifier Fix, Dreame Multi-Floor Fix, Optimistic State Updates, Frontend Improvements
|
|
112
109
|
|
package/dist/backend/cli.js
CHANGED
|
@@ -165933,12 +165933,8 @@ var FanControlServerBase = class extends FeaturedBase3 {
|
|
|
165933
165933
|
return;
|
|
165934
165934
|
}
|
|
165935
165935
|
this.agent.asLocalActor(() => {
|
|
165936
|
-
const
|
|
165937
|
-
this.
|
|
165938
|
-
percentSetting,
|
|
165939
|
-
this.state.percentSetting,
|
|
165940
|
-
context
|
|
165941
|
-
);
|
|
165936
|
+
const percentage = Math.floor(speed / this.state.speedMax * 100);
|
|
165937
|
+
this.applyPercentageAction(percentage);
|
|
165942
165938
|
});
|
|
165943
165939
|
}
|
|
165944
165940
|
targetFanModeChanged(fanMode, _oldValue, context) {
|
|
@@ -165951,16 +165947,12 @@ var FanControlServerBase = class extends FeaturedBase3 {
|
|
|
165951
165947
|
return;
|
|
165952
165948
|
}
|
|
165953
165949
|
const targetFanMode = FanMode.create(fanMode, this.state.fanModeSequence);
|
|
165954
|
-
const config10 = this.state.config;
|
|
165955
165950
|
if (targetFanMode.mode === FanControl3.FanMode.Auto) {
|
|
165956
|
-
homeAssistant.callAction(
|
|
165957
|
-
|
|
165958
|
-
const percentage = targetFanMode.speedPercent();
|
|
165959
|
-
this.targetPercentSettingChanged(
|
|
165960
|
-
percentage,
|
|
165961
|
-
this.state.percentSetting,
|
|
165962
|
-
context
|
|
165951
|
+
homeAssistant.callAction(
|
|
165952
|
+
this.state.config.setAutoMode(void 0, this.agent)
|
|
165963
165953
|
);
|
|
165954
|
+
} else {
|
|
165955
|
+
this.applyPercentageAction(targetFanMode.speedPercent());
|
|
165964
165956
|
}
|
|
165965
165957
|
});
|
|
165966
165958
|
}
|
|
@@ -165972,45 +165964,48 @@ var FanControlServerBase = class extends FeaturedBase3 {
|
|
|
165972
165964
|
return;
|
|
165973
165965
|
}
|
|
165974
165966
|
this.agent.asLocalActor(() => {
|
|
165975
|
-
|
|
165976
|
-
|
|
165977
|
-
|
|
165978
|
-
|
|
165979
|
-
|
|
165980
|
-
|
|
165967
|
+
this.applyPercentageAction(percentage);
|
|
165968
|
+
});
|
|
165969
|
+
}
|
|
165970
|
+
applyPercentageAction(percentage) {
|
|
165971
|
+
const homeAssistant = this.agent.get(HomeAssistantEntityBehavior);
|
|
165972
|
+
if (!homeAssistant.isAvailable) {
|
|
165973
|
+
return;
|
|
165974
|
+
}
|
|
165975
|
+
const config10 = this.state.config;
|
|
165976
|
+
const supportsPercentage = config10.supportsPercentage(
|
|
165977
|
+
homeAssistant.entity.state,
|
|
165978
|
+
this.agent
|
|
165979
|
+
);
|
|
165980
|
+
if (percentage === 0) {
|
|
165981
|
+
homeAssistant.callAction(config10.turnOff(void 0, this.agent));
|
|
165982
|
+
} else if (supportsPercentage) {
|
|
165983
|
+
const stepSize = config10.getStepSize(
|
|
165981
165984
|
homeAssistant.entity.state,
|
|
165982
165985
|
this.agent
|
|
165983
165986
|
);
|
|
165984
|
-
|
|
165985
|
-
|
|
165986
|
-
|
|
165987
|
-
|
|
165988
|
-
|
|
165989
|
-
|
|
165990
|
-
|
|
165991
|
-
|
|
165992
|
-
|
|
165993
|
-
|
|
165994
|
-
|
|
165987
|
+
const roundedPercentage = stepSize && stepSize > 0 ? Math.round(percentage / stepSize) * stepSize : percentage;
|
|
165988
|
+
const clampedPercentage = Math.max(
|
|
165989
|
+
stepSize ?? 1,
|
|
165990
|
+
Math.min(100, roundedPercentage)
|
|
165991
|
+
);
|
|
165992
|
+
homeAssistant.callAction(config10.turnOn(clampedPercentage, this.agent));
|
|
165993
|
+
} else {
|
|
165994
|
+
const presetModes = config10.getPresetModes(homeAssistant.entity.state, this.agent) ?? [];
|
|
165995
|
+
const speedPresets = presetModes.filter(
|
|
165996
|
+
(m) => m.toLowerCase() !== "auto"
|
|
165997
|
+
);
|
|
165998
|
+
if (speedPresets.length > 0) {
|
|
165999
|
+
const presetIndex = Math.min(
|
|
166000
|
+
Math.floor(percentage / 100 * speedPresets.length),
|
|
166001
|
+
speedPresets.length - 1
|
|
165995
166002
|
);
|
|
165996
|
-
|
|
165997
|
-
|
|
165998
|
-
|
|
165999
|
-
const speedPresets = presetModes.filter(
|
|
166000
|
-
(m) => m.toLowerCase() !== "auto"
|
|
166003
|
+
const targetPreset = speedPresets[presetIndex];
|
|
166004
|
+
homeAssistant.callAction(
|
|
166005
|
+
config10.setPresetMode(targetPreset, this.agent)
|
|
166001
166006
|
);
|
|
166002
|
-
if (speedPresets.length > 0) {
|
|
166003
|
-
const presetIndex = Math.min(
|
|
166004
|
-
Math.floor(percentage / 100 * speedPresets.length),
|
|
166005
|
-
speedPresets.length - 1
|
|
166006
|
-
);
|
|
166007
|
-
const targetPreset = speedPresets[presetIndex];
|
|
166008
|
-
homeAssistant.callAction(
|
|
166009
|
-
config10.setPresetMode(targetPreset, this.agent)
|
|
166010
|
-
);
|
|
166011
|
-
}
|
|
166012
166007
|
}
|
|
166013
|
-
}
|
|
166008
|
+
}
|
|
166014
166009
|
}
|
|
166015
166010
|
targetAirflowDirectionChanged(airflowDirection, _oldValue, context) {
|
|
166016
166011
|
if (transactionIsOffline(context)) {
|