Shelly Script PV Überschusseinspeisung

Hinweis zur Nutzung von Skripten (für Nutzer)

Die Verwendung von Skripten erfolgt ausdrücklich auf eigene Gefahr. Weder Shelly noch die jeweiligen Autoren oder Entwickler der Skripte übernehmen irgendeine Form der Haftung für mögliche Schäden, Fehlfunktionen, Datenverluste oder anderweitige Beeinträchtigungen, die durch die Nutzung dieser Skripte entstehen könnten. Bitte stellen Sie vor dem Einsatz sicher, dass Sie den Quellcode verstehen und sich der möglichen Auswirkungen bewusst sind. Die Skripte werden ohne Gewähr bereitgestellt und unterliegen keiner regelmäßigen Wartung oder offiziellen Unterstützung.


Hinweis für Entwickler

Wenn Sie eigene Skripte bereitstellen, achten Sie bitte darauf, eine klare Beschreibung, eventuelle Einschränkungen und Sicherheitsaspekte zu dokumentieren. Beachten Sie zudem, dass Nutzer Ihre Skripte grundsätzlich auf eigenes Risiko verwenden. Eine Haftung für Schäden ist ausgeschlossen, sofern diese nicht vorsätzlich oder grob fahrlässig verursacht wurden oder gesetzlich anderweitig geregelt ist.

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 zusammen,

    hab mir aus einigen Beispiel Scripts ein Script für meine PV Anlage zusammengestellt.

    Ich verwende zwei Shelly 1PM welche im lokalen WLan verbunden sind.

    Es werden alle gemessen Daten richtig ausgelesen und auch richtig angezeigt.

    Wenn ich dann aber die Leistung des Remote-Shelly mit einem Wert (z.B. 300W) vergleichen möchte, passiert gar nichts. ;(

    if (300 > Verbraucher_Power) Shelly.call("Switch.set", {'id': 0, 'on': false});

    Mache ich das selbe mit der Leistung, die am Shelly gemessen wird, auf dem das Script läuft funktioniert alles. :/

    if (300 > PV_Power) Shelly.call("Switch.set", {'id': 0, 'on': false});

    Weiß jemand, wo mein Fehler liegt? Ich glaube irgendetwas stimmt mit der Definiton "Verbraucher_Power) nicht.

    Hier das gesamte Script

    // CONFIG START

    let CONFIG = {

    // Shelly PLUS 1PM

    shelly_Verbraucher : "http://192.168.1.52/rpc/Switch.GetStatus?id=0"

    };

    // CONFIG END

    //Define Variables

    let Verbraucher_Power = 0;

    let PV_Power = 0;

    //

    function Verbraucher() {

    Shelly.call(

    "HTTP.GET",

    {

    "url": CONFIG.shelly_Verbraucher

    },

    function (result, error_code, error_message) {

    let Verbraucher_Power = JSON.parse(result.body).apower;

    print("Verbraucher = " Verbraucher_Power "W");

    //print(JSON.stringify(result));

    //if we need to check the state of the switch

    //peek into result.output

    if (JSON.parse(result.body).output === true) {

    print("Verbraucher Switch is on");

    }

    }

    );

    }

    let timer_handle = Timer.set(3000,true,Verbraucher,null);

    function PV() {

    Shelly.call(

    "switch.getstatus",

    {

    //for more than one switch devices use the respective id

    id: 0

    },

    function (result, error_code, error_message) {

    let PV_Power = (result.apower);

    print("PV = " PV_Power "W");

    if (300 > Verbraucher_Power) Shelly.call("Switch.set", {'id': 0, 'on': false});

    //print(JSON.stringify(result));

    //if we need to check the state of the switch

    //peek into result.output

    if (result.output === true) {

    print("PV Switch is on");

    }

    else {

    print("PV Switch is off");

    }

    }

    );

    }

    let timer_handle = Timer.set(3000,true,PV,null);

    // Set your input to Switch and in Detached mode for this code to function correctly.

  • Hallo Pezibär,

    um helfen zu können ... gibt es Meldungen im Log?

    ich hätte auf die schnelle folgendes gefunden:

    die Zeile liefert einen Syntaxfehelr:

    print("Verbraucher = " Verbraucher_Power "W");

    so stimmts:

    print("Verbraucher = " + Verbraucher_Power + "W");


    ebenfalls hier:

    print("PV = " PV_Power "W");


    schöne Güße

    Alex

  • Versuch mal das:

    In Zeile 48 und 68 waren Syntaxfehler beim print und du solltest auch sicherstellen, dass die Variable Verbraucher_Power in der Bedingung in Zeile 69 richtig referenziert wird.

    Einmal editiert, zuletzt von JoloXD (9. Dezember 2022 um 01:30)