Hallo,
danke für dein Script !
Ich suche eine ähnliche Funktion welche über dem 3 EM Pro die aktuelle Leistung abfragt und sobald -200Watt zum Beispiel erreicht werden soll er die PV Anlage an Plug S abschalten und bei 0 wieder einschalten. Leider bringt es einen Fehler "Fehler beim Zugriff auf sysfs: No handler for sysfs.get"
Script:
let PLUG_IP = "192.168.178.158"; // IP des Plug S
let OFF_THRESHOLD = -200;
let ON_THRESHOLD = 0;
let CHECK_INTERVAL = 15000;
let plugIsOn = true;
function setPlug(state) {
let url = "http://" + PLUG_IP + "/rpc/Switch.Set?id=0&on=" + state;
HTTP.request({ method: "GET", url: url }, function (res, code, err) {
if (res) {
print("Plug " + (state ? "eingeschaltet" : "ausgeschaltet") + ".");
plugIsOn = state;
} else {
print("Fehler beim Schalten:", err);
}
});
}
function parseEmData(data) {
let total = 0;
let lines = data.split("\n");
for (let i = 0; i < lines.length; i++) {
let parts = lines[i].split(",");
if (parts.length >= {
let val = parseFloat(parts[7]);
if (!isNaN(val)) total += val;
}
}
return total;
}
function checkPower() {
Shelly.call("sysfs.get", { name: "em_data" }, function (res, err_code, err_msg) {
if (!res !res.value) {
print("Fehler beim Zugriff auf sysfs:", err_msg);
return;
}
let totalPower = parseEmData(res.value);
print("Gesamtleistung berechnet:", totalPower, "W");
if (totalPower < OFF_THRESHOLD && plugIsOn) {
setPlug(false);
} else if (totalPower >= ON_THRESHOLD && !plugIsOn) {
setPlug(true);
}
});
}
print("Starte Überwachung über sysfs.get...");
Timer.set(CHECK_INTERVAL, true, checkPower);