homebridge-enphase-envoy 10.7.1 → 10.7.2
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/CHANGELOG.md +8 -0
- package/package.json +1 -1
- package/src/envoydevice.js +9 -9
package/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
11
11
|
- For plugin >= v10.4.0 use Homebridge UI >= v5.13.0
|
|
12
12
|
- after update to v10.0.0 and above the accessory and bridge need to be removed from the homebridge / Home.app and added again
|
|
13
13
|
|
|
14
|
+
## [10.7.2] - (14.05.2026)
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- Energy meter (`energyMeter`) with meters enabled: `EveCurrent` and `EveVoltage` characteristics were never updated because `characteristics2.push([...])` inserted a nested array instead of two separate objects; changed to `push(item1, item2)`
|
|
19
|
+
- Energy history: `prit`, `cnit`, `ctit` returned `null` for the first record of each day (when previous record is from a different day or history is empty); changed to `0`
|
|
20
|
+
- Energy history: `r3()` rounding helper now strictly checks `typeof v === 'number' && isFinite(v)` to prevent `NaN` or `Infinity` from being serialised as string `"null"` by `JSON.stringify`
|
|
21
|
+
|
|
14
22
|
## [10.7.1] - (14.05.2026)
|
|
15
23
|
|
|
16
24
|
### Changed
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"private": false,
|
|
3
3
|
"displayName": "Enphase Envoy",
|
|
4
4
|
"name": "homebridge-enphase-envoy",
|
|
5
|
-
"version": "10.7.
|
|
5
|
+
"version": "10.7.2",
|
|
6
6
|
"description": "Homebridge plugin for Photovoltaic Energy System manufactured by Enphase.",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"author": "grzegorz914",
|
package/src/envoydevice.js
CHANGED
|
@@ -4291,10 +4291,10 @@ class EnvoyDevice extends EventEmitter {
|
|
|
4291
4291
|
|
|
4292
4292
|
// Create characteristics energy meter
|
|
4293
4293
|
if (meterEnabled) {
|
|
4294
|
-
characteristics2.push(
|
|
4294
|
+
characteristics2.push(
|
|
4295
4295
|
{ type: Characteristic.EveCurrent, value: obj.current },
|
|
4296
4296
|
{ type: Characteristic.EveVoltage, value: obj.voltage },
|
|
4297
|
-
|
|
4297
|
+
);
|
|
4298
4298
|
}
|
|
4299
4299
|
|
|
4300
4300
|
// Update characteristics
|
|
@@ -4337,12 +4337,12 @@ class EnvoyDevice extends EventEmitter {
|
|
|
4337
4337
|
const lastRealRecord = energyHistory.reduce((last, item) => item?.pr != null ? item : last, null);
|
|
4338
4338
|
|
|
4339
4339
|
const nullRecord = (ts) => ({
|
|
4340
|
-
ts, prt: null, pr: null, prit:
|
|
4341
|
-
cnt: null, cn: null, cnit:
|
|
4342
|
-
ctt: null, ct: null, ctit:
|
|
4340
|
+
ts, prt: null, pr: null, prit: 0, prut: null, pru: null,
|
|
4341
|
+
cnt: null, cn: null, cnit: 0, cnut: null, cnu: null,
|
|
4342
|
+
ctt: null, ct: null, ctit: 0, ctpt: null, ctp: null
|
|
4343
4343
|
});
|
|
4344
4344
|
|
|
4345
|
-
const r3 = (v) => v
|
|
4345
|
+
const r3 = (v) => (typeof v === 'number' && isFinite(v)) ? Math.round(v * 1000) / 1000 : null;
|
|
4346
4346
|
|
|
4347
4347
|
const makeRecord = (ts) => {
|
|
4348
4348
|
const pr = r3(powerAndEnergyDataObj.production.energyLifetime);
|
|
@@ -4355,17 +4355,17 @@ class EnvoyDevice extends EventEmitter {
|
|
|
4355
4355
|
ts,
|
|
4356
4356
|
prt: r3(powerAndEnergyDataObj.production.energyToday),
|
|
4357
4357
|
pr,
|
|
4358
|
-
prit: sameDay && pr != null && lastRealRecord.pr != null ? r3(pr - lastRealRecord.pr) :
|
|
4358
|
+
prit: sameDay && pr != null && lastRealRecord.pr != null ? r3(pr - lastRealRecord.pr) : 0,
|
|
4359
4359
|
prut: r3(powerAndEnergyDataObj.production.energyTodayUpload),
|
|
4360
4360
|
pru: r3(powerAndEnergyDataObj.production.energyLifetimeUpload),
|
|
4361
4361
|
cnt: r3(powerAndEnergyDataObj.consumptionNet.energyToday),
|
|
4362
4362
|
cn,
|
|
4363
|
-
cnit: sameDay && cn != null && lastRealRecord.cn != null ? r3(cn - lastRealRecord.cn) :
|
|
4363
|
+
cnit: sameDay && cn != null && lastRealRecord.cn != null ? r3(cn - lastRealRecord.cn) : 0,
|
|
4364
4364
|
cnut: r3(powerAndEnergyDataObj.consumptionNet.energyTodayUpload),
|
|
4365
4365
|
cnu: r3(powerAndEnergyDataObj.consumptionNet.energyLifetimeUpload),
|
|
4366
4366
|
ctt: r3(powerAndEnergyDataObj.consumptionTotal.energyToday),
|
|
4367
4367
|
ct,
|
|
4368
|
-
ctit: sameDay && ct != null && lastRealRecord.ct != null ? r3(ct - lastRealRecord.ct) :
|
|
4368
|
+
ctit: sameDay && ct != null && lastRealRecord.ct != null ? r3(ct - lastRealRecord.ct) : 0,
|
|
4369
4369
|
ctpt: r3(powerAndEnergyDataObj.consumptionTotal.energyTodayFromPv),
|
|
4370
4370
|
ctp: r3(powerAndEnergyDataObj.consumptionTotal.energyLifetimeFromPv)
|
|
4371
4371
|
};
|