homebridge-econet-rheem 1.0.8 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -4
- package/dist/model/econet.d.ts +3 -1
- package/dist/model/econet.js +30 -22
- package/dist/model/econet.js.map +1 -1
- package/dist/model/thermostat.d.ts +3 -2
- package/dist/model/thermostat.js +45 -24
- package/dist/model/thermostat.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -11,12 +11,11 @@ This Homebridge plugin integrates Rheem EcoNet devices into Apple HomeKit.
|
|
|
11
11
|
|
|
12
12
|
## Limitations
|
|
13
13
|
|
|
14
|
-
*
|
|
14
|
+
* Due to limitations in HomeKit, it is not possible to switch water heater modes, only enable/disable and adjust the desired temperature.
|
|
15
|
+
* I do not have access to a thermostat, so that functionality may be buggy
|
|
16
|
+
* *Please run in debug/verbose mode included the generated json output when creating an issue*
|
|
15
17
|
* Celcius should work but is untested
|
|
16
18
|
* *Let me know if you have successfully used ºC so I can remove this*
|
|
17
|
-
* Thermostat implementation is incomplete since I don't have access to the necessary hardware
|
|
18
|
-
* *Running in debug/verbose mode will generate the json output needed*
|
|
19
|
-
* Due to limitations in HomeKit, it is not possible to switch water heater modes, only enable/disable and adjust the desired temperature.
|
|
20
19
|
|
|
21
20
|
## Installation
|
|
22
21
|
|
package/dist/model/econet.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export declare class EconetApi {
|
|
|
24
24
|
private accountId;
|
|
25
25
|
private equipment;
|
|
26
26
|
private mqttClient;
|
|
27
|
+
private shouldReconnect;
|
|
27
28
|
private reconnectDelaySeconds;
|
|
28
29
|
private isReconnecting;
|
|
29
30
|
private reconnectCount;
|
|
@@ -31,7 +32,8 @@ export declare class EconetApi {
|
|
|
31
32
|
static login(log: Logger, email: string, password: string, verbose: boolean): Promise<EconetApi>;
|
|
32
33
|
private authenticate;
|
|
33
34
|
subscribe(): void;
|
|
34
|
-
private
|
|
35
|
+
private connect;
|
|
36
|
+
private reconnect;
|
|
35
37
|
publish(payload: {
|
|
36
38
|
[key: string]: number;
|
|
37
39
|
}, deviceId: string, serialNumber: string): void;
|
package/dist/model/econet.js
CHANGED
|
@@ -10,8 +10,8 @@ const HEADERS = {
|
|
|
10
10
|
'ClearBlade-SystemSecret': CLEAR_BLADE_SYSTEM_SECRET,
|
|
11
11
|
'Content-Type': 'application/json; charset=UTF-8',
|
|
12
12
|
};
|
|
13
|
-
const
|
|
14
|
-
const
|
|
13
|
+
const DEFAULT_RECONNECT_DELAY_SECONDS = 120;
|
|
14
|
+
const MAX_RECONNECT_DELAY_SECONDS = 3600;
|
|
15
15
|
const RETRYABLE_CODES = [
|
|
16
16
|
3, // MQTT: Server unavailable
|
|
17
17
|
'ECONNREFUSED', 'ETIMEDOUT', 'ECONNRESET',
|
|
@@ -53,7 +53,8 @@ export class EconetApi {
|
|
|
53
53
|
accountId = null;
|
|
54
54
|
equipment = new Map();
|
|
55
55
|
mqttClient = null;
|
|
56
|
-
|
|
56
|
+
shouldReconnect = false;
|
|
57
|
+
reconnectDelaySeconds = DEFAULT_RECONNECT_DELAY_SECONDS;
|
|
57
58
|
isReconnecting = false;
|
|
58
59
|
reconnectCount = 0;
|
|
59
60
|
constructor(log, email, password, verbose) {
|
|
@@ -99,6 +100,10 @@ export class EconetApi {
|
|
|
99
100
|
}
|
|
100
101
|
}
|
|
101
102
|
subscribe() {
|
|
103
|
+
this.shouldReconnect = true;
|
|
104
|
+
this.connect();
|
|
105
|
+
}
|
|
106
|
+
connect() {
|
|
102
107
|
if (!this.equipment.size) {
|
|
103
108
|
this.log.error('No equipment');
|
|
104
109
|
return;
|
|
@@ -109,7 +114,7 @@ export class EconetApi {
|
|
|
109
114
|
}
|
|
110
115
|
this.mqttClient = mqtt.connect(`mqtts://${HOST}:1884`, this.mqttOptions);
|
|
111
116
|
this.mqttClient.on('connect', () => {
|
|
112
|
-
this.reconnectDelaySeconds =
|
|
117
|
+
this.reconnectDelaySeconds = DEFAULT_RECONNECT_DELAY_SECONDS;
|
|
113
118
|
this.mqttClient.subscribe(`user/${this.accountId}/device/reported`);
|
|
114
119
|
this.mqttClient.subscribe(`user/${this.accountId}/device/desired`);
|
|
115
120
|
this.log.info('Connected and listening for updates...');
|
|
@@ -142,38 +147,44 @@ export class EconetApi {
|
|
|
142
147
|
});
|
|
143
148
|
this.mqttClient.on('close', () => {
|
|
144
149
|
this.log.info('Connection closed');
|
|
145
|
-
this.
|
|
150
|
+
this.reconnect();
|
|
146
151
|
});
|
|
147
152
|
this.mqttClient.on('error', (err) => {
|
|
148
|
-
this.log.error('Client error:', err);
|
|
149
153
|
if (err.code !== undefined && RETRYABLE_CODES.includes(err.code)) {
|
|
150
|
-
this.
|
|
154
|
+
if (this.verbose) {
|
|
155
|
+
this.log.error('Client error:', err);
|
|
156
|
+
}
|
|
157
|
+
this.reconnect();
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
this.log.error('Client error:', err);
|
|
151
161
|
}
|
|
152
162
|
});
|
|
153
163
|
}
|
|
154
|
-
async
|
|
155
|
-
if (this.isReconnecting) {
|
|
164
|
+
async reconnect() {
|
|
165
|
+
if (!this.shouldReconnect || this.isReconnecting) {
|
|
156
166
|
return;
|
|
157
167
|
}
|
|
158
|
-
this.log.info('Attempting to reconnect...');
|
|
159
168
|
this.isReconnecting = true;
|
|
169
|
+
if (this.mqttClient) {
|
|
170
|
+
this.mqttClient.end(true);
|
|
171
|
+
this.mqttClient = null;
|
|
172
|
+
}
|
|
160
173
|
this.reconnectCount++;
|
|
161
174
|
if (this.reconnectCount % 3 === 0) {
|
|
162
175
|
try {
|
|
176
|
+
this.log.info('Attempting to re-authenticate');
|
|
163
177
|
await this.authenticate();
|
|
164
178
|
}
|
|
165
179
|
catch (error) {
|
|
166
|
-
this.log.error('
|
|
180
|
+
this.log.error('Re-authentication failed:', error);
|
|
167
181
|
}
|
|
168
182
|
}
|
|
183
|
+
this.log.info(`Will attempt to reconnect in ${this.reconnectDelaySeconds / 60} minutes...`);
|
|
169
184
|
setTimeout(() => {
|
|
170
|
-
|
|
171
|
-
this.mqttClient.end(true); // Forcefully close the old client
|
|
172
|
-
this.mqttClient = null;
|
|
173
|
-
}
|
|
174
|
-
this.reconnectDelaySeconds = Math.min(this.reconnectDelaySeconds * 2, MAX_DELAY_SECONDS);
|
|
185
|
+
this.reconnectDelaySeconds = Math.min(this.reconnectDelaySeconds * 2, MAX_RECONNECT_DELAY_SECONDS);
|
|
175
186
|
this.isReconnecting = false;
|
|
176
|
-
this.
|
|
187
|
+
this.connect();
|
|
177
188
|
}, this.reconnectDelaySeconds * 1000);
|
|
178
189
|
}
|
|
179
190
|
publish(payload, deviceId, serialNumber) {
|
|
@@ -185,11 +196,7 @@ export class EconetApi {
|
|
|
185
196
|
serial_number: serialNumber,
|
|
186
197
|
...payload,
|
|
187
198
|
};
|
|
188
|
-
if (!this.mqttClient) {
|
|
189
|
-
this.log.error('No client');
|
|
190
|
-
return;
|
|
191
|
-
}
|
|
192
|
-
if (!this.mqttClient.connected) {
|
|
199
|
+
if (!this.mqttClient || !this.mqttClient.connected) {
|
|
193
200
|
this.log.error('Client not connected');
|
|
194
201
|
return;
|
|
195
202
|
}
|
|
@@ -201,6 +208,7 @@ export class EconetApi {
|
|
|
201
208
|
this.mqttClient.publish(topic, message);
|
|
202
209
|
}
|
|
203
210
|
unsubscribe() {
|
|
211
|
+
this.shouldReconnect = false;
|
|
204
212
|
if (this.mqttClient) {
|
|
205
213
|
this.mqttClient.end();
|
|
206
214
|
}
|
package/dist/model/econet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"econet.js","sourceRoot":"","sources":["../../src/model/econet.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,IAAI,GAAG,sBAAsB,CAAC;AACpC,MAAM,QAAQ,GAAG,WAAW,IAAI,UAAU,CAAC;AAC3C,MAAM,sBAAsB,GAAG,gCAAgC,CAAC;AAChE,MAAM,yBAAyB,GAAG,8BAA8B,CAAC;AACjE,MAAM,OAAO,GAAG;IACd,sBAAsB,EAAE,sBAAsB;IAC9C,yBAAyB,EAAE,yBAAyB;IACpD,cAAc,EAAE,iCAAiC;CAClD,CAAC;AAEF,MAAM,
|
|
1
|
+
{"version":3,"file":"econet.js","sourceRoot":"","sources":["../../src/model/econet.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,8 @@ import { ThermostatOperationMode, TemperatureUnits } from './enums.js';
|
|
|
4
4
|
export declare class Thermostat extends Equipment {
|
|
5
5
|
private enabled;
|
|
6
6
|
private running;
|
|
7
|
+
private temp_units;
|
|
8
|
+
private current_temp;
|
|
7
9
|
private cool_set_point;
|
|
8
10
|
private cool_lower_limit;
|
|
9
11
|
private cool_upper_limit;
|
|
@@ -14,10 +16,10 @@ export declare class Thermostat extends Equipment {
|
|
|
14
16
|
private text_modes;
|
|
15
17
|
private supported_modes;
|
|
16
18
|
private current_mode;
|
|
17
|
-
private temp_units;
|
|
18
19
|
constructor(api: EconetApi, restUpdate: any);
|
|
19
20
|
get isEnabled(): boolean;
|
|
20
21
|
get isRunning(): boolean;
|
|
22
|
+
get units(): TemperatureUnits;
|
|
21
23
|
get currentTemp(): number;
|
|
22
24
|
get coolSetPoint(): number;
|
|
23
25
|
get coolSetPointLimits(): [number, number];
|
|
@@ -26,7 +28,6 @@ export declare class Thermostat extends Equipment {
|
|
|
26
28
|
get deadband(): number;
|
|
27
29
|
get modes(): ThermostatOperationMode[];
|
|
28
30
|
get mode(): ThermostatOperationMode;
|
|
29
|
-
get units(): TemperatureUnits;
|
|
30
31
|
protected updateFromREST(update: any): void;
|
|
31
32
|
updateFromMQTT(update: any): void;
|
|
32
33
|
private _modeFromString;
|
package/dist/model/thermostat.js
CHANGED
|
@@ -3,6 +3,8 @@ import { ThermostatOperationMode, TemperatureUnits } from './enums.js';
|
|
|
3
3
|
export class Thermostat extends Equipment {
|
|
4
4
|
enabled = false;
|
|
5
5
|
running = false;
|
|
6
|
+
temp_units = TemperatureUnits.CELSIUS;
|
|
7
|
+
current_temp = 0;
|
|
6
8
|
cool_set_point = 0;
|
|
7
9
|
cool_lower_limit = 0;
|
|
8
10
|
cool_upper_limit = 0;
|
|
@@ -13,7 +15,6 @@ export class Thermostat extends Equipment {
|
|
|
13
15
|
text_modes = [];
|
|
14
16
|
supported_modes = [];
|
|
15
17
|
current_mode = ThermostatOperationMode.UNKNOWN;
|
|
16
|
-
temp_units = TemperatureUnits.CELSIUS;
|
|
17
18
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
19
|
constructor(api, restUpdate) {
|
|
19
20
|
super(api);
|
|
@@ -25,8 +26,11 @@ export class Thermostat extends Equipment {
|
|
|
25
26
|
get isRunning() {
|
|
26
27
|
return this.running;
|
|
27
28
|
}
|
|
29
|
+
get units() {
|
|
30
|
+
return this.temp_units;
|
|
31
|
+
}
|
|
28
32
|
get currentTemp() {
|
|
29
|
-
return this.
|
|
33
|
+
return this.current_temp;
|
|
30
34
|
}
|
|
31
35
|
get coolSetPoint() {
|
|
32
36
|
return this.cool_set_point;
|
|
@@ -49,32 +53,34 @@ export class Thermostat extends Equipment {
|
|
|
49
53
|
get mode() {
|
|
50
54
|
return this.current_mode;
|
|
51
55
|
}
|
|
52
|
-
get units() {
|
|
53
|
-
return this.temp_units;
|
|
54
|
-
}
|
|
55
56
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
56
57
|
updateFromREST(update) {
|
|
57
58
|
super.updateFromREST(update);
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
if (
|
|
69
|
-
this.
|
|
70
|
-
this.
|
|
59
|
+
if ('@ENABLED' in update) {
|
|
60
|
+
this.enabled = update['@ENABLED'].value === 1;
|
|
61
|
+
}
|
|
62
|
+
if ('@RUNNINGSTATUS' in update) {
|
|
63
|
+
this.running = update['@RUNNINGSTATUS'].replace(/\s/g, '').length > 0;
|
|
64
|
+
}
|
|
65
|
+
if ('@SETPOINT' in update) {
|
|
66
|
+
this.temp_units = update['@SETPOINT'].constraints.units === 'deg F' ? TemperatureUnits.FAHRENHEIT : TemperatureUnits.CELSIUS;
|
|
67
|
+
this.current_temp = update['@SETPOINT'].value || 70;
|
|
68
|
+
}
|
|
69
|
+
if ('@COOLSETPOINT' in update) {
|
|
70
|
+
this.cool_lower_limit = update['@COOLSETPOINT'].constraints.lowerLimit || 50;
|
|
71
|
+
this.cool_upper_limit = update['@COOLSETPOINT'].constraints.upperLimit || 90;
|
|
72
|
+
this.cool_set_point = update['@COOLSETPOINT'].value || 70;
|
|
73
|
+
}
|
|
74
|
+
if ('@HEATSETPOINT' in update) {
|
|
75
|
+
this.heat_lower_limit = update['@HEATSETPOINT'].constraints.lowerLimit || 50;
|
|
76
|
+
this.heat_upper_limit = update['@HEATSETPOINT'].constraints.upperLimit || 90;
|
|
77
|
+
this.heat_set_point = update['@HEATSETPOINT'].value || 70;
|
|
71
78
|
}
|
|
72
79
|
this.dead_band = update['@DEADBAND']?.value || 0;
|
|
73
80
|
this.text_modes = update['@MODE']?.constraints.enumText;
|
|
74
81
|
this.supported_modes = [];
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
for (const mode of modes) {
|
|
82
|
+
if (this.text_modes) {
|
|
83
|
+
for (const mode of this.text_modes) {
|
|
78
84
|
const opMode = this._modeFromString(mode);
|
|
79
85
|
if (opMode !== ThermostatOperationMode.UNKNOWN) {
|
|
80
86
|
this.supported_modes.push(opMode);
|
|
@@ -82,16 +88,31 @@ export class Thermostat extends Equipment {
|
|
|
82
88
|
}
|
|
83
89
|
}
|
|
84
90
|
this.current_mode = this.modes[update['@MODE']?.value] ?? ThermostatOperationMode.UNKNOWN;
|
|
85
|
-
this.temp_units = update['@DEADBAND']?.constraints.units === 'deg F' ? TemperatureUnits.FAHRENHEIT : TemperatureUnits.CELSIUS;
|
|
86
91
|
this.didUpdate();
|
|
87
92
|
}
|
|
88
93
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
89
94
|
updateFromMQTT(update) {
|
|
90
95
|
if ('@ENABLED' in update) {
|
|
91
|
-
this.enabled = update['@ENABLED'] === 1 || update['@ENABLED']
|
|
96
|
+
this.enabled = update['@ENABLED'] === 1 || update['@ENABLED'].value === 1;
|
|
92
97
|
this._api.log.debug(`${this.deviceName} enabled = ${this.enabled}`);
|
|
93
98
|
}
|
|
94
|
-
|
|
99
|
+
if ('@RUNNINGSTATUS' in update) {
|
|
100
|
+
this.running = update['@RUNNINGSTATUS'].replace(/\s/g, '').length > 0;
|
|
101
|
+
this._api.log.debug(`${this.deviceName} running = ${this.running}`);
|
|
102
|
+
}
|
|
103
|
+
if ('@SETPOINT' in update) {
|
|
104
|
+
this.current_temp = update['@SETPOINT'] || 70;
|
|
105
|
+
this._api.log.debug(`${this.deviceName} current temp = ${this.current_temp}`);
|
|
106
|
+
}
|
|
107
|
+
if ('@COOLSETPOINT' in update) {
|
|
108
|
+
this.cool_set_point = update['@COOLSETPOINT'] || 70;
|
|
109
|
+
this._api.log.debug(`${this.deviceName} cool setpoint = ${this.cool_set_point}`);
|
|
110
|
+
}
|
|
111
|
+
if ('@HEATSETPOINT' in update) {
|
|
112
|
+
this.heat_set_point = update['@HEATSETPOINT'] || 70;
|
|
113
|
+
this._api.log.debug(`${this.deviceName} heat setpoint = ${this.heat_set_point}`);
|
|
114
|
+
}
|
|
115
|
+
this._api.log.debug('Thermostat implementation is WIP. Please expect some bugs.', JSON.stringify(update, null, 2));
|
|
95
116
|
this.didUpdate();
|
|
96
117
|
}
|
|
97
118
|
_modeFromString(strValue) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thermostat.js","sourceRoot":"","sources":["../../src/model/thermostat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEvE,MAAM,OAAO,UAAW,SAAQ,SAAS;IAE/B,OAAO,GAAY,KAAK,CAAC;IACzB,OAAO,GAAY,KAAK,CAAC;IAEzB,cAAc,GAAG,CAAC,CAAC;IACnB,gBAAgB,GAAG,CAAC,CAAC;IACrB,gBAAgB,GAAG,CAAC,CAAC;IAErB,cAAc,GAAG,CAAC,CAAC;IACnB,gBAAgB,GAAG,CAAC,CAAC;IACrB,gBAAgB,GAAG,CAAC,CAAC;IAErB,SAAS,GAAG,CAAC,CAAC;IAEd,UAAU,GAAa,EAAE,CAAC;IAC1B,eAAe,GAA8B,EAAE,CAAC;IAChD,YAAY,GAAG,uBAAuB,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"thermostat.js","sourceRoot":"","sources":["../../src/model/thermostat.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
|
|
7
|
+
"version": "1.1.0",
|
|
8
8
|
"homepage": "https://github.com/mpatfield/homebridge-econet-rheem#readme",
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|