Beiträge von Robbi82

VPN/Proxy erkannt

Es scheint, dass Sie einen VPN- oder Proxy-Dienst verwenden. Bitte beachten Sie, dass die Nutzung eines solchen Dienstes die Funktionalität dieser Webseite einschränken kann.

    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 >= 8) {
    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);