Zirkulationspumpe einschalten über App oder Schalter

  • Hallo zusammen,

    ich bin komplett neu in der Shelly Welt und wollte mit einem Shelly 1 Gen3 meine Zirkulationspumpe steuern.

    Folgendes hätte ich gerne gehabt wenn ich das Shelly über die App, Alexa oder mit einem weitern Shelly über Wifi starte das die Zirkulation nur 10 Minuten läuft.

    Wenn aber die Heizung das Warmwasser macht, dann hätte ich gerne über den Switch Eingang die Zirkulation so lange an gelassen wie die Warmwasserbereitung dauert.

    Da ich keine Ahnung habe, habe ich das mal an ChatGPT übergeben.

    Diese beiden Codes wurden angezeigt:


    let timerDuration = 10 * 1000; // 10 Minuten in Millisekunden
    let timerId = null; // Variable für den Timer

    Shelly.addEventHandler(function (event) {
    if (event.component === "relay:0" && event.info.output === true) {
    print("Relais wurde eingeschaltet - Timer startet für 10 Minuten");

    // Starte den Timer
    timerId = Timer.set(timerDuration, false, function () {
    let inputStatus = Shelly.getComponentStatus("input:0");

    if (inputStatus && inputStatus.state) {
    print("Switch ist noch an - Relais bleibt an.");
    return; // Beende die Funktion, Relais bleibt an
    }

    print("Timer abgelaufen und Switch ist aus -> Relais wird ausgeschaltet");
    Shelly.call("Switch.set", { id: 0, on: false });
    });
    }
    });

    // Überwache den physischen Schalter
    Shelly.addEventHandler(function (event) {
    if (event.component === "input:0") {
    if (event.info.state === false) {
    print("Switch wurde ausgeschaltet -> Relais aus.");
    Shelly.call("Switch.set", { id: 0, on: false });
    } else {
    print("Switch wurde eingeschaltet -> Timer gestoppt.");
    if (timerId !== null) {
    Timer.clear(timerId);
    timerId = null;
    }
    }
    }
    });


    let timerDuration = 10 * 1000; // 10 Minuten in Millisekunden
    let timerId = null; // Variable für den Timer

    Shelly.addEventHandler(function (event) {
    if (event.component === "relay:0" && event.info.output === true) {
    print("Relais wurde eingeschaltet - Timer startet für 10 Minuten");

    // Starte den Timer
    timerId = Timer.set(timerDuration, false, function () {
    let inputStatus = Shelly.getComponentStatus("input:0");

    if (inputStatus && inputStatus.state) {
    print("Switch ist noch an - Relais bleibt an.");
    return; // Beende die Funktion, Relais bleibt an
    }

    print("Timer abgelaufen und Switch ist aus -> Relais wird ausgeschaltet");
    Shelly.call("Relay.set", { id: 0, on: false });
    });
    }
    });

    // Überwache den physischen Schalter
    Shelly.addEventHandler(function (event) {
    if (event.component === "input:0") {
    if (event.info.state === false) {
    print("Switch wurde ausgeschaltet -> Relais aus.");
    Shelly.call("Relay.set", { id: 0, on: false });
    } else {
    print("Switch wurde eingeschaltet -> Timer gestoppt.");
    if (timerId !== null) {
    Timer.clear(timerId);
    timerId = null;
    }
    }
    }
    });


    Keiner der beiden macht was ich mir erwartet hätte. Ich habe sie über diesen Link https://control.shelly.cloud eingetragen.

    In der Shelly Smart Control App wird dann undefined bei beiden Skripts angezeigt.

    Was mache ich falsch?

    Ich habe die Zeit zum Testen auf 10 Sekunden reduziert.

    Die weiteren Shellys die die Zirkulation für 10 Minuten durch einen Taster starten sollen sind noch nicht installiert.

    Ich scheitere ja schon bei Dauernd an über Schaltern am Shelly direkt an der Zirkulation und 10 Min über App oder Alexa :-D

    Vielen Dank und habt Geduld und Nachsicht :-D

    Danke und einen schönen Abend

    Grüße

    Harry

  • Steuerung gibt Signal an SW, dann läuft die Zirkulationspumpe, das ist Standard Funktion.

    mit einem weitern Shelly über Wifi starte das die Zirkulation nur 10 Minuten läuft.

    Das ist auch kein Problem mit einem HTTP Request sum Empfänger Shelly mit Timer=600sec

    Über App nur mit dem Sender Shelly, nicht aber bei dem Empfänger

    Beachte aber, letzter Befehl gewinnt

    Alexa muss Sender Shelly schalten

    Also, alles ohne irgendwelche Script oder ChatGPT 😉

    Shelly’s: 2x 1, 10x 1PM , 4x 2.5, 3x i3, 10x Plus 1PM, 22x Plug S, 11x UNI, 2x 1L mit PIR, 8x AddOn mit Temp/DHT22, 3x RGBW2, 2x Plus i4, 5x Plus 1, 4x Plus 2PM, 4x EM, 2x 3EM, 1x TRV, 3x Plus AddOn, 1x Pro 3EM, 2x BLU, 5xPlusPMmini, 1xPlus1PMmini, 4xPlusUNI

    Fritz!Box5690pro, 3x FRITZ!Repeater6000, 6x Fritz!Dect200

    HomeAssistant auf RaspberryPi5(8GB) mit NVMe, HomeAssistant auf Synology DS1019+, Backup HomeAssistant auf RaspberryPi4B(4GB)

    DHT21 (AM2301) oder (AM2320) für unter 0 Grad

  • ich bin komplett neu in der Shelly Welt und wollte mit einem Shelly 1 Gen3 meine Zirkulationspumpe steuern.

    ...das die Zirkulation nur 10 Minuten läuft.

    Wenn aber die Heizung das Warmwasser macht, dann hätte ich gerne über den Switch Eingang die Zirkulation so lange an gelassen wie die Warmwasserbereitung dauert.

    Hallo Mt-Harry,
    beim Anschluss des Zirkulationsshelly musst du darauf achten, dass er am gleichen Stromkreis angeschlossen wird, wie die Heizung, (am besten bei der Heizung abgreifen, hinter dem Notschalter). Der Ausgang der Heizung für die Zirkulationspumpe wird dann statt an der Pumpe am Eingang SW des Shelly angeschlossen. Wenn sich das für dich kompliziert anhört, dann lass' es von einem Fachmann machen.

    Wie schon geschrieben wurde, ein Script wird nicht benötigt.
    Der sendende Shelly kann z.B. ein 1 Mini sein, er sendet dann den HTTP Request, wenn sein Ausgang geschaltet ist (dort muss nichts angeschlossen sein). Der Vorteil ist, du kannst ihn dann auf verschiedene Art und Weise einschalten, App, Alexa oder über seinen Eingang. Er gibt dann das Signal mit der gewünschten Laufzeit an den Empfänger weiter.

    Noch ein Wort am Rande: Ich steuere meine Zirkulationspumpe schon seit Jahren mit Shellys. Bei mir ist sie ganz von der Heizung entkoppelt. Es gibt einen Zeitplan für Montag morgen, zur morgendlichen Duschzeit, Laufzeit 15 Minuten. Das dient dazu, dass die Leitungen einmal die Woche etwas länger "gespült" werden, um stehendes Wasser zu vermeiden. An jedem anderen Tag und zu jeder anderen Zeit wird die Pumpe nur nach Bedarf eingeschaltet, Laufzeit dann nur 5 Minuten. Seit ich das so mache, ist mein Energieverbrauch für die Warmwasserbereitung deutlich zurückgegangen. Das liegt unter anderem daran, dass ich einen großen Brauchwasserspeicher mit zusätzlicher Solarthermie habe. Wenn die Zirkulationspumpe läuft, dann wird das (geschichtete) Wasser im Speicher in Unruhe versetzt und gemischt. Das führte dazu, dass die Heizung öfter nachheizen musste. Aus diesem Grund habe ich die Laufzeiten mit der oben beschriebenen Methode deutlich reduziert...

  • Guten Morgen zusammen,

    Danke für eure ganzen Tipps.

    Dann werde ich mal schnell einen zweiten Shelly provisorisch in Betrieb setzen, da die Dosen und Taster erst noch gesetzt werden müssen.

    Ich schaue mir die Link von funkenwerner an, ich hoffe da steht dann beschrieben wie ich das mit zwei Shellys einstellen muss.

    horkatz

    Meine Zirkulation ist auch von der Heizung getrennt. Die Heizungssteuerung ist so einfach die kann nur einen heizkreis und das Brauchwasser erwärmen. Für die Zirkulation hat sie gar keinen Ausgang.

    Ich wollte die erwähnte Spülung immer dann machen wenn die Heizung das Brauchwasser erwärmt.

    Das mit der gleichen Phase ist mir bekannt.


    Trotzdem noch ein Mal zurück zum Skript. Was ist daran falsch das es in der App als undiefined angezeigt wird und nicht funktioniert. Man will ja nch mehr lernen.

  • Dieses Thema enthält 13 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind.