homebridge-easy-mqtt 1.3.0-beta.3 → 1.3.0-beta.4
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/CHANGELOG.md +2 -1
- package/README.md +26 -5
- package/config.schema.json +211 -2
- package/dist/accessory/abstract/base.d.ts +0 -1
- package/dist/accessory/abstract/base.js +0 -19
- package/dist/accessory/abstract/base.js.map +1 -1
- package/dist/accessory/abstract/mqtt.d.ts +4 -1
- package/dist/accessory/abstract/mqtt.js +40 -3
- package/dist/accessory/abstract/mqtt.js.map +1 -1
- package/dist/accessory/lock.js +2 -2
- package/dist/accessory/lock.js.map +1 -1
- package/dist/accessory/onoff/lightbulb.js +4 -4
- package/dist/accessory/onoff/onoff.js +2 -2
- package/dist/accessory/security.js +5 -5
- package/dist/accessory/security.js.map +1 -1
- package/dist/accessory/sensor/humidity.js +1 -1
- package/dist/accessory/sensor/humidity.js.map +1 -1
- package/dist/accessory/sensor/temperature.d.ts +0 -1
- package/dist/accessory/sensor/temperature.js +2 -14
- package/dist/accessory/sensor/temperature.js.map +1 -1
- package/dist/accessory/thermostat.d.ts +19 -0
- package/dist/accessory/thermostat.js +116 -0
- package/dist/accessory/thermostat.js.map +1 -0
- package/dist/homebridge/platform.js +4 -0
- package/dist/homebridge/platform.js.map +1 -1
- package/dist/homebridge-ui/public/index.html +1 -1
- package/dist/homebridge-ui/public/ui.js +1 -1
- package/dist/i18n/en.d.ts +62 -28
- package/dist/i18n/en.js +64 -30
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/i18n.d.ts +62 -28
- package/dist/i18n/template.d.ts +62 -28
- package/dist/model/enums.d.ts +10 -2
- package/dist/model/enums.js +8 -0
- package/dist/model/enums.js.map +1 -1
- package/dist/model/types.d.ts +20 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to homebridge-dummy will be documented in this file.
|
|
4
4
|
|
|
5
|
-
## 1.3.0-beta.
|
|
5
|
+
## 1.3.0-beta.4 (2025-09-XX)
|
|
6
6
|
|
|
7
7
|
### HELP NEEDED! (no coding experience required)
|
|
8
8
|
|
|
9
9
|
Would you like to see Homebridge Easy MQTT in your language? Please consider [getting involved](https://github.com/mpatfield/homebridge-easy-mqtt/issues/4).
|
|
10
10
|
|
|
11
11
|
### Added
|
|
12
|
+
- Support for Thermostats
|
|
12
13
|
- Support for CO, CO2, Contact, Humidity, Leak, Motion, Occupancy, and Smoke sensors
|
|
13
14
|
- Support for arbitrary custom characteristics ([documentation](https://github.com/mpatfield/homebridge-easy-mqtt#custom-characteristics))
|
|
14
15
|
- JSONPath support in setter topics ([documentation](https://github.com/mpatfield/homebridge-easy-mqtt#jsonpaths))
|
package/README.md
CHANGED
|
@@ -39,6 +39,7 @@ This plugin is designed to be a simple replacement for the fantastic [homebridge
|
|
|
39
39
|
- `SmokeSensor`
|
|
40
40
|
- `Switch`
|
|
41
41
|
- `TemperatureSensor`
|
|
42
|
+
- `Thermostat`
|
|
42
43
|
|
|
43
44
|
## Configuration
|
|
44
45
|
|
|
@@ -197,14 +198,34 @@ As with topics, you will also need to populate the appropriate values based on t
|
|
|
197
198
|
- `topicSetTargetSecurityState*` — For setting the target state of the system
|
|
198
199
|
- `topicGetStatusFault` — For getting whether there is a system error
|
|
199
200
|
- `topicGetStatusTampered` — For getting whether the system has been tampered with
|
|
200
|
-
- `valueArmStay` -
|
|
201
|
-
- `valueArmAway` -
|
|
202
|
-
- `valueArmNight` -
|
|
203
|
-
- `valueDisarm` -
|
|
204
|
-
- `valueAlarmTriggered` -
|
|
201
|
+
- `valueArmStay` - System armed in stay mode, e.g. "SA" or "stay"
|
|
202
|
+
- `valueArmAway` - System armed in away mode, e.g. "AA" or "away"
|
|
203
|
+
- `valueArmNight` - System armed in night mode, e.g. "NA" or "night"
|
|
204
|
+
- `valueDisarm` - System armed in away mode, e.g. "D" or "disarmed"
|
|
205
|
+
- `valueAlarmTriggered` - When the alarm has been triggered, e.g. "true" or "1" or "triggered"
|
|
205
206
|
- `valueFault` - Accessory has a fault
|
|
206
207
|
- `valueTampered` - Accessory has been tampered with
|
|
207
208
|
|
|
209
|
+
### Thermostat
|
|
210
|
+
- `temperatureUnits` - The temperature units of the incoming value supplied by the thermostat, `C` for Celsius (default) `F` for Fahrenheit
|
|
211
|
+
- `topicGetCurrentHeatingCoolingState*` - Get the current mode (i.e. cooling, heating, off)
|
|
212
|
+
- `topicGetTargetHeatingCoolingState*` - Get the target mode (i.e. auto, cooling, heating, off)
|
|
213
|
+
- `topicSetTargetHeatingCoolingState*` - Set the target mode (i.e. auto, cooling, heating, off)
|
|
214
|
+
- `topicGetCurrentTemperature*` - Get the current temperature
|
|
215
|
+
- `topicGetTargetTemperature*` - Get the target temperature
|
|
216
|
+
- `topicSetTargetTemperature*` - Set the target temperature
|
|
217
|
+
- `topicGetCurrentRelativeHumidity` - Get the current humidity
|
|
218
|
+
- `topicGetTargetRelativeHumidity` - Get the target humidity
|
|
219
|
+
- `topicSetTargetRelativeHumidity` - Set the target humidity
|
|
220
|
+
- `topicGetCoolingThresholdTemperature` - Get the cooling threshold temperature
|
|
221
|
+
- `topicSetCoolingThresholdTemperature` - Set the cooling threshold temparture
|
|
222
|
+
- `topicGetHeatingThresholdTemperature` - Get the heating threshold temperature
|
|
223
|
+
- `topicSetHeatingThresholdTemperature` - Set the heating threshold temperature
|
|
224
|
+
- `valueModeAuto` - Auto mode
|
|
225
|
+
- `valueModeCool` - Cool mode
|
|
226
|
+
- `valueModeHeat` - Heat mode
|
|
227
|
+
- `valueModeOff` - Thermostat off
|
|
228
|
+
|
|
208
229
|
## Logging/Debugging:
|
|
209
230
|
|
|
210
231
|
By default, devices will log activity, for example when a Switch is turned on or a LockMechanism is unlocked.
|
package/config.schema.json
CHANGED
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"type": {
|
|
22
22
|
"type": "string",
|
|
23
23
|
"title": "${config.title.type}",
|
|
24
|
-
"enum": [ "CarbonMonoxideSensor", "CarbonDioxideSensor", "ContactSensor", "HumiditySensor", "LeakSensor", "Lightbulb", "LockMechanism", "MotionSensor", "OccupancySensor", "Outlet", "SecuritySystem", "SmokeSensor", "Switch", "TemperatureSensor"],
|
|
25
|
-
"enumNames": ["${config.enumNames.carbonMonoxideSensor}", "${config.enumNames.carbonDioxideSensor}", "${config.enumNames.contactSensor}", "${config.enumNames.humiditySensor}", "${config.enumNames.leakSensor}", "${config.enumNames.lightbulb}", "${config.enumNames.lockMechanism}", "${config.enumNames.motionSensor}", "${config.enumNames.occupancySensor}", "${config.enumNames.outlet}", "${config.enumNames.securitySystem}", "${config.enumNames.smokeSensor}", "${config.enumNames.switch}", "${config.enumNames.temperatureSensor}"],
|
|
24
|
+
"enum": [ "CarbonMonoxideSensor", "CarbonDioxideSensor", "ContactSensor", "HumiditySensor", "LeakSensor", "Lightbulb", "LockMechanism", "MotionSensor", "OccupancySensor", "Outlet", "SecuritySystem", "SmokeSensor", "Switch", "TemperatureSensor", "Thermostat"],
|
|
25
|
+
"enumNames": ["${config.enumNames.carbonMonoxideSensor}", "${config.enumNames.carbonDioxideSensor}", "${config.enumNames.contactSensor}", "${config.enumNames.humiditySensor}", "${config.enumNames.leakSensor}", "${config.enumNames.lightbulb}", "${config.enumNames.lockMechanism}", "${config.enumNames.motionSensor}", "${config.enumNames.occupancySensor}", "${config.enumNames.outlet}", "${config.enumNames.securitySystem}", "${config.enumNames.smokeSensor}", "${config.enumNames.switch}", "${config.enumNames.temperatureSensor}", "${config.enumNames.thermostat}"],
|
|
26
26
|
"required": true
|
|
27
27
|
},
|
|
28
28
|
"manufacturer": {
|
|
@@ -247,6 +247,50 @@
|
|
|
247
247
|
"type": "string",
|
|
248
248
|
"title": "${config.title.topicGetCurrentTemperature}"
|
|
249
249
|
},
|
|
250
|
+
"topicGetCurrentHeatingCoolingState": {
|
|
251
|
+
"type": "string",
|
|
252
|
+
"title": "${config.title.topicGetCurrentHeatingCoolingState}"
|
|
253
|
+
},
|
|
254
|
+
"topicGetTargetHeatingCoolingState": {
|
|
255
|
+
"type": "string",
|
|
256
|
+
"title": "${config.title.topicGetTargetHeatingCoolingState}"
|
|
257
|
+
},
|
|
258
|
+
"topicSetTargetHeatingCoolingState": {
|
|
259
|
+
"type": "string",
|
|
260
|
+
"title": "${config.title.topicSetTargetHeatingCoolingState}"
|
|
261
|
+
},
|
|
262
|
+
"topicGetTargetTemperature": {
|
|
263
|
+
"type": "string",
|
|
264
|
+
"title": "${config.title.topicGetTargetTemperature}"
|
|
265
|
+
},
|
|
266
|
+
"topicSetTargetTemperature": {
|
|
267
|
+
"type": "string",
|
|
268
|
+
"title": "${config.title.topicSetTargetTemperature}"
|
|
269
|
+
},
|
|
270
|
+
"topicGetTargetRelativeHumidity": {
|
|
271
|
+
"type": "string",
|
|
272
|
+
"title": "${config.title.topicGetTargetRelativeHumidity}"
|
|
273
|
+
},
|
|
274
|
+
"topicSetTargetRelativeHumidity": {
|
|
275
|
+
"type": "string",
|
|
276
|
+
"title": "${config.title.topicSetTargetRelativeHumidity}"
|
|
277
|
+
},
|
|
278
|
+
"topicGetCoolingThresholdTemperature": {
|
|
279
|
+
"type": "string",
|
|
280
|
+
"title": "${config.title.topicGetCoolingThresholdTemperature}"
|
|
281
|
+
},
|
|
282
|
+
"topicSetCoolingThresholdTemperature": {
|
|
283
|
+
"type": "string",
|
|
284
|
+
"title": "${config.title.topicSetCoolingThresholdTemperature}"
|
|
285
|
+
},
|
|
286
|
+
"topicGetHeatingThresholdTemperature": {
|
|
287
|
+
"type": "string",
|
|
288
|
+
"title": "${config.title.topicGetHeatingThresholdTemperature}"
|
|
289
|
+
},
|
|
290
|
+
"topicSetHeatingThresholdTemperature": {
|
|
291
|
+
"type": "string",
|
|
292
|
+
"title": "${config.title.topicSetHeatingThresholdTemperature}"
|
|
293
|
+
},
|
|
250
294
|
"valueBatteryLow": {
|
|
251
295
|
"type": "string",
|
|
252
296
|
"title": "${config.title.valueBatteryLow}"
|
|
@@ -335,6 +379,22 @@
|
|
|
335
379
|
"type": "string",
|
|
336
380
|
"title": "${config.title.valueSmokeDetected}"
|
|
337
381
|
},
|
|
382
|
+
"valueModeAuto": {
|
|
383
|
+
"type": "string",
|
|
384
|
+
"title": "${config.title.valueModeAuto}"
|
|
385
|
+
},
|
|
386
|
+
"valueModeCool": {
|
|
387
|
+
"type": "string",
|
|
388
|
+
"title": "${config.title.valueModeCool}"
|
|
389
|
+
},
|
|
390
|
+
"valueModeHeat": {
|
|
391
|
+
"type": "string",
|
|
392
|
+
"title": "${config.title.valueModeHeat}"
|
|
393
|
+
},
|
|
394
|
+
"valueModeOff": {
|
|
395
|
+
"type": "string",
|
|
396
|
+
"title": "${config.title.valueModeOff}"
|
|
397
|
+
},
|
|
338
398
|
"disableLogging": {
|
|
339
399
|
"type": "boolean",
|
|
340
400
|
"title": "${config.title.disableLogging}"
|
|
@@ -768,6 +828,129 @@
|
|
|
768
828
|
}
|
|
769
829
|
]
|
|
770
830
|
},
|
|
831
|
+
{
|
|
832
|
+
"type": "fieldset",
|
|
833
|
+
"notitle": true,
|
|
834
|
+
"condition": {
|
|
835
|
+
"functionBody": "return model.accessories?.[arguments[1]]?.info?.type === 'Thermostat';"
|
|
836
|
+
},
|
|
837
|
+
"items": [
|
|
838
|
+
{
|
|
839
|
+
"type": "div",
|
|
840
|
+
"displayFlex": true,
|
|
841
|
+
"flex-direction": "row",
|
|
842
|
+
"items": [
|
|
843
|
+
{
|
|
844
|
+
"key": "accessories[].topicGetCurrentHeatingCoolingState",
|
|
845
|
+
"flex": "0 0 50%"
|
|
846
|
+
}
|
|
847
|
+
]
|
|
848
|
+
},
|
|
849
|
+
{
|
|
850
|
+
"type": "div",
|
|
851
|
+
"displayFlex": true,
|
|
852
|
+
"flex-direction": "row",
|
|
853
|
+
"items": [
|
|
854
|
+
{
|
|
855
|
+
"key": "accessories[].topicGetTargetHeatingCoolingState",
|
|
856
|
+
"flex": "0 0 50%"
|
|
857
|
+
},
|
|
858
|
+
{
|
|
859
|
+
"key": "accessories[].topicSetTargetHeatingCoolingState",
|
|
860
|
+
"flex": "0 0 50%"
|
|
861
|
+
}
|
|
862
|
+
]
|
|
863
|
+
},
|
|
864
|
+
{
|
|
865
|
+
"type": "div",
|
|
866
|
+
"displayFlex": true,
|
|
867
|
+
"flex-direction": "row",
|
|
868
|
+
"items": [
|
|
869
|
+
{
|
|
870
|
+
"key": "accessories[].topicGetCurrentTemperature",
|
|
871
|
+
"flex": "0 0 50%"
|
|
872
|
+
},
|
|
873
|
+
{
|
|
874
|
+
"key": "accessories[].temperatureUnits",
|
|
875
|
+
"title": "${config.title.sourceUnits}",
|
|
876
|
+
"flex": "0 0 33%"
|
|
877
|
+
}
|
|
878
|
+
]
|
|
879
|
+
},
|
|
880
|
+
{
|
|
881
|
+
"type": "div",
|
|
882
|
+
"displayFlex": true,
|
|
883
|
+
"flex-direction": "row",
|
|
884
|
+
"items": [
|
|
885
|
+
{
|
|
886
|
+
"key": "accessories[].topicGetTargetTemperature",
|
|
887
|
+
"flex": "0 0 50%"
|
|
888
|
+
},
|
|
889
|
+
{
|
|
890
|
+
"key": "accessories[].topicSetTargetTemperature",
|
|
891
|
+
"flex": "0 0 50%"
|
|
892
|
+
}
|
|
893
|
+
]
|
|
894
|
+
},
|
|
895
|
+
{
|
|
896
|
+
"type": "div",
|
|
897
|
+
"displayFlex": true,
|
|
898
|
+
"flex-direction": "row",
|
|
899
|
+
"items": [
|
|
900
|
+
{
|
|
901
|
+
"key": "accessories[].topicGetCurrentRelativeHumidity",
|
|
902
|
+
"title": "${config.title.topicGetCurrentRelativeHumidityOptional}",
|
|
903
|
+
"flex": "0 0 50%"
|
|
904
|
+
}
|
|
905
|
+
]
|
|
906
|
+
},
|
|
907
|
+
{
|
|
908
|
+
"type": "div",
|
|
909
|
+
"displayFlex": true,
|
|
910
|
+
"flex-direction": "row",
|
|
911
|
+
"items": [
|
|
912
|
+
{
|
|
913
|
+
"key": "accessories[].topicGetTargetRelativeHumidity",
|
|
914
|
+
"flex": "0 0 50%"
|
|
915
|
+
},
|
|
916
|
+
{
|
|
917
|
+
"key": "accessories[].topicSetTargetRelativeHumidity",
|
|
918
|
+
"flex": "0 0 50%"
|
|
919
|
+
}
|
|
920
|
+
]
|
|
921
|
+
},
|
|
922
|
+
{
|
|
923
|
+
"type": "div",
|
|
924
|
+
"displayFlex": true,
|
|
925
|
+
"flex-direction": "row",
|
|
926
|
+
"items": [
|
|
927
|
+
{
|
|
928
|
+
"key": "accessories[].topicGetCoolingThresholdTemperature",
|
|
929
|
+
"flex": "0 0 50%"
|
|
930
|
+
},
|
|
931
|
+
{
|
|
932
|
+
"key": "accessories[].topicSetCoolingThresholdTemperature",
|
|
933
|
+
"flex": "0 0 50%"
|
|
934
|
+
}
|
|
935
|
+
]
|
|
936
|
+
},
|
|
937
|
+
{
|
|
938
|
+
"type": "div",
|
|
939
|
+
"displayFlex": true,
|
|
940
|
+
"flex-direction": "row",
|
|
941
|
+
"items": [
|
|
942
|
+
{
|
|
943
|
+
"key": "accessories[].topicGetHeatingThresholdTemperature",
|
|
944
|
+
"flex": "0 0 50%"
|
|
945
|
+
},
|
|
946
|
+
{
|
|
947
|
+
"key": "accessories[].topicSetHeatingThresholdTemperature",
|
|
948
|
+
"flex": "0 0 50%"
|
|
949
|
+
}
|
|
950
|
+
]
|
|
951
|
+
}
|
|
952
|
+
]
|
|
953
|
+
},
|
|
771
954
|
{
|
|
772
955
|
"type": "div",
|
|
773
956
|
"displayFlex": true,
|
|
@@ -926,6 +1109,32 @@
|
|
|
926
1109
|
}
|
|
927
1110
|
]
|
|
928
1111
|
},
|
|
1112
|
+
{
|
|
1113
|
+
"type": "div",
|
|
1114
|
+
"displayFlex": true,
|
|
1115
|
+
"flex-direction": "row",
|
|
1116
|
+
"condition": {
|
|
1117
|
+
"functionBody": "return model.accessories?.[arguments[1]]?.info?.type === 'Thermostat';"
|
|
1118
|
+
},
|
|
1119
|
+
"items": [
|
|
1120
|
+
{
|
|
1121
|
+
"key": "accessories[].valueModeAuto",
|
|
1122
|
+
"flex": "0 0 25%"
|
|
1123
|
+
},
|
|
1124
|
+
{
|
|
1125
|
+
"key": "accessories[].valueModeCool",
|
|
1126
|
+
"flex": "0 0 25%"
|
|
1127
|
+
},
|
|
1128
|
+
{
|
|
1129
|
+
"key": "accessories[].valueModeHeat",
|
|
1130
|
+
"flex": "0 0 25%"
|
|
1131
|
+
},
|
|
1132
|
+
{
|
|
1133
|
+
"key": "accessories[].valueModeOff",
|
|
1134
|
+
"flex": "0 0 25%"
|
|
1135
|
+
}
|
|
1136
|
+
]
|
|
1137
|
+
},
|
|
929
1138
|
{
|
|
930
1139
|
"type": "div",
|
|
931
1140
|
"displayFlex": true,
|
|
@@ -4,7 +4,6 @@ import { CharacteristicType, BaseAccessoryConfig, ServiceType } from '../../mode
|
|
|
4
4
|
import { Log } from '../../tools/log.js';
|
|
5
5
|
export declare abstract class BaseAccessory<C extends BaseAccessoryConfig = BaseAccessoryConfig> extends MQTTAccessory<C> {
|
|
6
6
|
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: C, log: Log);
|
|
7
|
-
private handleCustomCharacteristics;
|
|
8
7
|
private onBatteryLowUpdate;
|
|
9
8
|
private onStatusActiveUpdate;
|
|
10
9
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { MQTTAccessory } from './mqtt.js';
|
|
2
|
-
import { CustomCharacteristic } from './customCharacteristic.js';
|
|
3
2
|
import { PLATFORM_NAME } from '../../homebridge/settings.js';
|
|
4
3
|
import { strings } from '../../i18n/i18n.js';
|
|
5
4
|
import { CharacteristicKey } from '../../model/enums.js';
|
|
@@ -18,24 +17,6 @@ export class BaseAccessory extends MQTTAccessory {
|
|
|
18
17
|
this.setupCharacteristic(CharacteristicKey.BatteryLevel, 100, 'topicGetBatteryLevel', this.bindOnUpdateNumeric(CharacteristicKey.BatteryLevel, strings.accessory.batteryLevel), false);
|
|
19
18
|
this.setupCharacteristic(CharacteristicKey.StatusLowBattery, false, 'topicGetBatteryLow', this.onBatteryLowUpdate.bind(this), false);
|
|
20
19
|
this.setupCharacteristic(CharacteristicKey.StatusActive, true, 'topicGetStatusActive', this.onStatusActiveUpdate.bind(this), false);
|
|
21
|
-
this.handleCustomCharacteristics();
|
|
22
|
-
}
|
|
23
|
-
handleCustomCharacteristics() {
|
|
24
|
-
const keepUUIDs = new Set(Object.values(CharacteristicKey).map((key) => this.Characteristic[key].UUID));
|
|
25
|
-
const toRemove = this.accessoryService.characteristics.filter((characteristic) => !keepUUIDs.has(characteristic.UUID));
|
|
26
|
-
for (const characteristic of toRemove) {
|
|
27
|
-
characteristic.updateValue(null);
|
|
28
|
-
this.accessoryService.removeCharacteristic(characteristic);
|
|
29
|
-
}
|
|
30
|
-
if (!this.config.customCharacteristics) {
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
for (const config of this.config.customCharacteristics) {
|
|
34
|
-
const customChar = CustomCharacteristic.create(this.accessoryService, this.Characteristic, config, this.name, this.log, this.config.disableLogging);
|
|
35
|
-
if (customChar !== undefined) {
|
|
36
|
-
this.addTopicHandler(customChar.topic, customChar.onUpdateHandler);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
20
|
}
|
|
40
21
|
async onBatteryLowUpdate(topic, value) {
|
|
41
22
|
const batteryLow = value === this.getPrimitiveValue('valueBatteryLow');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/accessory/abstract/base.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/accessory/abstract/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Characteristic, CharacteristicSetHandler, CharacteristicValue, PlatformAccessory, PrimitiveTypes, Service } from 'homebridge';
|
|
2
2
|
import { CharacteristicKey } from '../../model/enums.js';
|
|
3
|
-
import { CharacteristicType, MQTTAccessoryConfig, ServiceType } from '../../model/types.js';
|
|
3
|
+
import { CharacteristicType, MQTTAccessoryConfig, ServiceType, TemperatureConfig } from '../../model/types.js';
|
|
4
4
|
import { Log, LogType } from '../../tools/log.js';
|
|
5
5
|
type OnUpdateHandler = (topic: string, value: PrimitiveTypes) => (Promise<void>);
|
|
6
6
|
export declare abstract class MQTTAccessory<C extends MQTTAccessoryConfig> {
|
|
@@ -16,15 +16,18 @@ export declare abstract class MQTTAccessory<C extends MQTTAccessoryConfig> {
|
|
|
16
16
|
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: C, log: Log);
|
|
17
17
|
protected abstract getAccessoryService(): Service;
|
|
18
18
|
protected get name(): string;
|
|
19
|
+
private setupCustomCharacteristics;
|
|
19
20
|
protected setupCharacteristic(characteristicKey: CharacteristicKey, defaultValue: CharacteristicValue, getTopicKey: keyof C, onUpdateHandler: OnUpdateHandler, assertGetTopic: boolean, setTopicKey?: keyof C | undefined, onSetHandler?: CharacteristicSetHandler | undefined): Characteristic | undefined;
|
|
20
21
|
protected bindOnUpdateNumeric(charKey: CharacteristicKey, logTemplate: string): OnUpdateHandler;
|
|
21
22
|
protected bindOnUpdateNumericBoolean(charKey: CharacteristicKey, valueKey: keyof C, logTrue: string, logFalse: string): OnUpdateHandler;
|
|
23
|
+
protected bindTemperatureUpdate<C extends TemperatureConfig>(config: C, charKey: CharacteristicKey, logTemplate: string): OnUpdateHandler;
|
|
22
24
|
protected addTopicHandler(topic: string, handler: (topic: string, value: PrimitiveTypes) => Promise<void>): void;
|
|
23
25
|
protected getRawValue(property: keyof C, assert?: boolean): string | undefined;
|
|
24
26
|
protected getPrimitiveValue(property: keyof C, assert?: boolean): PrimitiveTypes | undefined;
|
|
25
27
|
protected publish(topic: string, value: PrimitiveTypes): void;
|
|
26
28
|
teardown(): void;
|
|
27
29
|
protected assert(...keys: (keyof C)[]): boolean;
|
|
30
|
+
protected setCharacteristicValue(key: CharacteristicKey, value: CharacteristicValue): void;
|
|
28
31
|
protected onUpdate(key: CharacteristicKey, value: CharacteristicValue, logString?: string | undefined): boolean;
|
|
29
32
|
protected onSet(key: CharacteristicKey, value: CharacteristicValue, publish: PrimitiveTypes, topic: keyof C, logString: string | undefined): void;
|
|
30
33
|
protected logIfDesired(message: string, ...parameters: string[]): void;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { CustomCharacteristic } from './customCharacteristic.js';
|
|
1
2
|
import { strings } from '../../i18n/i18n.js';
|
|
2
|
-
import { AccessoryType } from '../../model/enums.js';
|
|
3
|
+
import { AccessoryType, CharacteristicKey, TemperatureUnits } from '../../model/enums.js';
|
|
3
4
|
import { MQTT } from '../../model/mqtt.js';
|
|
4
5
|
import { LogType } from '../../tools/log.js';
|
|
5
|
-
import { toPrimitive } from '../../tools/primitive.js';
|
|
6
|
+
import { toNumber, toPrimitive } from '../../tools/primitive.js';
|
|
7
|
+
import { toCelsius } from '../../tools/temperature.js';
|
|
6
8
|
import { assert } from '../../tools/validation.js';
|
|
7
9
|
export class MQTTAccessory {
|
|
8
10
|
Service;
|
|
@@ -36,10 +38,28 @@ export class MQTTAccessory {
|
|
|
36
38
|
accessory.removeService(existingService);
|
|
37
39
|
}
|
|
38
40
|
}
|
|
41
|
+
this.setupCustomCharacteristics();
|
|
39
42
|
}
|
|
40
43
|
get name() {
|
|
41
44
|
return this.config.info.name;
|
|
42
45
|
}
|
|
46
|
+
setupCustomCharacteristics() {
|
|
47
|
+
const keepUUIDs = new Set(Object.values(CharacteristicKey).map((key) => this.Characteristic[key].UUID));
|
|
48
|
+
const toRemove = this.accessoryService.characteristics.filter((characteristic) => !keepUUIDs.has(characteristic.UUID));
|
|
49
|
+
for (const characteristic of toRemove) {
|
|
50
|
+
characteristic.updateValue(null);
|
|
51
|
+
this.accessoryService.removeCharacteristic(characteristic);
|
|
52
|
+
}
|
|
53
|
+
if (!this.config.customCharacteristics) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
for (const config of this.config.customCharacteristics) {
|
|
57
|
+
const customChar = CustomCharacteristic.create(this.accessoryService, this.Characteristic, config, this.name, this.log, this.config.disableLogging);
|
|
58
|
+
if (customChar !== undefined) {
|
|
59
|
+
this.addTopicHandler(customChar.topic, customChar.onUpdateHandler);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
43
63
|
setupCharacteristic(characteristicKey, defaultValue, getTopicKey, onUpdateHandler, assertGetTopic, setTopicKey = undefined, onSetHandler = undefined) {
|
|
44
64
|
if (!getTopicKey.toString().startsWith('topic')) {
|
|
45
65
|
throw new Error(`Trying to fetch topic with unexpected property name '${getTopicKey.toString()}'`);
|
|
@@ -76,7 +96,7 @@ export class MQTTAccessory {
|
|
|
76
96
|
bindOnUpdateNumeric(charKey, logTemplate) {
|
|
77
97
|
return (async (_topic, value) => {
|
|
78
98
|
if (typeof value !== 'number') {
|
|
79
|
-
this.log.error(strings.
|
|
99
|
+
this.log.error(strings.characteristic.badValue, this.name, charKey, `'${value.toString()}'`);
|
|
80
100
|
return;
|
|
81
101
|
}
|
|
82
102
|
const logString = logTemplate.replace('%d', value.toString());
|
|
@@ -89,6 +109,18 @@ export class MQTTAccessory {
|
|
|
89
109
|
this.onUpdate(charKey, numeric, numeric ? logTrue : logFalse);
|
|
90
110
|
}).bind(this);
|
|
91
111
|
}
|
|
112
|
+
bindTemperatureUpdate(config, charKey, logTemplate) {
|
|
113
|
+
return (async (_topic, value) => {
|
|
114
|
+
if (typeof value !== 'number') {
|
|
115
|
+
this.log.error(strings.climate.badTemperatureValue, this.name, `'${value}'`);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
const units = config.temperatureUnits ?? TemperatureUnits.CELSIUS;
|
|
119
|
+
const temperature = toCelsius(toNumber(value), units);
|
|
120
|
+
const logString = logTemplate.replace('%d°%s', `${value}°${units}`);
|
|
121
|
+
this.onUpdate(charKey, temperature, logString);
|
|
122
|
+
}).bind(this);
|
|
123
|
+
}
|
|
92
124
|
addTopicHandler(topic, handler) {
|
|
93
125
|
this.topicHandlers.push({ topic: topic, handler: handler });
|
|
94
126
|
}
|
|
@@ -114,6 +146,11 @@ export class MQTTAccessory {
|
|
|
114
146
|
assert(...keys) {
|
|
115
147
|
return assert(this.log, this.name, this.config, ...keys);
|
|
116
148
|
}
|
|
149
|
+
setCharacteristicValue(key, value) {
|
|
150
|
+
this.accessoryService.getCharacteristic(this.Characteristic[key]).onGet(() => {
|
|
151
|
+
return value;
|
|
152
|
+
});
|
|
153
|
+
}
|
|
117
154
|
onUpdate(key, value, logString = undefined) {
|
|
118
155
|
if (value === this.properties.get(key)) {
|
|
119
156
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mqtt.js","sourceRoot":"","sources":["../../../src/accessory/abstract/mqtt.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"mqtt.js","sourceRoot":"","sources":["../../../src/accessory/abstract/mqtt.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAG3C,OAAO,EAAO,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAKnD,MAAM,OAAgB,aAAa;IAWZ;IACA;IACA;IACA;IACA;IAbJ,UAAU,CAAmB;IAE7B,UAAU,GAAG,IAAI,GAAG,EAA+B,CAAC;IAEpD,aAAa,GAAmB,EAAE,CAAC;IAEjC,gBAAgB,CAAU;IAE7C,YACqB,OAAoB,EACpB,cAAkC,EAClC,SAA4B,EAC5B,MAAS,EACT,GAAQ;QAJR,YAAO,GAAP,OAAO,CAAa;QACpB,mBAAc,GAAd,cAAc,CAAoB;QAClC,cAAS,GAAT,SAAS,CAAmB;QAC5B,WAAM,GAAN,MAAM,CAAG;QACT,QAAG,GAAH,GAAG,CAAK;QAG3B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAE9B,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;gBAChD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAE,YAAY,CAAC,EAAE;oBACzC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;gBACvE,CAAC,CAAC,CAAC;YACL,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAEnD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YAChD,MAAM,eAAe,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5D,IAAI,eAAe,IAAI,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACjD,SAAS,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,IAAI,CAAC,0BAA0B,EAAE,CAAC;IACpC,CAAC;IAID,IAAc,IAAI;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;IAC/B,CAAC;IAEO,0BAA0B;QAEhC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACzG,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,MAAM,CAAE,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAExH,KAAK,MAAM,cAAc,IAAI,QAAQ,EAAE,CAAC;YACtC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YACvC,OAAO;QACT,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YACvD,MAAM,UAAU,GAAG,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YACpJ,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC;IAES,mBAAmB,CAC3B,iBAAoC,EAAE,YAAiC,EACvE,WAAoB,EAAE,eAAgC,EAAE,cAAuB,EAC/E,cAAmC,SAAS,EAAE,eAAqD,SAAS;QAG5G,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,wDAAwD,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACrG,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE,CAAC;YAC3C,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC;gBACnE,IAAI,cAAc,CAAC,IAAI,KAAK,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,CAAC;oBACxE,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;oBAC3D,MAAM;gBACR,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACvG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;QAErD,cAAc,CAAC,KAAK,CAAE,KAAK,IAA4C,EAAE;YACvE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAW,EAAE,eAAe,CAAC,CAAC;QAE1E,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAE9B,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChD,MAAM,IAAI,KAAK,CAAC,wDAAwD,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACrG,CAAC;YAED,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,mCAAmC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAChF,CAAC;YAED,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAES,mBAAmB,CAAC,OAA0B,EAAE,WAAmB;QAC3E,OAAO,CAAC,KAAK,EAAE,MAAc,EAAE,KAAqB,EAAE,EAAE;YAEtD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;gBAC7F,OAAO;YACT,CAAC;YAED,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAE3C,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAES,0BAA0B,CAAC,OAA0B,EAAE,QAAiB,EAAE,OAAe,EAAE,QAAgB;QACnH,OAAO,CAAC,KAAK,EAAE,MAAc,EAAE,KAAqB,EAAE,EAAE;YACtD,MAAM,OAAO,GAAG,KAAK,KAAK,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAES,qBAAqB,CAA8B,MAAS,EAAE,OAA0B,EAAE,WAAmB;QACrH,OAAO,CAAC,KAAK,EAAE,MAAc,EAAE,KAAqB,EAAE,EAAE;YAEtD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;gBAC7E,OAAO;YACT,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,OAAO,CAAC;YAClE,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;YAEtD,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;YACpE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAEjD,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAES,eAAe,CAAC,KAAa,EAAE,OAAgE;QACvG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAe,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACxE,CAAC;IAES,WAAW,CAAC,QAAiB,EAAE,SAAkB,IAAI;QAE7D,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,wDAAwD,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAClG,CAAC;QAED,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAuB,CAAC;IACrD,CAAC;IAES,iBAAiB,CAAC,QAAiB,EAAE,SAAkB,IAAI;QACnE,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACvD,OAAO,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5D,CAAC;IAES,OAAO,CAAC,KAAa,EAAE,KAAqB;QACpD,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAEM,QAAQ;QACb,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAC;IAC9B,CAAC;IAES,MAAM,CAAC,GAAG,IAAiB;QACnC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3D,CAAC;IAES,sBAAsB,CAAC,GAAsB,EAAE,KAA0B;QACjF,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAE,GAAG,EAAE;YAC5E,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAES,QAAQ,CAAC,GAAsB,EAAE,KAA0B,EAAE,YAAgC,SAAS;QAE9G,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAEhC,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QAE5E,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAES,KAAK,CAAC,GAAsB,EAAE,KAA0B,EAAE,OAAuB,EAAE,KAAc,EAAE,SAA6B;QAExI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,IAAI,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAEhC,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QAE5E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAW,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAIS,YAAY,CAAC,cAAgC,EAAE,GAAG,IAAc;QAExE,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QAED,MAAM,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC;QACtC,QAAO,cAAc,EAAE,CAAC;YACxB,KAAK,OAAO,CAAC,OAAO;gBAClB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,CAAC;gBACpD,MAAM;YACR,KAAK,OAAO,CAAC,KAAK;gBAChB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,CAAC;gBAClD,MAAM;YACR;gBACE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,CAAC;gBACnD,MAAM;QACR,CAAC;IACH,CAAC;CACF"}
|
package/dist/accessory/lock.js
CHANGED
|
@@ -95,9 +95,9 @@ export class LockMechanismAccessory extends BaseAccessory {
|
|
|
95
95
|
stringForState(state, future = false) {
|
|
96
96
|
switch (state) {
|
|
97
97
|
case this.Characteristic.LockCurrentState.SECURED:
|
|
98
|
-
return future ? strings.lock.
|
|
98
|
+
return future ? strings.lock.stateSecuredFuture : strings.lock.stateSecured;
|
|
99
99
|
case this.Characteristic.LockCurrentState.UNSECURED:
|
|
100
|
-
return future ? strings.lock.
|
|
100
|
+
return future ? strings.lock.stateUnsecuredFuture : strings.lock.stateUnsecured;
|
|
101
101
|
case this.Characteristic.LockCurrentState.JAMMED:
|
|
102
102
|
return strings.lock.stateJammed;
|
|
103
103
|
default:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/accessory/lock.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/accessory/lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,10 @@ import { CharacteristicKey } from '../../model/enums.js';
|
|
|
4
4
|
export class LightbulbAccessory extends OnOffAccessory {
|
|
5
5
|
constructor(Service, Characteristic, accessory, config, log) {
|
|
6
6
|
super(Service, Characteristic, accessory, config, log);
|
|
7
|
-
this.setupCharacteristic(CharacteristicKey.Brightness, 100, 'topicGetBrightness', this.bindOnUpdateNumeric(CharacteristicKey.Brightness, strings.lightbulb.brightness), false, 'topicSetBrightness', this.onSetValue(CharacteristicKey.Brightness, 'topicSetBrightness', strings.lightbulb.
|
|
8
|
-
this.setupCharacteristic(CharacteristicKey.ColorTemperature, 500, 'topicGetColorTemperature', this.bindOnUpdateNumeric(CharacteristicKey.ColorTemperature, strings.lightbulb.colorTemperature), false, 'topicSetColorTemperature', this.onSetValue(CharacteristicKey.ColorTemperature, 'topicSetColorTemperature', strings.lightbulb.
|
|
9
|
-
this.setupCharacteristic(CharacteristicKey.Hue, 0, 'topicGetHue', this.bindOnUpdateNumeric(CharacteristicKey.Hue, strings.lightbulb.hue), false, 'topicSetHue', this.onSetValue(CharacteristicKey.Hue, 'topicSetHue', strings.lightbulb.
|
|
10
|
-
this.setupCharacteristic(CharacteristicKey.Saturation, 100, 'topicGetSaturation', this.bindOnUpdateNumeric(CharacteristicKey.Saturation, strings.lightbulb.saturation), false, 'topicSetSaturation', this.onSetValue(CharacteristicKey.Saturation, 'topicSetSaturation', strings.lightbulb.
|
|
7
|
+
this.setupCharacteristic(CharacteristicKey.Brightness, 100, 'topicGetBrightness', this.bindOnUpdateNumeric(CharacteristicKey.Brightness, strings.lightbulb.brightness), false, 'topicSetBrightness', this.onSetValue(CharacteristicKey.Brightness, 'topicSetBrightness', strings.lightbulb.brightnessFuture));
|
|
8
|
+
this.setupCharacteristic(CharacteristicKey.ColorTemperature, 500, 'topicGetColorTemperature', this.bindOnUpdateNumeric(CharacteristicKey.ColorTemperature, strings.lightbulb.colorTemperature), false, 'topicSetColorTemperature', this.onSetValue(CharacteristicKey.ColorTemperature, 'topicSetColorTemperature', strings.lightbulb.colorTemperatureFuture));
|
|
9
|
+
this.setupCharacteristic(CharacteristicKey.Hue, 0, 'topicGetHue', this.bindOnUpdateNumeric(CharacteristicKey.Hue, strings.lightbulb.hue), false, 'topicSetHue', this.onSetValue(CharacteristicKey.Hue, 'topicSetHue', strings.lightbulb.hueFuture));
|
|
10
|
+
this.setupCharacteristic(CharacteristicKey.Saturation, 100, 'topicGetSaturation', this.bindOnUpdateNumeric(CharacteristicKey.Saturation, strings.lightbulb.saturation), false, 'topicSetSaturation', this.onSetValue(CharacteristicKey.Saturation, 'topicSetSaturation', strings.lightbulb.saturationFuture));
|
|
11
11
|
}
|
|
12
12
|
getAccessoryService() {
|
|
13
13
|
return this.accessory.getService(this.Service.Lightbulb) || this.accessory.addService(this.Service.Lightbulb);
|
|
@@ -36,10 +36,10 @@ export class OnOffAccessory extends BaseAccessory {
|
|
|
36
36
|
}
|
|
37
37
|
stringForState(on, future = false) {
|
|
38
38
|
if (on) {
|
|
39
|
-
return future ? strings.onOff.
|
|
39
|
+
return future ? strings.onOff.stateOnFuture : strings.onOff.stateOn;
|
|
40
40
|
}
|
|
41
41
|
else {
|
|
42
|
-
return future ? strings.onOff.
|
|
42
|
+
return future ? strings.onOff.stateOffFuture : strings.onOff.stateOff;
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
}
|
|
@@ -89,15 +89,15 @@ export class SecuritySystemAccessory extends BaseAccessory {
|
|
|
89
89
|
stateStringForCV(state, future = false) {
|
|
90
90
|
switch (state) {
|
|
91
91
|
case this.Characteristic.SecuritySystemCurrentState.STAY_ARM:
|
|
92
|
-
return future ? strings.security.
|
|
92
|
+
return future ? strings.security.stateStayFuture : strings.security.stateStay;
|
|
93
93
|
case this.Characteristic.SecuritySystemCurrentState.AWAY_ARM:
|
|
94
|
-
return future ? strings.security.
|
|
94
|
+
return future ? strings.security.stateAwayFuture : strings.security.stateAway;
|
|
95
95
|
case this.Characteristic.SecuritySystemCurrentState.NIGHT_ARM:
|
|
96
|
-
return future ? strings.security.
|
|
96
|
+
return future ? strings.security.stateNightFuture : strings.security.stateNight;
|
|
97
97
|
case this.Characteristic.SecuritySystemCurrentState.DISARMED:
|
|
98
|
-
return future ? strings.security.
|
|
98
|
+
return future ? strings.security.stateDisarmFuture : strings.security.stateDisarmed;
|
|
99
99
|
case this.Characteristic.SecuritySystemCurrentState.ALARM_TRIGGERED:
|
|
100
|
-
return strings.security.
|
|
100
|
+
return strings.security.stateTriggered;
|
|
101
101
|
default:
|
|
102
102
|
return strings.security.stateUnknown;
|
|
103
103
|
}
|