homebridge-easy-mqtt 1.3.0-beta.2 → 1.3.0-beta.3

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.
Files changed (50) hide show
  1. package/CHANGELOG.md +2 -1
  2. package/README.md +137 -106
  3. package/config.schema.json +370 -6
  4. package/dist/accessory/security.js +2 -2
  5. package/dist/accessory/security.js.map +1 -1
  6. package/dist/accessory/sensor/carbonDioxide.d.ts +8 -0
  7. package/dist/accessory/sensor/carbonDioxide.js +15 -0
  8. package/dist/accessory/sensor/carbonDioxide.js.map +1 -0
  9. package/dist/accessory/sensor/carbonMonoxide.d.ts +8 -0
  10. package/dist/accessory/sensor/carbonMonoxide.js +15 -0
  11. package/dist/accessory/sensor/carbonMonoxide.js.map +1 -0
  12. package/dist/accessory/sensor/contact.d.ts +9 -0
  13. package/dist/accessory/sensor/contact.js +17 -0
  14. package/dist/accessory/sensor/contact.js.map +1 -0
  15. package/dist/accessory/sensor/humidity.d.ts +8 -0
  16. package/dist/accessory/sensor/humidity.js +13 -0
  17. package/dist/accessory/sensor/humidity.js.map +1 -0
  18. package/dist/accessory/sensor/leak.d.ts +8 -0
  19. package/dist/accessory/sensor/leak.js +13 -0
  20. package/dist/accessory/sensor/leak.js.map +1 -0
  21. package/dist/accessory/sensor/motion.d.ts +8 -0
  22. package/dist/accessory/sensor/motion.js +13 -0
  23. package/dist/accessory/sensor/motion.js.map +1 -0
  24. package/dist/accessory/sensor/occupancy.d.ts +8 -0
  25. package/dist/accessory/sensor/occupancy.js +13 -0
  26. package/dist/accessory/sensor/occupancy.js.map +1 -0
  27. package/dist/accessory/sensor/sensor.d.ts +9 -0
  28. package/dist/accessory/sensor/sensor.js +36 -0
  29. package/dist/accessory/sensor/sensor.js.map +1 -0
  30. package/dist/accessory/sensor/smoke.d.ts +8 -0
  31. package/dist/accessory/sensor/smoke.js +13 -0
  32. package/dist/accessory/sensor/smoke.js.map +1 -0
  33. package/dist/accessory/{temperatureSensor.d.ts → sensor/temperature.d.ts} +4 -4
  34. package/dist/accessory/{temperatureSensor.js → sensor/temperature.js} +9 -9
  35. package/dist/accessory/sensor/temperature.js.map +1 -0
  36. package/dist/homebridge/platform.js +33 -1
  37. package/dist/homebridge/platform.js.map +1 -1
  38. package/dist/homebridge-ui/public/index.html +1 -1
  39. package/dist/homebridge-ui/public/ui.js +1 -1
  40. package/dist/i18n/en.d.ts +74 -8
  41. package/dist/i18n/en.js +137 -71
  42. package/dist/i18n/en.js.map +1 -1
  43. package/dist/i18n/i18n.d.ts +74 -8
  44. package/dist/i18n/template.d.ts +74 -8
  45. package/dist/model/enums.d.ts +20 -0
  46. package/dist/model/enums.js +20 -0
  47. package/dist/model/enums.js.map +1 -1
  48. package/dist/model/types.d.ts +69 -30
  49. package/package.json +1 -1
  50. package/dist/accessory/temperatureSensor.js.map +0 -1
@@ -21,8 +21,8 @@
21
21
  "type": {
22
22
  "type": "string",
23
23
  "title": "${config.title.type}",
24
- "enum": [ "Lightbulb", "LockMechanism", "Outlet", "SecuritySystem", "Switch", "TemperatureSensor"],
25
- "enumNames": ["${config.enumNames.lightbulb}", "${config.enumNames.lockMechanism}", "${config.enumNames.outlet}", "${config.enumNames.securitySystem}", "${config.enumNames.switch}", "${config.enumNames.temperatureSensor}"],
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}"],
26
26
  "required": true
27
27
  },
28
28
  "manufacturer": {
@@ -175,10 +175,6 @@
175
175
  "type": "string",
176
176
  "title": "${config.title.topicGetOutletInUse}"
177
177
  },
178
- "topicGetCurrentTemperature": {
179
- "type": "string",
180
- "title": "${config.title.topicGetCurrentTemperature}"
181
- },
182
178
  "topicGetCurrentSecurityState": {
183
179
  "type": "string",
184
180
  "title": "${config.title.topicGetCurrentSecurityState}"
@@ -199,6 +195,58 @@
199
195
  "type": "string",
200
196
  "title": "${config.title.topicGetStatusFault}"
201
197
  },
198
+ "topicGetCarbonMonoxideDetected": {
199
+ "type": "string",
200
+ "title": "${config.title.topicGetCarbonMonoxideDetected}"
201
+ },
202
+ "topicGetCarbonMonoxideLevel": {
203
+ "type": "string",
204
+ "title": "${config.title.topicGetCarbonMonoxideLevel}"
205
+ },
206
+ "topicGetCarbonMonoxidePeakLevel": {
207
+ "type": "string",
208
+ "title": "${config.title.topicGetCarbonMonoxidePeakLevel}"
209
+ },
210
+ "topicGetCarbonDioxideDetected": {
211
+ "type": "string",
212
+ "title": "${config.title.topicGetCarbonDioxideDetected}"
213
+ },
214
+ "topicGetCarbonDioxideLevel": {
215
+ "type": "string",
216
+ "title": "${config.title.topicGetCarbonDioxideLevel}"
217
+ },
218
+ "topicGetCarbonDioxidePeakLevel": {
219
+ "type": "string",
220
+ "title": "${config.title.topicGetCarbonDioxidePeakLevel}"
221
+ },
222
+ "topicGetContactSensorState": {
223
+ "type": "string",
224
+ "title": "${config.title.topicGetContactSensorState}"
225
+ },
226
+ "topicGetCurrentRelativeHumidity": {
227
+ "type": "string",
228
+ "title": "${config.title.topicGetCurrentRelativeHumidity}"
229
+ },
230
+ "topicGetLeakDetected": {
231
+ "type": "string",
232
+ "title": "${config.title.topicGetLeakDetected}"
233
+ },
234
+ "topicGetMotionDetected": {
235
+ "type": "string",
236
+ "title": "${config.title.topicGetMotionDetected}"
237
+ },
238
+ "topicGetOccupancyDetected": {
239
+ "type": "string",
240
+ "title": "${config.title.topicGetOccupancyDetected}"
241
+ },
242
+ "topicGetSmokeDetected": {
243
+ "type": "string",
244
+ "title": "${config.title.topicGetSmokeDetected}"
245
+ },
246
+ "topicGetCurrentTemperature": {
247
+ "type": "string",
248
+ "title": "${config.title.topicGetCurrentTemperature}"
249
+ },
202
250
  "valueBatteryLow": {
203
251
  "type": "string",
204
252
  "title": "${config.title.valueBatteryLow}"
@@ -259,6 +307,34 @@
259
307
  "type": "string",
260
308
  "title": "${config.title.valueFault}"
261
309
  },
310
+ "valueCarbonMonoxideDetected": {
311
+ "type": "string",
312
+ "title": "${config.title.valueCarbonMonoxideDetected}"
313
+ },
314
+ "valueCarbonDioxideDetected": {
315
+ "type": "string",
316
+ "title": "${config.title.valueCarbonDioxideDetected}"
317
+ },
318
+ "valueContactDetected": {
319
+ "type": "string",
320
+ "title": "${config.title.valueContactDetected}"
321
+ },
322
+ "valueLeakDetected": {
323
+ "type": "string",
324
+ "title": "${config.title.valueLeakDetected}"
325
+ },
326
+ "valueMotionDetected": {
327
+ "type": "string",
328
+ "title": "${config.title.valueMotionDetected}"
329
+ },
330
+ "valueOccupancyDetected": {
331
+ "type": "string",
332
+ "title": "${config.title.valueOccupancyDetected}"
333
+ },
334
+ "valueSmokeDetected": {
335
+ "type": "string",
336
+ "title": "${config.title.valueSmokeDetected}"
337
+ },
262
338
  "disableLogging": {
263
339
  "type": "boolean",
264
340
  "title": "${config.title.disableLogging}"
@@ -519,6 +595,160 @@
519
595
  }
520
596
  ]
521
597
  },
598
+ {
599
+ "type": "fieldset",
600
+ "notitle": true,
601
+ "condition": {
602
+ "functionBody": "return model.accessories?.[arguments[1]]?.info?.type === 'CarbonDioxideSensor';"
603
+ },
604
+ "items": [
605
+ {
606
+ "type": "div",
607
+ "displayFlex": true,
608
+ "flex-direction": "row",
609
+ "items": [
610
+ {
611
+ "key": "accessories[].topicGetCarbonDioxideDetected",
612
+ "flex": "0 0 50%"
613
+ }
614
+ ]
615
+ },
616
+ {
617
+ "type": "div",
618
+ "displayFlex": true,
619
+ "flex-direction": "row",
620
+ "items": [
621
+ {
622
+ "key": "accessories[].topicGetCarbonDioxideLevel",
623
+ "flex": "0 0 50%"
624
+ },
625
+ {
626
+ "key": "accessories[].topicGetCarbonDioxidePeakLevel",
627
+ "flex": "0 0 50%"
628
+ }
629
+ ]
630
+ }
631
+ ]
632
+ },
633
+ {
634
+ "type": "fieldset",
635
+ "notitle": true,
636
+ "condition": {
637
+ "functionBody": "return model.accessories?.[arguments[1]]?.info?.type === 'CarbonMonoxideSensor';"
638
+ },
639
+ "items": [
640
+ {
641
+ "type": "div",
642
+ "displayFlex": true,
643
+ "flex-direction": "row",
644
+ "items": [
645
+ {
646
+ "key": "accessories[].topicGetCarbonMonoxideDetected",
647
+ "flex": "0 0 50%"
648
+ }
649
+ ]
650
+ },
651
+ {
652
+ "type": "div",
653
+ "displayFlex": true,
654
+ "flex-direction": "row",
655
+ "items": [
656
+ {
657
+ "key": "accessories[].topicGetCarbonMonoxideLevel",
658
+ "flex": "0 0 50%"
659
+ },
660
+ {
661
+ "key": "accessories[].topicGetCarbonMonoxidePeakLevel",
662
+ "flex": "0 0 50%"
663
+ }
664
+ ]
665
+ }
666
+ ]
667
+ },
668
+ {
669
+ "type": "div",
670
+ "displayFlex": true,
671
+ "flex-direction": "row",
672
+ "condition": {
673
+ "functionBody": "return model.accessories?.[arguments[1]]?.info?.type === 'ContactSensor';"
674
+ },
675
+ "items": [
676
+ {
677
+ "key": "accessories[].topicGetContactSensorState",
678
+ "flex": "0 0 50%"
679
+ }
680
+ ]
681
+ },
682
+ {
683
+ "type": "div",
684
+ "displayFlex": true,
685
+ "flex-direction": "row",
686
+ "condition": {
687
+ "functionBody": "return model.accessories?.[arguments[1]]?.info?.type === 'HumiditySensor';"
688
+ },
689
+ "items": [
690
+ {
691
+ "key": "accessories[].topicGetCurrentRelativeHumidity",
692
+ "flex": "0 0 50%"
693
+ }
694
+ ]
695
+ },
696
+ {
697
+ "type": "div",
698
+ "displayFlex": true,
699
+ "flex-direction": "row",
700
+ "condition": {
701
+ "functionBody": "return model.accessories?.[arguments[1]]?.info?.type === 'LeakSensor';"
702
+ },
703
+ "items": [
704
+ {
705
+ "key": "accessories[].topicGetLeakDetected",
706
+ "flex": "0 0 50%"
707
+ }
708
+ ]
709
+ },
710
+ {
711
+ "type": "div",
712
+ "displayFlex": true,
713
+ "flex-direction": "row",
714
+ "condition": {
715
+ "functionBody": "return model.accessories?.[arguments[1]]?.info?.type === 'MotionSensor';"
716
+ },
717
+ "items": [
718
+ {
719
+ "key": "accessories[].topicGetMotionDetected",
720
+ "flex": "0 0 50%"
721
+ }
722
+ ]
723
+ },
724
+ {
725
+ "type": "div",
726
+ "displayFlex": true,
727
+ "flex-direction": "row",
728
+ "condition": {
729
+ "functionBody": "return model.accessories?.[arguments[1]]?.info?.type === 'OccupancySensor';"
730
+ },
731
+ "items": [
732
+ {
733
+ "key": "accessories[].topicGetOccupancyDetected",
734
+ "flex": "0 0 50%"
735
+ }
736
+ ]
737
+ },
738
+ {
739
+ "type": "div",
740
+ "displayFlex": true,
741
+ "flex-direction": "row",
742
+ "condition": {
743
+ "functionBody": "return model.accessories?.[arguments[1]]?.info?.type === 'SmokeSensor';"
744
+ },
745
+ "items": [
746
+ {
747
+ "key": "accessories[].topicGetSmokeDetected",
748
+ "flex": "0 0 50%"
749
+ }
750
+ ]
751
+ },
522
752
  {
523
753
  "type": "div",
524
754
  "displayFlex": true,
@@ -538,6 +768,24 @@
538
768
  }
539
769
  ]
540
770
  },
771
+ {
772
+ "type": "div",
773
+ "displayFlex": true,
774
+ "flex-direction": "row",
775
+ "condition": {
776
+ "functionBody": "const type = model.accessories?.[arguments[1]]?.info?.type; return type !== undefined && type.endsWith('Sensor');"
777
+ },
778
+ "items": [
779
+ {
780
+ "key": "accessories[].topicGetStatusFault",
781
+ "flex": "0 0 50%"
782
+ },
783
+ {
784
+ "key": "accessories[].topicGetStatusTampered",
785
+ "flex": "0 0 50%"
786
+ }
787
+ ]
788
+ },
541
789
  {
542
790
  "type": "div",
543
791
  "displayFlex": true,
@@ -678,6 +926,122 @@
678
926
  }
679
927
  ]
680
928
  },
929
+ {
930
+ "type": "div",
931
+ "displayFlex": true,
932
+ "flex-direction": "row",
933
+ "condition": {
934
+ "functionBody": "return model.accessories?.[arguments[1]]?.info?.type === 'CarbonDioxideSensor';"
935
+ },
936
+ "items": [
937
+ {
938
+ "key": "accessories[].valueCarbonDioxideDetected",
939
+ "flex": "0 0 25%"
940
+ }
941
+ ]
942
+ },
943
+ {
944
+ "type": "div",
945
+ "displayFlex": true,
946
+ "flex-direction": "row",
947
+ "condition": {
948
+ "functionBody": "return model.accessories?.[arguments[1]]?.info?.type === 'CarbonMonoxideSensor';"
949
+ },
950
+ "items": [
951
+ {
952
+ "key": "accessories[].valueCarbonMonoxideDetected",
953
+ "flex": "0 0 25%"
954
+ }
955
+ ]
956
+ },
957
+ {
958
+ "type": "div",
959
+ "displayFlex": true,
960
+ "flex-direction": "row",
961
+ "condition": {
962
+ "functionBody": "return model.accessories?.[arguments[1]]?.info?.type === 'ContactSensor';"
963
+ },
964
+ "items": [
965
+ {
966
+ "key": "accessories[].valueContactDetected",
967
+ "flex": "0 0 25%"
968
+ }
969
+ ]
970
+ },
971
+ {
972
+ "type": "div",
973
+ "displayFlex": true,
974
+ "flex-direction": "row",
975
+ "condition": {
976
+ "functionBody": "return model.accessories?.[arguments[1]]?.info?.type === 'LeakSensor';"
977
+ },
978
+ "items": [
979
+ {
980
+ "key": "accessories[].valueLeakDetected",
981
+ "flex": "0 0 25%"
982
+ }
983
+ ]
984
+ },
985
+ {
986
+ "type": "div",
987
+ "displayFlex": true,
988
+ "flex-direction": "row",
989
+ "condition": {
990
+ "functionBody": "return model.accessories?.[arguments[1]]?.info?.type === 'MotionSensor';"
991
+ },
992
+ "items": [
993
+ {
994
+ "key": "accessories[].valueMotionDetected",
995
+ "flex": "0 0 25%"
996
+ }
997
+ ]
998
+ },
999
+ {
1000
+ "type": "div",
1001
+ "displayFlex": true,
1002
+ "flex-direction": "row",
1003
+ "condition": {
1004
+ "functionBody": "return model.accessories?.[arguments[1]]?.info?.type === 'OccupancySensor';"
1005
+ },
1006
+ "items": [
1007
+ {
1008
+ "key": "accessories[].valueOccupancyDetected",
1009
+ "flex": "0 0 25%"
1010
+ }
1011
+ ]
1012
+ },
1013
+ {
1014
+ "type": "div",
1015
+ "displayFlex": true,
1016
+ "flex-direction": "row",
1017
+ "condition": {
1018
+ "functionBody": "return model.accessories?.[arguments[1]]?.info?.type === 'SmokeSensor';"
1019
+ },
1020
+ "items": [
1021
+ {
1022
+ "key": "accessories[].valueSmokeDetected",
1023
+ "flex": "0 0 25%"
1024
+ }
1025
+ ]
1026
+ },
1027
+ {
1028
+ "type": "div",
1029
+ "displayFlex": true,
1030
+ "flex-direction": "row",
1031
+ "condition": {
1032
+ "functionBody": "const type = model.accessories?.[arguments[1]]?.info?.type; return type !== undefined && type.endsWith('Sensor');"
1033
+ },
1034
+ "items": [
1035
+ {
1036
+ "key": "accessories[].valueFault",
1037
+ "flex": "0 0 25%"
1038
+ },
1039
+ {
1040
+ "key": "accessories[].valueTampered",
1041
+ "flex": "0 0 25%"
1042
+ }
1043
+ ]
1044
+ },
681
1045
  {
682
1046
  "type": "div",
683
1047
  "displayFlex": true,
@@ -21,8 +21,8 @@ export class SecuritySystemAccessory extends BaseAccessory {
21
21
  this.setupCharacteristic(CharacteristicKey.SecuritySystemCurrentState, Characteristic.SecuritySystemCurrentState.DISARMED, 'topicGetCurrentSecurityState', this.onCurrentStateUpdate.bind(this), true)?.setProps({ validValues: validCurrentStates.map((key) => this.STATE_MAP.get(key)) });
22
22
  const validTargetStates = validCurrentStates.filter((key) => key !== 'valueAlarmTriggered');
23
23
  this.setupCharacteristic(CharacteristicKey.SecuritySystemTargetState, Characteristic.SecuritySystemTargetState.DISARM, 'topicGetTargetSecurityState', this.onTargetStateUpdate.bind(this), true, 'topicSetTargetSecurityState', this.onSetTargetState.bind(this))?.setProps({ validValues: validTargetStates.map((key) => this.STATE_MAP.get(key)) });
24
- this.setupCharacteristic(CharacteristicKey.StatusTampered, 0, 'topicGetStatusTampered', this.bindOnUpdateNumericBoolean(CharacteristicKey.StatusTampered, 'valueTampered', strings.security.isTampered, strings.security.notTampered), false);
25
- this.setupCharacteristic(CharacteristicKey.StatusFault, 0, 'topicGetStatusFault', this.bindOnUpdateNumericBoolean(CharacteristicKey.StatusFault, 'valueFault', strings.security.hasFault, strings.security.noFault), false);
24
+ this.setupCharacteristic(CharacteristicKey.StatusTampered, 0, 'topicGetStatusTampered', this.bindOnUpdateNumericBoolean(CharacteristicKey.StatusTampered, 'valueTampered', strings.error.isTampered, strings.error.notTampered), false);
25
+ this.setupCharacteristic(CharacteristicKey.StatusFault, 0, 'topicGetStatusFault', this.bindOnUpdateNumericBoolean(CharacteristicKey.StatusFault, 'valueFault', strings.error.hasFault, strings.error.noFault), false);
26
26
  }
27
27
  getAccessoryService() {
28
28
  return this.accessory.getService(this.Service.SecuritySystem) || this.accessory.addService(this.Service.SecuritySystem);
@@ -1 +1 @@
1
- {"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/accessory/security.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/accessory/security.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { PlatformAccessory, Service } from 'homebridge';
2
+ import { SensorAccessory } from './sensor.js';
3
+ import { CharacteristicType, CO2SensorConfig, ServiceType } from '../../model/types.js';
4
+ import { Log } from '../../tools/log.js';
5
+ export declare class CO2SensorAccessory extends SensorAccessory<CO2SensorConfig> {
6
+ constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: CO2SensorConfig, log: Log);
7
+ protected getAccessoryService(): Service;
8
+ }
@@ -0,0 +1,15 @@
1
+ import { SensorAccessory } from './sensor.js';
2
+ import { strings } from '../../i18n/i18n.js';
3
+ import { CharacteristicKey } from '../../model/enums.js';
4
+ export class CO2SensorAccessory extends SensorAccessory {
5
+ constructor(Service, Characteristic, accessory, config, log) {
6
+ super(Service, Characteristic, accessory, config, log);
7
+ this.setupCharacteristic(CharacteristicKey.CarbonDioxideDetected, 0, 'topicGetCarbonDioxideDetected', this.bindOnUpdateNumericBoolean(CharacteristicKey.CarbonDioxideDetected, 'valueCarbonDioxideDetected', strings.sensor.carbonDioxide.active, strings.sensor.carbonDioxide.inactive), true);
8
+ this.setupCharacteristic(CharacteristicKey.CarbonDioxideLevel, 0, 'topicGetCarbonDioxideLevel', this.bindOnUpdateNumeric(CharacteristicKey.CarbonDioxideLevel, strings.sensor.carbonDioxide.level), false);
9
+ this.setupCharacteristic(CharacteristicKey.CarbonDioxidePeakLevel, 0, 'topicGetCarbonDioxidePeakLevel', this.bindOnUpdateNumeric(CharacteristicKey.CarbonDioxidePeakLevel, strings.sensor.carbonDioxide.peakLevel), false);
10
+ }
11
+ getAccessoryService() {
12
+ return this.accessory.getService(this.Service.CarbonDioxideSensor) || this.accessory.addService(this.Service.CarbonDioxideSensor);
13
+ }
14
+ }
15
+ //# sourceMappingURL=carbonDioxide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carbonDioxide.js","sourceRoot":"","sources":["../../../src/accessory/sensor/carbonDioxide.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKzD,MAAM,OAAO,kBAAmB,SAAQ,eAAgC;IAEtE,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAuB,EAAE,GAAQ;QACnI,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAEvD,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,CAAC,EAAE,+BAA+B,EAClG,IAAI,CAAC,0BAA0B,CAC7B,iBAAiB,CAAC,qBAAqB,EACvC,4BAA4B,EAC5B,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,EAC7E,IAAI,CAAC,CAAC;QAER,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,EAC9D,4BAA4B,EAAE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAE3I,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,CAAC,EAClE,gCAAgC,EAAE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;IACzJ,CAAC;IAES,mBAAmB;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACpI,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import { PlatformAccessory, Service } from 'homebridge';
2
+ import { SensorAccessory } from './sensor.js';
3
+ import { CharacteristicType, COSensorConfig, ServiceType } from '../../model/types.js';
4
+ import { Log } from '../../tools/log.js';
5
+ export declare class COSensorAccessory extends SensorAccessory<COSensorConfig> {
6
+ constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: COSensorConfig, log: Log);
7
+ protected getAccessoryService(): Service;
8
+ }
@@ -0,0 +1,15 @@
1
+ import { SensorAccessory } from './sensor.js';
2
+ import { strings } from '../../i18n/i18n.js';
3
+ import { CharacteristicKey } from '../../model/enums.js';
4
+ export class COSensorAccessory extends SensorAccessory {
5
+ constructor(Service, Characteristic, accessory, config, log) {
6
+ super(Service, Characteristic, accessory, config, log);
7
+ this.setupCharacteristic(CharacteristicKey.CarbonMonoxideDetected, 0, 'topicGetCarbonMonoxideDetected', this.bindOnUpdateNumericBoolean(CharacteristicKey.CarbonMonoxideDetected, 'valueCarbonMonoxideDetected', strings.sensor.carbonMonoxide.active, strings.sensor.carbonMonoxide.inactive), true);
8
+ this.setupCharacteristic(CharacteristicKey.CarbonMonoxideLevel, 0, 'topicGetCarbonMonoxideLevel', this.bindOnUpdateNumeric(CharacteristicKey.CarbonMonoxideLevel, strings.sensor.carbonMonoxide.level), false);
9
+ this.setupCharacteristic(CharacteristicKey.CarbonMonoxidePeakLevel, 0, 'topicGetCarbonMonoxidePeakLevel', this.bindOnUpdateNumeric(CharacteristicKey.CarbonMonoxidePeakLevel, strings.sensor.carbonMonoxide.peakLevel), false);
10
+ }
11
+ getAccessoryService() {
12
+ return this.accessory.getService(this.Service.CarbonMonoxideSensor) || this.accessory.addService(this.Service.CarbonMonoxideSensor);
13
+ }
14
+ }
15
+ //# sourceMappingURL=carbonMonoxide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carbonMonoxide.js","sourceRoot":"","sources":["../../../src/accessory/sensor/carbonMonoxide.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKzD,MAAM,OAAO,iBAAkB,SAAQ,eAA+B;IAEpE,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAsB,EAAE,GAAQ;QAClI,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAEvD,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,CAAC,EAAE,gCAAgC,EACpG,IAAI,CAAC,0BAA0B,CAC7B,iBAAiB,CAAC,sBAAsB,EACxC,6BAA6B,EAC7B,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,EAC/E,IAAI,CAAC,CAAC;QAER,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,CAAC,EAC/D,6BAA6B,EAAE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAE9I,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,CAAC,EACnE,iCAAiC,EAAE,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;IAC5J,CAAC;IAES,mBAAmB;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACtI,CAAC;CACF"}
@@ -0,0 +1,9 @@
1
+ import { PlatformAccessory, Service } from 'homebridge';
2
+ import { SensorAccessory } from './sensor.js';
3
+ import { CharacteristicType, ContactSensorConfig, ServiceType } from '../../model/types.js';
4
+ import { Log } from '../../tools/log.js';
5
+ export declare class ContactSensorAccessory extends SensorAccessory<ContactSensorConfig> {
6
+ constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: ContactSensorConfig, log: Log);
7
+ protected getAccessoryService(): Service;
8
+ private onContactStateUpdate;
9
+ }
@@ -0,0 +1,17 @@
1
+ import { SensorAccessory } from './sensor.js';
2
+ import { strings } from '../../i18n/i18n.js';
3
+ import { CharacteristicKey } from '../../model/enums.js';
4
+ export class ContactSensorAccessory extends SensorAccessory {
5
+ constructor(Service, Characteristic, accessory, config, log) {
6
+ super(Service, Characteristic, accessory, config, log);
7
+ this.setupCharacteristic(CharacteristicKey.ContactSensorState, 0, 'topicGetContactSensorState', this.onContactStateUpdate.bind(this), true);
8
+ }
9
+ getAccessoryService() {
10
+ return this.accessory.getService(this.Service.ContactSensor) || this.accessory.addService(this.Service.ContactSensor);
11
+ }
12
+ async onContactStateUpdate(topic, value) {
13
+ const numeric = value === this.getPrimitiveValue('valueContactDetected') ? 0 : 1;
14
+ this.onUpdate(CharacteristicKey.ContactSensorState, numeric, numeric ? strings.sensor.contact.inactive : strings.sensor.contact.active);
15
+ }
16
+ }
17
+ //# sourceMappingURL=contact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contact.js","sourceRoot":"","sources":["../../../src/accessory/sensor/contact.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKzD,MAAM,OAAO,sBAAuB,SAAQ,eAAoC;IAE9E,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAA2B,EAAE,GAAQ;QACvI,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAEvD,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,EAC9D,4BAA4B,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9E,CAAC;IAES,mBAAmB;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACxH,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,KAAa,EAAE,KAAqB;QACrE,MAAM,OAAO,GAAG,KAAK,KAAK,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1I,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import { PlatformAccessory, Service } from 'homebridge';
2
+ import { SensorAccessory } from './sensor.js';
3
+ import { CharacteristicType, HumiditySensorConfig, ServiceType } from '../../model/types.js';
4
+ import { Log } from '../../tools/log.js';
5
+ export declare class HumiditySensorAccessory extends SensorAccessory<HumiditySensorConfig> {
6
+ constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: HumiditySensorConfig, log: Log);
7
+ protected getAccessoryService(): Service;
8
+ }
@@ -0,0 +1,13 @@
1
+ import { SensorAccessory } from './sensor.js';
2
+ import { strings } from '../../i18n/i18n.js';
3
+ import { CharacteristicKey } from '../../model/enums.js';
4
+ export class HumiditySensorAccessory extends SensorAccessory {
5
+ constructor(Service, Characteristic, accessory, config, log) {
6
+ super(Service, Characteristic, accessory, config, log);
7
+ this.setupCharacteristic(CharacteristicKey.CurrentRelativeHumidity, 0, 'topicGetCurrentRelativeHumidity', this.bindOnUpdateNumeric(CharacteristicKey.CurrentRelativeHumidity, strings.sensor.humidity.update), true);
8
+ }
9
+ getAccessoryService() {
10
+ return this.accessory.getService(this.Service.HumiditySensor) || this.accessory.addService(this.Service.HumiditySensor);
11
+ }
12
+ }
13
+ //# sourceMappingURL=humidity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"humidity.js","sourceRoot":"","sources":["../../../src/accessory/sensor/humidity.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKzD,MAAM,OAAO,uBAAwB,SAAQ,eAAqC;IAEhF,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAA4B,EAAE,GAAQ;QACxI,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAEvD,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,CAAC,EAAE,iCAAiC,EACtG,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/G,CAAC;IAES,mBAAmB;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1H,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import { PlatformAccessory, Service } from 'homebridge';
2
+ import { SensorAccessory } from './sensor.js';
3
+ import { CharacteristicType, LeakSensorConfig, ServiceType } from '../../model/types.js';
4
+ import { Log } from '../../tools/log.js';
5
+ export declare class LeakSensorAccessory extends SensorAccessory<LeakSensorConfig> {
6
+ constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: LeakSensorConfig, log: Log);
7
+ protected getAccessoryService(): Service;
8
+ }
@@ -0,0 +1,13 @@
1
+ import { SensorAccessory } from './sensor.js';
2
+ import { strings } from '../../i18n/i18n.js';
3
+ import { CharacteristicKey } from '../../model/enums.js';
4
+ export class LeakSensorAccessory extends SensorAccessory {
5
+ constructor(Service, Characteristic, accessory, config, log) {
6
+ super(Service, Characteristic, accessory, config, log);
7
+ this.setupCharacteristic(CharacteristicKey.LeakDetected, 0, 'topicGetLeakDetected', this.bindOnUpdateNumericBoolean(CharacteristicKey.LeakDetected, 'valueLeakDetected', strings.sensor.leak.active, strings.sensor.leak.inactive), true);
8
+ }
9
+ getAccessoryService() {
10
+ return this.accessory.getService(this.Service.LeakSensor) || this.accessory.addService(this.Service.LeakSensor);
11
+ }
12
+ }
13
+ //# sourceMappingURL=leak.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leak.js","sourceRoot":"","sources":["../../../src/accessory/sensor/leak.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKzD,MAAM,OAAO,mBAAoB,SAAQ,eAAiC;IAExE,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAwB,EAAE,GAAQ;QACpI,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAEvD,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,EAAE,sBAAsB,EAChF,IAAI,CAAC,0BAA0B,CAC7B,iBAAiB,CAAC,YAAY,EAC9B,mBAAmB,EACnB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC3D,IAAI,CAAC,CAAC;IACV,CAAC;IAES,mBAAmB;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAClH,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import { PlatformAccessory, Service } from 'homebridge';
2
+ import { SensorAccessory } from './sensor.js';
3
+ import { CharacteristicType, MotionSensorConfig, ServiceType } from '../../model/types.js';
4
+ import { Log } from '../../tools/log.js';
5
+ export declare class MotionSensorAccessory extends SensorAccessory<MotionSensorConfig> {
6
+ constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: MotionSensorConfig, log: Log);
7
+ protected getAccessoryService(): Service;
8
+ }