homebridge-easy-mqtt 1.3.0-beta.2 → 1.3.0-beta.4

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 (64) hide show
  1. package/CHANGELOG.md +3 -1
  2. package/README.md +158 -106
  3. package/config.schema.json +579 -6
  4. package/dist/accessory/abstract/base.d.ts +0 -1
  5. package/dist/accessory/abstract/base.js +0 -19
  6. package/dist/accessory/abstract/base.js.map +1 -1
  7. package/dist/accessory/abstract/mqtt.d.ts +4 -1
  8. package/dist/accessory/abstract/mqtt.js +40 -3
  9. package/dist/accessory/abstract/mqtt.js.map +1 -1
  10. package/dist/accessory/lock.js +2 -2
  11. package/dist/accessory/lock.js.map +1 -1
  12. package/dist/accessory/onoff/lightbulb.js +4 -4
  13. package/dist/accessory/onoff/onoff.js +2 -2
  14. package/dist/accessory/security.js +7 -7
  15. package/dist/accessory/security.js.map +1 -1
  16. package/dist/accessory/sensor/carbonDioxide.d.ts +8 -0
  17. package/dist/accessory/sensor/carbonDioxide.js +15 -0
  18. package/dist/accessory/sensor/carbonDioxide.js.map +1 -0
  19. package/dist/accessory/sensor/carbonMonoxide.d.ts +8 -0
  20. package/dist/accessory/sensor/carbonMonoxide.js +15 -0
  21. package/dist/accessory/sensor/carbonMonoxide.js.map +1 -0
  22. package/dist/accessory/sensor/contact.d.ts +9 -0
  23. package/dist/accessory/sensor/contact.js +17 -0
  24. package/dist/accessory/sensor/contact.js.map +1 -0
  25. package/dist/accessory/sensor/humidity.d.ts +8 -0
  26. package/dist/accessory/sensor/humidity.js +13 -0
  27. package/dist/accessory/sensor/humidity.js.map +1 -0
  28. package/dist/accessory/sensor/leak.d.ts +8 -0
  29. package/dist/accessory/sensor/leak.js +13 -0
  30. package/dist/accessory/sensor/leak.js.map +1 -0
  31. package/dist/accessory/sensor/motion.d.ts +8 -0
  32. package/dist/accessory/sensor/motion.js +13 -0
  33. package/dist/accessory/sensor/motion.js.map +1 -0
  34. package/dist/accessory/sensor/occupancy.d.ts +8 -0
  35. package/dist/accessory/sensor/occupancy.js +13 -0
  36. package/dist/accessory/sensor/occupancy.js.map +1 -0
  37. package/dist/accessory/sensor/sensor.d.ts +9 -0
  38. package/dist/accessory/sensor/sensor.js +36 -0
  39. package/dist/accessory/sensor/sensor.js.map +1 -0
  40. package/dist/accessory/sensor/smoke.d.ts +8 -0
  41. package/dist/accessory/sensor/smoke.js +13 -0
  42. package/dist/accessory/sensor/smoke.js.map +1 -0
  43. package/dist/accessory/{temperatureSensor.d.ts → sensor/temperature.d.ts} +4 -5
  44. package/dist/accessory/sensor/temperature.js +13 -0
  45. package/dist/accessory/sensor/temperature.js.map +1 -0
  46. package/dist/accessory/thermostat.d.ts +19 -0
  47. package/dist/accessory/thermostat.js +116 -0
  48. package/dist/accessory/thermostat.js.map +1 -0
  49. package/dist/homebridge/platform.js +37 -1
  50. package/dist/homebridge/platform.js.map +1 -1
  51. package/dist/homebridge-ui/public/index.html +1 -1
  52. package/dist/homebridge-ui/public/ui.js +1 -1
  53. package/dist/i18n/en.d.ts +127 -27
  54. package/dist/i18n/en.js +171 -71
  55. package/dist/i18n/en.js.map +1 -1
  56. package/dist/i18n/i18n.d.ts +127 -27
  57. package/dist/i18n/template.d.ts +127 -27
  58. package/dist/model/enums.d.ts +30 -2
  59. package/dist/model/enums.js +28 -0
  60. package/dist/model/enums.js.map +1 -1
  61. package/dist/model/types.d.ts +85 -27
  62. package/package.json +1 -1
  63. package/dist/accessory/temperatureSensor.js +0 -25
  64. package/dist/accessory/temperatureSensor.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smoke.js","sourceRoot":"","sources":["../../../src/accessory/sensor/smoke.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKzD,MAAM,OAAO,oBAAqB,SAAQ,eAAkC;IAE1E,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAAyB,EAAE,GAAQ;QACrI,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAEvD,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,EAAE,uBAAuB,EAClF,IAAI,CAAC,0BAA0B,CAC7B,iBAAiB,CAAC,aAAa,EAC/B,oBAAoB,EACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,EAC7D,IAAI,CAAC,CAAC;IACV,CAAC;IAES,mBAAmB;QAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACpH,CAAC;CACF"}
@@ -1,9 +1,8 @@
1
1
  import { PlatformAccessory, Service } from 'homebridge';
2
- import { BaseAccessory } from './abstract/base.js';
3
- import { CharacteristicType, ServiceType, TemperatureSensorConfig } from '../model/types.js';
4
- import { Log } from '../tools/log.js';
5
- export declare class TemperatureSensorAccessory extends BaseAccessory<TemperatureSensorConfig> {
2
+ import { SensorAccessory } from './sensor.js';
3
+ import { CharacteristicType, ServiceType, TemperatureSensorConfig } from '../../model/types.js';
4
+ import { Log } from '../../tools/log.js';
5
+ export declare class TemperatureSensorAccessory extends SensorAccessory<TemperatureSensorConfig> {
6
6
  constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: TemperatureSensorConfig, log: Log);
7
7
  protected getAccessoryService(): Service;
8
- private onCurrentTemperatureUpdate;
9
8
  }
@@ -0,0 +1,13 @@
1
+ import { SensorAccessory } from './sensor.js';
2
+ import { strings } from '../../i18n/i18n.js';
3
+ import { CharacteristicKey } from '../../model/enums.js';
4
+ export class TemperatureSensorAccessory extends SensorAccessory {
5
+ constructor(Service, Characteristic, accessory, config, log) {
6
+ super(Service, Characteristic, accessory, config, log);
7
+ this.setupCharacteristic(CharacteristicKey.CurrentTemperature, 0, 'topicGetCurrentTemperature', this.bindTemperatureUpdate(config, CharacteristicKey.CurrentTemperature, strings.climate.temperatureUpdate), true);
8
+ }
9
+ getAccessoryService() {
10
+ return this.accessory.getService(this.Service.TemperatureSensor) || this.accessory.addService(this.Service.TemperatureSensor);
11
+ }
12
+ }
13
+ //# sourceMappingURL=temperature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"temperature.js","sourceRoot":"","sources":["../../../src/accessory/sensor/temperature.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAKzD,MAAM,OAAO,0BAA2B,SAAQ,eAAwC;IAEtF,YAAY,OAAoB,EAAE,cAAkC,EAAE,SAA4B,EAAE,MAA+B,EAAE,GAAQ;QAC3I,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAEvD,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,EAAE,4BAA4B,EAC5F,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,CAAC,kBAAkB,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,CAAC;IACvH,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;CACF"}
@@ -0,0 +1,19 @@
1
+ import { PlatformAccessory, Service } from 'homebridge';
2
+ import { BaseAccessory } from './abstract/base.js';
3
+ import { CharacteristicType, ServiceType, ThermostatConfig } from '../model/types.js';
4
+ import { Log } from '../tools/log.js';
5
+ export declare class ThermostatAccessory extends BaseAccessory<ThermostatConfig> {
6
+ private readonly STATE_MAP;
7
+ constructor(Service: ServiceType, Characteristic: CharacteristicType, accessory: PlatformAccessory, config: ThermostatConfig, log: Log);
8
+ private get temperatureUnits();
9
+ protected getAccessoryService(): Service;
10
+ private bindOnStateUpdate;
11
+ private bindOnSetThreshold;
12
+ private onSetTargetState;
13
+ private onSetTemperature;
14
+ private onSetHumidity;
15
+ private temperatureFromCV;
16
+ private fromCVState;
17
+ private toCVState;
18
+ private stateStringForCV;
19
+ }
@@ -0,0 +1,116 @@
1
+ import { BaseAccessory } from './abstract/base.js';
2
+ import { strings } from '../i18n/i18n.js';
3
+ import { CharacteristicKey, TemperatureUnits } from '../model/enums.js';
4
+ import { fromCelsius } from '../tools/temperature.js';
5
+ const DEFAULT_TEMPERATURE = 10;
6
+ export class ThermostatAccessory extends BaseAccessory {
7
+ STATE_MAP;
8
+ constructor(Service, Characteristic, accessory, config, log) {
9
+ super(Service, Characteristic, accessory, config, log);
10
+ this.setCharacteristicValue(CharacteristicKey.TemperatureDisplayUnits, this.temperatureUnits === TemperatureUnits.FAHRENHEIT ? 1 : 0);
11
+ this.STATE_MAP = new Map([
12
+ ['valueModeAuto', Characteristic.TargetHeatingCoolingState.AUTO],
13
+ ['valueModeCool', Characteristic.TargetHeatingCoolingState.COOL],
14
+ ['valueModeHeat', Characteristic.TargetHeatingCoolingState.HEAT],
15
+ ['valueModeOff', Characteristic.TargetHeatingCoolingState.OFF],
16
+ ]);
17
+ const validTargetStates = Array.from(this.STATE_MAP.keys()).filter((key) => this.getRawValue(key, false) !== undefined);
18
+ if (validTargetStates.length === 0 || (validTargetStates.length === 1 && validTargetStates[0] === 'valueModeAuto')) {
19
+ this.log.error(strings.thermostat.noStateValues, this.name);
20
+ return;
21
+ }
22
+ this.setupCharacteristic(CharacteristicKey.TargetHeatingCoolingState, this.STATE_MAP.get(validTargetStates[0]), 'topicGetTargetHeatingCoolingState', this.bindOnStateUpdate(CharacteristicKey.TargetHeatingCoolingState, true), true, 'topicSetTargetHeatingCoolingState', this.onSetTargetState.bind(this))
23
+ ?.setProps({ validValues: validTargetStates.map((key) => this.STATE_MAP.get(key)) });
24
+ const validCurrentStates = validTargetStates.filter((key) => key !== 'valueModeAuto');
25
+ this.setupCharacteristic(CharacteristicKey.CurrentHeatingCoolingState, this.STATE_MAP.get(validCurrentStates[0]), 'topicGetCurrentHeatingCoolingState', this.bindOnStateUpdate(CharacteristicKey.CurrentHeatingCoolingState), true)
26
+ ?.setProps({ validValues: validCurrentStates.map((key) => this.STATE_MAP.get(key)) });
27
+ this.setupCharacteristic(CharacteristicKey.CurrentTemperature, DEFAULT_TEMPERATURE, 'topicGetCurrentTemperature', this.bindTemperatureUpdate(config, CharacteristicKey.CurrentTemperature, strings.climate.temperatureUpdate), true);
28
+ this.setupCharacteristic(CharacteristicKey.TargetTemperature, DEFAULT_TEMPERATURE, 'topicGetTargetTemperature', this.bindTemperatureUpdate(config, CharacteristicKey.TargetTemperature, strings.thermostat.temperatureTarget), true, 'topicSetTargetTemperature', this.onSetTemperature.bind(this));
29
+ this.setupCharacteristic(CharacteristicKey.CurrentRelativeHumidity, 0, 'topicGetCurrentRelativeHumidity', this.bindOnUpdateNumeric(CharacteristicKey.CurrentRelativeHumidity, strings.climate.humidityUpdate), false);
30
+ this.setupCharacteristic(CharacteristicKey.TargetRelativeHumidity, 0, 'topicGetTargetRelativeHumidity', this.bindOnUpdateNumeric(CharacteristicKey.TargetRelativeHumidity, strings.thermostat.humidityFuture), false, 'topicSetTargetRelativeHumidity', this.onSetHumidity.bind(this));
31
+ this.setupCharacteristic(CharacteristicKey.CoolingThresholdTemperature, 25, 'topicGetCoolingThresholdTemperature', this.bindTemperatureUpdate(config, CharacteristicKey.CoolingThresholdTemperature, strings.thermostat.coolingThreshold), false, 'topicSetCoolingThresholdTemperature', this.bindOnSetThreshold(CharacteristicKey.CoolingThresholdTemperature, 'topicSetCoolingThresholdTemperature', strings.thermostat.coolingThresholdFuture));
32
+ this.setupCharacteristic(CharacteristicKey.HeatingThresholdTemperature, 20, 'topicGetHeatingThresholdTemperature', this.bindTemperatureUpdate(config, CharacteristicKey.HeatingThresholdTemperature, strings.thermostat.heatingThreshold), false, 'topicSetHeatingThresholdTemperature', this.bindOnSetThreshold(CharacteristicKey.HeatingThresholdTemperature, 'topicSetHeatingThresholdTemperature', strings.thermostat.heatingThresholdFuture));
33
+ }
34
+ get temperatureUnits() {
35
+ return this.config.temperatureUnits ?? TemperatureUnits.CELSIUS;
36
+ }
37
+ getAccessoryService() {
38
+ return this.accessory.getService(this.Service.Thermostat) || this.accessory.addService(this.Service.Thermostat);
39
+ }
40
+ bindOnStateUpdate(charKey, future = false) {
41
+ return (async (_topic, value) => {
42
+ const state = this.toCVState(value);
43
+ if (state === undefined) {
44
+ return;
45
+ }
46
+ this.onUpdate(charKey, state, this.stateStringForCV(state, future));
47
+ }).bind(this);
48
+ }
49
+ bindOnSetThreshold(charKey, topic, logTemplate) {
50
+ return (async (value) => {
51
+ const temperature = this.temperatureFromCV(value);
52
+ const logString = logTemplate.replace('%d°%s', `${temperature}°${this.temperatureUnits}`);
53
+ this.onSet(charKey, value, temperature, topic, logString);
54
+ }).bind(this);
55
+ }
56
+ async onSetTargetState(value) {
57
+ const target = this.fromCVState(value);
58
+ if (target === undefined) {
59
+ return;
60
+ }
61
+ this.onSet(CharacteristicKey.TargetHeatingCoolingState, value, target, 'topicSetTargetHeatingCoolingState', this.stateStringForCV(value, true));
62
+ }
63
+ async onSetTemperature(value) {
64
+ const temperature = this.temperatureFromCV(value);
65
+ const logString = strings.thermostat.temperatureTargetFuture.replace('%d°%s', `${temperature}°${this.temperatureUnits}`);
66
+ this.onSet(CharacteristicKey.TargetTemperature, value, temperature, 'topicSetTargetTemperature', logString);
67
+ }
68
+ async onSetHumidity(value) {
69
+ const logString = strings.thermostat.humidityFuture.replace('%d', value.toString());
70
+ this.onSet(CharacteristicKey.TargetRelativeHumidity, value, value, 'topicSetTargetRelativeHumidity', logString);
71
+ }
72
+ temperatureFromCV(value) {
73
+ const celsiusTemperature = value;
74
+ return this.temperatureUnits === TemperatureUnits.FAHRENHEIT ? fromCelsius(celsiusTemperature, this.temperatureUnits) : celsiusTemperature;
75
+ }
76
+ fromCVState(value) {
77
+ let primative = undefined;
78
+ this.STATE_MAP.forEach((test, key) => {
79
+ if (value === test) {
80
+ primative = this.getPrimitiveValue(key);
81
+ }
82
+ });
83
+ if (primative === undefined) {
84
+ this.log.error(strings.thermostat.badValue, this.name, `'${value}'`);
85
+ }
86
+ return primative;
87
+ }
88
+ toCVState(value) {
89
+ switch (value) {
90
+ case this.getPrimitiveValue('valueModeAuto', false):
91
+ return this.STATE_MAP.get('valueModeAuto');
92
+ case this.getPrimitiveValue('valueModeCool', false):
93
+ return this.STATE_MAP.get('valueModeCool');
94
+ case this.getPrimitiveValue('valueModeHeat', false):
95
+ return this.STATE_MAP.get('valueModeHeat');
96
+ case this.getPrimitiveValue('valueModeOff', false):
97
+ return this.STATE_MAP.get('valueModeOff');
98
+ }
99
+ this.logIfDesired(strings.thermostat.unknownValue, `'${value}'`);
100
+ }
101
+ stateStringForCV(state, future = false) {
102
+ switch (state) {
103
+ case this.Characteristic.TargetHeatingCoolingState.AUTO:
104
+ return strings.thermostat.stateAutoFuture;
105
+ case this.Characteristic.TargetHeatingCoolingState.COOL:
106
+ return future ? strings.thermostat.stateCoolFuture : strings.thermostat.stateCool;
107
+ case this.Characteristic.TargetHeatingCoolingState.HEAT:
108
+ return future ? strings.thermostat.stateHeatFuture : strings.thermostat.stateHeat;
109
+ case this.Characteristic.TargetHeatingCoolingState.OFF:
110
+ return future ? strings.thermostat.stateOffFuture : strings.thermostat.stateOff;
111
+ default:
112
+ return strings.thermostat.stateUnknown;
113
+ }
114
+ }
115
+ }
116
+ //# sourceMappingURL=thermostat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thermostat.js","sourceRoot":"","sources":["../../src/accessory/thermostat.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,19 @@
1
1
  import { PLATFORM_NAME, PLUGIN_NAME } from './settings.js';
2
+ import { ContactSensorAccessory } from '../accessory/sensor/contact.js';
3
+ import { CO2SensorAccessory } from '../accessory/sensor/carbonDioxide.js';
4
+ import { COSensorAccessory } from '../accessory/sensor/carbonMonoxide.js';
5
+ import { HumiditySensorAccessory } from '../accessory/sensor/humidity.js';
6
+ import { LeakSensorAccessory } from '../accessory/sensor/leak.js';
2
7
  import { LightbulbAccessory } from '../accessory/onoff/lightbulb.js';
3
8
  import { LockMechanismAccessory } from '../accessory/lock.js';
9
+ import { MotionSensorAccessory } from '../accessory/sensor/motion.js';
10
+ import { OccupancySensorAccessory } from '../accessory/sensor/occupancy.js';
4
11
  import { OutletAccessory } from '../accessory/onoff/outlet.js';
5
12
  import { SecuritySystemAccessory } from '../accessory/security.js';
13
+ import { SmokeSensorAccessory } from '../accessory/sensor/smoke.js';
6
14
  import { SwitchAccessory } from '../accessory/onoff/switch.js';
7
- import { TemperatureSensorAccessory } from '../accessory/temperatureSensor.js';
15
+ import { TemperatureSensorAccessory } from '../accessory/sensor/temperature.js';
16
+ import { ThermostatAccessory } from '../accessory/thermostat.js';
8
17
  import { setLanguage, strings } from '../i18n/i18n.js';
9
18
  import { AccessoryType } from '../model/enums.js';
10
19
  import { Log } from '../tools/log.js';
@@ -63,24 +72,51 @@ export class HomebridgeEasyMQTT {
63
72
  const Characteristic = this.api.hap.Characteristic;
64
73
  let accessory;
65
74
  switch (accessoryConfig.info.type) {
75
+ case AccessoryType.CarbonDioxideSensor:
76
+ accessory = new CO2SensorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, this.log);
77
+ break;
78
+ case AccessoryType.CarbonMonoxideSensor:
79
+ accessory = new COSensorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, this.log);
80
+ break;
81
+ case AccessoryType.ContactSensor:
82
+ accessory = new ContactSensorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, this.log);
83
+ break;
84
+ case AccessoryType.HumiditySensor:
85
+ accessory = new HumiditySensorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, this.log);
86
+ break;
87
+ case AccessoryType.LeakSensor:
88
+ accessory = new LeakSensorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, this.log);
89
+ break;
66
90
  case AccessoryType.Lightbulb:
67
91
  accessory = new LightbulbAccessory(Service, Characteristic, platformAccessory, accessoryConfig, this.log);
68
92
  break;
69
93
  case AccessoryType.LockMechanism:
70
94
  accessory = new LockMechanismAccessory(Service, Characteristic, platformAccessory, accessoryConfig, this.log);
71
95
  break;
96
+ case AccessoryType.MotionSensor:
97
+ accessory = new MotionSensorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, this.log);
98
+ break;
99
+ case AccessoryType.OccupancySensor:
100
+ accessory = new OccupancySensorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, this.log);
101
+ break;
72
102
  case AccessoryType.Outlet:
73
103
  accessory = new OutletAccessory(Service, Characteristic, platformAccessory, accessoryConfig, this.log);
74
104
  break;
75
105
  case AccessoryType.SecuritySystem:
76
106
  accessory = new SecuritySystemAccessory(Service, Characteristic, platformAccessory, accessoryConfig, this.log);
77
107
  break;
108
+ case AccessoryType.SmokeSensor:
109
+ accessory = new SmokeSensorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, this.log);
110
+ break;
78
111
  case AccessoryType.Switch:
79
112
  accessory = new SwitchAccessory(Service, Characteristic, platformAccessory, accessoryConfig, this.log);
80
113
  break;
81
114
  case AccessoryType.TemperatureSensor:
82
115
  accessory = new TemperatureSensorAccessory(Service, Characteristic, platformAccessory, accessoryConfig, this.log);
83
116
  break;
117
+ case AccessoryType.Thermostat:
118
+ accessory = new ThermostatAccessory(Service, Characteristic, platformAccessory, accessoryConfig, this.log);
119
+ break;
84
120
  default:
85
121
  this.log.error(strings.startup.unsupportedType, accessoryConfig.info.type);
86
122
  continue;
@@ -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="required"></footer>
26
26
 
27
- <script src="ui.js?v=1.3.0-beta.2"></script>
27
+ <script src="ui.js?v=1.3.0-beta.4"></script>
@@ -1 +1 @@
1
- "use strict";(()=>{var u={arrow:"&rarr;",easy_mqtt:"Easy MQTT",github:'<a target="_blank" href="https://github.com/mpatfield/homebridge-easy-mqtt/">GitHub</a>'};function g(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",u[e])),t.innerHTML=r})}function f(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,(l,i,a)=>n.config[i]&&typeof n.config[i]=="object"&&a in n.config[i]?n.config[i][a]:l),r.innerHTML!==e&&(r.innerHTML=e)})}function s(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",()=>s(n)),e.dataset.accessoryNameListener="true")}}function d(){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 m(n){let t=!1;n.accessories?.forEach(o=>{if(o.info.id===void 0){let r=d();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 c(n){document.getElementById("pageIntro").style.display="none",document.getElementById("support").style.display="block",document.getElementById("footer").style.display="block",new MutationObserver(()=>{f(n),s(n)}).observe(window.parent.document.body,{childList:!0,subtree:!0}),homebridge.showSchemaForm(),homebridge.addEventListener("configChanged",o=>{let r=o.data;r.length&&m(r[0])}),homebridge.hideSpinner()}function p(n){document.getElementById("introContinue").addEventListener("click",async()=>{c(n)}),document.getElementById("pageIntro").style.display="block",homebridge.hideSpinner()}homebridge.showSpinner();(async()=>{let n=await homebridge.i18nCurrentLang(),t=await homebridge.request("i18n",n);g(t);let o=await homebridge.getPluginConfig();o.length?(await x(o),c(t)):(await homebridge.updatePluginConfig([{name:u.easy_mqtt}]),p(t))})();})();
1
+ "use strict";(()=>{var u={arrow:"&rarr;",easy_mqtt:"Easy MQTT",github:'<a target="_blank" href="https://github.com/mpatfield/homebridge-easy-mqtt/">GitHub</a>'};function s(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",u[e])),t.innerHTML=r})}function m(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,(g,a,i)=>n.config[a]&&typeof n.config[a]=="object"&&i in n.config[a]?n.config[a][i]:g),r.innerHTML!==e&&(r.innerHTML=e)})}function d(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",()=>d(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 x(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 S(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 l(n){document.getElementById("pageIntro").style.display="none",document.getElementById("support").style.display="block",document.getElementById("footer").style.display="block",new MutationObserver(()=>{m(n),d(n)}).observe(window.parent.document.body,{childList:!0,subtree:!0}),homebridge.showSchemaForm(),homebridge.addEventListener("configChanged",o=>{let r=o.data;r.length&&x(r[0])}),homebridge.hideSpinner()}function c(n){document.getElementById("introContinue").addEventListener("click",async()=>{l(n)}),document.getElementById("pageIntro").style.display="block",homebridge.hideSpinner()}homebridge.showSpinner();(async()=>{let n=await homebridge.i18nCurrentLang(),t=await homebridge.request("i18n",n);s(t);let o=await homebridge.getPluginConfig();o.length?(await S(o),l(t)):(await homebridge.updatePluginConfig([{name:u.easy_mqtt}]),c(t))})();})();
package/dist/i18n/en.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  declare const en: {
2
2
  accessory: {
3
- badNumericValue: string;
4
3
  batteryLevel: string;
5
4
  batteryLow: string;
6
5
  batteryNotLow: string;
@@ -8,6 +7,11 @@ declare const en: {
8
7
  statusActive: string;
9
8
  statusInactive: string;
10
9
  };
10
+ climate: {
11
+ badTemperatureValue: string;
12
+ humidityUpdate: string;
13
+ temperatureUpdate: string;
14
+ };
11
15
  config: {
12
16
  continue: string;
13
17
  required: string;
@@ -21,12 +25,21 @@ declare const en: {
21
25
  enumNames: {
22
26
  celsius: string;
23
27
  fahrenheit: string;
28
+ carbonDioxideSensor: string;
29
+ carbonMonoxideSensor: string;
30
+ contactSensor: string;
31
+ humiditySensor: string;
32
+ leakSensor: string;
24
33
  lightbulb: string;
25
34
  lockMechanism: string;
35
+ motionSensor: string;
36
+ occupancySensor: string;
26
37
  outlet: string;
27
38
  switch: string;
28
39
  securitySystem: string;
40
+ smokeSensor: string;
29
41
  temperatureSensor: string;
42
+ thermostat: string;
30
43
  };
31
44
  title: {
32
45
  accessory: string;
@@ -59,6 +72,30 @@ declare const en: {
59
72
  topicSetTargetSecurityState: string;
60
73
  topicGetStatusTampered: string;
61
74
  topicGetStatusFault: string;
75
+ topicGetCarbonMonoxideDetected: string;
76
+ topicGetCarbonMonoxideLevel: string;
77
+ topicGetCarbonMonoxidePeakLevel: string;
78
+ topicGetCarbonDioxideDetected: string;
79
+ topicGetCarbonDioxideLevel: string;
80
+ topicGetCarbonDioxidePeakLevel: string;
81
+ topicGetContactSensorState: string;
82
+ topicGetLeakDetected: string;
83
+ topicGetMotionDetected: string;
84
+ topicGetOccupancyDetected: string;
85
+ topicGetSmokeDetected: string;
86
+ topicGetCurrentRelativeHumidity: string;
87
+ topicGetCoolingThresholdTemperature: string;
88
+ topicGetCurrentHeatingCoolingState: string;
89
+ topicGetCurrentRelativeHumidityOptional: string;
90
+ topicGetHeatingThresholdTemperature: string;
91
+ topicGetTargetHeatingCoolingState: string;
92
+ topicGetTargetRelativeHumidity: string;
93
+ topicGetTargetTemperature: string;
94
+ topicSetCoolingThresholdTemperature: string;
95
+ topicSetHeatingThresholdTemperature: string;
96
+ topicSetTargetHeatingCoolingState: string;
97
+ topicSetTargetRelativeHumidity: string;
98
+ topicSetTargetTemperature: string;
62
99
  topics: string;
63
100
  type: string;
64
101
  username: string;
@@ -78,6 +115,17 @@ declare const en: {
78
115
  valueAlarmTriggered: string;
79
116
  valueTampered: string;
80
117
  valueFault: string;
118
+ valueCarbonMonoxideDetected: string;
119
+ valueCarbonDioxideDetected: string;
120
+ valueContactDetected: string;
121
+ valueLeakDetected: string;
122
+ valueMotionDetected: string;
123
+ valueOccupancyDetected: string;
124
+ valueSmokeDetected: string;
125
+ valueModeAuto: string;
126
+ valueModeCool: string;
127
+ valueModeHeat: string;
128
+ valueModeOff: string;
81
129
  values: string;
82
130
  verbose: string;
83
131
  };
@@ -86,22 +134,28 @@ declare const en: {
86
134
  badValue: string;
87
135
  updated: string;
88
136
  };
137
+ error: {
138
+ isTampered: string;
139
+ hasFault: string;
140
+ noFault: string;
141
+ notTampered: string;
142
+ };
89
143
  lightbulb: {
90
144
  brightness: string;
91
- futureBrightness: string;
145
+ brightnessFuture: string;
92
146
  hue: string;
93
- futureHue: string;
147
+ hueFuture: string;
94
148
  colorTemperature: string;
95
- futureColorTemperature: string;
149
+ colorTemperatureFuture: string;
96
150
  saturation: string;
97
- futureSaturation: string;
151
+ saturationFuture: string;
98
152
  };
99
153
  lock: {
100
154
  badValue: string;
101
- stateCurrentSecured: string;
102
- stateCurrentUnsecured: string;
103
- stateFutureSecured: string;
104
- stateFutureUnsecured: string;
155
+ stateSecured: string;
156
+ stateSecuredFuture: string;
157
+ stateUnsecured: string;
158
+ stateUnsecuredFuture: string;
105
159
  stateJammed: string;
106
160
  stateUnknown: string;
107
161
  };
@@ -120,10 +174,10 @@ declare const en: {
120
174
  reconnectInSeconds: string;
121
175
  };
122
176
  onOff: {
123
- stateFutureOff: string;
124
- stateFutureOn: string;
125
- stateOn: string;
126
177
  stateOff: string;
178
+ stateOffFuture: string;
179
+ stateOn: string;
180
+ stateOnFuture: string;
127
181
  unknownValue: string;
128
182
  };
129
183
  outlet: {
@@ -133,23 +187,53 @@ declare const en: {
133
187
  };
134
188
  security: {
135
189
  badValue: string;
136
- isTampered: string;
137
- hasFault: string;
138
190
  noStateValues: string;
139
- noFault: string;
140
- notTampered: string;
141
- stateCurrentArmAway: string;
142
- stateCurrentArmNight: string;
143
- stateCurrentArmStay: string;
144
- stateCurrentAlarmTriggered: string;
145
- stateCurrentDisarm: string;
146
- stateFutureArmAway: string;
147
- stateFutureArmNight: string;
148
- stateFutureArmStay: string;
149
- stateFutureDisarm: string;
191
+ stateAway: string;
192
+ stateAwayFuture: string;
193
+ stateNight: string;
194
+ stateNightFuture: string;
195
+ stateStay: string;
196
+ stateStayFuture: string;
197
+ stateTriggered: string;
198
+ stateDisarmed: string;
199
+ stateDisarmFuture: string;
150
200
  stateUnknown: string;
151
201
  unknownValue: string;
152
202
  };
203
+ sensor: {
204
+ carbonDioxide: {
205
+ active: string;
206
+ inactive: string;
207
+ level: string;
208
+ peakLevel: string;
209
+ };
210
+ carbonMonoxide: {
211
+ active: string;
212
+ inactive: string;
213
+ level: string;
214
+ peakLevel: string;
215
+ };
216
+ contact: {
217
+ active: string;
218
+ inactive: string;
219
+ };
220
+ leak: {
221
+ active: string;
222
+ inactive: string;
223
+ };
224
+ motion: {
225
+ active: string;
226
+ inactive: string;
227
+ };
228
+ occupancy: {
229
+ active: string;
230
+ inactive: string;
231
+ };
232
+ smoke: {
233
+ active: string;
234
+ inactive: string;
235
+ };
236
+ };
153
237
  startup: {
154
238
  complete: string;
155
239
  newAccessory: string;
@@ -158,9 +242,25 @@ declare const en: {
158
242
  unsupportedType: string;
159
243
  welcome: string[];
160
244
  };
161
- temperatureSensor: {
245
+ thermostat: {
162
246
  badValue: string;
163
- temperature: string;
247
+ coolingThreshold: string;
248
+ coolingThresholdFuture: string;
249
+ heatingThreshold: string;
250
+ heatingThresholdFuture: string;
251
+ noStateValues: string;
252
+ humidityFuture: string;
253
+ stateAutoFuture: string;
254
+ stateCool: string;
255
+ stateCoolFuture: string;
256
+ stateHeat: string;
257
+ stateHeatFuture: string;
258
+ stateOff: string;
259
+ stateOffFuture: string;
260
+ stateUnknown: string;
261
+ temperatureTarget: string;
262
+ temperatureTargetFuture: string;
263
+ unknownValue: string;
164
264
  };
165
265
  };
166
266
  export default en;