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.
Files changed (54) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/README.md +27 -11
  3. package/config.schema.json +187 -92
  4. package/dist/accessory/{base.d.ts → abstract/base.d.ts} +6 -6
  5. package/dist/accessory/{base.js → abstract/base.js} +5 -5
  6. package/dist/accessory/abstract/base.js.map +1 -0
  7. package/dist/accessory/{statusActive.d.ts → abstract/statusActive.d.ts} +4 -5
  8. package/dist/accessory/{statusActive.js → abstract/statusActive.js} +7 -9
  9. package/dist/accessory/abstract/statusActive.js.map +1 -0
  10. package/dist/accessory/lock.d.ts +5 -6
  11. package/dist/accessory/lock.js +17 -19
  12. package/dist/accessory/lock.js.map +1 -1
  13. package/dist/accessory/{lightbulb.d.ts → onoff/lightbulb.d.ts} +6 -7
  14. package/dist/accessory/{lightbulb.js → onoff/lightbulb.js} +16 -18
  15. package/dist/accessory/onoff/lightbulb.js.map +1 -0
  16. package/dist/accessory/onoff/onoff.d.ts +14 -0
  17. package/dist/accessory/{onoff.js → onoff/onoff.js} +12 -14
  18. package/dist/accessory/onoff/onoff.js.map +1 -0
  19. package/dist/accessory/{outlet.d.ts → onoff/outlet.d.ts} +6 -7
  20. package/dist/accessory/{outlet.js → onoff/outlet.js} +12 -14
  21. package/dist/accessory/onoff/outlet.js.map +1 -0
  22. package/dist/accessory/{switch.d.ts → onoff/switch.d.ts} +4 -4
  23. package/dist/accessory/{switch.js → onoff/switch.js} +2 -2
  24. package/dist/accessory/onoff/switch.js.map +1 -0
  25. package/dist/accessory/security.d.ts +27 -0
  26. package/dist/accessory/security.js +178 -0
  27. package/dist/accessory/security.js.map +1 -0
  28. package/dist/accessory/temperatureSensor.d.ts +5 -6
  29. package/dist/accessory/temperatureSensor.js +7 -9
  30. package/dist/accessory/temperatureSensor.js.map +1 -1
  31. package/dist/homebridge/platform.js +7 -3
  32. package/dist/homebridge/platform.js.map +1 -1
  33. package/dist/homebridge-ui/public/index.html +1 -1
  34. package/dist/i18n/en.d.ts +33 -1
  35. package/dist/i18n/en.js +33 -1
  36. package/dist/i18n/en.js.map +1 -1
  37. package/dist/i18n/i18n.d.ts +34 -3
  38. package/dist/i18n/i18n.js +0 -6
  39. package/dist/i18n/i18n.js.map +1 -1
  40. package/dist/i18n/template.d.ts +33 -1
  41. package/dist/model/mqtt.js +17 -10
  42. package/dist/model/mqtt.js.map +1 -1
  43. package/dist/model/types.d.ts +14 -0
  44. package/package.json +1 -1
  45. package/dist/accessory/base.js.map +0 -1
  46. package/dist/accessory/lightbulb.js.map +0 -1
  47. package/dist/accessory/onoff.d.ts +0 -15
  48. package/dist/accessory/onoff.js.map +0 -1
  49. package/dist/accessory/outlet.js.map +0 -1
  50. package/dist/accessory/statusActive.js.map +0 -1
  51. package/dist/accessory/switch.js.map +0 -1
  52. package/dist/i18n/zz.d.ts +0 -131
  53. package/dist/i18n/zz.js +0 -6
  54. package/dist/i18n/zz.js.map +0 -1
@@ -0,0 +1,178 @@
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
+ export class SecuritySystemAccessory extends StatusActiveAccessory {
6
+ currentState;
7
+ targetState;
8
+ isTampered = 0;
9
+ hasStatusFault = 0;
10
+ STATE_MAP;
11
+ constructor(Service, Characteristic, accessory, config, log) {
12
+ super(Service, Characteristic, accessory, config, log, SecuritySystemAccessory.name);
13
+ this.currentState = Characteristic.SecuritySystemCurrentState.DISARMED;
14
+ this.targetState = Characteristic.SecuritySystemTargetState.DISARM;
15
+ this.STATE_MAP = new Map([
16
+ ['valueArmStay', Characteristic.SecuritySystemCurrentState.STAY_ARM],
17
+ ['valueArmAway', Characteristic.SecuritySystemCurrentState.AWAY_ARM],
18
+ ['valueArmNight', Characteristic.SecuritySystemCurrentState.NIGHT_ARM],
19
+ ['valueDisarm', Characteristic.SecuritySystemCurrentState.DISARMED],
20
+ ['valueAlarmTriggered', Characteristic.SecuritySystemCurrentState.ALARM_TRIGGERED],
21
+ ]);
22
+ const validCurrentStates = Array.from(this.STATE_MAP.keys()).filter((key) => this.config[key] !== undefined);
23
+ if (validCurrentStates.length === 0) {
24
+ this.log.error(strings.security.noStateValues, this.name);
25
+ return;
26
+ }
27
+ this.accessoryService.getCharacteristic(Characteristic.SecuritySystemCurrentState)
28
+ .setProps({ validValues: validCurrentStates.map((key) => this.STATE_MAP.get(key)) })
29
+ .onGet(this.getCurrentState.bind(this));
30
+ const validTargetStates = validCurrentStates.filter((key) => key !== 'valueAlarmTriggered');
31
+ this.accessoryService.getCharacteristic(Characteristic.SecuritySystemTargetState)
32
+ .setProps({ validValues: validTargetStates.map((key) => this.STATE_MAP.get(key)) })
33
+ .onGet(this.getTargetState.bind(this))
34
+ .onSet(this.setTargetState.bind(this));
35
+ this.accessoryService.getCharacteristic(Characteristic.StatusTampered)
36
+ .onGet(this.getIsTampered.bind(this));
37
+ this.accessoryService.getCharacteristic(Characteristic.StatusFault)
38
+ .onGet(this.getHasStatusFault.bind(this));
39
+ }
40
+ getAccessoryService() {
41
+ return this.accessory.getService(this.Service.SecuritySystem) || this.accessory.addService(this.Service.SecuritySystem);
42
+ }
43
+ get topicHandlers() {
44
+ const topicHandlers = super.topicHandlers;
45
+ if (!this.assert('topicGetCurrentSecurityState', 'topicGetTargetSecurityState')) {
46
+ return topicHandlers;
47
+ }
48
+ topicHandlers.push(makeHandler(this.config.topicGetCurrentSecurityState, this.onCurrentStateUpdate.bind(this)));
49
+ topicHandlers.push(makeHandler(this.config.topicGetTargetSecurityState, this.onTargetStateUpdate.bind(this)));
50
+ if (this.config.topicGetStatusTampered) {
51
+ topicHandlers.push(makeHandler(this.config.topicGetStatusTampered, this.onTamperedUpdate.bind(this)));
52
+ }
53
+ if (this.config.topicGetStatusFault) {
54
+ topicHandlers.push(makeHandler(this.config.topicGetStatusFault, this.onStatusFaultUpdate.bind(this)));
55
+ }
56
+ return topicHandlers;
57
+ }
58
+ async getCurrentState() {
59
+ return this.currentState;
60
+ }
61
+ async getTargetState() {
62
+ return this.targetState;
63
+ }
64
+ async getIsTampered() {
65
+ return this.isTampered;
66
+ }
67
+ async getHasStatusFault() {
68
+ return this.hasStatusFault;
69
+ }
70
+ async onCurrentStateUpdate(topic, value) {
71
+ const current = this.toCVState(value);
72
+ if (current === undefined || current === this.currentState) {
73
+ return;
74
+ }
75
+ this.currentState = current;
76
+ this.accessoryService.updateCharacteristic(this.Characteristic.SecuritySystemCurrentState, this.currentState);
77
+ this.targetState = this.currentState;
78
+ this.accessoryService.updateCharacteristic(this.Characteristic.SecuritySystemTargetState, this.targetState);
79
+ if (this.currentState === this.Characteristic.SecuritySystemCurrentState.ALARM_TRIGGERED) {
80
+ this.log.error(this.stateStringForCV(this.currentState), this.name);
81
+ }
82
+ else {
83
+ this.logIfDesired(this.stateStringForCV(this.currentState));
84
+ }
85
+ }
86
+ async onTargetStateUpdate(topic, value) {
87
+ const target = this.toCVState(value);
88
+ if (target === undefined || target === this.targetState) {
89
+ return;
90
+ }
91
+ this.targetState = target;
92
+ this.accessoryService.updateCharacteristic(this.Characteristic.SecuritySystemTargetState, this.targetState);
93
+ this.logIfDesired(this.stateStringForCV(this.targetState, true));
94
+ }
95
+ async onTamperedUpdate(topic, value) {
96
+ if (!this.assert('valueTampered')) {
97
+ return;
98
+ }
99
+ const isTampered = value === toPrimitive(this.config.valueTampered) ? 1 : 0;
100
+ if (isTampered === this.isTampered) {
101
+ return;
102
+ }
103
+ this.isTampered = isTampered;
104
+ this.accessoryService.updateCharacteristic(this.Characteristic.StatusTampered, this.isTampered);
105
+ this.logIfDesired(this.isTampered ? strings.security.isTampered : strings.security.notTampered);
106
+ }
107
+ async onStatusFaultUpdate(topic, value) {
108
+ if (!this.assert('valueFault')) {
109
+ return;
110
+ }
111
+ const hasStatusFault = value === toPrimitive(this.config.valueFault) ? 1 : 0;
112
+ if (hasStatusFault === this.hasStatusFault) {
113
+ return;
114
+ }
115
+ this.hasStatusFault = hasStatusFault;
116
+ this.accessoryService.updateCharacteristic(this.Characteristic.StatusFault, this.hasStatusFault);
117
+ this.logIfDesired(this.hasStatusFault ? strings.security.hasFault : strings.security.noFault);
118
+ }
119
+ async setTargetState(value) {
120
+ if (!this.assert('topicSetTargetSecurityState')) {
121
+ return;
122
+ }
123
+ const target = this.fromCVState(value);
124
+ if (target === undefined) {
125
+ return;
126
+ }
127
+ if (this.targetState !== value) {
128
+ this.logIfDesired(this.stateStringForCV(value, true));
129
+ }
130
+ this.targetState = value;
131
+ this.accessoryService.updateCharacteristic(this.Characteristic.SecuritySystemTargetState, this.targetState);
132
+ this.publish(this.config.topicSetTargetSecurityState, target);
133
+ }
134
+ fromCVState(value) {
135
+ let primative = undefined;
136
+ this.STATE_MAP.forEach((test, key) => {
137
+ if (value === test) {
138
+ primative = toPrimitive(this.config[key]);
139
+ }
140
+ });
141
+ if (primative === undefined) {
142
+ this.log.error(strings.security.badTarget, this.name, value);
143
+ }
144
+ return primative;
145
+ }
146
+ toCVState(value) {
147
+ switch (value) {
148
+ case toPrimitive(this.config.valueArmStay):
149
+ return this.STATE_MAP.get('valueArmStay');
150
+ case toPrimitive(this.config.valueArmAway):
151
+ return this.STATE_MAP.get('valueArmAway');
152
+ case toPrimitive(this.config.valueArmNight):
153
+ return this.STATE_MAP.get('valueArmNight');
154
+ case toPrimitive(this.config.valueDisarm):
155
+ return this.STATE_MAP.get('valueDisarm');
156
+ case toPrimitive(this.config.valueAlarmTriggered):
157
+ return this.STATE_MAP.get('valueAlarmTriggered');
158
+ }
159
+ this.log.error(strings.security.unknownValue, this.name, value);
160
+ }
161
+ stateStringForCV(state, future = false) {
162
+ switch (state) {
163
+ case this.Characteristic.SecuritySystemCurrentState.STAY_ARM:
164
+ return future ? strings.security.stateFutureArmStay : strings.security.stateCurrentArmStay;
165
+ case this.Characteristic.SecuritySystemCurrentState.AWAY_ARM:
166
+ return future ? strings.security.stateFutureArmAway : strings.security.stateCurrentArmAway;
167
+ case this.Characteristic.SecuritySystemCurrentState.NIGHT_ARM:
168
+ return future ? strings.security.stateFutureArmNight : strings.security.stateCurrentArmNight;
169
+ case this.Characteristic.SecuritySystemCurrentState.DISARMED:
170
+ return future ? strings.security.stateFutureDisarm : strings.security.stateCurrentDisarm;
171
+ case this.Characteristic.SecuritySystemCurrentState.ALARM_TRIGGERED:
172
+ return strings.security.stateCurrentAlarmTriggered;
173
+ default:
174
+ return strings.security.stateUnknown;
175
+ }
176
+ }
177
+ }
178
+ //# sourceMappingURL=security.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/accessory/security.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
- import { StatusActiveAccessory } from './statusActive.js';
2
+ import { TopicHandler } from './abstract/base.js';
3
+ import { StatusActiveAccessory } from './abstract/statusActive.js';
4
4
  import { CharacteristicType, ServiceType, TemperatureSensorConfig } from '../model/types.js';
5
5
  import { Log } from '../tools/log.js';
6
- export declare class TemperatureSensorAccessory extends StatusActiveAccessory {
7
- private readonly temperatureSensorConfig;
6
+ export declare class TemperatureSensorAccessory extends StatusActiveAccessory<TemperatureSensorConfig> {
8
7
  private currentTemperature;
9
- constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, temperatureSensorConfig: TemperatureSensorConfig, log: Log);
8
+ constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: TemperatureSensorConfig, log: Log);
10
9
  protected getAccessoryService(): Service;
11
- protected get topicHandlers(): TopicHandler[];
10
+ get topicHandlers(): TopicHandler[];
12
11
  private onCurrentTemperatureUpdate;
13
12
  private getCurrentTemperature;
14
13
  }
@@ -1,15 +1,13 @@
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 { toNumber } from '../tools/primitive.js';
5
5
  import { toCelsius } from '../tools/temperature.js';
6
6
  import { TemperatureUnits } from '../model/enums.js';
7
7
  export class TemperatureSensorAccessory extends StatusActiveAccessory {
8
- temperatureSensorConfig;
9
8
  currentTemperature = 0;
10
- constructor(Service, Characteristic, accessory, temperatureSensorConfig, log) {
11
- super(Service, Characteristic, accessory, temperatureSensorConfig, log, TemperatureSensorAccessory.name);
12
- this.temperatureSensorConfig = temperatureSensorConfig;
9
+ constructor(Service, Characteristic, accessory, config, log) {
10
+ super(Service, Characteristic, accessory, config, log, TemperatureSensorAccessory.name);
13
11
  this.accessoryService.getCharacteristic(Characteristic.CurrentTemperature)
14
12
  .onGet(this.getCurrentTemperature.bind(this));
15
13
  }
@@ -21,18 +19,18 @@ export class TemperatureSensorAccessory extends StatusActiveAccessory {
21
19
  if (!this.assert('topicGetCurrentTemperature')) {
22
20
  return topicHandlers;
23
21
  }
24
- topicHandlers.push(makeHandler(this.temperatureSensorConfig.topicGetCurrentTemperature, this.onCurrentTemperatureUpdate.bind(this)));
22
+ topicHandlers.push(makeHandler(this.config.topicGetCurrentTemperature, this.onCurrentTemperatureUpdate.bind(this)));
25
23
  return topicHandlers;
26
24
  }
27
25
  async onCurrentTemperatureUpdate(topic, value) {
28
- const units = this.temperatureSensorConfig.temperatureUnits ?? TemperatureUnits.CELSIUS;
26
+ const units = this.config.temperatureUnits ?? TemperatureUnits.CELSIUS;
29
27
  const temperature = toCelsius(toNumber(value), units);
30
28
  if (temperature === this.currentTemperature) {
31
29
  return;
32
30
  }
33
31
  this.currentTemperature = temperature;
34
32
  this.accessoryService.updateCharacteristic(this.Characteristic.CurrentTemperature, this.currentTemperature);
35
- this.logIfDesired(strings.temperatureSensor.temperature, this.name, value.toString(), units);
33
+ this.logIfDesired(strings.temperatureSensor.temperature, value.toString(), units);
36
34
  }
37
35
  async getCurrentTemperature() {
38
36
  return this.currentTemperature;
@@ -1 +1 @@
1
- {"version":3,"file":"temperatureSensor.js","sourceRoot":"","sources":["../../src/accessory/temperatureSensor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAgB,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAK1C,OAAO,EAAa,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,OAAO,0BAA2B,SAAQ,qBAAqB;IAQhD;IANX,kBAAkB,GAAW,CAAC,CAAC;IAEvC,YACE,OAAoB,EACpB,cAAkC,EAClC,SAA4B,EACX,uBAAgD,EACjE,GAAQ;QAER,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,uBAAuB,EAAE,GAAG,EAAE,0BAA0B,CAAC,IAAI,CAAC,CAAC;QAHxF,4BAAuB,GAAvB,uBAAuB,CAAyB;QAKjE,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,cAAc,CAAC,kBAAkB,CAAC;aACvE,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;IAES,mBAAmB;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChI,CAAC;IAED,IAAc,aAAa;QACzB,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QAE1C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,4BAA4B,CAAC,EAAE,CAAC;YAC/C,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,uBAAuB,CAAC,0BAA0B,EAAE,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAErI,OAAO,aAAa,CAAC;IACvB,CAAC;IAGO,KAAK,CAAC,0BAA0B,CAAC,KAAa,EAAE,KAAgB;QAEtE,MAAM,KAAK,GAAG,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,OAAO,CAAC;QACxF,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,WAAW,KAAK,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC;QAEtC,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAE5G,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;IAC/F,CAAC;IAEO,KAAK,CAAC,qBAAqB;QACjC,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;CACF"}
1
+ {"version":3,"file":"temperatureSensor.js","sourceRoot":"","sources":["../../src/accessory/temperatureSensor.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,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,OAAO,0BAA2B,SAAQ,qBAA8C;IAEpF,kBAAkB,GAAW,CAAC,CAAC;IAEvC,YACE,OAAoB,EACpB,cAAkC,EAClC,SAA4B,EAC5B,MAA+B,EAC/B,GAAQ;QAER,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,0BAA0B,CAAC,IAAI,CAAC,CAAC;QAExF,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,cAAc,CAAC,kBAAkB,CAAC;aACvE,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAClD,CAAC;IAES,mBAAmB;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChI,CAAC;IAED,IAAa,aAAa;QACxB,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QAE1C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,4BAA4B,CAAC,EAAE,CAAC;YAC/C,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpH,OAAO,aAAa,CAAC;IACvB,CAAC;IAGO,KAAK,CAAC,0BAA0B,CAAC,KAAa,EAAE,KAAgB;QAEtE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,OAAO,CAAC;QACvE,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,WAAW,KAAK,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC;QAEtC,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAE5G,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;IACpF,CAAC;IAEO,KAAK,CAAC,qBAAqB;QACjC,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;CACF"}
@@ -1,13 +1,14 @@
1
1
  import { PLATFORM_NAME, PLUGIN_NAME } from './settings.js';
2
+ import { LightbulbAccessory } from '../accessory/onoff/lightbulb.js';
2
3
  import { LockMechanismAccessory } from '../accessory/lock.js';
3
- import { SwitchAccessory } from '../accessory/switch.js';
4
+ import { OutletAccessory } from '../accessory/onoff/outlet.js';
5
+ import { SecuritySystemAccessory } from '../accessory/security.js';
6
+ import { SwitchAccessory } from '../accessory/onoff/switch.js';
4
7
  import { TemperatureSensorAccessory } from '../accessory/temperatureSensor.js';
5
8
  import { setLanguage, strings } from '../i18n/i18n.js';
6
9
  import { Log } from '../tools/log.js';
7
10
  import getVersion from '../tools/version.js';
8
11
  import { assert } from '../tools/validation.js';
9
- import { OutletAccessory } from '../accessory/outlet.js';
10
- import { LightbulbAccessory } from '../accessory/lightbulb.js';
11
12
  export class HomebridgeEasyMQTT {
12
13
  config;
13
14
  api;
@@ -70,6 +71,9 @@ export class HomebridgeEasyMQTT {
70
71
  case Service.Outlet.name:
71
72
  mqttAccessory = new OutletAccessory(Service, Characteristic, accessory, accessoryConfig, this.log);
72
73
  break;
74
+ case Service.SecuritySystem.name:
75
+ mqttAccessory = new SecuritySystemAccessory(Service, Characteristic, accessory, accessoryConfig, this.log);
76
+ break;
73
77
  case Service.Switch.name:
74
78
  mqttAccessory = new SwitchAccessory(Service, Characteristic, accessory, accessoryConfig, this.log);
75
79
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/homebridge/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/homebridge/platform.ts"],"names":[],"mappings":"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"}
@@ -24,4 +24,4 @@
24
24
 
25
25
  <footer id="footer" class="text-center" style="display: none; font-style: italic; font-size: 0.9em;" i18n="optional"></footer>
26
26
 
27
- <script src="ui.js?v=1.1.0-beta.0"></script>
27
+ <script src="ui.js?v=1.2.0-beta.0"></script>
package/dist/i18n/en.d.ts CHANGED
@@ -23,6 +23,7 @@ declare const en: {
23
23
  lockMechanism: string;
24
24
  outlet: string;
25
25
  switch: string;
26
+ securitySystem: string;
26
27
  temperatureSensor: string;
27
28
  };
28
29
  title: {
@@ -36,8 +37,8 @@ declare const en: {
36
37
  mqtt: string;
37
38
  options: string;
38
39
  password: string;
40
+ sourceUnits: string;
39
41
  serialNumber: string;
40
- temperatureUnits: string;
41
42
  topicGetStatusActive: string;
42
43
  topicGetLockCurrentState: string;
43
44
  topicGetOutletInUse: string;
@@ -55,6 +56,11 @@ declare const en: {
55
56
  topicSetOn: string;
56
57
  topicSetTargetState: string;
57
58
  topicGetCurrentTemperature: string;
59
+ topicGetCurrentSecurityState: string;
60
+ topicGetTargetSecurityState: string;
61
+ topicSetTargetSecurityState: string;
62
+ topicGetStatusTampered: string;
63
+ topicGetStatusFault: string;
58
64
  topics: string;
59
65
  type: string;
60
66
  username: string;
@@ -66,6 +72,13 @@ declare const en: {
66
72
  valueOn: string;
67
73
  valueLockStateSecured: string;
68
74
  valueLockStateUnsecured: string;
75
+ valueArmStay: string;
76
+ valueArmAway: string;
77
+ valueArmNight: string;
78
+ valueDisarm: string;
79
+ valueAlarmTriggered: string;
80
+ valueTampered: string;
81
+ valueFault: string;
69
82
  values: string;
70
83
  verbose: string;
71
84
  version: string;
@@ -116,6 +129,25 @@ declare const en: {
116
129
  inUse: string;
117
130
  notInUse: string;
118
131
  };
132
+ security: {
133
+ badTarget: string;
134
+ isTampered: string;
135
+ hasFault: string;
136
+ noStateValues: string;
137
+ noFault: string;
138
+ notTampered: string;
139
+ stateCurrentArmAway: string;
140
+ stateCurrentArmNight: string;
141
+ stateCurrentArmStay: string;
142
+ stateCurrentAlarmTriggered: string;
143
+ stateCurrentDisarm: string;
144
+ stateFutureArmAway: string;
145
+ stateFutureArmNight: string;
146
+ stateFutureArmStay: string;
147
+ stateFutureDisarm: string;
148
+ stateUnknown: string;
149
+ unknownValue: string;
150
+ };
119
151
  startup: {
120
152
  complete: string;
121
153
  newAccessory: string;
package/dist/i18n/en.js CHANGED
@@ -23,6 +23,7 @@ const en = {
23
23
  lockMechanism: 'Lock Mechanism',
24
24
  outlet: 'Outlet',
25
25
  switch: 'Switch',
26
+ securitySystem: 'Security System',
26
27
  temperatureSensor: 'Temperature Sensor',
27
28
  },
28
29
  title: {
@@ -36,8 +37,8 @@ const en = {
36
37
  mqtt: 'MQTT Settings',
37
38
  options: 'Options',
38
39
  password: 'Password (Optional)',
40
+ sourceUnits: 'Source Units',
39
41
  serialNumber: 'Serial Number',
40
- temperatureUnits: 'Temperature Units',
41
42
  topicGetStatusActive: 'Get Availability (Optional)',
42
43
  topicGetLockCurrentState: 'Get Current State',
43
44
  topicGetOutletInUse: 'Get In Use State (Optional)',
@@ -55,6 +56,11 @@ const en = {
55
56
  topicSetOn: 'Set On/Off State',
56
57
  topicSetTargetState: 'Set Target State',
57
58
  topicGetCurrentTemperature: 'Get Current Temperature',
59
+ topicGetCurrentSecurityState: 'Get Current State',
60
+ topicGetTargetSecurityState: 'Get Target State',
61
+ topicSetTargetSecurityState: 'Set Target State',
62
+ topicGetStatusTampered: 'Get Tampered (Optional)',
63
+ topicGetStatusFault: 'Get Fault (Optional)',
58
64
  topics: 'Topics',
59
65
  type: 'Type',
60
66
  username: 'Username (Optional)',
@@ -66,6 +72,13 @@ const en = {
66
72
  valueOn: 'On',
67
73
  valueLockStateSecured: 'Secured/Locked',
68
74
  valueLockStateUnsecured: 'Unsecured/Unlocked',
75
+ valueArmStay: 'Arm Stay (Optional)',
76
+ valueArmAway: 'Arm Away (Optional)',
77
+ valueArmNight: 'Arm Night (Optional)',
78
+ valueDisarm: 'Disarm (Optional)',
79
+ valueAlarmTriggered: 'Triggered (Optional)',
80
+ valueTampered: 'Tampered (Optional)',
81
+ valueFault: 'Fault (Optional)',
69
82
  values: 'Values',
70
83
  verbose: 'Additional Logging',
71
84
  version: 'Version',
@@ -116,6 +129,25 @@ const en = {
116
129
  inUse: '%s is in use',
117
130
  notInUse: '%s is not in use',
118
131
  },
132
+ security: {
133
+ badTarget: '%s unable to get target from state %s',
134
+ isTampered: '%s is tampered',
135
+ hasFault: '%s has a fault',
136
+ noStateValues: '%s must have at least one state value defined (Arm Away, Disarm, etc.)',
137
+ noFault: '%s has no fault',
138
+ notTampered: '%s is not tampered',
139
+ stateCurrentArmAway: '%s is armed for away',
140
+ stateCurrentArmNight: '%s is armed for night',
141
+ stateCurrentArmStay: '%s is armed for stay',
142
+ stateCurrentAlarmTriggered: '%s alarm is triggered',
143
+ stateCurrentDisarm: '%s is disarmed',
144
+ stateFutureArmAway: 'Arming %s for away…',
145
+ stateFutureArmNight: 'Arming %s for night…',
146
+ stateFutureArmStay: 'Arming %s for stay…',
147
+ stateFutureDisarm: 'Disarming %s…',
148
+ stateUnknown: '%s state is unknown',
149
+ unknownValue: '%s received unexpected state value %s',
150
+ },
119
151
  startup: {
120
152
  complete: '✓ Setup complete.',
121
153
  newAccessory: 'Adding %s',
@@ -1 +1 @@
1
- {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import en from './en.js';
2
2
  export declare enum Language {
3
- EN = "en",
4
- ZZ = "zz"
3
+ EN = "en"
5
4
  }
6
5
  export type Translation = typeof en;
7
6
  export declare function getLanguage(): Language;
@@ -32,6 +31,7 @@ declare const translations: {
32
31
  lockMechanism: string;
33
32
  outlet: string;
34
33
  switch: string;
34
+ securitySystem: string;
35
35
  temperatureSensor: string;
36
36
  };
37
37
  title: {
@@ -45,8 +45,8 @@ declare const translations: {
45
45
  mqtt: string;
46
46
  options: string;
47
47
  password: string;
48
+ sourceUnits: string;
48
49
  serialNumber: string;
49
- temperatureUnits: string;
50
50
  topicGetStatusActive: string;
51
51
  topicGetLockCurrentState: string;
52
52
  topicGetOutletInUse: string;
@@ -64,6 +64,11 @@ declare const translations: {
64
64
  topicSetOn: string;
65
65
  topicSetTargetState: string;
66
66
  topicGetCurrentTemperature: string;
67
+ topicGetCurrentSecurityState: string;
68
+ topicGetTargetSecurityState: string;
69
+ topicSetTargetSecurityState: string;
70
+ topicGetStatusTampered: string;
71
+ topicGetStatusFault: string;
67
72
  topics: string;
68
73
  type: string;
69
74
  username: string;
@@ -75,6 +80,13 @@ declare const translations: {
75
80
  valueOn: string;
76
81
  valueLockStateSecured: string;
77
82
  valueLockStateUnsecured: string;
83
+ valueArmStay: string;
84
+ valueArmAway: string;
85
+ valueArmNight: string;
86
+ valueDisarm: string;
87
+ valueAlarmTriggered: string;
88
+ valueTampered: string;
89
+ valueFault: string;
78
90
  values: string;
79
91
  verbose: string;
80
92
  version: string;
@@ -125,6 +137,25 @@ declare const translations: {
125
137
  inUse: string;
126
138
  notInUse: string;
127
139
  };
140
+ security: {
141
+ badTarget: string;
142
+ isTampered: string;
143
+ hasFault: string;
144
+ noStateValues: string;
145
+ noFault: string;
146
+ notTampered: string;
147
+ stateCurrentArmAway: string;
148
+ stateCurrentArmNight: string;
149
+ stateCurrentArmStay: string;
150
+ stateCurrentAlarmTriggered: string;
151
+ stateCurrentDisarm: string;
152
+ stateFutureArmAway: string;
153
+ stateFutureArmNight: string;
154
+ stateFutureArmStay: string;
155
+ stateFutureDisarm: string;
156
+ stateUnknown: string;
157
+ unknownValue: string;
158
+ };
128
159
  startup: {
129
160
  complete: string;
130
161
  newAccessory: string;
package/dist/i18n/i18n.js CHANGED
@@ -1,13 +1,10 @@
1
1
  import en from './en.js';
2
- import zz from './zz.js';
3
2
  export var Language;
4
3
  (function (Language) {
5
4
  Language["EN"] = "en";
6
- Language["ZZ"] = "zz";
7
5
  })(Language || (Language = {}));
8
6
  const Translations = {
9
7
  [Language.EN]: en,
10
- [Language.ZZ]: zz,
11
8
  };
12
9
  let currentLanguage = Language.EN;
13
10
  export function getLanguage() {
@@ -19,9 +16,6 @@ export function setLanguage(i18nLang) {
19
16
  case Language.EN:
20
17
  language = Language.EN;
21
18
  break;
22
- case Language.ZZ:
23
- language = Language.ZZ;
24
- break;
25
19
  }
26
20
  currentLanguage = Translations[language] ? language : Language.EN;
27
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/i18n/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,qBAAS,CAAA;IACT,qBAAS,CAAA;AACX,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB;AAED,MAAM,YAAY,GAAkC;IAClD,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE;IACjB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE;CAClB,CAAC;AAIF,IAAI,eAAe,GAAa,QAAQ,CAAC,EAAE,CAAC;AAE5C,MAAM,UAAU,WAAW;IACzB,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAgB;IAE1C,IAAI,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC;IAC3B,QAAO,QAAQ,EAAE,CAAC;QAClB,KAAK,QAAQ,CAAC,EAAE;YACd,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC;YACvB,MAAM;QACR,KAAK,QAAQ,CAAC,EAAE;YACd,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC;YACvB,MAAM;IACR,CAAC;IAED,eAAe,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,YAAY,CAAC,eAAe,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,EAAiB,EAAE;IAChD,GAAG,CAAC,OAAO,EAAE,IAAY;QACvB,OAAO,CACL,YAAY,CAAC,eAAe,CAAC,CAAC,IAAyB,CAAC;YACxD,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAyB,CAAC,CACrD,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,OAAO,EAAE,YAAY,IAAI,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/i18n/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,MAAM,CAAN,IAAY,QAEX;AAFD,WAAY,QAAQ;IAClB,qBAAS,CAAA;AACX,CAAC,EAFW,QAAQ,KAAR,QAAQ,QAEnB;AAED,MAAM,YAAY,GAAkC;IAClD,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE;CAClB,CAAC;AAIF,IAAI,eAAe,GAAa,QAAQ,CAAC,EAAE,CAAC;AAE5C,MAAM,UAAU,WAAW;IACzB,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAgB;IAE1C,IAAI,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC;IAC3B,QAAO,QAAQ,EAAE,CAAC;QAClB,KAAK,QAAQ,CAAC,EAAE;YACd,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC;YACvB,MAAM;IACR,CAAC;IAED,eAAe,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,YAAY,CAAC,eAAe,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,EAAiB,EAAE;IAChD,GAAG,CAAC,OAAO,EAAE,IAAY;QACvB,OAAO,CACL,YAAY,CAAC,eAAe,CAAC,CAAC,IAAyB,CAAC;YACxD,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAyB,CAAC,CACrD,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH,OAAO,EAAE,YAAY,IAAI,OAAO,EAAE,CAAC"}