homebridge-econet-rheem 1.0.5 → 1.0.6

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.
@@ -18,22 +18,23 @@ export declare class EconetApi {
18
18
  readonly log: Logger;
19
19
  private readonly email;
20
20
  private readonly verbose;
21
- private _userToken;
22
- private _accountId;
23
- private _equipment;
24
- private _mqttClient;
21
+ private mqttOptions;
22
+ private userToken;
23
+ private accountId;
24
+ private equipment;
25
+ private mqttClient;
26
+ private reconnectDelaySeconds;
27
+ private isReconnecting;
25
28
  constructor(log: Logger, email: string, verbose: boolean);
26
- get userToken(): string | null;
27
- get accountId(): string | null;
28
29
  static login(log: Logger, email: string, password: string, verbose: boolean): Promise<EconetApi>;
29
- private _authenticate;
30
- private _getClientId;
30
+ private authenticate;
31
31
  subscribe(): void;
32
+ private resubscribe;
32
33
  publish(payload: {
33
34
  [key: string]: number;
34
35
  }, deviceId: string, serialNumber: string): void;
35
36
  unsubscribe(): void;
36
- private _getLocation;
37
+ private getLocation;
37
38
  getEquipment(): Promise<void>;
38
39
  getEquipmentByType(types: string[]): Promise<Map<string, Equipment[]>>;
39
40
  }
@@ -10,6 +10,12 @@ const HEADERS = {
10
10
  'ClearBlade-SystemSecret': CLEAR_BLADE_SYSTEM_SECRET,
11
11
  'Content-Type': 'application/json; charset=UTF-8',
12
12
  };
13
+ const MAX_DELAY_SECONDS = 300;
14
+ const RETRYABLE_CODES = [
15
+ 3, // MQTT: Server unavailable
16
+ 'ECONNREFUSED', 'ETIMEDOUT', 'ECONNRESET',
17
+ 'ENOTFOUND', 'EHOSTUNREACH', 'ENETUNREACH',
18
+ ];
13
19
  export const WATER_HEATER = 'WH';
14
20
  export const THERMOSTAT = 'HVAC';
15
21
  export class PyeconetError extends Error {
@@ -40,27 +46,24 @@ export class EconetApi {
40
46
  log;
41
47
  email;
42
48
  verbose;
43
- _userToken = null;
44
- _accountId = null;
45
- _equipment = new Map();
46
- _mqttClient = null;
49
+ mqttOptions = null;
50
+ userToken = null;
51
+ accountId = null;
52
+ equipment = new Map();
53
+ mqttClient = null;
54
+ reconnectDelaySeconds = 5;
55
+ isReconnecting = false;
47
56
  constructor(log, email, verbose) {
48
57
  this.log = log;
49
58
  this.email = email;
50
59
  this.verbose = verbose;
51
60
  }
52
- get userToken() {
53
- return this._userToken;
54
- }
55
- get accountId() {
56
- return this._accountId;
57
- }
58
61
  static async login(log, email, password, verbose) {
59
62
  const api = new EconetApi(log, email, verbose);
60
- await api._authenticate({ email, password });
63
+ await api.authenticate({ email, password });
61
64
  return api;
62
65
  }
63
- async _authenticate(payload) {
66
+ async authenticate(payload) {
64
67
  const response = await fetch(`${REST_URL}/user/auth`, {
65
68
  method: 'POST',
66
69
  headers: HEADERS,
@@ -69,8 +72,18 @@ export class EconetApi {
69
72
  if (response.status === 200) {
70
73
  const json = await response.json();
71
74
  if (json.options.success) {
72
- this._userToken = json.user_token;
73
- this._accountId = json.options.account_id;
75
+ this.log.info('Successfully authenticated');
76
+ this.userToken = json.user_token;
77
+ this.accountId = json.options.account_id;
78
+ const timeString = Date.now().toString().replace('.', '').slice(0, 13);
79
+ const clientId = `${this.email}${timeString}_android`;
80
+ this.mqttOptions = {
81
+ clientId,
82
+ username: this.userToken,
83
+ password: CLEAR_BLADE_SYSTEM_KEY,
84
+ rejectUnauthorized: true,
85
+ keepalive: 90,
86
+ };
74
87
  }
75
88
  else {
76
89
  throw new InvalidCredentialsError(json.options.message || 'Invalid credentials');
@@ -80,40 +93,35 @@ export class EconetApi {
80
93
  throw new GenericHTTPError(`HTTP error: ${response.status}`);
81
94
  }
82
95
  }
83
- _getClientId() {
84
- const timeString = Date.now().toString().replace('.', '').slice(0, 13);
85
- return `${this.email}${timeString}_android`;
86
- }
87
96
  subscribe() {
88
- if (!this._equipment.size) {
97
+ if (!this.equipment.size) {
98
+ this.log.error('No equipment');
89
99
  return;
90
100
  }
91
- const clientId = this._getClientId();
92
- const connectionOptions = {
93
- clientId,
94
- username: this._userToken,
95
- password: CLEAR_BLADE_SYSTEM_KEY,
96
- rejectUnauthorized: true,
97
- keepalive: 90,
98
- };
99
- this._mqttClient = mqtt.connect(`mqtts://${HOST}:1884`, connectionOptions);
100
- this._mqttClient.on('connect', () => {
101
- this._mqttClient.subscribe(`user/${this._accountId}/device/reported`);
102
- this._mqttClient.subscribe(`user/${this._accountId}/device/desired`);
101
+ if (!this.mqttOptions) {
102
+ this.log.error('MQTT options are undefined');
103
+ return;
104
+ }
105
+ this.mqttClient = mqtt.connect(`mqtts://${HOST}:1884`, this.mqttOptions);
106
+ this.mqttClient.on('connect', () => {
107
+ this.reconnectDelaySeconds = 5; // Reset backoff on successful connection
108
+ this.mqttClient.subscribe(`user/${this.accountId}/device/reported`);
109
+ this.mqttClient.subscribe(`user/${this.accountId}/device/desired`);
110
+ this.log.info('Connected and listening for updates...');
103
111
  });
104
- this._mqttClient.on('message', (topic, message) => {
112
+ this.mqttClient.on('message', (topic, message) => {
105
113
  try {
106
114
  const unpackedJson = JSON.parse(message.toString());
107
115
  if (this.verbose) {
108
- this.log.debug(`Received MQTT message from topic: ${topic}\n`, JSON.stringify(unpackedJson, null, 2));
116
+ this.log.debug(`Received message from topic: ${topic}\n`, JSON.stringify(unpackedJson, null, 2));
109
117
  }
110
118
  const serial = unpackedJson.serial_number;
111
- const equipment = this._equipment.get(serial);
119
+ const equipment = this.equipment.get(serial);
112
120
  if (equipment) {
113
121
  equipment.updateFromMQTT(unpackedJson);
114
122
  }
115
123
  else if ('@SIGNAL' in unpackedJson) {
116
- for (const eq of this._equipment.values()) {
124
+ for (const eq of this.equipment.values()) {
117
125
  if (eq.deviceId === unpackedJson.device_name) {
118
126
  eq.updateFromMQTT(unpackedJson);
119
127
  }
@@ -121,24 +129,39 @@ export class EconetApi {
121
129
  }
122
130
  }
123
131
  catch (e) {
124
- this.log.error('Failed to parse MQTT message:', message.toString());
132
+ this.log.error('Failed to parse message:', message.toString());
125
133
  }
126
134
  });
127
- this._mqttClient.on('offline', () => {
128
- this.log.debug('MQTT client went offline');
135
+ this.mqttClient.on('offline', () => {
136
+ this.log.info('Client offline');
129
137
  });
130
- let reconnectAttempts = 1;
131
- this._mqttClient.on('close', () => {
132
- this.log.debug('MQTT connection closed, attempting to reconnect...');
133
- setTimeout(() => {
134
- this._mqttClient.reconnect(connectionOptions);
135
- reconnectAttempts *= 2;
136
- }, Math.min(300000, 5000 * reconnectAttempts)); // Exponential backoff: 5s, 10s, 20s... 300s
138
+ this.mqttClient.on('close', () => {
139
+ this.log.info('Connection closed');
140
+ this.resubscribe();
137
141
  });
138
- this._mqttClient.on('error', (err) => {
139
- this.log.error('MQTT error:', err);
142
+ this.mqttClient.on('error', (err) => {
143
+ this.log.error('Client error:', err);
144
+ if (err.code !== undefined && RETRYABLE_CODES.includes(err.code)) {
145
+ this.resubscribe();
146
+ }
140
147
  });
141
148
  }
149
+ resubscribe() {
150
+ if (this.isReconnecting) {
151
+ return;
152
+ }
153
+ this.log.info('Attempting to reconnect...');
154
+ this.isReconnecting = true;
155
+ setTimeout(() => {
156
+ if (this.mqttClient) {
157
+ this.mqttClient.end(true); // Forcefully close the old client
158
+ this.mqttClient = null;
159
+ }
160
+ this.reconnectDelaySeconds = Math.min(this.reconnectDelaySeconds * 2, MAX_DELAY_SECONDS);
161
+ this.isReconnecting = false;
162
+ this.subscribe();
163
+ }, this.reconnectDelaySeconds);
164
+ }
142
165
  publish(payload, deviceId, serialNumber) {
143
166
  const dateTime = new Date().toISOString().replace(/\.\d{3}Z$/, '');
144
167
  const transactionId = `ANDROID_${dateTime}`;
@@ -148,21 +171,29 @@ export class EconetApi {
148
171
  serial_number: serialNumber,
149
172
  ...payload,
150
173
  };
151
- if (this._mqttClient) {
152
- const topic = `user/${this._accountId}/device/desired`;
153
- const payload = JSON.stringify(publishPayload, null, 2);
154
- this.log.debug(`Publishing MQTT message to topic: ${topic}\n`, payload);
155
- this._mqttClient.publish(topic, payload);
174
+ if (!this.mqttClient) {
175
+ this.log.error('No client');
176
+ return;
177
+ }
178
+ if (!this.mqttClient.connected) {
179
+ this.log.error('Client not connected');
180
+ return;
181
+ }
182
+ const topic = `user/${this.accountId}/device/desired`;
183
+ const message = JSON.stringify(publishPayload, null, 2);
184
+ if (this.verbose) {
185
+ this.log.debug(`Publishing message to topic: ${topic}\n`, message);
156
186
  }
187
+ this.mqttClient.publish(topic, message);
157
188
  }
158
189
  unsubscribe() {
159
- if (this._mqttClient) {
160
- this._mqttClient.end();
190
+ if (this.mqttClient) {
191
+ this.mqttClient.end();
161
192
  }
162
193
  }
163
194
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
164
- async _getLocation() {
165
- const headers = { ...HEADERS, 'ClearBlade-UserToken': this._userToken };
195
+ async getLocation() {
196
+ const headers = { ...HEADERS, 'ClearBlade-UserToken': this.userToken };
166
197
  const payload = {
167
198
  location_only: false,
168
199
  type: 'com.econet.econetconsumerandroid',
@@ -183,11 +214,11 @@ export class EconetApi {
183
214
  throw new GenericHTTPError(`HTTP error: ${response.status}`);
184
215
  }
185
216
  async getEquipment() {
186
- const locations = await this._getLocation();
217
+ const locations = await this.getLocation();
187
218
  for (const location of locations) {
188
219
  for (const equip of location.equiptments) {
189
220
  if ('error' in equip) {
190
- this.log.error(`econet equipment error: ${equip.error}`);
221
+ this.log.error(`Equipment error: ${equip.error}`);
191
222
  continue;
192
223
  }
193
224
  if (this.verbose) {
@@ -203,23 +234,23 @@ export class EconetApi {
203
234
  else {
204
235
  continue;
205
236
  }
206
- this._equipment.set(equipObj.serialNumber, equipObj);
237
+ this.equipment.set(equipObj.serialNumber, equipObj);
207
238
  if (equip.device_type === THERMOSTAT && equip.zoning_devices) {
208
239
  for (const zoningDevice of equip.zoning_devices) {
209
240
  const zoningEquip = new Thermostat(this, zoningDevice);
210
- this._equipment.set(zoningEquip.serialNumber, zoningEquip);
241
+ this.equipment.set(zoningEquip.serialNumber, zoningEquip);
211
242
  }
212
243
  }
213
244
  }
214
245
  }
215
246
  }
216
247
  async getEquipmentByType(types) {
217
- if (!this._equipment.size) {
248
+ if (!this.equipment.size) {
218
249
  await this.getEquipment();
219
250
  }
220
251
  const result = new Map();
221
252
  types.forEach((type) => result.set(type, []));
222
- for (const equip of this._equipment.values()) {
253
+ for (const equip of this.equipment.values()) {
223
254
  if (types.includes(equip instanceof WaterHeater ? WATER_HEATER : THERMOSTAT)) {
224
255
  result.get(equip instanceof WaterHeater ? WATER_HEATER : THERMOSTAT).push(equip);
225
256
  }
@@ -1 +1 @@
1
- {"version":3,"file":"econet.js","sourceRoot":"","sources":["../../src/model/econet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"econet.js","sourceRoot":"","sources":["../../src/model/econet.ts"],"names":[],"mappings":"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"}
package/dist/platform.js CHANGED
@@ -40,7 +40,6 @@ export class EconetRheemPlatform {
40
40
  }
41
41
  try {
42
42
  this.econetApi = await EconetApi.login(this.log, email, password, verbose);
43
- this.log.debug('Successfully authenticated with Econet API');
44
43
  const equipmentMap = await this.econetApi.getEquipmentByType([THERMOSTAT, WATER_HEATER]);
45
44
  const thermostats = equipmentMap.get(THERMOSTAT) || [];
46
45
  const waterHeaters = equipmentMap.get(WATER_HEATER) || [];
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "displayName": "Homebridge Econet Rheem",
5
5
  "description": "Homebridge plugin based on pyeconet for control of Rheem water heaters",
6
6
  "type": "module",
7
- "version": "1.0.5",
7
+ "version": "1.0.6",
8
8
  "homepage": "https://github.com/mpatfield/homebridge-econet-rheem#readme",
9
9
  "repository": {
10
10
  "type": "git",
@@ -42,6 +42,7 @@
42
42
  "devDependencies": {
43
43
  "@eslint/js": "^9.21.0",
44
44
  "@types/node": "^22.13.5",
45
+ "@types/ws": "^8.18.1",
45
46
  "eslint": "^9.24.0",
46
47
  "homebridge": "^2.0.0-beta.0",
47
48
  "nodemon": "^3.1.9",