Shelly Pro EM-50 Werte auslesen und per script an Thingspeak senden..

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,

    ich würde gerne die Werte (Strom und Spannung) alle 10 Minuten auslesen und per Shelly-Script an Thingspeak senden lassen.
    Leider finde ich kein passendes Script im Netz, mein Script für den Pro 3EM und Pro 1EM funktionieren ohne Probleme.

    Kann mir da jemand helfen ?

    Viele Grüße

  • Hallo tvbshelly,

    erstmal vielen Dank für die schnelle Antwort.

    Ich habe leider keine Ahnung von Scripte und das Script (Shelly Pro 3EM) das funktioniert, habe ich einfach aus einer Vorlage genommen.

    Vielleicht kann mir jemand helfen und das Script so anpassen, dass es auf dem Shelly Pro EM-50 funktioniert.

    Hier mal das Script vom Shelly Pro 3EM:

  • Der Shelly Pro EM-50 ist einphasig, daher gibt es:

    • 2 instances of EM1 (em1:0, em1:1)
    • 2 instances of EM1Data (em1data:0, em1data:1)

    Ich denke, du kannst daher im Skript EMData.GetStatus ersetzen durch EMData1.GetStatus und EM.GetStatus durch EM1.GetStatus

    id: 0 ist dann der 1. Kanal (CT) und id: 1 wäre der 2. Kanal, wenn du den auch auswerten möchtest.

    Siehe:

    https://shelly-api-docs.shelly.cloud/gen2/Devices/Gen2/ShellyProEM/

    https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/EM1

    https://shelly-api-docs.shelly.cloud/gen2/ComponentsAndServices/EM1Data

    Ich hoffe, das hilft dir schonmal weiter.

    Ich habe leider keinen Pro EM-50 zur Hand um das Skript umgeschrieben selber zu testen.

    Überwiegend PRO 3EM im Einsatz zur Haus und PV Überwachung

  • Hallo tvbshelly,

    vielen Dank für deine Hilfe.

    Habe jetzt mal mit ChatGPT und deinen Links mir ein Script bauen lassen, nach einigen Diskussionen mit ChatGPT funktioniert es nun :-)

    Hier das Script zum Strom auslesen (alle 6 Minuten) und an Thingspeak zu senden:

    // Shelly Script: Stromwerte EM1:0 und EM1:1 an ThingSpeak senden
    Timer.set(360000, true, function () {
    // Kanal 0 auslesen
    Shelly.call("EM1.GetStatus", { id: 0 }, function (result0) {
    let current0 = result0.current;
    // Kanal 1 auslesen
    Shelly.call("EM1.GetStatus", { id: 1 }, function (result1) {
    let current1 = result1.current;
    // ThingSpeak-URL mit API-Key und Feldwerten
    let url = "https://api.thingspeak.com/update?api_key=xxxxxxxxxxxxxx" +
    "&field1=" + current0 +
    "&field2=" + current1;
    Shelly.call("HTTP.GET", { url: url });
    });
    });
    });


    Viele Grüsse