Kontinuierliches Ein/Ausschalten in einem Zeitfenster

An meiner Heizungsanlage läuft die Warmwasser-Zirkulationspumpe 24/7. Der Heizungsmonteur meinte neulich das dies Unsinn wäre und ich sollte mir eine Schaltuhr besorgen und die Pumpe 5min laufen lassen, danach 15min Pause und dann wieder von vorne. Das schreit ja geradezu nach einer Automation.

Ich habe mir überlegt das die Pumpe erstmalig um 05:00 Uhr anspringen soll und dann ab 23:00 Uhr in den Ruhemodus geht - dazwischen der 5/15min Intervall mit dem Ein/Aussachalten. Da ich noch einen Shelly Plus 1 “übrig” habe, wollte ich das damit erledigen.

Versuch 1:
Im Shelly gibt es die Schedules-Funktion. Da kann man einfach zu einer bestimmten Zeit einschalten und dann nach x Sekunden wieder ausschalten. Super habe ich gedacht. Doch leider ist nach 20 Einträgen Schluss, mehr mag die Shelly nicht.

Versuch 2:
Im Shelly gibt es noch das Scripting. Doch leider sehr wenig Doku oder Beispiele. Ich kann zwar Timer-Gesteuert das Shelly nonstop ein/ausschalten, wie hier:

function timerCode() {
  Shelly.call("Switch.Toggle", {"id": 0});
};

Timer.set(
  /* number of miliseconds */ 5000,
  /* repeat? */ true,
  /* callback */ timerCode
);

Aber ich finde keine Möglich die Uhrzeit abzufragen, damit erst ab 05:00 das schalten startet und um 23:00 endet.

Versuche n … n+1
Vielleicht könnte man es auch über ein Schema realisieren, da fehlt mir aber noch das Wissen dafür. Auch eine Steuerung über HA wäre durchaus machbar, aber ich wollte (wenn möglich) die Logik im Shelly belassen, damit sich HA darum nicht zu kümmern braucht.

Hat sonst noch jemand eine Idee oder einen Tipp für mich?

Grüße
Christian

Shelly Scripting habe ich keine Ahnung von.

Über HA könntest Du einen Zeit Trigger alle X Minuten, im Zeitraum von / bis setzen. Abschaltung evtl. über den Shelly.

Dann stößt HA den Shelly regelmäßig an. Der Shelly schaltet selbsttätig ab. Du hast Kontrolle und HA wird nicht weiter belastet.

@tarag
Gute Idee, hätte ich drauf kommen können :wink:

Allerdings, interessiert mich ja schon dieses Scripting. Da könnte viel mit möglich sein…

Nachtrag: Es ist auf jeden Fall eine gute Idee mit:

Über HA könntest Du einen Zeit Trigger alle X Minuten, im Zeitraum von / bis setzen

Aber irgendwie bekomme ich das nicht hin. Kann mir jemand einen Gedankenanstoss geben?

:crayon:by HeikoBauer: Zusammenführung Doppelpost.
Bitte für Ergänzungen/Korrekturen die “Bearbeiten”-Funktion benutzen. Danke!

Hallo,

die Automation könnte z.B. so aussehen:

description: ""
mode: single
trigger:
  - platform: time_pattern
    minutes: /20
condition:
  - condition: time
    after: "04:59:00"
    before: "23:01:00"
action:
  - service: switch.turn_on
    data: {}
  - delay:
      hours: 0
      minutes: 5
      seconds: 0
      milliseconds: 0
  - service: switch.turn_off
    data: {}

Hier wird alle 20 Minuten im Zeitraum von 4:59 bis 23:01 ein switch eingeschaltet und nach 5 Minuten wieder ausgeschalte. Dienst ausführen → switch.turn_on bzw. off

Zeit trigger

Zeit Trigger alle X Minuten. Bedingung zwischen und Uhr

Einfach mal die Videos von Simon ansehen! :wink:
Im Video “Home Assistant Automation Tutorial - Komplett & verständlich erklärt” kam die Erleuchtung bei 14:47 wo Simon erklärt das der Slash für alle soundso viel Minuten steht. Das wusste ich bis dato nicht.
Habe dann noch eine Einschränkung für die Wochentage vorgenommen, da ich am Wochenende das Warmwasser erst später benötige.

Das Ausschalten übernimmt das Shelly Modul selber, dort kann man in der Konfiguration einstellen ob sich das Modul nach dem Einschalten selbstständig nach der Zeit x ausschalten soll.

Eigentlich alles ganz einfach - man muss nur darauf kommen.

1 „Gefällt mir“

Ich würde nicht mit delay arbeiten, sondern das Ausschalten über TriggerID bzw. eine zweite Automation machen und dann mit for arbeiten. Das überlebt auch einen Neustart.

platform: state
entity_id:
  - switch.xyz
to: "on"
for:
  hours: 0
  minutes: 5
  seconds: 0

Nachtrag:
Mein oben geposteter Beitrag hat wegen den Bedingungen nicht funktioniert. Die Bedingungen sind UND verknüpft und es kann halt nicht Mo-Fr sein und gleichzeitig Sa-So :man_facepalming:

Habe daraus jetzt zwei Automationen gemacht: Eine von Mo-Fr und eine von Sa-So. Das Ausschalten übernimmt das Shelly Modul selber.

Pack es wieder in eine und setze als erstes ein Oder in die Bedingungen und dann deine zwei Bedingungen da rein.

1 „Gefällt mir“

Hallo,

eigentlich kann das Shelly das ganz allein - dezentrale Automation eben.
Schau dir das mal unter Shedules an: Gewünschte Einschaltzeiten eintragen und dann unter Timers noch ein AutoOff nach der gewünschten Zeit setzen.

Hinweis: evtl. vorher Firmwareupdate machen, war bei mir mit der vorinstallierten Firmware noch nicht enthalten.

Michael

@Michael65
Das hatte ich zuerst versucht weil ich das auch gedacht hatte, aber es hat leider nicht funktioniert. Interpretiere ich es richtig das die Umwälzpumpe bei deinem Screenshot von 06:00 bis 22:00 kontinuierlich läuft?
Falls ja, so will ich das ja nicht. Die Pumpe soll nur 5min laufen, dann 15min Pause und dann wieder von vorne in einem festen Zeitrahmen. Im Shelly kann man max. 20 Einträge vornehmen.

@sirector
Danke, das ODER hatte ich voll übersehen. So klappt es mit nur einer Automation.

Kleiner Hinweis an alle die (wie ich) jetzt noch über das Thema stolpern:
Mit den Shelly Plugs 2 & 3 kann man das tatsächlich leichter dezentral realisieren.

  • Zeitschaltuhr 1: Wenn ausgeschaltet nach 900s wieder anschalten
  • Zeitschaltuhr 2: Wenn eingeschaltet nach 300s wieder ausschalten
  • Zeitplan 1: Einfach, täglich, 23:00, Ausgang aus, Wert umkehren nach 14400s

In diesem Sinne sorry für’s wecken eines alten Themas und eine einfache Automation euch allen :grimacing:

Leider geht das bei mir nicht. Zeitschaltuhr 1 und Zeitschaltuhr 2 bedingen sich gegenseitig und schalten sich gegenseitig im Takt. Zeitplan 1 hat darauf bei mir keinen Einfluss. Mache ich da etwas falsch?