Ist das in Scripting bei Shelly machbar?

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.

  • Hallo zusammen,

    Gibt es hier einen Experten der mir sagen kann, ob die folgenden Szenen als Script auf dem Shelly erstellt werden kann? Es werden ja nicht alle Funktionen von Java Sript in Shelly unterstützt. Da wo ich die Steuerung benötige, ist leider kein Internetempfang möglich.

    Aktivierung:

    WENN
    (Shelly Plus 1, 192.168.8.34) „EIN“
    ODER
    (Shelly Uni Plus, 192.168.8.25) „EIN“
    DANN
    (Shelly Plus 1, 192.168.8.36) „EIN“

    Deaktivierung:

    WENN
    (Shelly Plus 1, 192.168.8.34) „AUS“ (Bedingung ist 6,5 Minuten gültig)
    UND
    (Shelly Uni Plus, 192.168.8.25) „AUS“
    DANN
    (Shelly Plus 1, 192.168.8.36) „AUS“ (Verzögerung 420 Sekunden)

    Wenn das Script einer erstellen kann wäre das fantastisch.

  • ;;; Nur noch an eigene Umgebung anpassen


    let plus1_34_ip = "192.168.8.34";
    let uni_25_ip = "192.168.8.25";
    let plus1_36_ip = "192.168.8.36";

    let plus1_34_status = false;
    let uni_25_status = false;
    let plus1_36_status = false;

    let plus1_34_off_timer = null;

    function checkAndControl() {
    Shelly.call("HTTP.GET", { url: "http://" + plus1_34_ip + "/status" }, function (res, err, details) {
    if (res && res.code === 200) {
    plus1_34_status = JSON.parse(res.body).relays[0].ison;
    Shelly.call("HTTP.GET", { url: "http://" + uni_25_ip + "/status" }, function (res, err, details) {
    if (res && res.code === 200) {
    uni_25_status = JSON.parse(res.body).relays[0].ison;

    // Einschalten
    if (plus1_34_status || uni_25_status) {
    if (!plus1_36_status) {
    Shelly.call("HTTP.GET", { url: "http://" + plus1_36_ip + "/relay/0?turn=on" });
    plus1_36_status = true;
    print("Shelly Plus 1 (192.168.8.36) eingeschaltet.");
    }
    if (plus1_34_off_timer) {
    clearTimeout(plus1_34_off_timer);
    plus1_34_off_timer = null;
    }
    }
    // Ausschalten
    else if (!plus1_34_status && !uni_25_status) {
    if (!plus1_34_off_timer) {
    plus1_34_off_timer = setTimeout(function () {
    Shelly.call("HTTP.GET", { url: "http://" + plus1_36_ip + "/relay/0?turn=off" });
    plus1_36_status = false;
    print("Shelly Plus 1 (192.168.8.36) nach Verzögerung ausgeschaltet.");
    plus1_34_off_timer = null;
    }, 420000); // 420 Sekunden = 7 Minuten
    print("Ausschaltverzögerung gestartet.");
    }
    }
    }
    });
    }
    });
    }

    // Regelmäßige Überprüfung alle 5 Sekunden
    Timer.set(5000, true, function () {
    checkAndControl();
    });

    // Erste Ausführung
    checkAndControl();

  • Es wäre super, wenn du Skripte mit "Code Block einfügen" (oben im Edit-Feld) postest.

    Sonst passiert sowas hier, sprich das Forum verhunzt dein Skript - zumindest bei der Anzeige, kopieren kann man trotzdem korrekt:

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

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