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 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*
@@ -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 (Beta)",
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
- return Math.round(inputTemp + (this.availability / 100) * (this.set_point - inputTemp));
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
- return 0;
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
- if (icon.includes('ten')) {
88
- return 10;
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
- if (icon.includes('fourty')) {
91
- return 40;
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 (icon.includes('hundred')) {
94
- return 100;
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":"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"}
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;IACnB,gBAAgB,GAAG,GAAG,CAAC;IAEvB,aAAa,GAAa,EAAE,CAAC;IAC7B,sBAAsB,GAAW,CAAC,CAAC;IACnC,qBAAqB,GAAW,GAAG,CAAC;IAEpC,aAAa,GAA0B,IAAI,CAAC;IAC5C,mBAAmB,GAAkB,IAAI,CAAC;IAE1C,SAAS,GAAkB,IAAI,CAAC;IAExC,8DAA8D;IAC9D,YAAY,GAAc,EAAE,UAAe;QACzC,KAAK,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC/C,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED,WAAW,CAAC,SAAyB;QAEnC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAClH,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAEvC,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;YAC7D,IAAI,CAAC,mBAAmB,GAAG,cAAc,CAAC;YAC1C,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC;QAED,OAAO,IAAI,CAAC,mBAAmB,IAAI,cAAc,CAAC;IACpD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,8DAA8D;IACpD,cAAc,CAAC,MAAW;QAClC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAE7B,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,WAAW,IAAI,MAAM,EAAE,CAAC;YAE1B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC;YAE7H,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,UAAU,IAAI,GAAG,CAAC;YACrE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,UAAU,IAAI,GAAG,CAAC;YACrE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,WAAW,IAAI,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,8DAA8D;IAC9D,cAAc,CAAC,MAAW;QAExB,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;YAC1E,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,cAAc,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAChE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,cAAc,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,WAAW,IAAI,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,gBAAgB,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,WAAW,IAAI,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACvF,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACjF,CAAC;IAEO,qBAAqB,CAAC,IAAY;QACxC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kCAAkC,EAAE,IAAI,CAAC,CAAC;QAE9D,MAAM,gBAAgB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAEpD,IAAI,eAAe,GAAG,GAAG,CAAC;QAC1B,IAAI,gBAAgB,GAAG,GAAG,CAAC;QAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,eAAe,GAAG,CAAC,CAAC;YACpB,gBAAgB,GAAG,EAAE,CAAC;QACxB,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,eAAe,GAAG,EAAE,CAAC;YACrB,gBAAgB,GAAG,EAAE,CAAC;QACxB,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,eAAe,GAAG,EAAE,CAAC;QACvB,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACjE,eAAe,GAAG,GAAG,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,eAAe,GAAG,GAAG,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAEzC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,cAAc,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,KAAK,CAAC;QAEnE,IAAI,eAAe,GAAG,IAAI,CAAC,qBAAqB,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;YAChC,MAAM,YAAY,GAAG,CAAC,QAAQ,GAAG,QAAQ,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,GAAG,gBAAgB,CAAC,CAAC;YACxI,MAAM,eAAe,GAAG,YAAY,GAAG,cAAc,CAAC;YAEtD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACzC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAC7B,CAAC;YAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,UAAU,oBAAoB,IAAI,CAAC,YAAY,iBAAiB,CAAC,CAAC;YAE9F,IAAI,CAAC,sBAAsB,GAAG,GAAG,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC;QACpC,IAAI,CAAC,qBAAqB,GAAG,eAAe,CAAC;QAE7C,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,IAAY,YAAY;QAEtB,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;IACnF,CAAC;IAEO,kBAAkB;QACxB,MAAM,GAAG,GAAG,mBAAmB,IAAI,CAAC,YAAY,EAAE,CAAC;QACnD,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IAChE,CAAC;IAEO,kBAAkB;QACxB,MAAM,GAAG,GAAG,mBAAmB,IAAI,CAAC,YAAY,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1C,CAAC;IAEO,mBAAmB;QAEzB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACpC,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,CAAC;IACH,CAAC;IAEO,0BAA0B;QAEhC,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;YAC5F,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC9D,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/G,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC;QAEjE,IAAI,WAAW,GAAG,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC;YACnC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;QAED,IAAI,WAAW,KAAK,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;CACF"}
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.2.0",
7
+ "version": "1.3.0",
8
8
  "homepage": "https://github.com/mpatfield/homebridge-econet-rheem#readme",
9
9
  "repository": {
10
10
  "type": "git",