homebridge-easy-mqtt 1.1.0-beta.0 → 1.2.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 +27 -11
- package/config.schema.json +187 -92
- package/dist/accessory/{base.d.ts → abstract/base.d.ts} +6 -6
- package/dist/accessory/{base.js → abstract/base.js} +5 -5
- package/dist/accessory/abstract/base.js.map +1 -0
- package/dist/accessory/{statusActive.d.ts → abstract/statusActive.d.ts} +4 -5
- package/dist/accessory/{statusActive.js → abstract/statusActive.js} +7 -9
- package/dist/accessory/abstract/statusActive.js.map +1 -0
- package/dist/accessory/lock.d.ts +5 -6
- package/dist/accessory/lock.js +17 -19
- package/dist/accessory/lock.js.map +1 -1
- package/dist/accessory/{lightbulb.d.ts → onoff/lightbulb.d.ts} +6 -7
- package/dist/accessory/{lightbulb.js → onoff/lightbulb.js} +16 -18
- package/dist/accessory/onoff/lightbulb.js.map +1 -0
- package/dist/accessory/onoff/onoff.d.ts +14 -0
- package/dist/accessory/{onoff.js → onoff/onoff.js} +12 -14
- package/dist/accessory/onoff/onoff.js.map +1 -0
- package/dist/accessory/{outlet.d.ts → onoff/outlet.d.ts} +6 -7
- package/dist/accessory/{outlet.js → onoff/outlet.js} +12 -14
- package/dist/accessory/onoff/outlet.js.map +1 -0
- package/dist/accessory/{switch.d.ts → onoff/switch.d.ts} +4 -4
- package/dist/accessory/{switch.js → onoff/switch.js} +2 -2
- package/dist/accessory/onoff/switch.js.map +1 -0
- package/dist/accessory/security.d.ts +27 -0
- package/dist/accessory/security.js +178 -0
- package/dist/accessory/security.js.map +1 -0
- package/dist/accessory/temperatureSensor.d.ts +5 -6
- package/dist/accessory/temperatureSensor.js +7 -9
- package/dist/accessory/temperatureSensor.js.map +1 -1
- package/dist/homebridge/platform.js +7 -3
- package/dist/homebridge/platform.js.map +1 -1
- package/dist/homebridge-ui/public/index.html +1 -1
- package/dist/i18n/en.d.ts +33 -1
- package/dist/i18n/en.js +33 -1
- package/dist/i18n/en.js.map +1 -1
- package/dist/i18n/i18n.d.ts +34 -3
- package/dist/i18n/i18n.js +0 -6
- package/dist/i18n/i18n.js.map +1 -1
- package/dist/i18n/template.d.ts +33 -1
- package/dist/model/mqtt.js +17 -10
- package/dist/model/mqtt.js.map +1 -1
- package/dist/model/types.d.ts +14 -0
- package/package.json +1 -1
- package/dist/accessory/base.js.map +0 -1
- package/dist/accessory/lightbulb.js.map +0 -1
- package/dist/accessory/onoff.d.ts +0 -15
- package/dist/accessory/onoff.js.map +0 -1
- package/dist/accessory/outlet.js.map +0 -1
- package/dist/accessory/statusActive.js.map +0 -1
- package/dist/accessory/switch.js.map +0 -1
- package/dist/i18n/zz.d.ts +0 -131
- package/dist/i18n/zz.js +0 -6
- package/dist/i18n/zz.js.map +0 -1
package/dist/accessory/lock.d.ts
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { PlatformAccessory, Service } from 'homebridge';
|
|
2
|
-
import { TopicHandler } from './base.js';
|
|
3
|
-
import { StatusActiveAccessory } from './statusActive.js';
|
|
2
|
+
import { TopicHandler } from './abstract/base.js';
|
|
3
|
+
import { StatusActiveAccessory } from './abstract/statusActive.js';
|
|
4
4
|
import { CharacteristicType, LockMechanismConfig, ServiceType } from '../model/types.js';
|
|
5
5
|
import { Log } from '../tools/log.js';
|
|
6
|
-
export declare class LockMechanismAccessory extends StatusActiveAccessory {
|
|
7
|
-
private readonly lockMechanismConfig;
|
|
6
|
+
export declare class LockMechanismAccessory extends StatusActiveAccessory<LockMechanismConfig> {
|
|
8
7
|
private currentState;
|
|
9
8
|
private targetState;
|
|
10
|
-
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory,
|
|
9
|
+
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: LockMechanismConfig, log: Log);
|
|
11
10
|
protected getAccessoryService(): Service;
|
|
12
|
-
|
|
11
|
+
get topicHandlers(): TopicHandler[];
|
|
13
12
|
private getCurrentState;
|
|
14
13
|
private getTargetState;
|
|
15
14
|
private onCurrentStateUpdate;
|
package/dist/accessory/lock.js
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import { makeHandler } from './base.js';
|
|
2
|
-
import { StatusActiveAccessory } from './statusActive.js';
|
|
1
|
+
import { makeHandler } from './abstract/base.js';
|
|
2
|
+
import { StatusActiveAccessory } from './abstract/statusActive.js';
|
|
3
3
|
import { strings } from '../i18n/i18n.js';
|
|
4
4
|
import { toPrimitive } from '../tools/primitive.js';
|
|
5
5
|
export class LockMechanismAccessory extends StatusActiveAccessory {
|
|
6
|
-
lockMechanismConfig;
|
|
7
6
|
currentState;
|
|
8
7
|
targetState;
|
|
9
|
-
constructor(Service, Characteristic, accessory,
|
|
10
|
-
super(Service, Characteristic, accessory,
|
|
11
|
-
this.lockMechanismConfig = lockMechanismConfig;
|
|
8
|
+
constructor(Service, Characteristic, accessory, config, log) {
|
|
9
|
+
super(Service, Characteristic, accessory, config, log, LockMechanismAccessory.name);
|
|
12
10
|
this.currentState = this.Characteristic.LockCurrentState.UNKNOWN;
|
|
13
11
|
this.targetState = this.Characteristic.LockTargetState.SECURED;
|
|
14
12
|
this.accessoryService.getCharacteristic(this.Characteristic.LockCurrentState)
|
|
@@ -25,8 +23,8 @@ export class LockMechanismAccessory extends StatusActiveAccessory {
|
|
|
25
23
|
if (!this.assert('topicGetLockCurrentState', 'topicGetLockTargetState')) {
|
|
26
24
|
return topicHandlers;
|
|
27
25
|
}
|
|
28
|
-
topicHandlers.push(makeHandler(this.
|
|
29
|
-
topicHandlers.push(makeHandler(this.
|
|
26
|
+
topicHandlers.push(makeHandler(this.config.topicGetLockCurrentState, this.onCurrentStateUpdate.bind(this)));
|
|
27
|
+
topicHandlers.push(makeHandler(this.config.topicGetLockTargetState, this.onTargetStateUpdate.bind(this)));
|
|
30
28
|
return topicHandlers;
|
|
31
29
|
}
|
|
32
30
|
async getCurrentState() {
|
|
@@ -48,7 +46,7 @@ export class LockMechanismAccessory extends StatusActiveAccessory {
|
|
|
48
46
|
this.log.error(this.stringForState(this.currentState), this.name);
|
|
49
47
|
}
|
|
50
48
|
else {
|
|
51
|
-
this.logIfDesired(this.stringForState(this.currentState)
|
|
49
|
+
this.logIfDesired(this.stringForState(this.currentState));
|
|
52
50
|
}
|
|
53
51
|
}
|
|
54
52
|
async onTargetStateUpdate(topic, value) {
|
|
@@ -58,7 +56,7 @@ export class LockMechanismAccessory extends StatusActiveAccessory {
|
|
|
58
56
|
}
|
|
59
57
|
this.targetState = target;
|
|
60
58
|
this.accessoryService.updateCharacteristic(this.Characteristic.LockTargetState, this.targetState);
|
|
61
|
-
this.logIfDesired(this.stringForState(this.targetState, true)
|
|
59
|
+
this.logIfDesired(this.stringForState(this.targetState, true));
|
|
62
60
|
}
|
|
63
61
|
async setTargetState(value) {
|
|
64
62
|
if (!this.assert('topicSetTargetState')) {
|
|
@@ -70,11 +68,11 @@ export class LockMechanismAccessory extends StatusActiveAccessory {
|
|
|
70
68
|
return;
|
|
71
69
|
}
|
|
72
70
|
if (this.targetState !== value) {
|
|
73
|
-
this.logIfDesired(this.stringForState(value, true)
|
|
71
|
+
this.logIfDesired(this.stringForState(value, true));
|
|
74
72
|
}
|
|
75
73
|
this.targetState = value;
|
|
76
74
|
this.accessoryService.updateCharacteristic(this.Characteristic.LockTargetState, this.targetState);
|
|
77
|
-
this.publish(this.
|
|
75
|
+
this.publish(this.config.topicSetTargetState, target);
|
|
78
76
|
}
|
|
79
77
|
valueFromTargetState(value) {
|
|
80
78
|
if (value === undefined || !this.assert('valueLockStateSecured', 'valueLockStateUnsecured')) {
|
|
@@ -82,9 +80,9 @@ export class LockMechanismAccessory extends StatusActiveAccessory {
|
|
|
82
80
|
}
|
|
83
81
|
switch (value) {
|
|
84
82
|
case this.Characteristic.LockTargetState.SECURED:
|
|
85
|
-
return toPrimitive(this.
|
|
83
|
+
return toPrimitive(this.config.valueLockStateSecured);
|
|
86
84
|
case this.Characteristic.LockTargetState.UNSECURED:
|
|
87
|
-
return toPrimitive(this.
|
|
85
|
+
return toPrimitive(this.config.valueLockStateUnsecured);
|
|
88
86
|
default:
|
|
89
87
|
return undefined;
|
|
90
88
|
}
|
|
@@ -94,11 +92,11 @@ export class LockMechanismAccessory extends StatusActiveAccessory {
|
|
|
94
92
|
return this.Characteristic.LockCurrentState.UNKNOWN;
|
|
95
93
|
}
|
|
96
94
|
switch (value) {
|
|
97
|
-
case toPrimitive(this.
|
|
95
|
+
case toPrimitive(this.config.valueLockStateSecured):
|
|
98
96
|
return this.Characteristic.LockCurrentState.SECURED;
|
|
99
|
-
case toPrimitive(this.
|
|
97
|
+
case toPrimitive(this.config.valueLockStateUnsecured):
|
|
100
98
|
return this.Characteristic.LockCurrentState.UNSECURED;
|
|
101
|
-
case toPrimitive(this.
|
|
99
|
+
case toPrimitive(this.config.valueLockStateJammed):
|
|
102
100
|
return this.Characteristic.LockCurrentState.JAMMED;
|
|
103
101
|
default:
|
|
104
102
|
return this.Characteristic.LockCurrentState.UNKNOWN;
|
|
@@ -109,9 +107,9 @@ export class LockMechanismAccessory extends StatusActiveAccessory {
|
|
|
109
107
|
return this.Characteristic.LockTargetState.SECURED;
|
|
110
108
|
}
|
|
111
109
|
switch (value) {
|
|
112
|
-
case toPrimitive(this.
|
|
110
|
+
case toPrimitive(this.config.valueLockStateUnsecured):
|
|
113
111
|
return this.Characteristic.LockTargetState.UNSECURED;
|
|
114
|
-
case toPrimitive(this.
|
|
112
|
+
case toPrimitive(this.config.valueLockStateSecured):
|
|
115
113
|
default:
|
|
116
114
|
return this.Characteristic.LockTargetState.SECURED;
|
|
117
115
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/accessory/lock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAgB,MAAM,
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/accessory/lock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAgB,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAK1C,OAAO,EAAa,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAE/D,MAAM,OAAO,sBAAuB,SAAQ,qBAA0C;IAE5E,YAAY,CAAsB;IAClC,WAAW,CAAsB;IAEzC,YACE,OAAoB,EACpB,cAAkC,EAClC,SAA4B,EAC5B,MAA2B,EAC3B,GAAQ;QAER,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAEpF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,CAAC;QACjE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC;QAE/D,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC;aAC1E,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE1C,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC;aACzE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,CAAC;IAES,mBAAmB;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACxH,CAAC;IAGD,IAAa,aAAa;QAExB,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QAE1C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,yBAAyB,CAAC,EAAE,CAAC;YACxE,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5G,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE1G,OAAO,aAAa,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,KAAa,EAAE,KAAgB;QAEhE,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,OAAO,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5B,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAEpG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;QACrC,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAElG,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;YACtE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,KAAa,EAAE,KAAgB;QAE/D,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,MAAM,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAElG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,KAA0B;QAErD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACxC,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAElG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAEO,oBAAoB,CAAC,KAA0B;QAErD,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE,yBAAyB,CAAC,EAAE,CAAC;YAC5F,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,QAAQ,KAAK,EAAE,CAAC;YAChB,KAAK,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO;gBAC9C,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YACxD,KAAK,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,SAAS;gBAChD,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;YAC1D;gBACE,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,qBAAqB,CAAC,KAA4B;QAExD,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE,yBAAyB,CAAC,EAAE,CAAC;YAC5F,OAAO,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,CAAC;QACtD,CAAC;QAED,QAAQ,KAAK,EAAE,CAAC;YAChB,KAAK,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC;gBACjD,OAAO,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,CAAC;YACtD,KAAK,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC;gBACnD,OAAO,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,SAAS,CAAC;YACxD,KAAK,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;gBAChD,OAAO,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC;YACrD;gBACE,OAAO,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO,CAAC;QACtD,CAAC;IACH,CAAC;IAEO,oBAAoB,CAAC,KAA4B;QAEvD,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE,yBAAyB,CAAC,EAAE,CAAC;YAC5F,OAAO,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC;QACrD,CAAC;QAED,QAAQ,KAAK,EAAE,CAAC;YAChB,KAAK,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC;gBACnD,OAAO,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,SAAS,CAAC;YACvD,KAAK,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;YACpD;gBACE,OAAO,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,OAAO,CAAC;QACrD,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,KAA0B,EAAE,SAAkB,KAAK;QACxE,QAAO,KAAK,EAAE,CAAC;YACf,KAAK,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,OAAO;gBAC/C,OAAO,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC;YACrF,KAAK,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,SAAS;gBACjD,OAAO,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC;YACzF,KAAK,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,MAAM;gBAC9C,OAAO,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;YAClC;gBACE,OAAO,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;QACnC,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,17 +1,16 @@
|
|
|
1
1
|
import { PlatformAccessory, Service } from 'homebridge';
|
|
2
|
-
import { TopicHandler } from '
|
|
2
|
+
import { TopicHandler } from '../abstract/base.js';
|
|
3
3
|
import { OnOffAccessory } from './onoff.js';
|
|
4
|
-
import { CharacteristicType, LightbulbConfig, ServiceType } from '
|
|
5
|
-
import { Log } from '
|
|
6
|
-
export declare class LightbulbAccessory extends OnOffAccessory {
|
|
7
|
-
private readonly lightbulbConfig;
|
|
4
|
+
import { CharacteristicType, LightbulbConfig, ServiceType } from '../../model/types.js';
|
|
5
|
+
import { Log } from '../../tools/log.js';
|
|
6
|
+
export declare class LightbulbAccessory extends OnOffAccessory<LightbulbConfig> {
|
|
8
7
|
private brightness;
|
|
9
8
|
private hue;
|
|
10
9
|
private colorTemperature;
|
|
11
10
|
private saturation;
|
|
12
|
-
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory,
|
|
11
|
+
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: LightbulbConfig, log: Log);
|
|
13
12
|
protected getAccessoryService(): Service;
|
|
14
|
-
|
|
13
|
+
get topicHandlers(): TopicHandler[];
|
|
15
14
|
private getBrightness;
|
|
16
15
|
private getHue;
|
|
17
16
|
private getColorTemperature;
|
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
import { makeHandler } from '
|
|
1
|
+
import { makeHandler } from '../abstract/base.js';
|
|
2
2
|
import { OnOffAccessory } from './onoff.js';
|
|
3
|
-
import { strings } from '
|
|
4
|
-
import { toPrimitive } from '
|
|
3
|
+
import { strings } from '../../i18n/i18n.js';
|
|
4
|
+
import { toPrimitive } from '../../tools/primitive.js';
|
|
5
5
|
export class LightbulbAccessory extends OnOffAccessory {
|
|
6
|
-
lightbulbConfig;
|
|
7
6
|
brightness = 100;
|
|
8
7
|
hue = 0;
|
|
9
8
|
colorTemperature = 500;
|
|
10
9
|
saturation = 100;
|
|
11
|
-
constructor(Service, Characteristic, accessory,
|
|
12
|
-
super(Service, Characteristic, accessory,
|
|
13
|
-
this.lightbulbConfig = lightbulbConfig;
|
|
10
|
+
constructor(Service, Characteristic, accessory, config, log) {
|
|
11
|
+
super(Service, Characteristic, accessory, config, log, LightbulbAccessory.name);
|
|
14
12
|
this.accessoryService.getCharacteristic(this.Characteristic.Brightness)
|
|
15
13
|
.onGet(this.getBrightness.bind(this))
|
|
16
14
|
.onSet(this.setBrightness.bind(this));
|
|
@@ -29,17 +27,17 @@ export class LightbulbAccessory extends OnOffAccessory {
|
|
|
29
27
|
}
|
|
30
28
|
get topicHandlers() {
|
|
31
29
|
const topicHandlers = super.topicHandlers;
|
|
32
|
-
if (this.
|
|
33
|
-
topicHandlers.push(makeHandler(this.
|
|
30
|
+
if (this.config.topicGetBrightness) {
|
|
31
|
+
topicHandlers.push(makeHandler(this.config.topicGetBrightness, this.onBrightnessUpdate.bind(this)));
|
|
34
32
|
}
|
|
35
|
-
if (this.
|
|
36
|
-
topicHandlers.push(makeHandler(this.
|
|
33
|
+
if (this.config.topicGetHue) {
|
|
34
|
+
topicHandlers.push(makeHandler(this.config.topicGetHue, this.onHueUpdate.bind(this)));
|
|
37
35
|
}
|
|
38
|
-
if (this.
|
|
39
|
-
topicHandlers.push(makeHandler(this.
|
|
36
|
+
if (this.config.topicGetColorTemperature) {
|
|
37
|
+
topicHandlers.push(makeHandler(this.config.topicGetColorTemperature, this.onColorTemperatureUpdate.bind(this)));
|
|
40
38
|
}
|
|
41
|
-
if (this.
|
|
42
|
-
topicHandlers.push(makeHandler(this.
|
|
39
|
+
if (this.config.topicGetSaturation) {
|
|
40
|
+
topicHandlers.push(makeHandler(this.config.topicGetSaturation, this.onSaturationUpdate.bind(this)));
|
|
43
41
|
}
|
|
44
42
|
return topicHandlers;
|
|
45
43
|
}
|
|
@@ -86,17 +84,17 @@ export class LightbulbAccessory extends OnOffAccessory {
|
|
|
86
84
|
this[propertyKey] = value;
|
|
87
85
|
const characteristicKey = this.toCharacteristicKey(propertyKey);
|
|
88
86
|
this.accessoryService.updateCharacteristic(this.Characteristic[characteristicKey], value);
|
|
89
|
-
this.logIfDesired(logString,
|
|
87
|
+
this.logIfDesired(logString, value.toString());
|
|
90
88
|
}
|
|
91
89
|
_set(topic, propertyKey, value, logString) {
|
|
92
90
|
if (!this.assert(topic)) {
|
|
93
91
|
return;
|
|
94
92
|
}
|
|
95
93
|
this[propertyKey] = value;
|
|
96
|
-
this.logIfDesired(logString,
|
|
94
|
+
this.logIfDesired(logString, value.toString());
|
|
97
95
|
const characteristicKey = this.toCharacteristicKey(propertyKey);
|
|
98
96
|
this.accessoryService.updateCharacteristic(this.Characteristic[characteristicKey], value);
|
|
99
|
-
this.publish(this.
|
|
97
|
+
this.publish(this.config[topic], toPrimitive(value));
|
|
100
98
|
}
|
|
101
99
|
toCharacteristicKey(key) {
|
|
102
100
|
const capitalized = key.charAt(0).toUpperCase() + key.slice(1);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lightbulb.js","sourceRoot":"","sources":["../../../src/accessory/onoff/lightbulb.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PlatformAccessory } from 'homebridge';
|
|
2
|
+
import { TopicHandler } from '../abstract/base.js';
|
|
3
|
+
import { StatusActiveAccessory } from '../abstract/statusActive.js';
|
|
4
|
+
import { CharacteristicType, OnOffConfig, ServiceType } from '../../model/types.js';
|
|
5
|
+
import { Log } from '../../tools/log.js';
|
|
6
|
+
export declare abstract class OnOffAccessory<C extends OnOffConfig = OnOffConfig> extends StatusActiveAccessory<C> {
|
|
7
|
+
private on;
|
|
8
|
+
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: C, log: Log, className: string);
|
|
9
|
+
get topicHandlers(): TopicHandler[];
|
|
10
|
+
private onOnUpdate;
|
|
11
|
+
private getOn;
|
|
12
|
+
private setOn;
|
|
13
|
+
private stringForState;
|
|
14
|
+
}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import { makeHandler } from '
|
|
2
|
-
import { StatusActiveAccessory } from '
|
|
3
|
-
import { strings } from '
|
|
4
|
-
import { toPrimitive } from '
|
|
1
|
+
import { makeHandler } from '../abstract/base.js';
|
|
2
|
+
import { StatusActiveAccessory } from '../abstract/statusActive.js';
|
|
3
|
+
import { strings } from '../../i18n/i18n.js';
|
|
4
|
+
import { toPrimitive } from '../../tools/primitive.js';
|
|
5
5
|
export class OnOffAccessory extends StatusActiveAccessory {
|
|
6
|
-
onOffConfig;
|
|
7
6
|
on = false;
|
|
8
|
-
constructor(Service, Characteristic, accessory,
|
|
9
|
-
super(Service, Characteristic, accessory,
|
|
10
|
-
this.onOffConfig = onOffConfig;
|
|
7
|
+
constructor(Service, Characteristic, accessory, config, log, className) {
|
|
8
|
+
super(Service, Characteristic, accessory, config, log, className);
|
|
11
9
|
this.accessoryService.getCharacteristic(Characteristic.On)
|
|
12
10
|
.onGet(this.getOn.bind(this))
|
|
13
11
|
.onSet(this.setOn.bind(this));
|
|
@@ -17,20 +15,20 @@ export class OnOffAccessory extends StatusActiveAccessory {
|
|
|
17
15
|
if (!this.assert('topicGetOn')) {
|
|
18
16
|
return topicHandlers;
|
|
19
17
|
}
|
|
20
|
-
topicHandlers.push(makeHandler(this.
|
|
18
|
+
topicHandlers.push(makeHandler(this.config.topicGetOn, this.onOnUpdate.bind(this)));
|
|
21
19
|
return topicHandlers;
|
|
22
20
|
}
|
|
23
21
|
async onOnUpdate(topic, value) {
|
|
24
22
|
if (!this.assert('valueOn')) {
|
|
25
23
|
return;
|
|
26
24
|
}
|
|
27
|
-
const on = value === toPrimitive(this.
|
|
25
|
+
const on = value === toPrimitive(this.config.valueOn);
|
|
28
26
|
if (on === this.on) {
|
|
29
27
|
return;
|
|
30
28
|
}
|
|
31
29
|
this.on = on;
|
|
32
30
|
this.accessoryService.updateCharacteristic(this.Characteristic.On, this.on);
|
|
33
|
-
this.logIfDesired(this.stringForState(this.on)
|
|
31
|
+
this.logIfDesired(this.stringForState(this.on));
|
|
34
32
|
}
|
|
35
33
|
async getOn() {
|
|
36
34
|
return this.on;
|
|
@@ -39,11 +37,11 @@ export class OnOffAccessory extends StatusActiveAccessory {
|
|
|
39
37
|
if (!this.assert('topicSetOn', 'valueOn', 'valueOff')) {
|
|
40
38
|
return;
|
|
41
39
|
}
|
|
42
|
-
const on = value ? this.
|
|
40
|
+
const on = value ? this.config.valueOn : this.config.valueOff;
|
|
43
41
|
this.on = value;
|
|
44
|
-
this.logIfDesired(this.stringForState(this.on, true)
|
|
42
|
+
this.logIfDesired(this.stringForState(this.on, true));
|
|
45
43
|
this.accessoryService.updateCharacteristic(this.Characteristic.On, this.on);
|
|
46
|
-
this.publish(this.
|
|
44
|
+
this.publish(this.config.topicSetOn, on);
|
|
47
45
|
}
|
|
48
46
|
stringForState(on, future = false) {
|
|
49
47
|
if (on) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onoff.js","sourceRoot":"","sources":["../../../src/accessory/onoff/onoff.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { PlatformAccessory, Service } from 'homebridge';
|
|
2
|
-
import { TopicHandler } from './base.js';
|
|
3
2
|
import { OnOffAccessory } from './onoff.js';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
import { TopicHandler } from '../abstract/base.js';
|
|
4
|
+
import { CharacteristicType, OutletConfig, ServiceType } from '../../model/types.js';
|
|
5
|
+
import { Log } from '../../tools/log.js';
|
|
6
|
+
export declare class OutletAccessory extends OnOffAccessory<OutletConfig> {
|
|
8
7
|
private inUse;
|
|
9
|
-
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory,
|
|
8
|
+
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: OutletConfig, log: Log);
|
|
10
9
|
protected getAccessoryService(): Service;
|
|
11
|
-
|
|
10
|
+
get topicHandlers(): TopicHandler[];
|
|
12
11
|
private getInUse;
|
|
13
12
|
private onInUseUpdate;
|
|
14
13
|
private setInUse;
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import { makeHandler } from './base.js';
|
|
2
1
|
import { OnOffAccessory } from './onoff.js';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { makeHandler } from '../abstract/base.js';
|
|
3
|
+
import { strings } from '../../i18n/i18n.js';
|
|
4
|
+
import { toPrimitive } from '../../tools/primitive.js';
|
|
5
5
|
export class OutletAccessory extends OnOffAccessory {
|
|
6
|
-
outletConfig;
|
|
7
6
|
inUse = false;
|
|
8
|
-
constructor(Service, Characteristic, accessory,
|
|
9
|
-
super(Service, Characteristic, accessory,
|
|
10
|
-
this.outletConfig = outletConfig;
|
|
7
|
+
constructor(Service, Characteristic, accessory, config, log) {
|
|
8
|
+
super(Service, Characteristic, accessory, config, log, OutletAccessory.name);
|
|
11
9
|
this.accessoryService.getCharacteristic(this.Characteristic.OutletInUse)
|
|
12
10
|
.onGet(this.getInUse.bind(this))
|
|
13
11
|
.onSet(this.setInUse.bind(this));
|
|
@@ -17,8 +15,8 @@ export class OutletAccessory extends OnOffAccessory {
|
|
|
17
15
|
}
|
|
18
16
|
get topicHandlers() {
|
|
19
17
|
const topicHandlers = super.topicHandlers;
|
|
20
|
-
if (this.
|
|
21
|
-
topicHandlers.push(makeHandler(this.
|
|
18
|
+
if (this.config.topicGetOutletInUse) {
|
|
19
|
+
topicHandlers.push(makeHandler(this.config.topicGetOutletInUse, this.onInUseUpdate.bind(this)));
|
|
22
20
|
}
|
|
23
21
|
return topicHandlers;
|
|
24
22
|
}
|
|
@@ -29,23 +27,23 @@ export class OutletAccessory extends OnOffAccessory {
|
|
|
29
27
|
if (!this.assert('valueOutletInUse')) {
|
|
30
28
|
return;
|
|
31
29
|
}
|
|
32
|
-
const inUse = value === toPrimitive(this.
|
|
30
|
+
const inUse = value === toPrimitive(this.config.valueOutletInUse);
|
|
33
31
|
if (inUse === this.inUse) {
|
|
34
32
|
return;
|
|
35
33
|
}
|
|
36
34
|
this.inUse = inUse;
|
|
37
35
|
this.accessoryService.updateCharacteristic(this.Characteristic.OutletInUse, this.inUse);
|
|
38
|
-
this.logIfDesired(this.stringForInUse(this.inUse)
|
|
36
|
+
this.logIfDesired(this.stringForInUse(this.inUse));
|
|
39
37
|
}
|
|
40
38
|
async setInUse(value) {
|
|
41
39
|
if (!this.assert('topicSetOutletInUse', 'valueOutletInUse', 'valueOutletNotInUse')) {
|
|
42
40
|
return;
|
|
43
41
|
}
|
|
44
|
-
const inUse = value ? this.
|
|
42
|
+
const inUse = value ? this.config.valueOutletInUse : this.config.valueOutletNotInUse;
|
|
45
43
|
this.inUse = value;
|
|
46
|
-
this.logIfDesired(this.stringForInUse(this.inUse, true)
|
|
44
|
+
this.logIfDesired(this.stringForInUse(this.inUse, true));
|
|
47
45
|
this.accessoryService.updateCharacteristic(this.Characteristic.OutletInUse, this.inUse);
|
|
48
|
-
this.publish(this.
|
|
46
|
+
this.publish(this.config.topicSetOutletInUse, inUse);
|
|
49
47
|
}
|
|
50
48
|
stringForInUse(inUse, future = false) {
|
|
51
49
|
if (inUse) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outlet.js","sourceRoot":"","sources":["../../../src/accessory/onoff/outlet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { PlatformAccessory, Service } from 'homebridge';
|
|
2
2
|
import { OnOffAccessory } from './onoff.js';
|
|
3
|
-
import { CharacteristicType, ServiceType, SwitchConfig } from '
|
|
4
|
-
import { Log } from '
|
|
5
|
-
export declare class SwitchAccessory extends OnOffAccessory {
|
|
6
|
-
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory,
|
|
3
|
+
import { CharacteristicType, ServiceType, SwitchConfig } from '../../model/types.js';
|
|
4
|
+
import { Log } from '../../tools/log.js';
|
|
5
|
+
export declare class SwitchAccessory extends OnOffAccessory<SwitchConfig> {
|
|
6
|
+
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: SwitchConfig, log: Log);
|
|
7
7
|
protected getAccessoryService(): Service;
|
|
8
8
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { OnOffAccessory } from './onoff.js';
|
|
2
2
|
export class SwitchAccessory extends OnOffAccessory {
|
|
3
|
-
constructor(Service, Characteristic, accessory,
|
|
4
|
-
super(Service, Characteristic, accessory,
|
|
3
|
+
constructor(Service, Characteristic, accessory, config, log) {
|
|
4
|
+
super(Service, Characteristic, accessory, config, log, SwitchAccessory.name);
|
|
5
5
|
}
|
|
6
6
|
getAccessoryService() {
|
|
7
7
|
return this.accessory.getService(this.Service.Switch) || this.accessory.addService(this.Service.Switch);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch.js","sourceRoot":"","sources":["../../../src/accessory/onoff/switch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAM5C,MAAM,OAAO,eAAgB,SAAQ,cAA4B;IAE/D,YACE,OAAoB,EACpB,cAAkC,EAClC,SAA4B,EAC5B,MAAoB,EACpB,GAAQ;QAER,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/E,CAAC;IAES,mBAAmB;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1G,CAAC;CACF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { PlatformAccessory, Service } from 'homebridge';
|
|
2
|
+
import { StatusActiveAccessory } from './abstract/statusActive.js';
|
|
3
|
+
import { CharacteristicType, SecuritySystemConfig, ServiceType } from '../model/types.js';
|
|
4
|
+
import { Log } from '../tools/log.js';
|
|
5
|
+
import { TopicHandler } from './abstract/base.js';
|
|
6
|
+
export declare class SecuritySystemAccessory extends StatusActiveAccessory<SecuritySystemConfig> {
|
|
7
|
+
private currentState;
|
|
8
|
+
private targetState;
|
|
9
|
+
private isTampered;
|
|
10
|
+
private hasStatusFault;
|
|
11
|
+
private readonly STATE_MAP;
|
|
12
|
+
constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: SecuritySystemConfig, log: Log);
|
|
13
|
+
protected getAccessoryService(): Service;
|
|
14
|
+
get topicHandlers(): TopicHandler[];
|
|
15
|
+
private getCurrentState;
|
|
16
|
+
private getTargetState;
|
|
17
|
+
private getIsTampered;
|
|
18
|
+
private getHasStatusFault;
|
|
19
|
+
private onCurrentStateUpdate;
|
|
20
|
+
private onTargetStateUpdate;
|
|
21
|
+
private onTamperedUpdate;
|
|
22
|
+
private onStatusFaultUpdate;
|
|
23
|
+
private setTargetState;
|
|
24
|
+
private fromCVState;
|
|
25
|
+
private toCVState;
|
|
26
|
+
private stateStringForCV;
|
|
27
|
+
}
|