homebridge-easy-mqtt 1.4.1-beta.0 → 1.5.0-beta.0

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 (154) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/README.md +102 -6
  3. package/config.schema.json +216 -7
  4. package/dist/accessory/abstract/base.d.ts +4 -6
  5. package/dist/accessory/abstract/base.js +17 -37
  6. package/dist/accessory/abstract/base.js.map +1 -1
  7. package/dist/accessory/abstract/common.d.ts +18 -4
  8. package/dist/accessory/abstract/common.js +165 -9
  9. package/dist/accessory/abstract/common.js.map +1 -1
  10. package/dist/accessory/abstract/group.d.ts +2 -4
  11. package/dist/accessory/abstract/group.js +11 -11
  12. package/dist/accessory/abstract/group.js.map +1 -1
  13. package/dist/accessory/abstract/helper.d.ts +3 -5
  14. package/dist/accessory/abstract/helper.js +34 -30
  15. package/dist/accessory/abstract/helper.js.map +1 -1
  16. package/dist/accessory/abstract/mqtt.d.ts +11 -8
  17. package/dist/accessory/abstract/mqtt.js +41 -33
  18. package/dist/accessory/abstract/mqtt.js.map +1 -1
  19. package/dist/accessory/addons/filter.d.ts +0 -1
  20. package/dist/accessory/addons/filter.js +6 -18
  21. package/dist/accessory/addons/filter.js.map +1 -1
  22. package/dist/accessory/button/button.d.ts +6 -0
  23. package/dist/accessory/{button.js → button/button.js} +6 -10
  24. package/dist/accessory/button/button.js.map +1 -0
  25. package/dist/accessory/button/doorbell.d.ts +7 -0
  26. package/dist/accessory/button/doorbell.js +25 -0
  27. package/dist/accessory/button/doorbell.js.map +1 -0
  28. package/dist/accessory/button/stateless.d.ts +6 -0
  29. package/dist/accessory/button/stateless.js +8 -0
  30. package/dist/accessory/button/stateless.js.map +1 -0
  31. package/dist/accessory/characteristic/characteristic.d.ts +3 -0
  32. package/dist/accessory/characteristic/characteristic.js +23 -0
  33. package/dist/accessory/characteristic/characteristic.js.map +1 -0
  34. package/dist/accessory/{abstract/customCharacteristic.d.ts → characteristic/custom.d.ts} +1 -0
  35. package/dist/accessory/{abstract/customCharacteristic.js → characteristic/custom.js} +4 -1
  36. package/dist/accessory/characteristic/custom.js.map +1 -0
  37. package/dist/accessory/characteristic/eve.d.ts +6 -0
  38. package/dist/accessory/characteristic/eve.js +24 -0
  39. package/dist/accessory/characteristic/eve.js.map +1 -0
  40. package/dist/accessory/climate/active.d.ts +2 -8
  41. package/dist/accessory/climate/active.js +9 -41
  42. package/dist/accessory/climate/active.js.map +1 -1
  43. package/dist/accessory/climate/fan2.d.ts +2 -15
  44. package/dist/accessory/climate/fan2.js +30 -109
  45. package/dist/accessory/climate/fan2.js.map +1 -1
  46. package/dist/accessory/climate/heaterCooler.d.ts +2 -14
  47. package/dist/accessory/climate/heaterCooler.js +32 -108
  48. package/dist/accessory/climate/heaterCooler.js.map +1 -1
  49. package/dist/accessory/climate/purifier.d.ts +2 -14
  50. package/dist/accessory/climate/purifier.js +27 -97
  51. package/dist/accessory/climate/purifier.js.map +1 -1
  52. package/dist/accessory/climate/temperatureControl.d.ts +5 -5
  53. package/dist/accessory/climate/temperatureControl.js +8 -8
  54. package/dist/accessory/climate/temperatureControl.js.map +1 -1
  55. package/dist/accessory/climate/thermostat.d.ts +2 -12
  56. package/dist/accessory/climate/thermostat.js +31 -84
  57. package/dist/accessory/climate/thermostat.js.map +1 -1
  58. package/dist/accessory/garage.d.ts +2 -12
  59. package/dist/accessory/garage.js +27 -93
  60. package/dist/accessory/garage.js.map +1 -1
  61. package/dist/accessory/lock.d.ts +2 -8
  62. package/dist/accessory/lock.js +28 -62
  63. package/dist/accessory/lock.js.map +1 -1
  64. package/dist/accessory/onoff/lightbulb.d.ts +2 -5
  65. package/dist/accessory/onoff/lightbulb.js +12 -18
  66. package/dist/accessory/onoff/lightbulb.js.map +1 -1
  67. package/dist/accessory/onoff/onoff.d.ts +4 -8
  68. package/dist/accessory/onoff/onoff.js +30 -34
  69. package/dist/accessory/onoff/onoff.js.map +1 -1
  70. package/dist/accessory/onoff/outlet.d.ts +2 -4
  71. package/dist/accessory/onoff/outlet.js +5 -5
  72. package/dist/accessory/onoff/outlet.js.map +1 -1
  73. package/dist/accessory/onoff/switch.d.ts +1 -4
  74. package/dist/accessory/onoff/switch.js +0 -3
  75. package/dist/accessory/onoff/switch.js.map +1 -1
  76. package/dist/accessory/position/blind.d.ts +2 -5
  77. package/dist/accessory/position/blind.js +7 -13
  78. package/dist/accessory/position/blind.js.map +1 -1
  79. package/dist/accessory/position/position.d.ts +2 -11
  80. package/dist/accessory/position/position.js +20 -71
  81. package/dist/accessory/position/position.js.map +1 -1
  82. package/dist/accessory/security.d.ts +4 -10
  83. package/dist/accessory/security.js +49 -81
  84. package/dist/accessory/security.js.map +1 -1
  85. package/dist/accessory/sensor/air.d.ts +2 -8
  86. package/dist/accessory/sensor/air.js +35 -67
  87. package/dist/accessory/sensor/air.js.map +1 -1
  88. package/dist/accessory/sensor/carbonDioxide.d.ts +2 -4
  89. package/dist/accessory/sensor/carbonDioxide.js +7 -7
  90. package/dist/accessory/sensor/carbonDioxide.js.map +1 -1
  91. package/dist/accessory/sensor/carbonMonoxide.d.ts +2 -4
  92. package/dist/accessory/sensor/carbonMonoxide.js +7 -7
  93. package/dist/accessory/sensor/carbonMonoxide.js.map +1 -1
  94. package/dist/accessory/sensor/contact.d.ts +2 -4
  95. package/dist/accessory/sensor/contact.js +20 -7
  96. package/dist/accessory/sensor/contact.js.map +1 -1
  97. package/dist/accessory/sensor/humidity.d.ts +2 -4
  98. package/dist/accessory/sensor/humidity.js +8 -5
  99. package/dist/accessory/sensor/humidity.js.map +1 -1
  100. package/dist/accessory/sensor/leak.d.ts +2 -4
  101. package/dist/accessory/sensor/leak.js +5 -5
  102. package/dist/accessory/sensor/leak.js.map +1 -1
  103. package/dist/accessory/sensor/light.d.ts +2 -4
  104. package/dist/accessory/sensor/light.js +5 -5
  105. package/dist/accessory/sensor/light.js.map +1 -1
  106. package/dist/accessory/sensor/motion.d.ts +2 -4
  107. package/dist/accessory/sensor/motion.js +8 -5
  108. package/dist/accessory/sensor/motion.js.map +1 -1
  109. package/dist/accessory/sensor/occupancy.d.ts +2 -4
  110. package/dist/accessory/sensor/occupancy.js +5 -5
  111. package/dist/accessory/sensor/occupancy.js.map +1 -1
  112. package/dist/accessory/sensor/sensor.d.ts +2 -6
  113. package/dist/accessory/sensor/sensor.js +5 -29
  114. package/dist/accessory/sensor/sensor.js.map +1 -1
  115. package/dist/accessory/sensor/smoke.d.ts +2 -4
  116. package/dist/accessory/sensor/smoke.js +5 -5
  117. package/dist/accessory/sensor/smoke.js.map +1 -1
  118. package/dist/accessory/sensor/temperature.d.ts +2 -4
  119. package/dist/accessory/sensor/temperature.js +8 -5
  120. package/dist/accessory/sensor/temperature.js.map +1 -1
  121. package/dist/accessory/valve.d.ts +2 -8
  122. package/dist/accessory/valve.js +10 -44
  123. package/dist/accessory/valve.js.map +1 -1
  124. package/dist/homebridge/platform.js +10 -4
  125. package/dist/homebridge/platform.js.map +1 -1
  126. package/dist/homebridge-ui/public/index.html +1 -1
  127. package/dist/homebridge-ui/public/ui.js +1 -1
  128. package/dist/i18n/en.d.ts +41 -5
  129. package/dist/i18n/en.js +43 -7
  130. package/dist/i18n/en.js.map +1 -1
  131. package/dist/i18n/fr.d.ts +41 -5
  132. package/dist/i18n/i18n.d.ts +41 -5
  133. package/dist/i18n/it.d.ts +41 -5
  134. package/dist/i18n/ro.d.ts +41 -5
  135. package/dist/i18n/template.d.ts +41 -5
  136. package/dist/i18n/vi.d.ts +41 -5
  137. package/dist/model/enums.d.ts +17 -2
  138. package/dist/model/enums.js +92 -77
  139. package/dist/model/enums.js.map +1 -1
  140. package/dist/model/history.d.ts +32 -0
  141. package/dist/model/history.js +128 -0
  142. package/dist/model/history.js.map +1 -0
  143. package/dist/model/mqtt.d.ts +1 -0
  144. package/dist/model/mqtt.js +37 -11
  145. package/dist/model/mqtt.js.map +1 -1
  146. package/dist/model/types.d.ts +39 -4
  147. package/dist/tools/log.d.ts +1 -1
  148. package/dist/tools/log.js.map +1 -1
  149. package/dist/tools/properties.js +1 -1
  150. package/dist/tools/properties.js.map +1 -1
  151. package/package.json +2 -1
  152. package/dist/accessory/abstract/customCharacteristic.js.map +0 -1
  153. package/dist/accessory/button.d.ts +0 -10
  154. package/dist/accessory/button.js.map +0 -1
@@ -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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"}
@@ -1,10 +1,7 @@
1
- import { PlatformAccessory } from 'homebridge';
2
1
  import { OnOffAccessory } from './onoff.js';
3
2
  import { AccessoryType } from '../../model/enums.js';
4
- import { CharacteristicType, LightbulbConfig, ServiceType } from '../../model/types.js';
5
- import { Log } from '../../tools/log.js';
3
+ import { LightbulbConfig, MQTTAccessoryDependency } from '../../model/types.js';
6
4
  export declare class LightbulbAccessory extends OnOffAccessory<LightbulbConfig> {
7
- constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: LightbulbConfig, log: Log, isGrouped: boolean);
8
5
  protected getAccessoryType(): AccessoryType;
9
- private onSetValue;
6
+ constructor(dependency: MQTTAccessoryDependency<LightbulbConfig>);
10
7
  }
@@ -1,27 +1,21 @@
1
1
  import { OnOffAccessory } from './onoff.js';
2
2
  import { strings } from '../../i18n/i18n.js';
3
- import { AccessoryType, CharacteristicKey } from '../../model/enums.js';
3
+ import { AccessoryType, HKCharacteristicKey } from '../../model/enums.js';
4
4
  export class LightbulbAccessory extends OnOffAccessory {
5
- constructor(Service, Characteristic, accessory, config, log, isGrouped) {
6
- super(Service, Characteristic, accessory, config, log, isGrouped);
7
- if (!config.maximumBrightness || !this.assertType('number', 'maximumBrightness')) {
8
- config.maximumBrightness = 100;
9
- }
10
- const getLogString = config.maximumBrightness < 100 ? strings.lightbulb.brightnessValue : strings.lightbulb.brightnessPercent;
11
- const setLogString = config.maximumBrightness < 100 ? strings.lightbulb.brightnessValueFuture : strings.lightbulb.brightnessPercentFuture;
12
- this.setup(CharacteristicKey.Brightness, 100, 'topicGetBrightness', this.bindOnUpdateNumeric(CharacteristicKey.Brightness, getLogString), false, 'topicSetBrightness', this.onSetValue(CharacteristicKey.Brightness, 'topicSetBrightness', setLogString))?.setProps({ maxValue: config.maximumBrightness });
13
- this.setup(CharacteristicKey.ColorTemperature, 500, 'topicGetColorTemperature', this.bindOnUpdateNumeric(CharacteristicKey.ColorTemperature, strings.lightbulb.colorTemperature), false, 'topicSetColorTemperature', this.onSetValue(CharacteristicKey.ColorTemperature, 'topicSetColorTemperature', strings.lightbulb.colorTemperatureFuture));
14
- this.setup(CharacteristicKey.Hue, 0, 'topicGetHue', this.bindOnUpdateNumeric(CharacteristicKey.Hue, strings.lightbulb.hue), false, 'topicSetHue', this.onSetValue(CharacteristicKey.Hue, 'topicSetHue', strings.lightbulb.hueFuture));
15
- this.setup(CharacteristicKey.Saturation, 100, 'topicGetSaturation', this.bindOnUpdateNumeric(CharacteristicKey.Saturation, strings.lightbulb.saturation), false, 'topicSetSaturation', this.onSetValue(CharacteristicKey.Saturation, 'topicSetSaturation', strings.lightbulb.saturationFuture));
16
- }
17
5
  getAccessoryType() {
18
6
  return AccessoryType.Lightbulb;
19
7
  }
20
- onSetValue(key, topic, logTemplate) {
21
- return (async (value) => {
22
- const logString = logTemplate.replace('%d', value.toString());
23
- this.onSet(key, value, value, topic, logString);
24
- }).bind(this);
8
+ constructor(dependency) {
9
+ super(dependency);
10
+ if (!dependency.config.maximumBrightness || !this.assertType('number', 'maximumBrightness')) {
11
+ dependency.config.maximumBrightness = 100;
12
+ }
13
+ const getLogString = dependency.config.maximumBrightness < 100 ? strings.lightbulb.brightnessValue : strings.lightbulb.brightnessPercent;
14
+ const setLogString = dependency.config.maximumBrightness < 100 ? strings.lightbulb.brightnessValueFuture : strings.lightbulb.brightnessPercentFuture;
15
+ this.setup(HKCharacteristicKey.Brightness, dependency.config.maximumBrightness, 'topicGetBrightness', this.bindOnUpdateNumeric(HKCharacteristicKey.Brightness, getLogString), false, 'topicSetBrightness', this.bindOnSetNumeric(HKCharacteristicKey.Brightness, 'topicSetBrightness', setLogString))?.setProps({ maxValue: dependency.config.maximumBrightness });
16
+ this.setup(HKCharacteristicKey.ColorTemperature, 500, 'topicGetColorTemperature', this.bindOnUpdateNumeric(HKCharacteristicKey.ColorTemperature, strings.lightbulb.colorTemperature), false, 'topicSetColorTemperature', this.bindOnSetNumeric(HKCharacteristicKey.ColorTemperature, 'topicSetColorTemperature', strings.lightbulb.colorTemperatureFuture));
17
+ this.setup(HKCharacteristicKey.Hue, 0, 'topicGetHue', this.bindOnUpdateNumeric(HKCharacteristicKey.Hue, strings.lightbulb.hue), false, 'topicSetHue', this.bindOnSetNumeric(HKCharacteristicKey.Hue, 'topicSetHue', strings.lightbulb.hueFuture));
18
+ this.setup(HKCharacteristicKey.Saturation, 100, 'topicGetSaturation', this.bindOnUpdateNumeric(HKCharacteristicKey.Saturation, strings.lightbulb.saturation), false, 'topicSetSaturation', this.bindOnSetNumeric(HKCharacteristicKey.Saturation, 'topicSetSaturation', strings.lightbulb.saturationFuture));
25
19
  }
26
20
  }
27
21
  //# sourceMappingURL=lightbulb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lightbulb.js","sourceRoot":"","sources":["../../../src/accessory/onoff/lightbulb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lightbulb.js","sourceRoot":"","sources":["../../../src/accessory/onoff/lightbulb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG1E,MAAM,OAAO,kBAAmB,SAAQ,cAA+B;IAE3D,gBAAgB;QACxB,OAAO,aAAa,CAAC,SAAS,CAAC;IACjC,CAAC;IAED,YAAY,UAAoD;QAC9D,KAAK,CAAC,UAAU,CAAC,CAAC;QAElB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,mBAAmB,CAAC,EAAE,CAAC;YAC5F,UAAU,CAAC,MAAM,CAAC,iBAAiB,GAAG,GAAG,CAAC;QAC5C,CAAC;QAED,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,iBAAiB,CAAC;QACzI,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,iBAAiB,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,uBAAuB,CAAC;QAErJ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,iBAAiB,EAC5E,oBAAoB,EAAE,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,KAAK,EACnG,oBAAoB,EAAE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,UAAU,EAAE,oBAAoB,EAAE,YAAY,CAAC,CAChH,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAE/D,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,GAAG,EAClD,0BAA0B,EAC1B,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAClG,KAAK,EACL,0BAA0B,EAC1B,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,0BAA0B,EAAE,OAAO,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAClI,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,EACnC,aAAa,EAAE,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,EAC9F,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAC1G,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,UAAU,EAAE,GAAG,EAC5C,oBAAoB,EAAE,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,KAAK,EACnH,oBAAoB,EAAE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,UAAU,EAAE,oBAAoB,EAAE,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,CACtI,CAAC;IACJ,CAAC;CACF"}
@@ -1,11 +1,7 @@
1
- import { PlatformAccessory } from 'homebridge';
2
1
  import { BaseAccessory } from '../abstract/base.js';
3
- import { CharacteristicType, OnOffConfig, ServiceType } from '../../model/types.js';
4
- import { Log } from '../../tools/log.js';
2
+ import { MQTTAccessoryDependency, OnOffConfig } from '../../model/types.js';
5
3
  export declare abstract class OnOffAccessory<C extends OnOffConfig = OnOffConfig> extends BaseAccessory<C> {
6
- constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: C, log: Log, isGrouped: boolean);
7
- private onOnUpdate;
8
- private onSetOn;
9
- private booleanForValue;
10
- private stringForState;
4
+ private lastConsumption?;
5
+ constructor(dependency: MQTTAccessoryDependency<C>);
6
+ private recordConsumption;
11
7
  }
@@ -1,46 +1,42 @@
1
1
  import { BaseAccessory } from '../abstract/base.js';
2
+ import { EVE_EPOCH, EveCharacteristic } from '../characteristic/eve.js';
2
3
  import { strings } from '../../i18n/i18n.js';
3
- import { CharacteristicKey } from '../../model/enums.js';
4
+ import { EveCharacteristicKey, HKCharacteristicKey } from '../../model/enums.js';
5
+ import { HistoryType } from '../../model/history.js';
6
+ import { HOUR } from '../../tools/time.js';
4
7
  export class OnOffAccessory extends BaseAccessory {
5
- constructor(Service, Characteristic, accessory, config, log, isGrouped) {
6
- super(Service, Characteristic, accessory, config, log, isGrouped);
7
- this.setup(CharacteristicKey.On, false, 'topicGetOn', this.onOnUpdate.bind(this), true, 'topicSetOn', this.onSetOn.bind(this));
8
- }
9
- async onOnUpdate(topic, value) {
10
- const on = this.booleanForValue(value, 'valueOn', 'valueOff');
11
- if (on !== undefined) {
12
- this.onUpdate(CharacteristicKey.On, on, this.stringForState(on));
13
- }
14
- }
15
- async onSetOn(value) {
16
- const on = value ? this.getPrimitiveValue('valueOn') : this.getPrimitiveValue('valueOff');
17
- if (on !== undefined) {
18
- this.onSet(CharacteristicKey.On, value, on, 'topicSetOn', this.stringForState(value, true));
8
+ lastConsumption;
9
+ constructor(dependency) {
10
+ super(dependency);
11
+ this.setup(HKCharacteristicKey.On, false, 'topicGetOn', this.bindOnUpdateBoolean(HKCharacteristicKey.On, 'valueOn', 'valueOff', strings.onOff.stateOn, strings.onOff.stateOff, (value) => {
12
+ this.recordHistory(HistoryType.CUSTOM, { status: value ? 1 : 0 }, true);
13
+ }), true, 'topicSetOn', this.bindOnSetBoolean(HKCharacteristicKey.On, 'topicSetOn', 'valueOn', 'valueOff', true, strings.onOff.stateOnFuture, strings.onOff.stateOffFuture, (value) => {
14
+ this.recordHistory(HistoryType.CUSTOM, { status: value ? 1 : 0 }, true);
15
+ }));
16
+ this.setup(EveCharacteristicKey.ElectricCurrent, 0, 'topicGetElectricCurrent', this.bindOnUpdateNumeric(EveCharacteristicKey.ElectricCurrent, strings.outlet.electricCurrent), false);
17
+ this.setup(EveCharacteristicKey.Voltage, 0, 'topicGetVoltage', this.bindOnUpdateNumeric(EveCharacteristicKey.Voltage, strings.outlet.voltage), false);
18
+ this.setup(EveCharacteristicKey.CurrentConsumption, 0, 'topicGetCurrentConsumption', this.bindOnUpdateNumeric(EveCharacteristicKey.CurrentConsumption, strings.outlet.currentConsumption, (value) => {
19
+ this.recordConsumption(value);
20
+ }), false);
21
+ if (this.setup(EveCharacteristicKey.TotalConsumption, 0, 'topicGetTotalConsumption', this.bindOnUpdateNumeric(EveCharacteristicKey.TotalConsumption, strings.outlet.totalConsumption), false) === undefined) {
22
+ this.setupTopicless(EveCharacteristicKey.ResetTotal, EVE_EPOCH, () => {
23
+ this.onUpdate(EveCharacteristicKey.TotalConsumption, 0, strings.outlet.totalConsumptionReset);
24
+ });
19
25
  }
20
26
  }
21
- booleanForValue(value, positive, negative) {
22
- let bool = undefined;
23
- if (value === this.getPrimitiveValue(positive)) {
24
- bool = true;
25
- }
26
- else if (value === this.getPrimitiveValue(negative)) {
27
- bool = false;
27
+ recordConsumption(value) {
28
+ const didRecord = this.recordHistory(HistoryType.CUSTOM, { power: value });
29
+ if (!didRecord || this.config.topicGetTotalConsumption !== undefined) {
30
+ return;
28
31
  }
29
- if (bool !== undefined) {
30
- return bool;
31
- }
32
- if (typeof value === 'boolean') {
33
- return value;
34
- }
35
- this.logIfDesired(strings.onOff.unknownValue, `'${value}'`);
36
- }
37
- stringForState(on, future = false) {
38
- if (on) {
39
- return future ? strings.onOff.stateOnFuture : strings.onOff.stateOn;
32
+ if (this.lastConsumption === undefined) {
33
+ this.service.addOptionalCharacteristic(EveCharacteristic(EveCharacteristicKey.TotalConsumption));
40
34
  }
41
35
  else {
42
- return future ? strings.onOff.stateOffFuture : strings.onOff.stateOff;
36
+ const delta = this.lastConsumption.value * (Date.now() - this.lastConsumption.time) / HOUR / 1000;
37
+ this.updateNumericValue(EveCharacteristicKey.TotalConsumption, delta);
43
38
  }
39
+ this.lastConsumption = { time: Date.now(), value: value };
44
40
  }
45
41
  }
46
42
  //# sourceMappingURL=onoff.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"onoff.js","sourceRoot":"","sources":["../../../src/accessory/onoff/onoff.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKzD,MAAM,OAAgB,cAAoD,SAAQ,aAAgB;IAEhG,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAS,EAAE,GAAQ,EAAE,SAAkB;QACzI,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,EAAE,KAAK,EACpC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAC9C,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CACtC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,KAAqB;QAC3D,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAC9D,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,KAA0B;QAC9C,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC1F,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,KAAqB,EAAE,QAAiB,EAAE,QAAiB;QAEjF,IAAI,IAAI,GAAwB,SAAS,CAAC;QAC1C,IAAI,KAAK,KAAK,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/C,IAAI,GAAG,IAAI,CAAC;QACd,CAAC;aAAM,IAAI,KAAK,KAAK,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtD,IAAI,GAAG,KAAK,CAAC;QACf,CAAC;QAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,KAAK,GAAG,CAAC,CAAC;IAC9D,CAAC;IAEO,cAAc,CAAC,EAAuB,EAAE,SAAkB,KAAK;QACrE,IAAI,EAAE,EAAE,CAAC;YACP,OAAO,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,OAAO,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;QACxE,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"onoff.js","sourceRoot":"","sources":["../../../src/accessory/onoff/onoff.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,7 @@
1
- import { PlatformAccessory } from 'homebridge';
2
1
  import { OnOffAccessory } from './onoff.js';
3
2
  import { AccessoryType } from '../../model/enums.js';
4
- import { CharacteristicType, OutletConfig, ServiceType } from '../../model/types.js';
5
- import { Log } from '../../tools/log.js';
3
+ import { MQTTAccessoryDependency, OutletConfig } from '../../model/types.js';
6
4
  export declare class OutletAccessory extends OnOffAccessory<OutletConfig> {
7
- constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: OutletConfig, log: Log, isGrouped: boolean);
8
5
  protected getAccessoryType(): AccessoryType;
6
+ constructor(dependency: MQTTAccessoryDependency<OutletConfig>);
9
7
  }
@@ -1,13 +1,13 @@
1
1
  import { OnOffAccessory } from './onoff.js';
2
2
  import { strings } from '../../i18n/i18n.js';
3
- import { AccessoryType, CharacteristicKey } from '../../model/enums.js';
3
+ import { AccessoryType, HKCharacteristicKey } from '../../model/enums.js';
4
4
  export class OutletAccessory extends OnOffAccessory {
5
- constructor(Service, Characteristic, accessory, config, log, isGrouped) {
6
- super(Service, Characteristic, accessory, config, log, isGrouped);
7
- this.setup(CharacteristicKey.OutletInUse, false, 'topicGetOutletInUse', this.bindOnUpdateNumericBoolean(CharacteristicKey.OutletInUse, 'valueOutletInUse', strings.outlet.inUse, strings.outlet.notInUse), false);
8
- }
9
5
  getAccessoryType() {
10
6
  return AccessoryType.Outlet;
11
7
  }
8
+ constructor(dependency) {
9
+ super(dependency);
10
+ this.setup(HKCharacteristicKey.OutletInUse, false, 'topicGetOutletInUse', this.bindOnUpdateNumericBoolean(HKCharacteristicKey.OutletInUse, 'valueOutletInUse', strings.outlet.inUse, strings.outlet.notInUse), false);
11
+ }
12
12
  }
13
13
  //# sourceMappingURL=outlet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"outlet.js","sourceRoot":"","sources":["../../../src/accessory/onoff/outlet.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,MAAM,OAAO,eAAgB,SAAQ,cAA4B;IAE/D,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAoB,EAAE,GAAQ,EAAE,SAAkB;QACpJ,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,EAAE,qBAAqB,EACpE,IAAI,CAAC,0BAA0B,CAAC,iBAAiB,CAAC,WAAW,EAAE,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EACjI,KAAK,CACN,CAAC;IACJ,CAAC;IAES,gBAAgB;QACxB,OAAO,aAAa,CAAC,MAAM,CAAC;IAC9B,CAAC;CACF"}
1
+ {"version":3,"file":"outlet.js","sourceRoot":"","sources":["../../../src/accessory/onoff/outlet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG1E,MAAM,OAAO,eAAgB,SAAQ,cAA4B;IAErD,gBAAgB;QACxB,OAAO,aAAa,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,YAAY,UAAiD;QAC3D,KAAK,CAAC,UAAU,CAAC,CAAC;QAElB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,WAAW,EAAE,KAAK,EAAE,qBAAqB,EACtE,IAAI,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EACnI,KAAK,CACN,CAAC;IACJ,CAAC;CACF"}
@@ -1,9 +1,6 @@
1
- import { PlatformAccessory } from 'homebridge';
2
1
  import { OnOffAccessory } from './onoff.js';
3
2
  import { AccessoryType } from '../../model/enums.js';
4
- import { CharacteristicType, ServiceType, SwitchConfig } from '../../model/types.js';
5
- import { Log } from '../../tools/log.js';
3
+ import { SwitchConfig } from '../../model/types.js';
6
4
  export declare class SwitchAccessory extends OnOffAccessory<SwitchConfig> {
7
- constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: SwitchConfig, log: Log, isGrouped: boolean);
8
5
  protected getAccessoryType(): AccessoryType;
9
6
  }
@@ -1,9 +1,6 @@
1
1
  import { OnOffAccessory } from './onoff.js';
2
2
  import { AccessoryType } from '../../model/enums.js';
3
3
  export class SwitchAccessory extends OnOffAccessory {
4
- constructor(Service, Characteristic, accessory, config, log, isGrouped) {
5
- super(Service, Characteristic, accessory, config, log, isGrouped);
6
- }
7
4
  getAccessoryType() {
8
5
  return AccessoryType.Switch;
9
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"switch.js","sourceRoot":"","sources":["../../../src/accessory/onoff/switch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAKrD,MAAM,OAAO,eAAgB,SAAQ,cAA4B;IAE/D,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAoB,EAAE,GAAQ,EAAE,SAAkB;QACpJ,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IACpE,CAAC;IAES,gBAAgB;QACxB,OAAO,aAAa,CAAC,MAAM,CAAC;IAC9B,CAAC;CACF"}
1
+ {"version":3,"file":"switch.js","sourceRoot":"","sources":["../../../src/accessory/onoff/switch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,MAAM,OAAO,eAAgB,SAAQ,cAA4B;IAErD,gBAAgB;QACxB,OAAO,aAAa,CAAC,MAAM,CAAC;IAC9B,CAAC;CACF"}
@@ -1,10 +1,7 @@
1
- import { PlatformAccessory } from 'homebridge';
2
1
  import { PositionAccessory } from './position.js';
3
2
  import { AccessoryType } from '../../model/enums.js';
4
- import { CharacteristicType, BlindConfig, ServiceType } from '../../model/types.js';
5
- import { Log } from '../../tools/log.js';
3
+ import { BlindConfig, MQTTAccessoryDependency } from '../../model/types.js';
6
4
  export declare class BlindAccessory extends PositionAccessory<BlindConfig> {
7
- constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: BlindConfig, log: Log, isGrouped: boolean);
8
5
  protected getAccessoryType(): AccessoryType;
9
- private onSetTilt;
6
+ constructor(dependency: MQTTAccessoryDependency<BlindConfig>);
10
7
  }
@@ -1,22 +1,16 @@
1
1
  import { PositionAccessory } from './position.js';
2
2
  import { strings } from '../../i18n/i18n.js';
3
- import { AccessoryType, CharacteristicKey } from '../../model/enums.js';
3
+ import { AccessoryType, HKCharacteristicKey } from '../../model/enums.js';
4
4
  export class BlindAccessory extends PositionAccessory {
5
- constructor(Service, Characteristic, accessory, config, log, isGrouped) {
6
- super(Service, Characteristic, accessory, config, log, isGrouped);
7
- this.setup(CharacteristicKey.CurrentHorizontalTiltAngle, 0, 'topicGetCurrentHorizontalTiltAngle', this.bindOnUpdateNumeric(CharacteristicKey.CurrentHorizontalTiltAngle, strings.position.blind.currentHorizontal), false);
8
- this.setup(CharacteristicKey.CurrentVerticalTiltAngle, 0, 'topicGetCurrentVerticalTiltAngle', this.bindOnUpdateNumeric(CharacteristicKey.CurrentVerticalTiltAngle, strings.position.blind.currentVertical), false);
9
- this.setup(CharacteristicKey.TargetHorizontalTiltAngle, 0, 'topicGetTargetHorizontalTiltAngle', this.bindOnUpdateNumeric(CharacteristicKey.TargetHorizontalTiltAngle, strings.position.blind.targetHorizontal), false, 'topicSetTargetHorizontalTiltAngle', this.onSetTilt(CharacteristicKey.TargetHorizontalTiltAngle, 'topicSetTargetHorizontalTiltAngle', strings.position.blind.targetHorizontalSet));
10
- this.setup(CharacteristicKey.TargetVerticalTiltAngle, 0, 'topicGetTargetVerticalTiltAngle', this.bindOnUpdateNumeric(CharacteristicKey.TargetVerticalTiltAngle, strings.position.blind.targetVertical), false, 'topicSetTargetVerticalTiltAngle', this.onSetTilt(CharacteristicKey.TargetVerticalTiltAngle, 'topicSetTargetVerticalTiltAngle', strings.position.blind.targetVerticalSet));
11
- }
12
5
  getAccessoryType() {
13
6
  return AccessoryType.WindowCovering;
14
7
  }
15
- onSetTilt(key, topic, logTemplate) {
16
- return (async (value) => {
17
- const logString = logTemplate.replace('%d', value.toString());
18
- this.onSet(key, value, value, topic, logString);
19
- }).bind(this);
8
+ constructor(dependency) {
9
+ super(dependency);
10
+ this.setup(HKCharacteristicKey.CurrentHorizontalTiltAngle, 0, 'topicGetCurrentHorizontalTiltAngle', this.bindOnUpdateNumeric(HKCharacteristicKey.CurrentHorizontalTiltAngle, strings.position.blind.currentHorizontal), false);
11
+ this.setup(HKCharacteristicKey.CurrentVerticalTiltAngle, 0, 'topicGetCurrentVerticalTiltAngle', this.bindOnUpdateNumeric(HKCharacteristicKey.CurrentVerticalTiltAngle, strings.position.blind.currentVertical), false);
12
+ this.setup(HKCharacteristicKey.TargetHorizontalTiltAngle, 0, 'topicGetTargetHorizontalTiltAngle', this.bindOnUpdateNumeric(HKCharacteristicKey.TargetHorizontalTiltAngle, strings.position.blind.targetHorizontal), false, 'topicSetTargetHorizontalTiltAngle', this.bindOnSetNumeric(HKCharacteristicKey.TargetHorizontalTiltAngle, 'topicSetTargetHorizontalTiltAngle', strings.position.blind.targetHorizontalSet));
13
+ this.setup(HKCharacteristicKey.TargetVerticalTiltAngle, 0, 'topicGetTargetVerticalTiltAngle', this.bindOnUpdateNumeric(HKCharacteristicKey.TargetVerticalTiltAngle, strings.position.blind.targetVertical), false, 'topicSetTargetVerticalTiltAngle', this.bindOnSetNumeric(HKCharacteristicKey.TargetVerticalTiltAngle, 'topicSetTargetVerticalTiltAngle', strings.position.blind.targetVerticalSet));
20
14
  }
21
15
  }
22
16
  //# sourceMappingURL=blind.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"blind.js","sourceRoot":"","sources":["../../../src/accessory/position/blind.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKxE,MAAM,OAAO,cAAe,SAAQ,iBAA8B;IAEhE,YACE,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAmB,EAAE,GAAQ,EAAE,SAAkB;QACzI,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,CAAC,EAAE,oCAAoC,EAC9F,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,KAAK,CAAC,CAAC;QAE3H,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,CAAC,EAAE,kCAAkC,EAC1F,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,CAAC;QAEvH,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,yBAAyB,EAAE,CAAC,EACvD,mCAAmC,EACnC,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,yBAAyB,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,KAAK,EACrH,mCAAmC,EACnC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,yBAAyB,EAAE,mCAAmC,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAEhJ,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,CAAC,EACrD,iCAAiC,EACjC,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,KAAK,EACjH,iCAAiC,EACjC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,iCAAiC,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC5I,CAAC;IAES,gBAAgB;QACxB,OAAO,aAAa,CAAC,cAAc,CAAC;IACtC,CAAC;IAEO,SAAS,CAAC,GAAsB,EAAE,KAAwB,EAAE,WAAmB;QACrF,OAAO,CAAC,KAAK,EAAE,KAA0B,EAAE,EAAE;YAC3C,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,KAAe,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;CACF"}
1
+ {"version":3,"file":"blind.js","sourceRoot":"","sources":["../../../src/accessory/position/blind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG1E,MAAM,OAAO,cAAe,SAAQ,iBAA8B;IAEtD,gBAAgB;QACxB,OAAO,aAAa,CAAC,cAAc,CAAC;IACtC,CAAC;IAED,YACE,UAAgD;QAChD,KAAK,CAAC,UAAU,CAAC,CAAC;QAElB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,0BAA0B,EAAE,CAAC,EAAE,oCAAoC,EAChG,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,0BAA0B,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,KAAK,CAAC,CAAC;QAE7H,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,wBAAwB,EAAE,CAAC,EAAE,kCAAkC,EAC5F,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,wBAAwB,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,CAAC;QAEzH,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,yBAAyB,EAAE,CAAC,EACzD,mCAAmC,EACnC,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,yBAAyB,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,KAAK,EACvH,mCAAmC,EACnC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,yBAAyB,EAAE,mCAAmC,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAEzJ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,CAAC,EACvD,iCAAiC,EACjC,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,KAAK,EACnH,iCAAiC,EACjC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,iCAAiC,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACrJ,CAAC;CACF"}
@@ -1,14 +1,5 @@
1
- import { PlatformAccessory } from 'homebridge';
2
1
  import { BaseAccessory } from '../abstract/base.js';
3
- import { CharacteristicType, PositionConfig, ServiceType } from '../../model/types.js';
4
- import { Log } from '../../tools/log.js';
2
+ import { MQTTAccessoryDependency, PositionConfig } from '../../model/types.js';
5
3
  export declare abstract class PositionAccessory<C extends PositionConfig = PositionConfig> extends BaseAccessory<C> {
6
- private readonly STATE_MAP;
7
- constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: C, log: Log, isGrouped: boolean);
8
- private onSetTargetPosition;
9
- private onSetHoldPosition;
10
- private onPositionStateUpdate;
11
- private onObstructionUpdate;
12
- private toCVState;
13
- private stateStringForCV;
4
+ constructor(dependency: MQTTAccessoryDependency<C>);
14
5
  }
@@ -1,88 +1,37 @@
1
1
  import { BaseAccessory } from '../abstract/base.js';
2
2
  import { strings } from '../../i18n/i18n.js';
3
- import { CharacteristicKey } from '../../model/enums.js';
3
+ import { HKCharacteristicKey } from '../../model/enums.js';
4
4
  import { LogType } from '../../tools/log.js';
5
5
  export class PositionAccessory extends BaseAccessory {
6
- STATE_MAP;
7
- constructor(Service, Characteristic, accessory, config, log, isGrouped) {
8
- super(Service, Characteristic, accessory, config, log, isGrouped);
6
+ constructor(dependency) {
7
+ super(dependency);
9
8
  let currentLogString = strings.position.currentValue;
10
9
  let targetLogString = strings.position.targetValue;
11
- if (!config.maximumPosition || !this.assertType('number', 'maximumPosition')) {
12
- config.maximumPosition = 100;
10
+ if (!dependency.config.maximumPosition || !this.assertType('number', 'maximumPosition')) {
11
+ dependency.config.maximumPosition = 100;
13
12
  currentLogString = strings.position.currentPercent;
14
13
  targetLogString = strings.position.targetPercent;
15
14
  }
16
- this.setup(CharacteristicKey.CurrentPosition, 0, 'topicGetCurrentPosition', this.bindOnUpdateNumeric(CharacteristicKey.CurrentPosition, currentLogString), true)?.setProps({ maxValue: config.maximumPosition });
17
- this.setup(CharacteristicKey.TargetPosition, 0, 'topicGetTargetPosition', this.bindOnUpdateNumeric(CharacteristicKey.TargetPosition, targetLogString), true, 'topicSetTargetPosition', this.onSetTargetPosition.bind(this))?.setProps({ maxValue: config.maximumPosition });
18
- this.STATE_MAP = new Map([
19
- ['valuePositionDecreasing', Characteristic.PositionState.DECREASING],
20
- ['valuePositionIncreasing', Characteristic.PositionState.INCREASING],
21
- ['valuePositionStopped', Characteristic.PositionState.STOPPED],
15
+ this.setup(HKCharacteristicKey.CurrentPosition, 0, 'topicGetCurrentPosition', this.bindOnUpdateNumeric(HKCharacteristicKey.CurrentPosition, currentLogString), true)?.setProps({ maxValue: dependency.config.maximumPosition });
16
+ this.setup(HKCharacteristicKey.TargetPosition, 0, 'topicGetTargetPosition', this.bindOnUpdateNumeric(HKCharacteristicKey.TargetPosition, targetLogString), true, 'topicSetTargetPosition', this.bindOnSetPercentOrValue(HKCharacteristicKey.TargetPosition, 'topicSetTargetPosition', dependency.config.maximumPosition, strings.position.targetPercentSet, strings.position.targetValueSet))?.setProps({ maxValue: dependency.config.maximumPosition });
17
+ const stateMap = new Map([
18
+ ['valuePositionDecreasing', dependency.Characteristic.PositionState.DECREASING],
19
+ ['valuePositionIncreasing', dependency.Characteristic.PositionState.INCREASING],
20
+ ['valuePositionStopped', dependency.Characteristic.PositionState.STOPPED],
22
21
  ]);
23
- const validStates = Array.from(this.STATE_MAP.keys()).filter((key) => this.getRawValue(key, false) !== undefined);
22
+ const validStates = Array.from(stateMap.keys()).filter((key) => this.getRawValue(key, false) !== undefined);
24
23
  if (validStates.length === 0) {
25
24
  this.log.error(strings.position.noPositionValues, this.name);
26
25
  return;
27
26
  }
28
- this.setup(CharacteristicKey.PositionState, Characteristic.PositionState.STOPPED, 'topicGetPositionState', this.onPositionStateUpdate.bind(this), true)?.setProps({ validValues: validStates.map((key) => this.STATE_MAP.get(key)) });
29
- this.setupSet(CharacteristicKey.HoldPosition, 'topicSetHoldPosition', this.onSetHoldPosition.bind(this));
30
- this.setup(CharacteristicKey.ObstructionDetected, false, 'topicGetObstructionDetected', this.onObstructionUpdate.bind(this), false);
31
- }
32
- async onSetTargetPosition(value) {
33
- const isPercent = this.config.maximumPosition === undefined || this.config.maximumPosition === 100;
34
- const logString = (isPercent ? strings.position.targetPercentSet : strings.position.targetValueSet).replace('%d', value.toString());
35
- this.onSet(CharacteristicKey.TargetPosition, value, value, 'topicSetTargetPosition', logString);
36
- }
37
- async onSetHoldPosition(value) {
38
- if (!this.assert('valuePositionHold', 'valuePositionResume')) {
39
- return;
40
- }
41
- const publish = value ? this.config.valuePositionHold : this.config.valuePositionResume;
42
- const logString = value ? strings.position.hold : strings.position.resume;
43
- this.onSet(CharacteristicKey.HoldPosition, value, publish, 'topicSetHoldPosition', logString);
44
- }
45
- async onPositionStateUpdate(topic, value) {
46
- const current = this.toCVState(value);
47
- if (current === undefined) {
48
- return;
49
- }
50
- this.onUpdate(CharacteristicKey.PositionState, current, this.stateStringForCV(current));
51
- }
52
- async onObstructionUpdate(topic, value) {
53
- const obstructed = value === this.getPrimitiveValue('valuePositionObstructed');
54
- if (!this.onUpdate(CharacteristicKey.ObstructionDetected, obstructed)) {
55
- return;
56
- }
57
- if (obstructed) {
58
- this.logIfDesired(LogType.ERROR, strings.position.obstructed);
59
- }
60
- else {
61
- this.logIfDesired(strings.position.unobstructed);
62
- }
63
- }
64
- toCVState(value) {
65
- switch (value) {
66
- case this.getPrimitiveValue('valuePositionDecreasing', false):
67
- return this.STATE_MAP.get('valuePositionDecreasing');
68
- case this.getPrimitiveValue('valuePositionIncreasing', false):
69
- return this.STATE_MAP.get('valuePositionIncreasing');
70
- case this.getPrimitiveValue('valuePositionStopped', false):
71
- return this.STATE_MAP.get('valuePositionStopped');
72
- }
73
- this.logIfDesired(strings.position.unknownValue, `'${value}'`);
74
- }
75
- stateStringForCV(state) {
76
- switch (state) {
77
- case this.Characteristic.PositionState.DECREASING:
78
- return strings.position.stateDecreasing;
79
- case this.Characteristic.PositionState.INCREASING:
80
- return strings.position.stateIncreasing;
81
- case this.Characteristic.PositionState.STOPPED:
82
- return strings.position.stateStopped;
83
- default:
84
- return strings.position.stateUnknown;
85
- }
27
+ const stateStrings = new Map([
28
+ [dependency.Characteristic.PositionState.DECREASING, strings.position.stateDecreasing],
29
+ [dependency.Characteristic.PositionState.INCREASING, strings.position.stateIncreasing],
30
+ [dependency.Characteristic.PositionState.STOPPED, strings.position.stateStopped],
31
+ ]);
32
+ this.setup(HKCharacteristicKey.PositionState, dependency.Characteristic.PositionState.STOPPED, 'topicGetPositionState', this.bindOnUpdateState(HKCharacteristicKey.PositionState, stateMap, stateStrings, strings.position.unknownValue), true)?.setProps({ validValues: validStates.map((key) => stateMap.get(key)) });
33
+ this.setupSet(HKCharacteristicKey.HoldPosition, 'topicSetHoldPosition', this.bindOnSetBoolean(HKCharacteristicKey.HoldPosition, 'topicSetHoldPosition', 'valuePositionHold', 'valuePositionResume', true, strings.position.hold, strings.position.resume));
34
+ this.setup(HKCharacteristicKey.ObstructionDetected, false, 'topicGetObstructionDetected', this.bindOnUpdateBooleanSingle(HKCharacteristicKey.ObstructionDetected, 'valuePositionObstructed', strings.position.obstructed, strings.position.unobstructed, LogType.ERROR), false);
86
35
  }
87
36
  }
88
37
  //# sourceMappingURL=position.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"position.js","sourceRoot":"","sources":["../../../src/accessory/position/position.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"position.js","sourceRoot":"","sources":["../../../src/accessory/position/position.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,10 @@
1
- import { PlatformAccessory } from 'homebridge';
2
1
  import { BaseAccessory } from './abstract/base.js';
3
2
  import { AccessoryType } from '../model/enums.js';
4
- import { CharacteristicType, SecurityConfig, ServiceType } from '../model/types.js';
5
- import { Log } from '../tools/log.js';
3
+ import { MQTTAccessoryDependency, SecurityConfig } from '../model/types.js';
6
4
  export declare class SecuritySystemAccessory extends BaseAccessory<SecurityConfig> {
7
- private readonly STATE_MAP;
8
- constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: SecurityConfig, log: Log, isGrouped: boolean);
5
+ private readonly STATES;
6
+ private readonly CURRENT_STRINGS;
9
7
  protected getAccessoryType(): AccessoryType;
8
+ constructor(dependency: MQTTAccessoryDependency<SecurityConfig>);
10
9
  private onCurrentStateUpdate;
11
- private onTargetStateUpdate;
12
- private onSetTargetState;
13
- private fromCVState;
14
- private toCVState;
15
- private stateStringForCV;
16
10
  }