Shelly_PowerMeasure/Plus1PM.js

53 lines
1.3 KiB
JavaScript
Raw Normal View History

2023-12-19 13:48:20 +00:00
let startMonitor = false;
let lastRun = false;
let aEnergy = 0;
Shelly.addEventHandler(function (event, user_data) {
if (event.component ==="switch:0")
{
//print(JSON.stringify(event));
if (event.info.event === "toggle") {
if (event.info.state) {
startMonitor = true;
eAccumulator = 0;
} else {
startMonitor = false;
}
print("Monitor: " + startMonitor);
}
}
}, null);
Shelly.addStatusHandler(function (event, user_data)
{
//print(JSON.stringify(event));
if (typeof event.delta.aenergy !== "undefined")
{
if (startMonitor || lastRun)
{
lastRun = startMonitor;
Shelly.call
(
"KVS.Get", { key: "mWh" }, function (result, code, msg, ud)
{
aEnergy = Number(result.value);
KVS_Set("mWh", (aEnergy + event.delta.aenergy.by_minute[0]));
print("Consumed: " + ((aEnergy + event.delta.aenergy.by_minute[0]) / 1000) + "Wh");
KVS_Set("Consumed", ((aEnergy + event.delta.aenergy.by_minute[0]) / 1000) + "Wh -- !Set mWh to 0 for measure reset!");
},
null
);
}
}
}, null);
function KVS_Set (keyd, datad)
{
Shelly.call(
"KVS.Set", { key: keyd, value: datad },
function (result, code, msg, ud) {},
null
);
}