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,13 +1,13 @@
|
|
|
1
1
|
import { SensorAccessory } from './sensor.js';
|
|
2
2
|
import { strings } from '../../i18n/i18n.js';
|
|
3
|
-
import { AccessoryType,
|
|
3
|
+
import { AccessoryType, HKCharacteristicKey } from '../../model/enums.js';
|
|
4
4
|
export class LeakSensorAccessory extends SensorAccessory {
|
|
5
|
-
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
6
|
-
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
7
|
-
this.setup(CharacteristicKey.LeakDetected, Characteristic.LeakDetected.LEAK_NOT_DETECTED, 'topicGetLeakDetected', this.bindOnUpdateNumericBoolean(CharacteristicKey.LeakDetected, 'valueLeakDetected', strings.sensor.leak.active, strings.sensor.leak.inactive), true);
|
|
8
|
-
}
|
|
9
5
|
getAccessoryType() {
|
|
10
6
|
return AccessoryType.LeakSensor;
|
|
11
7
|
}
|
|
8
|
+
constructor(dependency) {
|
|
9
|
+
super(dependency);
|
|
10
|
+
this.setup(HKCharacteristicKey.LeakDetected, dependency.Characteristic.LeakDetected.LEAK_NOT_DETECTED, 'topicGetLeakDetected', this.bindOnUpdateNumericBoolean(HKCharacteristicKey.LeakDetected, 'valueLeakDetected', strings.sensor.leak.active, strings.sensor.leak.inactive), true);
|
|
11
|
+
}
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=leak.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"leak.js","sourceRoot":"","sources":["../../../src/accessory/sensor/leak.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"leak.js","sourceRoot":"","sources":["../../../src/accessory/sensor/leak.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG1E,MAAM,OAAO,mBAAoB,SAAQ,eAAiC;IAE9D,gBAAgB;QACxB,OAAO,aAAa,CAAC,UAAU,CAAC;IAClC,CAAC;IAED,YAAY,UAAqD;QAC/D,KAAK,CAAC,UAAU,CAAC,CAAC;QAElB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,YAAY,EAAE,UAAU,CAAC,cAAc,CAAC,YAAY,CAAC,iBAAiB,EACnG,sBAAsB,EACtB,IAAI,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,YAAY,EAAE,mBAAmB,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5J,CAAC;CACF"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { PlatformAccessory } from 'homebridge';
|
|
2
1
|
import { SensorAccessory } from './sensor.js';
|
|
3
2
|
import { AccessoryType } from '../../model/enums.js';
|
|
4
|
-
import {
|
|
5
|
-
import { Log } from '../../tools/log.js';
|
|
3
|
+
import { LightSensorConfig, MQTTAccessoryDependency } from '../../model/types.js';
|
|
6
4
|
export declare class LightSensorAccessory extends SensorAccessory<LightSensorConfig> {
|
|
7
|
-
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: LightSensorConfig, log: Log, isGrouped: boolean);
|
|
8
5
|
protected getAccessoryType(): AccessoryType;
|
|
6
|
+
constructor(dependency: MQTTAccessoryDependency<LightSensorConfig>);
|
|
9
7
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { SensorAccessory } from './sensor.js';
|
|
2
2
|
import { strings } from '../../i18n/i18n.js';
|
|
3
|
-
import { AccessoryType,
|
|
3
|
+
import { AccessoryType, HKCharacteristicKey } from '../../model/enums.js';
|
|
4
4
|
export class LightSensorAccessory extends SensorAccessory {
|
|
5
|
-
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
6
|
-
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
7
|
-
this.setup(CharacteristicKey.CurrentAmbientLightLevel, 0.0001, 'topicGetCurrentAmbientLightLevel', this.bindOnUpdateNumeric(CharacteristicKey.CurrentAmbientLightLevel, strings.sensor.light.level), true);
|
|
8
|
-
}
|
|
9
5
|
getAccessoryType() {
|
|
10
6
|
return AccessoryType.LightSensor;
|
|
11
7
|
}
|
|
8
|
+
constructor(dependency) {
|
|
9
|
+
super(dependency);
|
|
10
|
+
this.setup(HKCharacteristicKey.CurrentAmbientLightLevel, 0.0001, 'topicGetCurrentAmbientLightLevel', this.bindOnUpdateNumeric(HKCharacteristicKey.CurrentAmbientLightLevel, strings.sensor.light.level), true);
|
|
11
|
+
}
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=light.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"light.js","sourceRoot":"","sources":["../../../src/accessory/sensor/light.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"light.js","sourceRoot":"","sources":["../../../src/accessory/sensor/light.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG1E,MAAM,OAAO,oBAAqB,SAAQ,eAAkC;IAEhE,gBAAgB;QACxB,OAAO,aAAa,CAAC,WAAW,CAAC;IACnC,CAAC;IAED,YAAY,UAAsD;QAChE,KAAK,CAAC,UAAU,CAAC,CAAC;QAElB,IAAI,CAAC,KAAK,CACR,mBAAmB,CAAC,wBAAwB,EAAE,MAAM,EACpD,kCAAkC,EAAE,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,wBAAwB,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EACtI,IAAI,CAAC,CAAC;IACV,CAAC;CACF"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { PlatformAccessory } from 'homebridge';
|
|
2
1
|
import { SensorAccessory } from './sensor.js';
|
|
3
2
|
import { AccessoryType } from '../../model/enums.js';
|
|
4
|
-
import {
|
|
5
|
-
import { Log } from '../../tools/log.js';
|
|
3
|
+
import { MotionSensorConfig, MQTTAccessoryDependency } from '../../model/types.js';
|
|
6
4
|
export declare class MotionSensorAccessory extends SensorAccessory<MotionSensorConfig> {
|
|
7
|
-
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: MotionSensorConfig, log: Log, isGrouped: boolean);
|
|
8
5
|
protected getAccessoryType(): AccessoryType;
|
|
6
|
+
constructor(dependency: MQTTAccessoryDependency<MotionSensorConfig>);
|
|
9
7
|
}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { SensorAccessory } from './sensor.js';
|
|
2
2
|
import { strings } from '../../i18n/i18n.js';
|
|
3
|
-
import { AccessoryType,
|
|
3
|
+
import { AccessoryType, HKCharacteristicKey } from '../../model/enums.js';
|
|
4
|
+
import { HistoryType } from '../../model/history.js';
|
|
4
5
|
export class MotionSensorAccessory extends SensorAccessory {
|
|
5
|
-
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
6
|
-
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
7
|
-
this.setup(CharacteristicKey.MotionDetected, false, 'topicGetMotionDetected', this.bindOnUpdateNumericBoolean(CharacteristicKey.MotionDetected, 'valueMotionDetected', strings.sensor.motion.active, strings.sensor.motion.inactive), true);
|
|
8
|
-
}
|
|
9
6
|
getAccessoryType() {
|
|
10
7
|
return AccessoryType.MotionSensor;
|
|
11
8
|
}
|
|
9
|
+
constructor(dependency) {
|
|
10
|
+
super(dependency);
|
|
11
|
+
this.setup(HKCharacteristicKey.MotionDetected, false, 'topicGetMotionDetected', this.bindOnUpdateNumericBoolean(HKCharacteristicKey.MotionDetected, 'valueMotionDetected', strings.sensor.motion.active, strings.sensor.motion.inactive, (value) => {
|
|
12
|
+
this.recordHistory(HistoryType.MOTION, { status: value }, true);
|
|
13
|
+
}), true);
|
|
14
|
+
}
|
|
12
15
|
}
|
|
13
16
|
//# sourceMappingURL=motion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"motion.js","sourceRoot":"","sources":["../../../src/accessory/sensor/motion.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"motion.js","sourceRoot":"","sources":["../../../src/accessory/sensor/motion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,MAAM,OAAO,qBAAsB,SAAQ,eAAmC;IAElE,gBAAgB;QACxB,OAAO,aAAa,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,YACE,UAAuD;QACvD,KAAK,CAAC,UAAU,CAAC,CAAC;QAElB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,cAAc,EAAE,KAAK,EAClD,wBAAwB,EACxB,IAAI,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,cAAc,EAAE,qBAAqB,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EACrJ,CAAC,KAAK,EAAE,EAAE;YACR,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;QAClE,CAAC,CACF,EACD,IAAI,CAAC,CAAC;IACV,CAAC;CACF"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { PlatformAccessory } from 'homebridge';
|
|
2
1
|
import { SensorAccessory } from './sensor.js';
|
|
3
2
|
import { AccessoryType } from '../../model/enums.js';
|
|
4
|
-
import {
|
|
5
|
-
import { Log } from '../../tools/log.js';
|
|
3
|
+
import { MQTTAccessoryDependency, OccupancySensorConfig } from '../../model/types.js';
|
|
6
4
|
export declare class OccupancySensorAccessory extends SensorAccessory<OccupancySensorConfig> {
|
|
7
|
-
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: OccupancySensorConfig, log: Log, isGrouped: boolean);
|
|
8
5
|
protected getAccessoryType(): AccessoryType;
|
|
6
|
+
constructor(dependency: MQTTAccessoryDependency<OccupancySensorConfig>);
|
|
9
7
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { SensorAccessory } from './sensor.js';
|
|
2
2
|
import { strings } from '../../i18n/i18n.js';
|
|
3
|
-
import { AccessoryType,
|
|
3
|
+
import { AccessoryType, HKCharacteristicKey } from '../../model/enums.js';
|
|
4
4
|
export class OccupancySensorAccessory extends SensorAccessory {
|
|
5
|
-
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
6
|
-
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
7
|
-
this.setup(CharacteristicKey.OccupancyDetected, Characteristic.OccupancyDetected.OCCUPANCY_NOT_DETECTED, 'topicGetOccupancyDetected', this.bindOnUpdateNumericBoolean(CharacteristicKey.OccupancyDetected, 'valueOccupancyDetected', strings.sensor.occupancy.active, strings.sensor.occupancy.inactive), true);
|
|
8
|
-
}
|
|
9
5
|
getAccessoryType() {
|
|
10
6
|
return AccessoryType.OccupancySensor;
|
|
11
7
|
}
|
|
8
|
+
constructor(dependency) {
|
|
9
|
+
super(dependency);
|
|
10
|
+
this.setup(HKCharacteristicKey.OccupancyDetected, dependency.Characteristic.OccupancyDetected.OCCUPANCY_NOT_DETECTED, 'topicGetOccupancyDetected', this.bindOnUpdateNumericBoolean(HKCharacteristicKey.OccupancyDetected, 'valueOccupancyDetected', strings.sensor.occupancy.active, strings.sensor.occupancy.inactive), true);
|
|
11
|
+
}
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=occupancy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"occupancy.js","sourceRoot":"","sources":["../../../src/accessory/sensor/occupancy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"occupancy.js","sourceRoot":"","sources":["../../../src/accessory/sensor/occupancy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG1E,MAAM,OAAO,wBAAyB,SAAQ,eAAsC;IAExE,gBAAgB;QACxB,OAAO,aAAa,CAAC,eAAe,CAAC;IACvC,CAAC;IAED,YACE,UAA0D;QAC1D,KAAK,CAAC,UAAU,CAAC,CAAC;QAElB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,UAAU,CAAC,cAAc,CAAC,iBAAiB,CAAC,sBAAsB,EAClH,2BAA2B,EAC3B,IAAI,CAAC,0BAA0B,CAC7B,mBAAmB,CAAC,iBAAiB,EACrC,wBAAwB,EACxB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EACrE,IAAI,CAAC,CAAC;IACV,CAAC;CACF"}
|
|
@@ -1,9 +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, SensorConfig } from '../../model/types.js';
|
|
5
3
|
export declare abstract class SensorAccessory<C extends SensorConfig = SensorConfig> extends BaseAccessory<C> {
|
|
6
|
-
constructor(
|
|
7
|
-
private onTamperedUpdate;
|
|
8
|
-
private onFaultUpdate;
|
|
4
|
+
constructor(dependency: MQTTAccessoryDependency<C>);
|
|
9
5
|
}
|
|
@@ -1,36 +1,12 @@
|
|
|
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 SensorAccessory extends BaseAccessory {
|
|
6
|
-
constructor(
|
|
7
|
-
super(
|
|
8
|
-
this.setup(
|
|
9
|
-
this.setup(
|
|
10
|
-
}
|
|
11
|
-
async onTamperedUpdate(topic, value) {
|
|
12
|
-
const tampered = value === this.getPrimitiveValue('valueTampered') ? 1 : 0;
|
|
13
|
-
if (!this.onUpdate(CharacteristicKey.StatusTampered, tampered)) {
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
if (tampered) {
|
|
17
|
-
this.logIfDesired(LogType.WARNING, strings.error.isTampered);
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
this.logIfDesired(strings.error.notTampered);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
async onFaultUpdate(topic, value) {
|
|
24
|
-
const fault = value === this.getPrimitiveValue('valueFault') ? 1 : 0;
|
|
25
|
-
if (!this.onUpdate(CharacteristicKey.StatusFault, fault)) {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
if (fault) {
|
|
29
|
-
this.logIfDesired(LogType.WARNING, strings.error.hasFault);
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
this.logIfDesired(strings.error.noFault);
|
|
33
|
-
}
|
|
6
|
+
constructor(dependency) {
|
|
7
|
+
super(dependency);
|
|
8
|
+
this.setup(HKCharacteristicKey.StatusTampered, dependency.Characteristic.StatusTampered.NOT_TAMPERED, 'topicGetStatusTampered', this.bindOnUpdateBooleanSingle(HKCharacteristicKey.StatusTampered, 'valueTampered', strings.error.isTampered, strings.error.notTampered, LogType.WARNING), false);
|
|
9
|
+
this.setup(HKCharacteristicKey.StatusFault, dependency.Characteristic.StatusFault.NO_FAULT, 'topicGetStatusFault', this.bindOnUpdateBooleanSingle(HKCharacteristicKey.StatusFault, 'valueFault', strings.error.hasFault, strings.error.noFault, LogType.WARNING), false);
|
|
34
10
|
}
|
|
35
11
|
}
|
|
36
12
|
//# sourceMappingURL=sensor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sensor.js","sourceRoot":"","sources":["../../../src/accessory/sensor/sensor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sensor.js","sourceRoot":"","sources":["../../../src/accessory/sensor/sensor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,MAAM,OAAgB,eAAuD,SAAQ,aAAgB;IAEnG,YAAY,UAAsC;QAChD,KAAK,CAAC,UAAU,CAAC,CAAC;QAElB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,cAAc,EAAE,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,YAAY,EAClG,wBAAwB,EACxB,IAAI,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,cAAc,EAAE,eAAe,EAChF,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,EACvE,KAAK,CACN,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,WAAW,EAAE,UAAU,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,EACxF,qBAAqB,EACrB,IAAI,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,WAAW,EAAE,YAAY,EAC1E,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EACjE,KAAK,CACN,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { PlatformAccessory } from 'homebridge';
|
|
2
1
|
import { SensorAccessory } from './sensor.js';
|
|
3
2
|
import { AccessoryType } from '../../model/enums.js';
|
|
4
|
-
import {
|
|
5
|
-
import { Log } from '../../tools/log.js';
|
|
3
|
+
import { MQTTAccessoryDependency, SmokeSensorConfig } from '../../model/types.js';
|
|
6
4
|
export declare class SmokeSensorAccessory extends SensorAccessory<SmokeSensorConfig> {
|
|
7
|
-
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: SmokeSensorConfig, log: Log, isGrouped: boolean);
|
|
8
5
|
protected getAccessoryType(): AccessoryType;
|
|
6
|
+
constructor(dependency: MQTTAccessoryDependency<SmokeSensorConfig>);
|
|
9
7
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { SensorAccessory } from './sensor.js';
|
|
2
2
|
import { strings } from '../../i18n/i18n.js';
|
|
3
|
-
import { AccessoryType,
|
|
3
|
+
import { AccessoryType, HKCharacteristicKey } from '../../model/enums.js';
|
|
4
4
|
export class SmokeSensorAccessory extends SensorAccessory {
|
|
5
|
-
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
6
|
-
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
7
|
-
this.setup(CharacteristicKey.SmokeDetected, Characteristic.SmokeDetected.SMOKE_NOT_DETECTED, 'topicGetSmokeDetected', this.bindOnUpdateNumericBoolean(CharacteristicKey.SmokeDetected, 'valueSmokeDetected', strings.sensor.smoke.active, strings.sensor.smoke.inactive), true);
|
|
8
|
-
}
|
|
9
5
|
getAccessoryType() {
|
|
10
6
|
return AccessoryType.SmokeSensor;
|
|
11
7
|
}
|
|
8
|
+
constructor(dependency) {
|
|
9
|
+
super(dependency);
|
|
10
|
+
this.setup(HKCharacteristicKey.SmokeDetected, dependency.Characteristic.SmokeDetected.SMOKE_NOT_DETECTED, 'topicGetSmokeDetected', this.bindOnUpdateNumericBoolean(HKCharacteristicKey.SmokeDetected, 'valueSmokeDetected', strings.sensor.smoke.active, strings.sensor.smoke.inactive), true);
|
|
11
|
+
}
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=smoke.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smoke.js","sourceRoot":"","sources":["../../../src/accessory/sensor/smoke.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"smoke.js","sourceRoot":"","sources":["../../../src/accessory/sensor/smoke.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG1E,MAAM,OAAO,oBAAqB,SAAQ,eAAkC;IAEhE,gBAAgB;QACxB,OAAO,aAAa,CAAC,WAAW,CAAC;IACnC,CAAC;IAED,YAAY,UAAsD;QAChE,KAAK,CAAC,UAAU,CAAC,CAAC;QAElB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,aAAa,EAAE,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC,kBAAkB,EACtG,uBAAuB,EACvB,IAAI,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,aAAa,EAAE,oBAAoB,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EACpJ,IAAI,CAAC,CAAC;IACV,CAAC;CACF"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { PlatformAccessory } from 'homebridge';
|
|
2
1
|
import { SensorAccessory } from './sensor.js';
|
|
3
2
|
import { AccessoryType } from '../../model/enums.js';
|
|
4
|
-
import {
|
|
5
|
-
import { Log } from '../../tools/log.js';
|
|
3
|
+
import { MQTTAccessoryDependency, TemperatureSensorConfig } from '../../model/types.js';
|
|
6
4
|
export declare class TemperatureSensorAccessory extends SensorAccessory<TemperatureSensorConfig> {
|
|
7
|
-
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: TemperatureSensorConfig, log: Log, isGrouped: boolean);
|
|
8
5
|
protected getAccessoryType(): AccessoryType;
|
|
6
|
+
constructor(dependency: MQTTAccessoryDependency<TemperatureSensorConfig>);
|
|
9
7
|
}
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { SensorAccessory } from './sensor.js';
|
|
2
2
|
import { strings } from '../../i18n/i18n.js';
|
|
3
|
-
import { AccessoryType,
|
|
3
|
+
import { AccessoryType, HKCharacteristicKey } from '../../model/enums.js';
|
|
4
|
+
import { HistoryType } from '../../model/history.js';
|
|
4
5
|
export class TemperatureSensorAccessory extends SensorAccessory {
|
|
5
|
-
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
6
|
-
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
7
|
-
this.setup(CharacteristicKey.CurrentTemperature, 0, 'topicGetCurrentTemperature', this.bindTemperatureUpdate(config, CharacteristicKey.CurrentTemperature, strings.climate.temperatureUpdate), true);
|
|
8
|
-
}
|
|
9
6
|
getAccessoryType() {
|
|
10
7
|
return AccessoryType.TemperatureSensor;
|
|
11
8
|
}
|
|
9
|
+
constructor(dependency) {
|
|
10
|
+
super(dependency);
|
|
11
|
+
this.setup(HKCharacteristicKey.CurrentTemperature, 0, 'topicGetCurrentTemperature', this.bindOnUpdateTemperature(dependency.config, HKCharacteristicKey.CurrentTemperature, strings.climate.temperatureUpdate, (value) => {
|
|
12
|
+
this.recordHistory(HistoryType.WEATHER, { temp: value });
|
|
13
|
+
}), true);
|
|
14
|
+
}
|
|
12
15
|
}
|
|
13
16
|
//# sourceMappingURL=temperature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"temperature.js","sourceRoot":"","sources":["../../../src/accessory/sensor/temperature.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"temperature.js","sourceRoot":"","sources":["../../../src/accessory/sensor/temperature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,MAAM,OAAO,0BAA2B,SAAQ,eAAwC;IAE5E,gBAAgB;QACxB,OAAO,aAAa,CAAC,iBAAiB,CAAC;IACzC,CAAC;IAED,YACE,UAA4D;QAC5D,KAAK,CAAC,UAAU,CAAC,CAAC;QAElB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,CAAC,EAAE,4BAA4B,EAChF,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,MAAM,EAAE,mBAAmB,CAAC,kBAAkB,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE;YACnI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAE,CAAC;QAC5D,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACd,CAAC;CACF"}
|
|
@@ -1,14 +1,8 @@
|
|
|
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, ValveConfig } from '../model/types.js';
|
|
6
4
|
export declare class ValveAccessory extends BaseAccessory<ValveConfig> {
|
|
7
|
-
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: ValveConfig, log: Log, isGrouped: boolean);
|
|
8
5
|
protected getAccessoryType(): AccessoryType;
|
|
9
|
-
|
|
10
|
-
private onSetActive;
|
|
11
|
-
private onSetSetDuration;
|
|
12
|
-
private onSetIsConfigured;
|
|
6
|
+
constructor(dependency: MQTTAccessoryDependency<ValveConfig>);
|
|
13
7
|
private toValveTypeCV;
|
|
14
8
|
}
|
package/dist/accessory/valve.js
CHANGED
|
@@ -1,54 +1,20 @@
|
|
|
1
1
|
import { BaseAccessory } from './abstract/base.js';
|
|
2
2
|
import { strings } from '../i18n/i18n.js';
|
|
3
|
-
import { AccessoryType,
|
|
3
|
+
import { AccessoryType, HKCharacteristicKey, ValveType } from '../model/enums.js';
|
|
4
4
|
import { LogType } from '../tools/log.js';
|
|
5
5
|
export class ValveAccessory extends BaseAccessory {
|
|
6
|
-
constructor(Service, Characteristic, accessory, config, log, isGrouped) {
|
|
7
|
-
super(Service, Characteristic, accessory, config, log, isGrouped);
|
|
8
|
-
this.setCharacteristicValue(CharacteristicKey.ValveType, this.toValveTypeCV(this.config.valveType));
|
|
9
|
-
this.setup(CharacteristicKey.Active, Characteristic.Active.INACTIVE, 'topicGetValveActive', this.bindOnUpdateNumericBoolean(CharacteristicKey.Active, 'valueActive', strings.valve.active, strings.valve.inactive), true, 'topicSetValveActive', this.onSetActive.bind(this));
|
|
10
|
-
this.setup(CharacteristicKey.InUse, Characteristic.InUse.NOT_IN_USE, 'topicGetValveInUse', this.bindOnUpdateNumericBoolean(CharacteristicKey.InUse, 'valueInUse', strings.valve.inUse, strings.valve.notInUse), true);
|
|
11
|
-
this.setup(CharacteristicKey.StatusFault, Characteristic.StatusFault.NO_FAULT, 'topicGetStatusFault', this.onFaultUpdate.bind(this), false);
|
|
12
|
-
this.setup(CharacteristicKey.SetDuration, 0, 'topicGetValveSetDuration', this.bindOnUpdateNumeric(CharacteristicKey.SetDuration, strings.valve.setDuration), false, 'topicSetValveSetDuration', this.onSetSetDuration.bind(this));
|
|
13
|
-
this.setup(CharacteristicKey.RemainingDuration, 0, 'topicGetValveRemainingDuration', this.bindOnUpdateNumeric(CharacteristicKey.RemainingDuration, strings.valve.durationRemaining), false);
|
|
14
|
-
this.setup(CharacteristicKey.IsConfigured, Characteristic.IsConfigured.NOT_CONFIGURED, 'topicGetValveIsConfigured', this.bindOnUpdateNumericBoolean(CharacteristicKey.IsConfigured, 'valueConfigured', strings.valve.configured, strings.valve.notConfigured), false, 'topicSetValveIsConfigured', this.onSetIsConfigured.bind(this));
|
|
15
|
-
}
|
|
16
6
|
getAccessoryType() {
|
|
17
7
|
return AccessoryType.Valve;
|
|
18
8
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
this.logIfDesired(strings.error.noFault);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
async onSetActive(value) {
|
|
32
|
-
if (!this.assert('valueActive', 'valueInactive')) {
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
const active = value === this.Characteristic.Active.ACTIVE;
|
|
36
|
-
const logString = active ? strings.valve.activeSet : strings.valve.inactiveSet;
|
|
37
|
-
const publish = active ? this.config.valueActive : this.config.valueInactive;
|
|
38
|
-
this.onSet(CharacteristicKey.Active, value, publish, 'topicSetValveActive', logString);
|
|
39
|
-
}
|
|
40
|
-
async onSetSetDuration(value) {
|
|
41
|
-
const logString = strings.valve.setDurationFuture.replace('%d', value.toString());
|
|
42
|
-
this.onSet(CharacteristicKey.SetDuration, value, value, 'topicSetValveSetDuration', logString);
|
|
43
|
-
}
|
|
44
|
-
async onSetIsConfigured(value) {
|
|
45
|
-
if (!this.assert('valueConfigured', 'valueNotConfigured')) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
const isConfigured = value === this.Characteristic.IsConfigured.CONFIGURED;
|
|
49
|
-
const logString = isConfigured ? strings.valve.configuredFuture : strings.valve.notConfiguredFuture;
|
|
50
|
-
const publish = isConfigured ? this.config.valueConfigured : this.config.valueNotConfigured;
|
|
51
|
-
this.onSet(CharacteristicKey.IsConfigured, value, publish, 'topicSetValveIsConfigured', logString);
|
|
9
|
+
constructor(dependency) {
|
|
10
|
+
super(dependency);
|
|
11
|
+
this.setCharacteristicValue(HKCharacteristicKey.ValveType, this.toValveTypeCV(this.config.valveType));
|
|
12
|
+
this.setup(HKCharacteristicKey.Active, dependency.Characteristic.Active.INACTIVE, 'topicGetValveActive', this.bindOnUpdateNumericBoolean(HKCharacteristicKey.Active, 'valueActive', strings.valve.active, strings.valve.inactive), true, 'topicSetValveActive', this.bindOnSetBoolean(HKCharacteristicKey.Active, 'topicSetValveActive', 'valueActive', 'valueInactive', dependency.Characteristic.Active.ACTIVE, strings.valve.activeSet, strings.valve.inactiveSet));
|
|
13
|
+
this.setup(HKCharacteristicKey.InUse, dependency.Characteristic.InUse.NOT_IN_USE, 'topicGetValveInUse', this.bindOnUpdateNumericBoolean(HKCharacteristicKey.InUse, 'valueInUse', strings.valve.inUse, strings.valve.notInUse), true);
|
|
14
|
+
this.setup(HKCharacteristicKey.StatusFault, dependency.Characteristic.StatusFault.NO_FAULT, 'topicGetStatusFault', this.bindOnUpdateBooleanSingle(HKCharacteristicKey.StatusFault, 'valueFault', strings.error.hasFault, strings.error.noFault, LogType.WARNING), false);
|
|
15
|
+
this.setup(HKCharacteristicKey.SetDuration, 0, 'topicGetValveSetDuration', this.bindOnUpdateNumeric(HKCharacteristicKey.SetDuration, strings.valve.setDuration), false, 'topicSetValveSetDuration', this.bindOnSetNumeric(HKCharacteristicKey.SetDuration, 'topicSetValveSetDuration', strings.valve.setDurationFuture));
|
|
16
|
+
this.setup(HKCharacteristicKey.RemainingDuration, 0, 'topicGetValveRemainingDuration', this.bindOnUpdateNumeric(HKCharacteristicKey.RemainingDuration, strings.valve.durationRemaining), false);
|
|
17
|
+
this.setup(HKCharacteristicKey.IsConfigured, dependency.Characteristic.IsConfigured.NOT_CONFIGURED, 'topicGetValveIsConfigured', this.bindOnUpdateNumericBoolean(HKCharacteristicKey.IsConfigured, 'valueConfigured', strings.valve.configured, strings.valve.notConfigured), false, 'topicSetValveIsConfigured', this.bindOnSetBoolean(HKCharacteristicKey.IsConfigured, 'topicSetValveIsConfigured', 'valueConfigured', 'valueNotConfigured', dependency.Characteristic.IsConfigured.CONFIGURED, strings.valve.configuredFuture, strings.valve.notConfiguredFuture));
|
|
52
18
|
}
|
|
53
19
|
toValveTypeCV(value) {
|
|
54
20
|
if (value === undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valve.js","sourceRoot":"","sources":["../../src/accessory/valve.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":"valve.js","sourceRoot":"","sources":["../../src/accessory/valve.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { PLATFORM_NAME, PLUGIN_NAME } from './settings.js';
|
|
2
2
|
import { GroupAccessory } from '../accessory/abstract/group.js';
|
|
3
3
|
import { createAccessory, createIdentifier } from '../accessory/abstract/helper.js';
|
|
4
|
+
import { initEveCharacteristics } from '../accessory/characteristic/eve.js';
|
|
4
5
|
import { setLanguage, strings } from '../i18n/i18n.js';
|
|
6
|
+
import { History } from '../model/history.js';
|
|
5
7
|
import { Log } from '../tools/log.js';
|
|
6
|
-
import getVersion from '../tools/version.js';
|
|
7
|
-
import { assert } from '../tools/validation.js';
|
|
8
8
|
import { Properties } from '../tools/properties.js';
|
|
9
|
+
import { assert } from '../tools/validation.js';
|
|
10
|
+
import getVersion from '../tools/version.js';
|
|
9
11
|
export class HomebridgeEasyMQTT {
|
|
10
12
|
config;
|
|
11
13
|
api;
|
|
@@ -19,6 +21,7 @@ export class HomebridgeEasyMQTT {
|
|
|
19
21
|
setLanguage(userLang);
|
|
20
22
|
this.log = new Log(logger, config.verbose);
|
|
21
23
|
this.log.always('v%s | System %s | Node %s | HB v%s | HAPNodeJS v%s', getVersion(), process.platform, process.version, api.serverVersion, api.hap.HAPLibraryVersion());
|
|
24
|
+
initEveCharacteristics(api);
|
|
22
25
|
this.api.on('didFinishLaunching', () => {
|
|
23
26
|
this.setup();
|
|
24
27
|
});
|
|
@@ -44,6 +47,7 @@ export class HomebridgeEasyMQTT {
|
|
|
44
47
|
const groups = new Map();
|
|
45
48
|
const Service = this.api.hap.Service;
|
|
46
49
|
const Characteristic = this.api.hap.Characteristic;
|
|
50
|
+
const history = new History(this.api, this.log);
|
|
47
51
|
for (const accessoryConfig of this.config.accessories) {
|
|
48
52
|
if (!assert(this.log, PLATFORM_NAME, accessoryConfig, 'info') ||
|
|
49
53
|
!assert(this.log, PLATFORM_NAME, accessoryConfig.info, 'name', 'type')) {
|
|
@@ -59,7 +63,8 @@ export class HomebridgeEasyMQTT {
|
|
|
59
63
|
const id = createIdentifier(accessoryConfig.info);
|
|
60
64
|
const uuid = this.api.hap.uuid.generate(id);
|
|
61
65
|
const platformAccessory = this.createPlatformAccessory(accessoryConfig.info.name, uuid);
|
|
62
|
-
const
|
|
66
|
+
const dependency = { Service, Characteristic, platformAccessory, log: this.log, history: history };
|
|
67
|
+
const accessory = createAccessory(dependency, accessoryConfig);
|
|
63
68
|
if (accessory === undefined) {
|
|
64
69
|
continue;
|
|
65
70
|
}
|
|
@@ -69,8 +74,9 @@ export class HomebridgeEasyMQTT {
|
|
|
69
74
|
for (const groupName of groups.keys()) {
|
|
70
75
|
const uuid = this.api.hap.uuid.generate(groupName);
|
|
71
76
|
const platformAccessory = this.createPlatformAccessory(groupName, uuid);
|
|
77
|
+
const dependency = { Service, Characteristic, platformAccessory, log: this.log, history: history };
|
|
72
78
|
const configs = groups.get(groupName);
|
|
73
|
-
const groupAccessory = new GroupAccessory(
|
|
79
|
+
const groupAccessory = new GroupAccessory(dependency, groupName, configs);
|
|
74
80
|
keepIdentifiers.add(uuid);
|
|
75
81
|
this.accessories.push(groupAccessory);
|
|
76
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/homebridge/platform.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG3D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAIvD,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,UAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/homebridge/platform.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var l={arrow:"→",easy_mqtt:"Easy MQTT",github:'<a target="_blank" href="https://github.com/mpatfield/homebridge-easy-mqtt/">GitHub</a>'};function
|
|
1
|
+
"use strict";(()=>{var l={arrow:"→",easy_mqtt:"Easy MQTT",github:'<a target="_blank" href="https://github.com/mpatfield/homebridge-easy-mqtt/">GitHub</a>'};function m(n){document.querySelectorAll("[i18n]").forEach(t=>{let o=t.getAttribute("i18n"),r=n.config[o],e=t.getAttribute("i18n_replace");e&&(r=r.replace("%s",l[e])),t.innerHTML=r})}function S(n){let t=["span","label","legend","option","p"];Array.from(window.parent.document.querySelectorAll(t.join(","))).sort((r,e)=>t.indexOf(r.tagName.toLowerCase())-t.indexOf(e.tagName.toLowerCase())).forEach(r=>{let e=r.innerHTML;e=e.replaceAll(/\$\{config\.(title|description|enumNames)\.([^}]+)\}/g,(d,i,a)=>n.config[i]&&typeof n.config[i]=="object"&&a in n.config[i]?n.config[i][a]:d),r.innerHTML!==e&&(r.innerHTML=e)})}function u(n){let t=Array.from(window.parent.document.querySelectorAll("fieldset legend"));for(let o of t){let e=o.closest("fieldset")?.querySelector('input[type="text"][name="name"]');e&&o.textContent!==(e.value||n.config.title.accessory)&&(o.textContent=e.value!==""?e.value:n.config.title.accessory),e&&!e.dataset.accessoryNameListener&&(e.addEventListener("input",()=>u(n)),e.dataset.accessoryNameListener="true")}}function f(){if(typeof crypto<"u"){if(crypto.randomUUID)return crypto.randomUUID();if(crypto.getRandomValues)return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,n=>{let t=crypto.getRandomValues(new Uint8Array(1))[0]&15;return(n==="x"?t:t&3|8).toString(16)})}return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,n=>{let t=Math.random()*16|0;return(n==="x"?t:t&3|8).toString(16)})}function s(n){let t=!1;n.accessories?.forEach(o=>{if(o.info.id===void 0){let r=f();o.info.id=r,t=!0}}),t&&homebridge.updatePluginConfig([n])}async function x(n){let t=!1;for(let o of n)for(let r of o.accessories??[]){if(r.info.type!=="LockMechanism")continue;let e=r;e.topicGetLockCurrentState!==void 0&&(e.topicGetCurrentLockState=e.topicGetLockCurrentState,e.topicGetLockCurrentState=void 0,t=!0),e.topicGetLockTargetState!==void 0&&(e.topicGetTargetLockState=e.topicGetLockTargetState,e.topicGetLockTargetState=void 0,t=!0),e.topicSetTargetState!==void 0&&(e.topicSetTargetLockState=e.topicSetTargetState,e.topicSetTargetState=void 0,t=!0)}t&&await homebridge.updatePluginConfig(n)}function g(n){document.getElementById("pageIntro").style.display="none",document.getElementById("support").style.display="block",document.getElementById("footer").style.display="block",new MutationObserver(()=>{S(n),u(n)}).observe(window.parent.document.body,{childList:!0,subtree:!0}),homebridge.addEventListener("configChanged",o=>{let r=o.data;r.length&&s(r[0])}),homebridge.showSchemaForm(),homebridge.hideSpinner(),homebridge.enableSaveButton()}function p(n){document.getElementById("introContinue").addEventListener("click",async()=>{g(n)}),document.getElementById("pageIntro").style.display="block",homebridge.hideSpinner()}homebridge.disableSaveButton(),homebridge.showSpinner();(async()=>{let n=await homebridge.i18nCurrentLang(),t=await homebridge.request("i18n",n);m(t);let o=await homebridge.getPluginConfig();o.length?(await x(o),g(t)):(await homebridge.updatePluginConfig([{name:l.easy_mqtt}]),p(t))})();})();
|