homebridge-econet-rheem 1.2.0 → 1.3.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 +1 -0
- package/config.schema.json +7 -7
- package/dist/model/waterHeater.d.ts +13 -0
- package/dist/model/waterHeater.js +95 -9
- package/dist/model/waterHeater.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -11,6 +11,7 @@ This Homebridge plugin integrates Rheem EcoNet devices into Apple HomeKit.
|
|
|
11
11
|
|
|
12
12
|
## Limitations
|
|
13
13
|
|
|
14
|
+
* TODO Update this to discuss current water temp estimation
|
|
14
15
|
* Due to limitations in HomeKit, it is not possible to switch water heater modes, only enable/disable and adjust the desired temperature.
|
|
15
16
|
* Celcius should work but is untested
|
|
16
17
|
* *Let me know if you have successfully used ºC so I can remove this*
|
package/config.schema.json
CHANGED
|
@@ -23,14 +23,8 @@
|
|
|
23
23
|
"required": true,
|
|
24
24
|
"description": "Rheem/Econet account password"
|
|
25
25
|
},
|
|
26
|
-
"verbose": {
|
|
27
|
-
"title": "Verbose",
|
|
28
|
-
"type": "boolean",
|
|
29
|
-
"required": false,
|
|
30
|
-
"description": "Enable additional debug logging"
|
|
31
|
-
},
|
|
32
26
|
"wh_estimate": {
|
|
33
|
-
"title": "Estimate Current Water Heater Temp
|
|
27
|
+
"title": "Estimate Current Water Heater Temp",
|
|
34
28
|
"type": "boolean",
|
|
35
29
|
"required": false,
|
|
36
30
|
"description": "Calculate the average temp based on the set point and hot water availability"
|
|
@@ -43,6 +37,12 @@
|
|
|
43
37
|
"condition": {
|
|
44
38
|
"functionBody": "return model.wh_estimate === true"
|
|
45
39
|
}
|
|
40
|
+
},
|
|
41
|
+
"verbose": {
|
|
42
|
+
"title": "Verbose",
|
|
43
|
+
"type": "boolean",
|
|
44
|
+
"required": false,
|
|
45
|
+
"description": "Enable additional debug logging"
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
},
|
|
@@ -9,6 +9,13 @@ export declare class WaterHeater extends Equipment {
|
|
|
9
9
|
private upper_limit;
|
|
10
10
|
private set_point;
|
|
11
11
|
private availability;
|
|
12
|
+
private nextAvailability;
|
|
13
|
+
private recoveryRates;
|
|
14
|
+
private lastAvailabilityUpdate;
|
|
15
|
+
private lastAvailabilityValue;
|
|
16
|
+
private recoveryTimer;
|
|
17
|
+
private currentTempEstimate;
|
|
18
|
+
private inputTemp;
|
|
12
19
|
constructor(api: EconetApi, restUpdate: any);
|
|
13
20
|
get isEnabled(): boolean;
|
|
14
21
|
get isRunning(): boolean;
|
|
@@ -21,4 +28,10 @@ export declare class WaterHeater extends Equipment {
|
|
|
21
28
|
setEnabled(enabled: boolean): void;
|
|
22
29
|
setSetPoint(setPoint: number): void;
|
|
23
30
|
private _availabilityFromIcon;
|
|
31
|
+
private get recoveryRate();
|
|
32
|
+
private _saveRecoveryRates;
|
|
33
|
+
private _loadRecoveryRates;
|
|
34
|
+
private _startRecoveryTimer;
|
|
35
|
+
private _stopRecoveryTimer;
|
|
36
|
+
private _updateCurrentTempEstimate;
|
|
24
37
|
}
|
|
@@ -8,9 +8,17 @@ export class WaterHeater extends Equipment {
|
|
|
8
8
|
upper_limit = 150;
|
|
9
9
|
set_point = 0;
|
|
10
10
|
availability = 100;
|
|
11
|
+
nextAvailability = 100;
|
|
12
|
+
recoveryRates = [];
|
|
13
|
+
lastAvailabilityUpdate = 0;
|
|
14
|
+
lastAvailabilityValue = 100;
|
|
15
|
+
recoveryTimer = null;
|
|
16
|
+
currentTempEstimate = null;
|
|
17
|
+
inputTemp = null;
|
|
11
18
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12
19
|
constructor(api, restUpdate) {
|
|
13
20
|
super(api);
|
|
21
|
+
this.recoveryRates = this._loadRecoveryRates();
|
|
14
22
|
this.updateFromREST(restUpdate);
|
|
15
23
|
}
|
|
16
24
|
get isEnabled() {
|
|
@@ -29,7 +37,14 @@ export class WaterHeater extends Equipment {
|
|
|
29
37
|
if (!inputTemp) {
|
|
30
38
|
return this.set_point;
|
|
31
39
|
}
|
|
32
|
-
|
|
40
|
+
this.inputTemp = inputTemp;
|
|
41
|
+
const minCurrentTemp = Math.round(this.inputTemp + (this.availability / 100) * (this.set_point - this.inputTemp));
|
|
42
|
+
const recoveryRate = this.recoveryRate;
|
|
43
|
+
if (this.currentTempEstimate == null && recoveryRate != null) {
|
|
44
|
+
this.currentTempEstimate = minCurrentTemp;
|
|
45
|
+
this._startRecoveryTimer();
|
|
46
|
+
}
|
|
47
|
+
return this.currentTempEstimate ?? minCurrentTemp;
|
|
33
48
|
}
|
|
34
49
|
get setPoint() {
|
|
35
50
|
return this.set_point;
|
|
@@ -81,19 +96,90 @@ export class WaterHeater extends Equipment {
|
|
|
81
96
|
}
|
|
82
97
|
_availabilityFromIcon(icon) {
|
|
83
98
|
this._api.log.debug('Fetching availability for icon: ', icon);
|
|
99
|
+
const prevAvailability = this.lastAvailabilityValue;
|
|
100
|
+
let newAvailability = 100;
|
|
101
|
+
let nextAvailability = 100;
|
|
84
102
|
if (icon.includes('empty') || icon.includes('zero')) {
|
|
85
|
-
|
|
103
|
+
newAvailability = 0;
|
|
104
|
+
nextAvailability = 10;
|
|
105
|
+
}
|
|
106
|
+
else if (icon.includes('ten')) {
|
|
107
|
+
newAvailability = 10;
|
|
108
|
+
nextAvailability = 40;
|
|
109
|
+
}
|
|
110
|
+
else if (icon.includes('fourty')) {
|
|
111
|
+
newAvailability = 40;
|
|
112
|
+
}
|
|
113
|
+
else if (icon.includes('hundred') || icon.includes('hundread')) {
|
|
114
|
+
newAvailability = 100;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
newAvailability = 100;
|
|
118
|
+
}
|
|
119
|
+
this.nextAvailability = nextAvailability;
|
|
120
|
+
const now = Date.now();
|
|
121
|
+
const elapsedMinutes = (now - this.lastAvailabilityUpdate) / 60000;
|
|
122
|
+
if (newAvailability > this.lastAvailabilityValue && elapsedMinutes > 0) {
|
|
123
|
+
const baseTemp = this.set_point;
|
|
124
|
+
const tempIncrease = (baseTemp - baseTemp * (prevAvailability / 100)) * (newAvailability - prevAvailability) / (100 - prevAvailability);
|
|
125
|
+
const newRecoveryRate = tempIncrease / elapsedMinutes;
|
|
126
|
+
this.recoveryRates.push(newRecoveryRate);
|
|
127
|
+
if (this.recoveryRates.length > 3) {
|
|
128
|
+
this.recoveryRates.shift();
|
|
129
|
+
}
|
|
130
|
+
this._saveRecoveryRates();
|
|
131
|
+
this._api.log.debug(`${this.deviceName} recovery rate = ${this.recoveryRate} degrees/minute`);
|
|
132
|
+
this.lastAvailabilityUpdate = now;
|
|
133
|
+
}
|
|
134
|
+
this.availability = newAvailability;
|
|
135
|
+
this.lastAvailabilityValue = newAvailability;
|
|
136
|
+
return newAvailability;
|
|
137
|
+
}
|
|
138
|
+
get recoveryRate() {
|
|
139
|
+
if (this.recoveryRates.length === 0) {
|
|
140
|
+
return null;
|
|
86
141
|
}
|
|
87
|
-
|
|
88
|
-
|
|
142
|
+
return this.recoveryRates.reduce((a, b) => a + b, 0) / this.recoveryRates.length;
|
|
143
|
+
}
|
|
144
|
+
_saveRecoveryRates() {
|
|
145
|
+
const key = `whRecoveryRates_${this.serialNumber}`;
|
|
146
|
+
localStorage.setItem(key, JSON.stringify(this.recoveryRates));
|
|
147
|
+
}
|
|
148
|
+
_loadRecoveryRates() {
|
|
149
|
+
const key = `whRecoveryRates_${this.serialNumber}`;
|
|
150
|
+
const stored = localStorage.getItem(key);
|
|
151
|
+
return stored ? JSON.parse(stored) : [];
|
|
152
|
+
}
|
|
153
|
+
_startRecoveryTimer() {
|
|
154
|
+
if (this.recoveryTimer) {
|
|
155
|
+
clearInterval(this.recoveryTimer);
|
|
156
|
+
}
|
|
157
|
+
this.recoveryTimer = setInterval(() => {
|
|
158
|
+
this._updateCurrentTempEstimate();
|
|
159
|
+
}, 60000);
|
|
160
|
+
}
|
|
161
|
+
_stopRecoveryTimer() {
|
|
162
|
+
if (this.recoveryTimer) {
|
|
163
|
+
clearInterval(this.recoveryTimer);
|
|
164
|
+
this.recoveryTimer = null;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
_updateCurrentTempEstimate() {
|
|
168
|
+
if (this.currentTempEstimate == null || this.recoveryRate == null || this.inputTemp == null) {
|
|
169
|
+
this._api.log.error('Unable to update current temp estimate');
|
|
170
|
+
this._stopRecoveryTimer();
|
|
171
|
+
return;
|
|
89
172
|
}
|
|
90
|
-
|
|
91
|
-
|
|
173
|
+
const ceiling = Math.round(this.inputTemp + (this.nextAvailability / 100) * (this.set_point - this.inputTemp));
|
|
174
|
+
const oldEstimate = this.currentTempEstimate;
|
|
175
|
+
const newEstimate = this.currentTempEstimate + this.recoveryRate;
|
|
176
|
+
if (newEstimate > ceiling) {
|
|
177
|
+
this.currentTempEstimate = ceiling;
|
|
178
|
+
this._stopRecoveryTimer();
|
|
92
179
|
}
|
|
93
|
-
if (
|
|
94
|
-
|
|
180
|
+
if (oldEstimate !== this.currentTempEstimate) {
|
|
181
|
+
this.didUpdate();
|
|
95
182
|
}
|
|
96
|
-
return 100;
|
|
97
183
|
}
|
|
98
184
|
}
|
|
99
185
|
//# sourceMappingURL=waterHeater.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"waterHeater.js","sourceRoot":"","sources":["../../src/model/waterHeater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,OAAO,WAAY,SAAQ,SAAS;IAEhC,OAAO,GAAY,KAAK,CAAC;IACzB,OAAO,GAAY,KAAK,CAAC;IAEzB,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC;IAEtC,WAAW,GAAG,GAAG,CAAC;IAClB,WAAW,GAAG,GAAG,CAAC;IAClB,SAAS,GAAG,CAAC,CAAC;IAEd,YAAY,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"waterHeater.js","sourceRoot":"","sources":["../../src/model/waterHeater.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.
|
|
7
|
+
"version": "1.3.0",
|
|
8
8
|
"homepage": "https://github.com/mpatfield/homebridge-econet-rheem#readme",
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|