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.

  • Ich habe heute die KI (Microsoft Copilot) gefragt, ob sie mir ein script über eine Temperaturdifferenz-Regelung mit zwei Boilern, einer Umwälz-Pumpe, ein Umschaltventil und 5 Temperatursensoren: Kollektor, Vor- und Rücklauf, Boiler1 und Boiler 2 schreiben kann:

    Hier das Ergebnis:

    // Shelly Script für Differenztemperatursteuerung mit Umschaltventil, Hysterese, Minimaltemperatur und Vor-/Rücklauftemperatur

    // Konfigurationsparameter
    let tempBoiler1 = 0;
    let tempBoiler2 = 0;
    let tempKollektor = 0;
    let tempKollektorVorlauf = 0;
    let tempKollektorRücklauf = 0;
    let thresholdBoiler1 = 60; // Schwellenwert für Boiler 1
    let hysteresis = 2; // Hysterese-Wert in Grad Celsius
    let minKollektorTemp = 40; // Minimale Kollektortemperatur für Pumpenbetrieb
    let minDiffTemp = 3; // Minimale Temperaturdifferenz für Pumpenbetrieb
    let relayPump = 0; // Relais für die Pumpe
    let relayValve = 1; // Relais für das Umschaltventil

    // Funktion zum Aktualisieren der Temperaturen
    function updateTemperatures() {
    Shelly.call("http.get", { url: "http://shelly-ip/status" }, function (res) {
    let data = JSON.parse(res.body);
    tempBoiler1 = data.ext_temperature[0].tC;
    tempBoiler2 = data.ext_temperature[1].tC;
    tempKollektor = data.ext_temperature[2].tC;
    tempKollektorVorlauf = data.ext_temperature[3].tC;
    tempKollektorRücklauf = data.ext_temperature[4].tC;
    });
    }

    // Funktion zur Steuerung der Pumpe und des Ventils
    function controlSystem() {
    updateTemperatures();

    if (tempKollektorVorlauf >= minKollektorTemp) {
    if (tempBoiler1 >= thresholdBoiler1) {
    // Umschaltventil auf Boiler 2 umschalten
    Shelly.call("Switch.Set", { id: relayValve, on: true });

    // Temperaturvergleich zwischen Boiler 2 und Kollektorvorlauf mit Hysterese und Mindestdifferenz
    if (tempKollektorVorlauf > tempBoiler2 + hysteresis && (tempKollektorVorlauf - tempBoiler2) >= minDiffTemp) {
    // Pumpe einschalten
    Shelly.call("Switch.Set", { id: relayPump, on: true });
    } else if (tempKollektorVorlauf <= tempBoiler2) {
    // Pumpe ausschalten
    Shelly.call("Switch.Set", { id: relayPump, on: false });
    }
    } else {
    // Umschaltventil auf Boiler 1 zurückschalten (Standardzustand)
    Shelly.call("Switch.Set", { id: relayValve, on: false });

    // Pumpe einschalten, wenn Kollektortemperatur höher ist als Boiler 1 mit Hysterese und Mindestdifferenz
    if (tempKollektorVorlauf > tempBoiler1 + hysteresis && (tempKollektorVorlauf - tempBoiler1) >= minDiffTemp) {
    Shelly.call("Switch.Set", { id: relayPump, on: true });
    } else if (tempKollektorVorlauf <= tempBoiler1 && tempKollektorVorlauf <= tempBoiler2) {
    // Pumpe ausschalten, wenn Kollektortemperatur niedriger ist als beide Boiler
    Shelly.call("Switch.Set", { id: relayPump, on: false });
    }
    }
    } else {
    // Pumpe ausschalten, wenn Kollektortemperatur unter der Minimaltemperatur liegt
    Shelly.call("Switch.Set", { id: relayPump, on: false });
    }
    }

    // Intervall zur regelmäßigen Überprüfung der Temperaturen
    Timer.set(60000, true, function () {
    controlSystem();
    });

  • Hallo,

    das mache ich auch schon länger. Das Problem für die meisten ist die richtige Formulierung der Aufgabe, denke ich.
    Bei ChatGPT sollte man gleich erwähnen, das es ein Shelly Script werden soll. Da spart man sich unnötige Fehlermeldungen.
    Beim Copilot hatte ich es auch gleich so gefordert. Die arbeiten ja auf einer ähnlichen Wissensbasis, nehme ich an. Schaden tut es nicht. Da hatte ich nun schon mehrfach gute schnelle Lösungen. (Wie auch bei der Bilderstellung)

    Kacke, Soeben war für 5s der Saft weg. Totalausfall. Stürmisch draußen. Nun muß ich erstmal alles testen Synology, HA, HM, usw.

    Mit besten Grüßen

    Martin

    Falls sich Jemand von mir persönlich angegriffen fühlt, dann bitte ich um eine kurze Info. Es lässt sich alles klären. Ich bin, wie ich bin.

    Einen 3EM kann man übrigens in 1728 Varianten falsch einbauen und verdrahten .Es sind mittlerweile weitere Möglichkeiten dazu gekommen.

    In den meisten Einbauanleitungen sind die Wandler in der falschen Richtung eingezeichnet. Letzteres gilt nur für den alten 3EM.

  • Nachtrag:

    Alles gut gestartet. Bei den AP´s muß ich nochmal schauen. Ein paar wenige Shellys sind nicht verbunden. wie geplant.
    HM läuft von alleine, nur CUL-Stick (Funkgeräte) muß ich kurz trennen. HASS muß ich nochmal per Hand neustarten. Läuft auch wieder. Das müsste man auch noch automatisieren. Da hilft mir die KI wohl nicht. ||
    Und die (wichtigen) ESP32-Relaiskarten, 8 und 16-fach starten am schnellsten und ich kann sofort wieder die wichtigen Dinge einschalten, HTTP-Request per Handyapp.

    Aber!!!!!!
    Morgen (Heute) werden an meinem Victron 2 Stromkreise angeschlossen. Wollte schon immer die USV-Lösung nutzen.

    Mit besten Grüßen

    Martin

    Falls sich Jemand von mir persönlich angegriffen fühlt, dann bitte ich um eine kurze Info. Es lässt sich alles klären. Ich bin, wie ich bin.

    Einen 3EM kann man übrigens in 1728 Varianten falsch einbauen und verdrahten .Es sind mittlerweile weitere Möglichkeiten dazu gekommen.

    In den meisten Einbauanleitungen sind die Wandler in der falschen Richtung eingezeichnet. Letzteres gilt nur für den alten 3EM.

  • Das läuft bei mir längst über eine USV von APC.

    Man kann ach versuchen sein Profilbild nachzubilden, allerdings hat ChatGPT Angst vor einem Copyright und man bekommt weder Tim Taylor noch Tim Allen ;(

    Es sieht aber auch vielversprechend aus, will man etwas in Node Red mit Shelly und MQTT umsetzen. Mir gefällt, dass oftmals gleich ein Function Node vorgeschlagen wird. Werde ich bei Zeiten mal testen, ob es schneller als per Hand geht.