homebridge-econet-rheem 1.0.7 → 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 +6 -2
- package/dist/model/econet.js +47 -25
- 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
|
@@ -17,19 +17,23 @@ export declare class GenericHTTPError extends PyeconetError {
|
|
|
17
17
|
export declare class EconetApi {
|
|
18
18
|
readonly log: Logger;
|
|
19
19
|
private readonly email;
|
|
20
|
+
private readonly password;
|
|
20
21
|
private readonly verbose;
|
|
21
22
|
private mqttOptions;
|
|
22
23
|
private userToken;
|
|
23
24
|
private accountId;
|
|
24
25
|
private equipment;
|
|
25
26
|
private mqttClient;
|
|
27
|
+
private shouldReconnect;
|
|
26
28
|
private reconnectDelaySeconds;
|
|
27
29
|
private isReconnecting;
|
|
28
|
-
|
|
30
|
+
private reconnectCount;
|
|
31
|
+
constructor(log: Logger, email: string, password: string, verbose: boolean);
|
|
29
32
|
static login(log: Logger, email: string, password: string, verbose: boolean): Promise<EconetApi>;
|
|
30
33
|
private authenticate;
|
|
31
34
|
subscribe(): void;
|
|
32
|
-
private
|
|
35
|
+
private connect;
|
|
36
|
+
private reconnect;
|
|
33
37
|
publish(payload: {
|
|
34
38
|
[key: string]: number;
|
|
35
39
|
}, deviceId: string, serialNumber: string): void;
|
package/dist/model/econet.js
CHANGED
|
@@ -10,7 +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
|
|
13
|
+
const DEFAULT_RECONNECT_DELAY_SECONDS = 120;
|
|
14
|
+
const MAX_RECONNECT_DELAY_SECONDS = 3600;
|
|
14
15
|
const RETRYABLE_CODES = [
|
|
15
16
|
3, // MQTT: Server unavailable
|
|
16
17
|
'ECONNREFUSED', 'ETIMEDOUT', 'ECONNRESET',
|
|
@@ -45,29 +46,33 @@ export class GenericHTTPError extends PyeconetError {
|
|
|
45
46
|
export class EconetApi {
|
|
46
47
|
log;
|
|
47
48
|
email;
|
|
49
|
+
password;
|
|
48
50
|
verbose;
|
|
49
51
|
mqttOptions = null;
|
|
50
52
|
userToken = null;
|
|
51
53
|
accountId = null;
|
|
52
54
|
equipment = new Map();
|
|
53
55
|
mqttClient = null;
|
|
54
|
-
|
|
56
|
+
shouldReconnect = false;
|
|
57
|
+
reconnectDelaySeconds = DEFAULT_RECONNECT_DELAY_SECONDS;
|
|
55
58
|
isReconnecting = false;
|
|
56
|
-
|
|
59
|
+
reconnectCount = 0;
|
|
60
|
+
constructor(log, email, password, verbose) {
|
|
57
61
|
this.log = log;
|
|
58
62
|
this.email = email;
|
|
63
|
+
this.password = password;
|
|
59
64
|
this.verbose = verbose;
|
|
60
65
|
}
|
|
61
66
|
static async login(log, email, password, verbose) {
|
|
62
|
-
const api = new EconetApi(log, email, verbose);
|
|
63
|
-
await api.authenticate(
|
|
67
|
+
const api = new EconetApi(log, email, password, verbose);
|
|
68
|
+
await api.authenticate();
|
|
64
69
|
return api;
|
|
65
70
|
}
|
|
66
|
-
async authenticate(
|
|
71
|
+
async authenticate() {
|
|
67
72
|
const response = await fetch(`${REST_URL}/user/auth`, {
|
|
68
73
|
method: 'POST',
|
|
69
74
|
headers: HEADERS,
|
|
70
|
-
body: JSON.stringify(
|
|
75
|
+
body: JSON.stringify({ email: this.email, password: this.password }),
|
|
71
76
|
});
|
|
72
77
|
if (response.status === 200) {
|
|
73
78
|
const json = await response.json();
|
|
@@ -83,6 +88,7 @@ export class EconetApi {
|
|
|
83
88
|
password: CLEAR_BLADE_SYSTEM_KEY,
|
|
84
89
|
rejectUnauthorized: true,
|
|
85
90
|
keepalive: 90,
|
|
91
|
+
reconnectPeriod: 0,
|
|
86
92
|
};
|
|
87
93
|
}
|
|
88
94
|
else {
|
|
@@ -94,6 +100,10 @@ export class EconetApi {
|
|
|
94
100
|
}
|
|
95
101
|
}
|
|
96
102
|
subscribe() {
|
|
103
|
+
this.shouldReconnect = true;
|
|
104
|
+
this.connect();
|
|
105
|
+
}
|
|
106
|
+
connect() {
|
|
97
107
|
if (!this.equipment.size) {
|
|
98
108
|
this.log.error('No equipment');
|
|
99
109
|
return;
|
|
@@ -104,7 +114,7 @@ export class EconetApi {
|
|
|
104
114
|
}
|
|
105
115
|
this.mqttClient = mqtt.connect(`mqtts://${HOST}:1884`, this.mqttOptions);
|
|
106
116
|
this.mqttClient.on('connect', () => {
|
|
107
|
-
this.reconnectDelaySeconds =
|
|
117
|
+
this.reconnectDelaySeconds = DEFAULT_RECONNECT_DELAY_SECONDS;
|
|
108
118
|
this.mqttClient.subscribe(`user/${this.accountId}/device/reported`);
|
|
109
119
|
this.mqttClient.subscribe(`user/${this.accountId}/device/desired`);
|
|
110
120
|
this.log.info('Connected and listening for updates...');
|
|
@@ -137,29 +147,44 @@ export class EconetApi {
|
|
|
137
147
|
});
|
|
138
148
|
this.mqttClient.on('close', () => {
|
|
139
149
|
this.log.info('Connection closed');
|
|
140
|
-
this.
|
|
150
|
+
this.reconnect();
|
|
141
151
|
});
|
|
142
152
|
this.mqttClient.on('error', (err) => {
|
|
143
|
-
this.log.error('Client error:', err);
|
|
144
153
|
if (err.code !== undefined && RETRYABLE_CODES.includes(err.code)) {
|
|
145
|
-
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);
|
|
146
161
|
}
|
|
147
162
|
});
|
|
148
163
|
}
|
|
149
|
-
|
|
150
|
-
if (this.isReconnecting) {
|
|
164
|
+
async reconnect() {
|
|
165
|
+
if (!this.shouldReconnect || this.isReconnecting) {
|
|
151
166
|
return;
|
|
152
167
|
}
|
|
153
|
-
this.log.info('Attempting to reconnect...');
|
|
154
168
|
this.isReconnecting = true;
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
169
|
+
if (this.mqttClient) {
|
|
170
|
+
this.mqttClient.end(true);
|
|
171
|
+
this.mqttClient = null;
|
|
172
|
+
}
|
|
173
|
+
this.reconnectCount++;
|
|
174
|
+
if (this.reconnectCount % 3 === 0) {
|
|
175
|
+
try {
|
|
176
|
+
this.log.info('Attempting to re-authenticate');
|
|
177
|
+
await this.authenticate();
|
|
159
178
|
}
|
|
160
|
-
|
|
179
|
+
catch (error) {
|
|
180
|
+
this.log.error('Re-authentication failed:', error);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
this.log.info(`Will attempt to reconnect in ${this.reconnectDelaySeconds / 60} minutes...`);
|
|
184
|
+
setTimeout(() => {
|
|
185
|
+
this.reconnectDelaySeconds = Math.min(this.reconnectDelaySeconds * 2, MAX_RECONNECT_DELAY_SECONDS);
|
|
161
186
|
this.isReconnecting = false;
|
|
162
|
-
this.
|
|
187
|
+
this.connect();
|
|
163
188
|
}, this.reconnectDelaySeconds * 1000);
|
|
164
189
|
}
|
|
165
190
|
publish(payload, deviceId, serialNumber) {
|
|
@@ -171,11 +196,7 @@ export class EconetApi {
|
|
|
171
196
|
serial_number: serialNumber,
|
|
172
197
|
...payload,
|
|
173
198
|
};
|
|
174
|
-
if (!this.mqttClient) {
|
|
175
|
-
this.log.error('No client');
|
|
176
|
-
return;
|
|
177
|
-
}
|
|
178
|
-
if (!this.mqttClient.connected) {
|
|
199
|
+
if (!this.mqttClient || !this.mqttClient.connected) {
|
|
179
200
|
this.log.error('Client not connected');
|
|
180
201
|
return;
|
|
181
202
|
}
|
|
@@ -187,6 +208,7 @@ export class EconetApi {
|
|
|
187
208
|
this.mqttClient.publish(topic, message);
|
|
188
209
|
}
|
|
189
210
|
unsubscribe() {
|
|
211
|
+
this.shouldReconnect = false;
|
|
190
212
|
if (this.mqttClient) {
|
|
191
213
|
this.mqttClient.end();
|
|
192
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",
|