homebridge-econet-rheem 1.5.10 → 1.5.12-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 (73) hide show
  1. package/CHANGELOG.md +14 -2
  2. package/dist/homebridge/index.js.map +1 -0
  3. package/dist/{platform.d.ts → homebridge/platform.d.ts} +4 -1
  4. package/dist/homebridge/platform.js +98 -0
  5. package/dist/homebridge/platform.js.map +1 -0
  6. package/dist/homebridge/settings.js.map +1 -0
  7. package/dist/{accessories → homebridge}/thermostatAccessory.d.ts +1 -1
  8. package/dist/{accessories → homebridge}/thermostatAccessory.js +8 -6
  9. package/dist/homebridge/thermostatAccessory.js.map +1 -0
  10. package/dist/{accessories → homebridge}/waterHeaterAccessory.d.ts +1 -1
  11. package/dist/{accessories → homebridge}/waterHeaterAccessory.js +7 -5
  12. package/dist/homebridge/waterHeaterAccessory.js.map +1 -0
  13. package/dist/lang/en.d.ts +52 -0
  14. package/dist/lang/en.js +64 -0
  15. package/dist/lang/en.js.map +1 -0
  16. package/dist/model/api.d.ts +36 -0
  17. package/dist/model/api.js +367 -0
  18. package/dist/model/api.js.map +1 -0
  19. package/dist/model/auth.d.ts +11 -0
  20. package/dist/model/auth.js +52 -0
  21. package/dist/model/auth.js.map +1 -0
  22. package/dist/model/{enums.d.ts → constants.d.ts} +4 -0
  23. package/dist/model/{enums.js → constants.js} +6 -1
  24. package/dist/model/constants.js.map +1 -0
  25. package/dist/model/equipment.d.ts +9 -9
  26. package/dist/model/equipment.js +15 -29
  27. package/dist/model/equipment.js.map +1 -1
  28. package/dist/model/recoverySimulator.d.ts +2 -2
  29. package/dist/model/recoverySimulator.js +7 -8
  30. package/dist/model/recoverySimulator.js.map +1 -1
  31. package/dist/model/thermostat.d.ts +6 -6
  32. package/dist/model/thermostat.js +62 -70
  33. package/dist/model/thermostat.js.map +1 -1
  34. package/dist/model/types.d.ts +82 -0
  35. package/dist/model/types.js +12 -0
  36. package/dist/model/types.js.map +1 -0
  37. package/dist/model/waterHeater.d.ts +7 -5
  38. package/dist/model/waterHeater.js +34 -37
  39. package/dist/model/waterHeater.js.map +1 -1
  40. package/dist/tools/storage.d.ts +3 -0
  41. package/dist/tools/storage.js +22 -0
  42. package/dist/tools/storage.js.map +1 -0
  43. package/dist/tools/temperature.d.ts +3 -0
  44. package/dist/tools/temperature.js +14 -0
  45. package/dist/tools/temperature.js.map +1 -0
  46. package/dist/tools/time.d.ts +4 -0
  47. package/dist/tools/time.js +5 -0
  48. package/dist/tools/time.js.map +1 -0
  49. package/dist/tools/version.d.ts +1 -0
  50. package/dist/tools/version.js +18 -0
  51. package/dist/tools/version.js.map +1 -0
  52. package/example_responses/auth.json +45 -0
  53. package/example_responses/locations.json +1656 -0
  54. package/package.json +4 -2
  55. package/src/homebridge-ui/public/index.html +104 -0
  56. package/dist/accessories/thermostatAccessory.js.map +0 -1
  57. package/dist/accessories/waterHeaterAccessory.js.map +0 -1
  58. package/dist/index.js.map +0 -1
  59. package/dist/model/econet.d.ts +0 -48
  60. package/dist/model/econet.js +0 -319
  61. package/dist/model/econet.js.map +0 -1
  62. package/dist/model/enums.js.map +0 -1
  63. package/dist/model/utils.d.ts +0 -9
  64. package/dist/model/utils.js +0 -53
  65. package/dist/model/utils.js.map +0 -1
  66. package/dist/platform.js +0 -101
  67. package/dist/platform.js.map +0 -1
  68. package/dist/settings.js.map +0 -1
  69. package/notes +0 -7
  70. /package/dist/{index.d.ts → homebridge/index.d.ts} +0 -0
  71. /package/dist/{index.js → homebridge/index.js} +0 -0
  72. /package/dist/{settings.d.ts → homebridge/settings.d.ts} +0 -0
  73. /package/dist/{settings.js → homebridge/settings.js} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,10 +1,22 @@
1
+ ### HELP NEEDED!
2
+
3
+ Do you have a leak sensor and/or shut off valve on your water heater? I would like to add support for these but I don't have access. Please consider [getting involved](https://github.com/mpatfield/homebridge-econet-rheem/issues/4) if you'd like to see these features added.
4
+
1
5
  # Change Log
2
6
 
3
7
  All notable changes to homebridge-econet-rheem will be documented in this file.
4
8
 
5
- ### HELP NEEDED!
9
+ ## 1.5.12 (2025-06-TODO)
6
10
 
7
- Do you have a leak sensor and/or shut off valve on your water heater? I would like to add support for these but I don't have access. Please consider [getting involved](https://github.com/mpatfield/homebridge-econet-rheem/issues/4) if you'd like to see these features added.
11
+ ### Changed
12
+
13
+ While there are no new features in this release, significant portions of the code rewritten and modernized. This will make it much easier to maintain and improve this plugin going forward.
14
+
15
+ ## 1.5.11 (2025-05-28)
16
+
17
+ ### Fixed
18
+
19
+ - Broken settings
8
20
 
9
21
  ## 1.5.10 (2025-05-28)
10
22
 
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/homebridge/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C;;GAEG;AACH,eAAe,CAAC,GAAQ,EAAE,EAAE;IAC1B,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC;AAC3D,CAAC,CAAC"}
@@ -9,5 +9,8 @@ export declare class EconetRheemPlatform implements DynamicPlatformPlugin {
9
9
  private econetApi;
10
10
  constructor(log: Logger, config: PlatformConfig, api: API);
11
11
  configureAccessory(accessory: PlatformAccessory): void;
12
- private discoverDevices;
12
+ private teardown;
13
+ private setup;
14
+ private initializeAccessory;
15
+ private removeAccessory;
13
16
  }
@@ -0,0 +1,98 @@
1
+ import path from 'path';
2
+ import { PLATFORM_NAME, PLUGIN_NAME } from './settings.js';
3
+ import { ThermostatAccessory } from '../homebridge/thermostatAccessory.js';
4
+ import { WaterHeaterAccessory } from '../homebridge/waterHeaterAccessory.js';
5
+ import strings from '../lang/en.js';
6
+ import { EconetApi } from '../model/api.js';
7
+ import { EquipmentType } from '../model/constants.js';
8
+ import getVersion from '../tools/version.js';
9
+ import { STORAGE_FILE_NAME } from '../tools/storage.js';
10
+ export class EconetRheemPlatform {
11
+ log;
12
+ config;
13
+ api;
14
+ Service;
15
+ Characteristic;
16
+ accessories = new Map();
17
+ econetApi = null;
18
+ constructor(log, config, api) {
19
+ this.log = log;
20
+ this.config = config;
21
+ this.api = api;
22
+ this.Service = this.api.hap.Service;
23
+ this.Characteristic = this.api.hap.Characteristic;
24
+ this.log.info('v%s | System %s | Node %s | HB v%s | HAPNodeJS v%s', getVersion(), process.platform, process.version, api.serverVersion, api.hap.HAPLibraryVersion());
25
+ this.api.on('didFinishLaunching', () => {
26
+ this.setup();
27
+ });
28
+ this.api.on('shutdown', () => {
29
+ this.teardown();
30
+ });
31
+ }
32
+ configureAccessory(accessory) {
33
+ this.log.info(strings.restoringDevice, accessory.displayName);
34
+ this.accessories.set(accessory.context.serialNumber, accessory);
35
+ }
36
+ teardown() {
37
+ this.econetApi?.teardown();
38
+ }
39
+ async setup() {
40
+ const email = this.config.email;
41
+ const password = this.config.password;
42
+ const verbose = this.config.verbose;
43
+ const debugMQTT = this.config.mqtt_debug;
44
+ if (!email || !password) {
45
+ this.log.error(strings.badConfig);
46
+ return;
47
+ }
48
+ try {
49
+ const storageFilePath = path.join(this.api.user.storagePath(), STORAGE_FILE_NAME);
50
+ this.econetApi = await EconetApi.connect(this.log, email, password, storageFilePath, verbose, debugMQTT);
51
+ const equipments = Array.from(this.econetApi.equipments.values());
52
+ if (equipments.length === 0) {
53
+ this.log.error(strings.noEquipment);
54
+ this.accessories.forEach(accessory => this.removeAccessory(accessory));
55
+ this.teardown();
56
+ return;
57
+ }
58
+ const keepSerials = new Set();
59
+ equipments.forEach(equipment => {
60
+ keepSerials.add(equipment.serialNumber);
61
+ this.initializeAccessory(equipment);
62
+ });
63
+ this.accessories.forEach(accessory => {
64
+ if (!keepSerials.has(accessory.context.serialNumber)) {
65
+ this.removeAccessory(accessory);
66
+ }
67
+ });
68
+ }
69
+ catch (error) {
70
+ this.log.error(strings.setupFailed, error instanceof Error ? error.message : String(error));
71
+ }
72
+ }
73
+ initializeAccessory(equipment) {
74
+ let accessory = this.accessories.get(equipment.serialNumber);
75
+ if (!accessory) {
76
+ const deviceName = equipment.deviceName;
77
+ this.log.info(strings.newEquipment, deviceName);
78
+ const uuid = this.api.hap.uuid.generate(equipment.serialNumber);
79
+ accessory = new this.api.platformAccessory(deviceName, uuid);
80
+ accessory.context.serialNumber = equipment.serialNumber;
81
+ this.api.registerPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [accessory]);
82
+ this.accessories.set(equipment.serialNumber, accessory);
83
+ }
84
+ switch (equipment.type) {
85
+ case EquipmentType.THERMOSTAT:
86
+ new ThermostatAccessory(this, accessory, equipment);
87
+ break;
88
+ case EquipmentType.WATER_HEATER:
89
+ new WaterHeaterAccessory(this, accessory, equipment, this.config.wh_sim_disable);
90
+ }
91
+ }
92
+ removeAccessory(accessory) {
93
+ this.log.info(strings.removeDevice, accessory.displayName);
94
+ this.api.unregisterPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [accessory]);
95
+ this.accessories.delete(accessory.context.serialNumber);
96
+ }
97
+ }
98
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/homebridge/platform.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAE7E,OAAO,OAAO,MAAM,eAAe,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAG,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAKtD,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,OAAO,mBAAmB;IAQZ;IACA;IACA;IATF,OAAO,CAAC;IACR,cAAc,CAAC;IAEd,WAAW,GAAmC,IAAI,GAAG,EAAE,CAAC;IACjE,SAAS,GAAqB,IAAI,CAAC;IAE3C,YACkB,GAAW,EACX,MAAsB,EACtB,GAAQ;QAFR,QAAG,GAAH,GAAG,CAAQ;QACX,WAAM,GAAN,MAAM,CAAgB;QACtB,QAAG,GAAH,GAAG,CAAK;QAGxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC;QAElD,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,oDAAoD,EACpD,UAAU,EAAE,EACZ,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,OAAO,EACf,GAAG,CAAC,aAAa,EACjB,GAAG,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAC5B,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;YACrC,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE;YAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB,CAAC,SAA4B;QAC7C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;QAC9D,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IAClE,CAAC;IAEO,QAAQ;QACd,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAe,CAAC;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAkB,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAkB,CAAC;QAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,UAAqB,CAAC;QAEpD,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAClC,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YAEH,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,iBAAiB,CAAC,CAAC;YAClF,IAAI,CAAC,SAAS,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAEzG,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YAElE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBACpC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;gBACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,OAAO;YACT,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;YAEtC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAC7B,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;gBACxC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,WAAW,CAAC,OAAO,CAAE,SAAS,CAAC,EAAE;gBACpC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;oBACrD,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC,CAAC,CAAC;QAEL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,SAAoB;QAE9C,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;YAEf,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YAEhD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAEhE,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC7D,SAAS,CAAC,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;YAExD,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;YAE9E,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAC1D,CAAC;QAED,QAAO,SAAS,CAAC,IAAI,EAAE,CAAC;YACxB,KAAK,aAAa,CAAC,UAAU;gBAC3B,IAAI,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,SAAuB,CAAC,CAAC;gBAClE,MAAM;YACR,KAAK,aAAa,CAAC,YAAY;gBAC7B,IAAI,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,SAAwB,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,SAA4B;QAClD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;QAC3D,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;QAChF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC;CACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/homebridge/settings.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,uBAAuB,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,yBAAyB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { PlatformAccessory, CharacteristicValue } from 'homebridge';
2
- import { EconetRheemPlatform } from '../platform.js';
2
+ import { EconetRheemPlatform } from '../homebridge/platform.js';
3
3
  import { Thermostat } from '../model/thermostat.js';
4
4
  export declare class ThermostatAccessory {
5
5
  private readonly platform;
@@ -1,5 +1,7 @@
1
- import { TemperatureUnits, ThermostatOperationMode } from '../model/enums.js';
2
- import getVersion, { toCelsius, fromCelsius } from '../model/utils.js';
1
+ import strings from '../lang/en.js';
2
+ import { TemperatureUnits, ThermostatOperationMode } from '../model/constants.js';
3
+ import { toCelsius, fromCelsius } from '../tools/temperature.js';
4
+ import getVersion from '../tools/version.js';
3
5
  export class ThermostatAccessory {
4
6
  platform;
5
7
  accessory;
@@ -13,8 +15,8 @@ export class ThermostatAccessory {
13
15
  this.Characteristic = platform.api.hap.Characteristic;
14
16
  const Service = platform.api.hap.Service;
15
17
  this.accessory.getService(Service.AccessoryInformation)
16
- .setCharacteristic(this.Characteristic.Manufacturer, 'EcoNet')
17
- .setCharacteristic(this.Characteristic.Model, 'Thermostat')
18
+ .setCharacteristic(this.Characteristic.Manufacturer, strings.brand)
19
+ .setCharacteristic(this.Characteristic.Model, strings.thermostat)
18
20
  .setCharacteristic(this.Characteristic.SerialNumber, this.thermostat.serialNumber)
19
21
  .setCharacteristic(this.Characteristic.FirmwareRevision, getVersion());
20
22
  this.service = this.accessory.getService(Service.Thermostat) ||
@@ -59,8 +61,8 @@ export class ThermostatAccessory {
59
61
  }
60
62
  handleEquipmentUpdate(serial) {
61
63
  if (serial === this.thermostat.serialNumber) {
64
+ this.platform.log.debug(strings.updateReceived, serial);
62
65
  this.updateCharacteristics();
63
- this.platform.log.debug(`Received update for ${serial}, refreshed accessory state`);
64
66
  }
65
67
  }
66
68
  updateCharacteristics() {
@@ -122,7 +124,7 @@ export class ThermostatAccessory {
122
124
  mode = ThermostatOperationMode.AUTO;
123
125
  break;
124
126
  default:
125
- this.platform.log.error('Unsupported target state:', state);
127
+ this.platform.log.error(strings.unsupportedState, state);
126
128
  return;
127
129
  }
128
130
  this.thermostat.setMode(mode);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thermostatAccessory.js","sourceRoot":"","sources":["../../src/homebridge/thermostatAccessory.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { PlatformAccessory, CharacteristicValue } from 'homebridge';
2
- import { EconetRheemPlatform } from '../platform.js';
2
+ import { EconetRheemPlatform } from '../homebridge/platform.js';
3
3
  import { WaterHeater } from '../model/waterHeater.js';
4
4
  export declare class WaterHeaterAccessory {
5
5
  private readonly platform;
@@ -1,5 +1,7 @@
1
- import getVersion, { toCelsius, fromCelsius } from '../model/utils.js';
2
- import { TemperatureUnits } from '../model/enums.js';
1
+ import strings from '../lang/en.js';
2
+ import { TemperatureUnits } from '../model/constants.js';
3
+ import { toCelsius, fromCelsius } from '../tools/temperature.js';
4
+ import getVersion from '../tools/version.js';
3
5
  export class WaterHeaterAccessory {
4
6
  platform;
5
7
  accessory;
@@ -15,8 +17,8 @@ export class WaterHeaterAccessory {
15
17
  this.Characteristic = platform.api.hap.Characteristic;
16
18
  const Service = platform.api.hap.Service;
17
19
  this.accessory.getService(Service.AccessoryInformation)
18
- .setCharacteristic(this.Characteristic.Manufacturer, 'EcoNet')
19
- .setCharacteristic(this.Characteristic.Model, 'Water Heater')
20
+ .setCharacteristic(this.Characteristic.Manufacturer, strings.brand)
21
+ .setCharacteristic(this.Characteristic.Model, strings.waterHeater)
20
22
  .setCharacteristic(this.Characteristic.SerialNumber, this.waterHeater.serialNumber)
21
23
  .setCharacteristic(this.Characteristic.FirmwareRevision, getVersion());
22
24
  this.service = this.accessory.getService(Service.HeaterCooler) ||
@@ -46,8 +48,8 @@ export class WaterHeaterAccessory {
46
48
  }
47
49
  handleEquipmentUpdate(serial) {
48
50
  if (serial === this.waterHeater.serialNumber) {
51
+ this.platform.log.debug(strings.updateReceived, serial);
49
52
  this.updateCharacteristics();
50
- this.platform.log.debug(`Received update for ${serial}, refreshed accessory state`);
51
53
  }
52
54
  }
53
55
  updateCharacteristics() {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waterHeaterAccessory.js","sourceRoot":"","sources":["../../src/homebridge/waterHeaterAccessory.ts"],"names":[],"mappings":"AAIA,OAAO,OAAO,MAAM,eAAe,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAE7C,MAAM,OAAO,oBAAoB;IAKZ;IACA;IACA;IACA;IAPX,OAAO,CAAU;IACR,cAAc,CAA6C;IAE5E,YACmB,QAA6B,EAC7B,SAA4B,EAC5B,WAAwB,EACxB,oBAA6B;QAH7B,aAAQ,GAAR,QAAQ,CAAqB;QAC7B,cAAS,GAAT,SAAS,CAAmB;QAC5B,gBAAW,GAAX,WAAW,CAAa;QACxB,yBAAoB,GAApB,oBAAoB,CAAS;QAG9C,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC;QACtD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;QAEzC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAE;aACrD,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC;aAClE,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC;aACjE,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;aAClF,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,UAAU,EAAE,CAAC,CAAC;QAEzE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC;YAC5D,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAElD,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAEtF,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;aAC5D,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;aACvD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAChC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEpC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC;aACzE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE1C,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC;aACxE,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;aAC7E,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC;aACnE,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC9E,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,2BAA2B,CAAC;aAC5E,QAAQ,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;aAChE,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrD,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzD,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5E,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAEO,qBAAqB,CAAC,MAAc;QAC1C,IAAI,MAAM,KAAK,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;YAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;YACxD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,qBAAqB;QAEnB,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,EAC/D,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAExH,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAElG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,wBAAwB,EAC5E,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;YACjF,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAEvD,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,uBAAuB,EAC3E,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAEpD,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,EACtE,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;QAE1F,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,2BAA2B,EAC/E,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC;IAC9H,CAAC;IAED,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACjC,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;YACtD,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,IAAI,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC;IAC1D,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,cAAc,CAAC,KAA0B;QAC7C,sCAAsC;IACxC,CAAC;IAED,KAAK,CAAC,qBAAqB;QACzB,OAAO,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,8BAA8B;QAClC,OAAO,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,8BAA8B,CAAC,KAA0B;QAC7D,MAAM,SAAS,GAAG,KAAe,CAAC;QAClC,MAAM,cAAc,GAAG,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACtE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAA0B;QACxC,MAAM,OAAO,GAAG,KAAe,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,IAAY,gBAAgB;QAE1B,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;QAEpC,yBAAyB;QACzB,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,CAAC;QAED,yBAAyB;QACzB,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,CAAC;QAED,mBAAmB;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,CAAC;CACF"}
@@ -0,0 +1,52 @@
1
+ declare const langEn: {
2
+ brand: string;
3
+ redacted: string;
4
+ badConfig: string;
5
+ newEquipment: string;
6
+ removeDevice: string;
7
+ restoringDevice: string;
8
+ setupComplete: string;
9
+ setupFailed: string;
10
+ welcomeMessages: string[];
11
+ outOfRangeCool: string;
12
+ outOfRangeHeat: string;
13
+ setpointUnknown: string;
14
+ thermostat: string;
15
+ unknownMode: string;
16
+ unsupportedEquipment: string;
17
+ unsupportedState: string;
18
+ waterHeater: string;
19
+ authSuccess: string;
20
+ httpRetryMinutes: string;
21
+ httpRetrySeconds: string;
22
+ noDataReceived: string;
23
+ noEquipment: string;
24
+ reauthenticate: string;
25
+ reauthFailed: string;
26
+ authMissing: string;
27
+ connected: string;
28
+ connectionClosed: string;
29
+ connectionError: string;
30
+ clientError: string;
31
+ clientNotConnected: string;
32
+ idleConnection: string;
33
+ parseFailed: string;
34
+ reconnectInMinutes: string;
35
+ reconnectInSeconds: string;
36
+ topicPublish: string;
37
+ topicUpdate: string;
38
+ unstableConnection: string;
39
+ alertCount: string;
40
+ availabilityState: string;
41
+ clientOffline: string;
42
+ currentTempState: string;
43
+ coolSetpoint: string;
44
+ enabledState: string;
45
+ heatSetpoint: string;
46
+ humidityState: string;
47
+ modeState: string;
48
+ runningState: string;
49
+ setpointState: string;
50
+ updateReceived: string;
51
+ };
52
+ export default langEn;
@@ -0,0 +1,64 @@
1
+ const langEn = {
2
+ // General
3
+ brand: 'EcoNet',
4
+ redacted: '****redacted****',
5
+ // Startup
6
+ badConfig: 'One or more required variables are missing from the config. Please check the documentation. https://github.com/mpatfield/homebridge-econet-rheem',
7
+ newEquipment: 'Adding new device:',
8
+ removeDevice: 'Removing device:',
9
+ restoringDevice: 'Restoring device:',
10
+ setupComplete: '✓ Setup complete.',
11
+ setupFailed: 'Setup failed:',
12
+ welcomeMessages: [
13
+ 'Please ★ this plugin on GitHub if you\'re finding it useful! https://github.com/mpatfield/homebridge-econet-rheem',
14
+ 'Would you like to sponsor this plugin? https://github.com/sponsors/mpatfield',
15
+ 'Please rate us on HOOBS! https://plugins.hoobs.org/plugin/homebridge-econet-rheem',
16
+ 'Want to see this plugin in your own language? Please create a ticket! https://github.com/mpatfield/homebridge-econet-rheem/issues',
17
+ ],
18
+ // Equipment
19
+ outOfRangeCool: 'Cool setpoint out of range, lower: %s, upper: %s, setpoint: %s',
20
+ outOfRangeHeat: 'Heat setpoint out of range, lower: %s, upper: %s, setpoint: %s',
21
+ setpointUnknown: 'Cannot determine desired setpoint when mode is %s',
22
+ thermostat: 'Thermostat',
23
+ unknownMode: 'Unknown thermostat mode:',
24
+ unsupportedEquipment: 'Unsupported equipment type: %s',
25
+ unsupportedState: 'Unsupported state:',
26
+ waterHeater: 'Water Heater',
27
+ // HTTP
28
+ authSuccess: 'Successfully authenticated',
29
+ httpRetryMinutes: 'Request failed. Retrying in %s minutes…',
30
+ httpRetrySeconds: 'Request failed. Retrying in %s seconds…',
31
+ noDataReceived: 'No data received from EcoNet',
32
+ noEquipment: 'No equipment found',
33
+ reauthenticate: 'Attempting to re-authenticate',
34
+ reauthFailed: 'Re-authentication failed:',
35
+ // MQTT
36
+ authMissing: 'MQTT is missing auth',
37
+ connected: 'Connected and listening for updates…',
38
+ connectionClosed: 'Connection closed',
39
+ connectionError: 'MQTT cannot connect',
40
+ clientError: 'Client error:',
41
+ clientNotConnected: 'Client not connected',
42
+ idleConnection: 'Idle connection',
43
+ parseFailed: 'Failed to parse message:',
44
+ reconnectInMinutes: 'Will attempt to reconnect in %s minutes…',
45
+ reconnectInSeconds: 'Will attempt to reconnect in %s seconds…',
46
+ topicPublish: 'Publishing message to topic: %s\n',
47
+ topicUpdate: 'Received message from topic: %s\n',
48
+ unstableConnection: 'Having trouble staying connected',
49
+ // Debug
50
+ alertCount: '%s alert count = %s',
51
+ availabilityState: '%s availability = %s',
52
+ clientOffline: 'Client offline',
53
+ currentTempState: '%s current temp = %s',
54
+ coolSetpoint: '%s cool setpoint = %s',
55
+ enabledState: '%s enabled = %s',
56
+ heatSetpoint: '%s heat setpoint = %s',
57
+ humidityState: '%s humidity = %s',
58
+ modeState: '%s mode = %s',
59
+ runningState: '%s running = %s',
60
+ setpointState: '%s setpoint = %s',
61
+ updateReceived: 'Received update for %s',
62
+ };
63
+ export default langEn;
64
+ //# sourceMappingURL=en.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/lang/en.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG;IAEb,UAAU;IACV,KAAK,EAAE,QAAQ;IACf,QAAQ,EAAE,kBAAkB;IAE5B,UAAU;IACV,SAAS,EAAE,kJAAkJ;IAC7J,YAAY,EAAE,oBAAoB;IAClC,YAAY,EAAE,kBAAkB;IAChC,eAAe,EAAE,mBAAmB;IACpC,aAAa,EAAE,mBAAmB;IAClC,WAAW,EAAE,eAAe;IAC5B,eAAe,EAAE;QACf,mHAAmH;QACnH,8EAA8E;QAC9E,mFAAmF;QACnF,mIAAmI;KACpI;IAED,YAAY;IACZ,cAAc,EAAE,gEAAgE;IAChF,cAAc,EAAE,gEAAgE;IAChF,eAAe,EAAE,mDAAmD;IACpE,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,0BAA0B;IACvC,oBAAoB,EAAE,gCAAgC;IACtD,gBAAgB,EAAE,oBAAoB;IACtC,WAAW,EAAE,cAAc;IAE3B,OAAO;IACP,WAAW,EAAE,4BAA4B;IACzC,gBAAgB,EAAE,yCAAyC;IAC3D,gBAAgB,EAAE,yCAAyC;IAC3D,cAAc,EAAE,8BAA8B;IAC9C,WAAW,EAAE,oBAAoB;IACjC,cAAc,EAAE,+BAA+B;IAC/C,YAAY,EAAE,2BAA2B;IAEzC,OAAO;IACP,WAAW,EAAE,sBAAsB;IACnC,SAAS,EAAE,sCAAsC;IACjD,gBAAgB,EAAE,mBAAmB;IACrC,eAAe,EAAE,qBAAqB;IACtC,WAAW,EAAE,eAAe;IAC5B,kBAAkB,EAAE,sBAAsB;IAC1C,cAAc,EAAE,iBAAiB;IACjC,WAAW,EAAE,0BAA0B;IACvC,kBAAkB,EAAE,0CAA0C;IAC9D,kBAAkB,EAAE,0CAA0C;IAC9D,YAAY,EAAE,mCAAmC;IACjD,WAAW,EAAE,mCAAmC;IAChD,kBAAkB,EAAE,kCAAkC;IAEtD,QAAQ;IACR,UAAU,EAAE,qBAAqB;IACjC,iBAAiB,EAAE,sBAAsB;IACzC,aAAa,EAAE,gBAAgB;IAC/B,gBAAgB,EAAE,sBAAsB;IACxC,YAAY,EAAE,uBAAuB;IACrC,YAAY,EAAE,iBAAiB;IAC/B,YAAY,EAAE,uBAAuB;IACrC,aAAa,EAAE,kBAAkB;IACjC,SAAS,EAAE,cAAc;IACzB,YAAY,EAAE,iBAAiB;IAC/B,aAAa,EAAE,kBAAkB;IACjC,cAAc,EAAE,wBAAwB;CACzC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { Logger } from 'homebridge';
2
+ import { Equipment } from './equipment.js';
3
+ export declare class EconetApi {
4
+ readonly log: Logger;
5
+ private readonly email;
6
+ private readonly password;
7
+ readonly storageFilePath: string;
8
+ private readonly verbose;
9
+ private readonly debugMQTT;
10
+ private _auth?;
11
+ private retryIndex;
12
+ readonly equipments: Map<string, Equipment>;
13
+ private mqttClient;
14
+ private shouldReconnect;
15
+ private isReconnecting;
16
+ private reconnectCount;
17
+ private idleMQTTTimer;
18
+ constructor(log: Logger, email: string, password: string, storageFilePath: string, verbose: boolean, debugMQTT: boolean);
19
+ static connect(log: Logger, email: string, password: string, storageFilePath: string, verbose: boolean, debugMQTT: boolean): Promise<EconetApi>;
20
+ teardown(): void;
21
+ publish(payload: {
22
+ [key: string]: number;
23
+ }, deviceId: string, serialNumber: string): void;
24
+ private get auth();
25
+ private set auth(value);
26
+ private do;
27
+ private retryIfPossible;
28
+ private authenticate;
29
+ private mqttConnect;
30
+ private resetIdleMQTTTimer;
31
+ private mqttReconnect;
32
+ private getLocations;
33
+ private saveMQTT;
34
+ private logHTTP;
35
+ private logIfVerbose;
36
+ }