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.
- package/CHANGELOG.md +9 -1
- package/README.md +102 -6
- package/config.schema.json +216 -7
- package/dist/accessory/abstract/base.d.ts +4 -6
- package/dist/accessory/abstract/base.js +17 -37
- package/dist/accessory/abstract/base.js.map +1 -1
- package/dist/accessory/abstract/common.d.ts +18 -4
- package/dist/accessory/abstract/common.js +165 -9
- package/dist/accessory/abstract/common.js.map +1 -1
- package/dist/accessory/abstract/group.d.ts +2 -4
- package/dist/accessory/abstract/group.js +11 -11
- package/dist/accessory/abstract/group.js.map +1 -1
- package/dist/accessory/abstract/helper.d.ts +3 -5
- package/dist/accessory/abstract/helper.js +34 -30
- package/dist/accessory/abstract/helper.js.map +1 -1
- package/dist/accessory/abstract/mqtt.d.ts +11 -8
- package/dist/accessory/abstract/mqtt.js +41 -33
- package/dist/accessory/abstract/mqtt.js.map +1 -1
- package/dist/accessory/addons/filter.d.ts +0 -1
- package/dist/accessory/addons/filter.js +6 -18
- package/dist/accessory/addons/filter.js.map +1 -1
- package/dist/accessory/button/button.d.ts +6 -0
- package/dist/accessory/{button.js → button/button.js} +6 -10
- package/dist/accessory/button/button.js.map +1 -0
- package/dist/accessory/button/doorbell.d.ts +7 -0
- package/dist/accessory/button/doorbell.js +25 -0
- package/dist/accessory/button/doorbell.js.map +1 -0
- package/dist/accessory/button/stateless.d.ts +6 -0
- package/dist/accessory/button/stateless.js +8 -0
- package/dist/accessory/button/stateless.js.map +1 -0
- package/dist/accessory/characteristic/characteristic.d.ts +3 -0
- package/dist/accessory/characteristic/characteristic.js +23 -0
- package/dist/accessory/characteristic/characteristic.js.map +1 -0
- package/dist/accessory/{abstract/customCharacteristic.d.ts → characteristic/custom.d.ts} +1 -0
- package/dist/accessory/{abstract/customCharacteristic.js → characteristic/custom.js} +4 -1
- package/dist/accessory/characteristic/custom.js.map +1 -0
- package/dist/accessory/characteristic/eve.d.ts +6 -0
- package/dist/accessory/characteristic/eve.js +24 -0
- package/dist/accessory/characteristic/eve.js.map +1 -0
- package/dist/accessory/climate/active.d.ts +2 -8
- package/dist/accessory/climate/active.js +9 -41
- package/dist/accessory/climate/active.js.map +1 -1
- package/dist/accessory/climate/fan2.d.ts +2 -15
- package/dist/accessory/climate/fan2.js +30 -109
- package/dist/accessory/climate/fan2.js.map +1 -1
- package/dist/accessory/climate/heaterCooler.d.ts +2 -14
- package/dist/accessory/climate/heaterCooler.js +32 -108
- package/dist/accessory/climate/heaterCooler.js.map +1 -1
- package/dist/accessory/climate/purifier.d.ts +2 -14
- package/dist/accessory/climate/purifier.js +27 -97
- package/dist/accessory/climate/purifier.js.map +1 -1
- package/dist/accessory/climate/temperatureControl.d.ts +5 -5
- package/dist/accessory/climate/temperatureControl.js +8 -8
- package/dist/accessory/climate/temperatureControl.js.map +1 -1
- package/dist/accessory/climate/thermostat.d.ts +2 -12
- package/dist/accessory/climate/thermostat.js +31 -84
- package/dist/accessory/climate/thermostat.js.map +1 -1
- package/dist/accessory/garage.d.ts +2 -12
- package/dist/accessory/garage.js +27 -93
- package/dist/accessory/garage.js.map +1 -1
- package/dist/accessory/lock.d.ts +2 -8
- package/dist/accessory/lock.js +28 -62
- package/dist/accessory/lock.js.map +1 -1
- package/dist/accessory/onoff/lightbulb.d.ts +2 -5
- package/dist/accessory/onoff/lightbulb.js +12 -18
- package/dist/accessory/onoff/lightbulb.js.map +1 -1
- package/dist/accessory/onoff/onoff.d.ts +4 -8
- package/dist/accessory/onoff/onoff.js +30 -34
- package/dist/accessory/onoff/onoff.js.map +1 -1
- package/dist/accessory/onoff/outlet.d.ts +2 -4
- package/dist/accessory/onoff/outlet.js +5 -5
- package/dist/accessory/onoff/outlet.js.map +1 -1
- package/dist/accessory/onoff/switch.d.ts +1 -4
- package/dist/accessory/onoff/switch.js +0 -3
- package/dist/accessory/onoff/switch.js.map +1 -1
- package/dist/accessory/position/blind.d.ts +2 -5
- package/dist/accessory/position/blind.js +7 -13
- package/dist/accessory/position/blind.js.map +1 -1
- package/dist/accessory/position/position.d.ts +2 -11
- package/dist/accessory/position/position.js +20 -71
- package/dist/accessory/position/position.js.map +1 -1
- package/dist/accessory/security.d.ts +4 -10
- package/dist/accessory/security.js +49 -81
- package/dist/accessory/security.js.map +1 -1
- package/dist/accessory/sensor/air.d.ts +2 -8
- package/dist/accessory/sensor/air.js +35 -67
- package/dist/accessory/sensor/air.js.map +1 -1
- package/dist/accessory/sensor/carbonDioxide.d.ts +2 -4
- package/dist/accessory/sensor/carbonDioxide.js +7 -7
- package/dist/accessory/sensor/carbonDioxide.js.map +1 -1
- package/dist/accessory/sensor/carbonMonoxide.d.ts +2 -4
- package/dist/accessory/sensor/carbonMonoxide.js +7 -7
- package/dist/accessory/sensor/carbonMonoxide.js.map +1 -1
- package/dist/accessory/sensor/contact.d.ts +2 -4
- package/dist/accessory/sensor/contact.js +20 -7
- package/dist/accessory/sensor/contact.js.map +1 -1
- package/dist/accessory/sensor/humidity.d.ts +2 -4
- package/dist/accessory/sensor/humidity.js +8 -5
- package/dist/accessory/sensor/humidity.js.map +1 -1
- package/dist/accessory/sensor/leak.d.ts +2 -4
- package/dist/accessory/sensor/leak.js +5 -5
- package/dist/accessory/sensor/leak.js.map +1 -1
- package/dist/accessory/sensor/light.d.ts +2 -4
- package/dist/accessory/sensor/light.js +5 -5
- package/dist/accessory/sensor/light.js.map +1 -1
- package/dist/accessory/sensor/motion.d.ts +2 -4
- package/dist/accessory/sensor/motion.js +8 -5
- package/dist/accessory/sensor/motion.js.map +1 -1
- package/dist/accessory/sensor/occupancy.d.ts +2 -4
- package/dist/accessory/sensor/occupancy.js +5 -5
- package/dist/accessory/sensor/occupancy.js.map +1 -1
- package/dist/accessory/sensor/sensor.d.ts +2 -6
- package/dist/accessory/sensor/sensor.js +5 -29
- package/dist/accessory/sensor/sensor.js.map +1 -1
- package/dist/accessory/sensor/smoke.d.ts +2 -4
- package/dist/accessory/sensor/smoke.js +5 -5
- package/dist/accessory/sensor/smoke.js.map +1 -1
- package/dist/accessory/sensor/temperature.d.ts +2 -4
- package/dist/accessory/sensor/temperature.js +8 -5
- package/dist/accessory/sensor/temperature.js.map +1 -1
- package/dist/accessory/valve.d.ts +2 -8
- package/dist/accessory/valve.js +10 -44
- package/dist/accessory/valve.js.map +1 -1
- package/dist/homebridge/platform.js +10 -4
- 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 +41 -5
- package/dist/i18n/en.js +43 -7
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/fr.d.ts +41 -5
- package/dist/i18n/i18n.d.ts +41 -5
- package/dist/i18n/it.d.ts +41 -5
- package/dist/i18n/ro.d.ts +41 -5
- package/dist/i18n/template.d.ts +41 -5
- package/dist/i18n/vi.d.ts +41 -5
- package/dist/model/enums.d.ts +17 -2
- package/dist/model/enums.js +92 -77
- package/dist/model/enums.js.map +1 -1
- package/dist/model/history.d.ts +32 -0
- package/dist/model/history.js +128 -0
- package/dist/model/history.js.map +1 -0
- package/dist/model/mqtt.d.ts +1 -0
- package/dist/model/mqtt.js +37 -11
- package/dist/model/mqtt.js.map +1 -1
- package/dist/model/types.d.ts +39 -4
- package/dist/tools/log.d.ts +1 -1
- package/dist/tools/log.js.map +1 -1
- package/dist/tools/properties.js +1 -1
- package/dist/tools/properties.js.map +1 -1
- package/package.json +2 -1
- package/dist/accessory/abstract/customCharacteristic.js.map +0 -1
- package/dist/accessory/button.d.ts +0 -10
- package/dist/accessory/button.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/accessory/lock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,
|
|
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 {
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
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":"
|
|
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 {
|
|
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
|
-
|
|
7
|
-
|
|
8
|
-
private
|
|
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 {
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
if (
|
|
24
|
-
|
|
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 (
|
|
30
|
-
|
|
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
|
-
|
|
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":"
|
|
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 {
|
|
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,
|
|
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":"
|
|
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 {
|
|
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":"
|
|
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 {
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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":"
|
|
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 {
|
|
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
|
-
|
|
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 {
|
|
3
|
+
import { HKCharacteristicKey } from '../../model/enums.js';
|
|
4
4
|
import { LogType } from '../../tools/log.js';
|
|
5
5
|
export class PositionAccessory extends BaseAccessory {
|
|
6
|
-
|
|
7
|
-
|
|
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(
|
|
17
|
-
this.setup(
|
|
18
|
-
|
|
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(
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
this.
|
|
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":"
|
|
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 {
|
|
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
|
|
8
|
-
|
|
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
|
}
|