@riddix/hamh 2.1.0-alpha.483 → 2.1.0-alpha.485
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/dist/backend/cli.js
CHANGED
|
@@ -166823,6 +166823,25 @@ var EntityStateProvider = class extends Service {
|
|
|
166823
166823
|
}
|
|
166824
166824
|
return value;
|
|
166825
166825
|
}
|
|
166826
|
+
/**
|
|
166827
|
+
* Get battery percentage from a battery entity.
|
|
166828
|
+
* Handles both numeric sensors (e.g. sensor.battery → "25.0" → 25)
|
|
166829
|
+
* and binary sensors (e.g. binary_sensor.battery → off=100%, on=0%).
|
|
166830
|
+
* In HA, binary_sensor with device_class=battery uses on=low battery.
|
|
166831
|
+
*/
|
|
166832
|
+
getBatteryPercent(entityId) {
|
|
166833
|
+
const state = this.getState(entityId);
|
|
166834
|
+
if (!state) {
|
|
166835
|
+
return null;
|
|
166836
|
+
}
|
|
166837
|
+
const numericValue = Number.parseFloat(state.state);
|
|
166838
|
+
if (!Number.isNaN(numericValue)) {
|
|
166839
|
+
return numericValue;
|
|
166840
|
+
}
|
|
166841
|
+
if (state.state === "off") return 100;
|
|
166842
|
+
if (state.state === "on") return 0;
|
|
166843
|
+
return null;
|
|
166844
|
+
}
|
|
166826
166845
|
};
|
|
166827
166846
|
|
|
166828
166847
|
// src/utils/converters/temperature.ts
|
|
@@ -168010,7 +168029,7 @@ var batteryConfig = {
|
|
|
168010
168029
|
const batteryEntity = homeAssistant.state.mapping?.batteryEntity;
|
|
168011
168030
|
if (batteryEntity) {
|
|
168012
168031
|
const stateProvider = agent.env.get(EntityStateProvider);
|
|
168013
|
-
const battery = stateProvider.
|
|
168032
|
+
const battery = stateProvider.getBatteryPercent(batteryEntity);
|
|
168014
168033
|
if (battery != null) return Math.max(0, Math.min(100, battery));
|
|
168015
168034
|
}
|
|
168016
168035
|
return null;
|
|
@@ -168310,7 +168329,7 @@ var batteryConfig2 = {
|
|
|
168310
168329
|
const batteryEntity = homeAssistant.state.mapping?.batteryEntity;
|
|
168311
168330
|
if (batteryEntity) {
|
|
168312
168331
|
const stateProvider = agent.env.get(EntityStateProvider);
|
|
168313
|
-
const battery = stateProvider.
|
|
168332
|
+
const battery = stateProvider.getBatteryPercent(batteryEntity);
|
|
168314
168333
|
if (battery != null) return Math.max(0, Math.min(100, battery));
|
|
168315
168334
|
}
|
|
168316
168335
|
return null;
|
|
@@ -168876,7 +168895,7 @@ var ContactSensorWithBatteryType = ContactSensorDevice.with(
|
|
|
168876
168895
|
const batteryEntity = homeAssistant.state.mapping?.batteryEntity;
|
|
168877
168896
|
if (batteryEntity) {
|
|
168878
168897
|
const stateProvider = agent.env.get(EntityStateProvider);
|
|
168879
|
-
const battery = stateProvider.
|
|
168898
|
+
const battery = stateProvider.getBatteryPercent(batteryEntity);
|
|
168880
168899
|
if (battery != null) {
|
|
168881
168900
|
return Math.max(0, Math.min(100, battery));
|
|
168882
168901
|
}
|
|
@@ -168944,7 +168963,7 @@ var MotionSensorWithBatteryType = OccupancySensorDevice.with(
|
|
|
168944
168963
|
const batteryEntity = homeAssistant.state.mapping?.batteryEntity;
|
|
168945
168964
|
if (batteryEntity) {
|
|
168946
168965
|
const stateProvider = agent.env.get(EntityStateProvider);
|
|
168947
|
-
const battery = stateProvider.
|
|
168966
|
+
const battery = stateProvider.getBatteryPercent(batteryEntity);
|
|
168948
168967
|
if (battery != null) {
|
|
168949
168968
|
return Math.max(0, Math.min(100, battery));
|
|
168950
168969
|
}
|
|
@@ -169012,7 +169031,7 @@ var OccupancySensorWithBatteryType = OccupancySensorDevice.with(
|
|
|
169012
169031
|
const batteryEntity = homeAssistant.state.mapping?.batteryEntity;
|
|
169013
169032
|
if (batteryEntity) {
|
|
169014
169033
|
const stateProvider = agent.env.get(EntityStateProvider);
|
|
169015
|
-
const battery = stateProvider.
|
|
169034
|
+
const battery = stateProvider.getBatteryPercent(batteryEntity);
|
|
169016
169035
|
if (battery != null) {
|
|
169017
169036
|
return Math.max(0, Math.min(100, battery));
|
|
169018
169037
|
}
|
|
@@ -169050,7 +169069,7 @@ var OnOffSensorWithBatteryType = OnOffSensorDevice.with(
|
|
|
169050
169069
|
const batteryEntity = homeAssistant.state.mapping?.batteryEntity;
|
|
169051
169070
|
if (batteryEntity) {
|
|
169052
169071
|
const stateProvider = agent.env.get(EntityStateProvider);
|
|
169053
|
-
const battery = stateProvider.
|
|
169072
|
+
const battery = stateProvider.getBatteryPercent(batteryEntity);
|
|
169054
169073
|
if (battery != null) {
|
|
169055
169074
|
return Math.max(0, Math.min(100, battery));
|
|
169056
169075
|
}
|
|
@@ -169106,7 +169125,7 @@ var AlarmPowerSourceServer = PowerSourceServer2({
|
|
|
169106
169125
|
const batteryEntity = homeAssistant.state.mapping?.batteryEntity;
|
|
169107
169126
|
if (batteryEntity) {
|
|
169108
169127
|
const stateProvider = agent.env.get(EntityStateProvider);
|
|
169109
|
-
const battery = stateProvider.
|
|
169128
|
+
const battery = stateProvider.getBatteryPercent(batteryEntity);
|
|
169110
169129
|
if (battery != null) {
|
|
169111
169130
|
return Math.max(0, Math.min(100, battery));
|
|
169112
169131
|
}
|
|
@@ -170111,7 +170130,7 @@ var ClimatePowerSourceServer = PowerSourceServer2({
|
|
|
170111
170130
|
const batteryEntity = homeAssistant.state.mapping?.batteryEntity;
|
|
170112
170131
|
if (batteryEntity) {
|
|
170113
170132
|
const stateProvider = agent.env.get(EntityStateProvider);
|
|
170114
|
-
const battery = stateProvider.
|
|
170133
|
+
const battery = stateProvider.getBatteryPercent(batteryEntity);
|
|
170115
170134
|
if (battery != null) {
|
|
170116
170135
|
return Math.max(0, Math.min(100, battery));
|
|
170117
170136
|
}
|
|
@@ -170710,7 +170729,7 @@ var CoverPowerSourceServer = PowerSourceServer2({
|
|
|
170710
170729
|
const batteryEntity = homeAssistant.state.mapping?.batteryEntity;
|
|
170711
170730
|
if (batteryEntity) {
|
|
170712
170731
|
const stateProvider = agent.env.get(EntityStateProvider);
|
|
170713
|
-
const battery = stateProvider.
|
|
170732
|
+
const battery = stateProvider.getBatteryPercent(batteryEntity);
|
|
170714
170733
|
if (battery != null) {
|
|
170715
170734
|
return Math.max(0, Math.min(100, battery));
|
|
170716
170735
|
}
|
|
@@ -170884,7 +170903,7 @@ var FanPowerSourceServer = PowerSourceServer2({
|
|
|
170884
170903
|
const batteryEntity = homeAssistant.state.mapping?.batteryEntity;
|
|
170885
170904
|
if (batteryEntity) {
|
|
170886
170905
|
const stateProvider = agent.env.get(EntityStateProvider);
|
|
170887
|
-
const battery = stateProvider.
|
|
170906
|
+
const battery = stateProvider.getBatteryPercent(batteryEntity);
|
|
170888
170907
|
if (battery != null) {
|
|
170889
170908
|
return Math.max(0, Math.min(100, battery));
|
|
170890
170909
|
}
|
|
@@ -171482,7 +171501,7 @@ var LightPowerSourceServer = PowerSourceServer2({
|
|
|
171482
171501
|
const batteryEntity = homeAssistant.state.mapping?.batteryEntity;
|
|
171483
171502
|
if (batteryEntity) {
|
|
171484
171503
|
const stateProvider = agent.env.get(EntityStateProvider);
|
|
171485
|
-
const battery = stateProvider.
|
|
171504
|
+
const battery = stateProvider.getBatteryPercent(batteryEntity);
|
|
171486
171505
|
if (battery != null) {
|
|
171487
171506
|
return Math.max(0, Math.min(100, battery));
|
|
171488
171507
|
}
|
|
@@ -171519,7 +171538,7 @@ var LightPowerSourceServer2 = PowerSourceServer2({
|
|
|
171519
171538
|
const batteryEntity = homeAssistant.state.mapping?.batteryEntity;
|
|
171520
171539
|
if (batteryEntity) {
|
|
171521
171540
|
const stateProvider = agent.env.get(EntityStateProvider);
|
|
171522
|
-
const battery = stateProvider.
|
|
171541
|
+
const battery = stateProvider.getBatteryPercent(batteryEntity);
|
|
171523
171542
|
if (battery != null) {
|
|
171524
171543
|
return Math.max(0, Math.min(100, battery));
|
|
171525
171544
|
}
|
|
@@ -171569,7 +171588,7 @@ var LightPowerSourceServer3 = PowerSourceServer2({
|
|
|
171569
171588
|
const batteryEntity = homeAssistant.state.mapping?.batteryEntity;
|
|
171570
171589
|
if (batteryEntity) {
|
|
171571
171590
|
const stateProvider = agent.env.get(EntityStateProvider);
|
|
171572
|
-
const battery = stateProvider.
|
|
171591
|
+
const battery = stateProvider.getBatteryPercent(batteryEntity);
|
|
171573
171592
|
if (battery != null) {
|
|
171574
171593
|
return Math.max(0, Math.min(100, battery));
|
|
171575
171594
|
}
|
|
@@ -172290,7 +172309,7 @@ var LockPowerSourceServer = PowerSourceServer2({
|
|
|
172290
172309
|
const batteryEntity = homeAssistant.state.mapping?.batteryEntity;
|
|
172291
172310
|
if (batteryEntity) {
|
|
172292
172311
|
const stateProvider = agent.env.get(EntityStateProvider);
|
|
172293
|
-
const battery = stateProvider.
|
|
172312
|
+
const battery = stateProvider.getBatteryPercent(batteryEntity);
|
|
172294
172313
|
if (battery != null) {
|
|
172295
172314
|
return Math.max(0, Math.min(100, battery));
|
|
172296
172315
|
}
|
|
@@ -173981,7 +174000,7 @@ var batteryConfig3 = {
|
|
|
173981
174000
|
const batteryEntity = homeAssistant.state.mapping?.batteryEntity;
|
|
173982
174001
|
if (batteryEntity) {
|
|
173983
174002
|
const stateProvider = agent.env.get(EntityStateProvider);
|
|
173984
|
-
const battery = stateProvider.
|
|
174003
|
+
const battery = stateProvider.getBatteryPercent(batteryEntity);
|
|
173985
174004
|
if (battery != null) {
|
|
173986
174005
|
return Math.max(0, Math.min(100, battery));
|
|
173987
174006
|
}
|
|
@@ -174479,7 +174498,7 @@ var batteryConfig4 = {
|
|
|
174479
174498
|
const batteryEntity = homeAssistant.state.mapping?.batteryEntity;
|
|
174480
174499
|
if (batteryEntity) {
|
|
174481
174500
|
const stateProvider = agent.env.get(EntityStateProvider);
|
|
174482
|
-
const battery = stateProvider.
|
|
174501
|
+
const battery = stateProvider.getBatteryPercent(batteryEntity);
|
|
174483
174502
|
if (battery != null) {
|
|
174484
174503
|
return Math.max(0, Math.min(100, battery));
|
|
174485
174504
|
}
|
|
@@ -174561,7 +174580,7 @@ var batteryConfig5 = {
|
|
|
174561
174580
|
const batteryEntity = homeAssistant.state.mapping?.batteryEntity;
|
|
174562
174581
|
if (batteryEntity) {
|
|
174563
174582
|
const stateProvider = agent.env.get(EntityStateProvider);
|
|
174564
|
-
const battery = stateProvider.
|
|
174583
|
+
const battery = stateProvider.getBatteryPercent(batteryEntity);
|
|
174565
174584
|
if (battery != null) {
|
|
174566
174585
|
return Math.max(0, Math.min(100, battery));
|
|
174567
174586
|
}
|
|
@@ -174706,7 +174725,7 @@ var SwitchWithBatteryEndpointType = OnOffPlugInUnitDevice.with(
|
|
|
174706
174725
|
const batteryEntity = homeAssistant.state.mapping?.batteryEntity;
|
|
174707
174726
|
if (batteryEntity) {
|
|
174708
174727
|
const stateProvider = agent.env.get(EntityStateProvider);
|
|
174709
|
-
const battery = stateProvider.
|
|
174728
|
+
const battery = stateProvider.getBatteryPercent(batteryEntity);
|
|
174710
174729
|
if (battery != null) {
|
|
174711
174730
|
return Math.max(0, Math.min(100, battery));
|
|
174712
174731
|
}
|
|
@@ -175708,7 +175727,7 @@ var VacuumPowerSourceServer = PowerSourceServer2({
|
|
|
175708
175727
|
const batteryEntity = homeAssistant.state.mapping?.batteryEntity;
|
|
175709
175728
|
if (batteryEntity) {
|
|
175710
175729
|
const stateProvider = agent.env.get(EntityStateProvider);
|
|
175711
|
-
const battery = stateProvider.
|
|
175730
|
+
const battery = stateProvider.getBatteryPercent(batteryEntity);
|
|
175712
175731
|
if (battery != null) {
|
|
175713
175732
|
return Math.max(0, Math.min(100, battery));
|
|
175714
175733
|
}
|
|
@@ -177882,9 +177901,9 @@ var BridgeEndpointManager = class extends Service {
|
|
|
177882
177901
|
const endpoints = this.root.parts.map((p) => p);
|
|
177883
177902
|
for (const endpoint of endpoints) {
|
|
177884
177903
|
try {
|
|
177885
|
-
await endpoint.
|
|
177904
|
+
await endpoint.close();
|
|
177886
177905
|
} catch (e) {
|
|
177887
|
-
this.log.warn(`Failed to
|
|
177906
|
+
this.log.warn(`Failed to close endpoint during dispose:`, e);
|
|
177888
177907
|
}
|
|
177889
177908
|
}
|
|
177890
177909
|
}
|
|
@@ -178173,6 +178192,16 @@ var BridgeRegistry = class _BridgeRegistry {
|
|
|
178173
178192
|
return entity.entity_id;
|
|
178174
178193
|
}
|
|
178175
178194
|
}
|
|
178195
|
+
for (const entity of sameDevice) {
|
|
178196
|
+
if (!entity.entity_id.startsWith("binary_sensor.")) continue;
|
|
178197
|
+
const state = this.registry.states[entity.entity_id];
|
|
178198
|
+
if (!state) continue;
|
|
178199
|
+
const attrs = state.attributes;
|
|
178200
|
+
if (attrs.device_class === "battery") {
|
|
178201
|
+
this._batteryEntityCache.set(deviceId, entity.entity_id);
|
|
178202
|
+
return entity.entity_id;
|
|
178203
|
+
}
|
|
178204
|
+
}
|
|
178176
178205
|
this._batteryEntityCache.set(deviceId, null);
|
|
178177
178206
|
return void 0;
|
|
178178
178207
|
}
|
|
@@ -178636,6 +178665,13 @@ var BridgeRegistry = class _BridgeRegistry {
|
|
|
178636
178665
|
if (attrs.device_class === SensorDeviceClass.battery) continue;
|
|
178637
178666
|
}
|
|
178638
178667
|
}
|
|
178668
|
+
if (entity.entity_id.startsWith("binary_sensor.")) {
|
|
178669
|
+
const state = this._states[entity.entity_id];
|
|
178670
|
+
if (state) {
|
|
178671
|
+
const attrs = state.attributes;
|
|
178672
|
+
if (attrs.device_class === "battery") continue;
|
|
178673
|
+
}
|
|
178674
|
+
}
|
|
178639
178675
|
const batteryEntityId = this.findBatteryEntityForDevice(
|
|
178640
178676
|
entity.device_id
|
|
178641
178677
|
);
|
|
@@ -179323,9 +179359,9 @@ var ServerModeEndpointManager = class extends Service {
|
|
|
179323
179359
|
this.stopObserving();
|
|
179324
179360
|
if (this.deviceEndpoint) {
|
|
179325
179361
|
try {
|
|
179326
|
-
await this.deviceEndpoint.
|
|
179362
|
+
await this.deviceEndpoint.close();
|
|
179327
179363
|
} catch (e) {
|
|
179328
|
-
this.log.warn(`Failed to
|
|
179364
|
+
this.log.warn(`Failed to close device endpoint during dispose:`, e);
|
|
179329
179365
|
}
|
|
179330
179366
|
this.deviceEndpoint = void 0;
|
|
179331
179367
|
}
|