-
Notifications
You must be signed in to change notification settings - Fork 47
Flow within time
Dieser Flow stellt exemplarisch dar, wie Funktionen an Zeitfenster geknüpft werden können. Dafür werden beispielhaft zwei Szenarien dargestellt.
In RedMatic ist der Node node-red-contrib-sun-position integriert. Diese Sammlung von Nodes ermöglicht es sehr ausführliche Zeitsteuerung. Der darin enthaltene within-time-switch Node ermöglicht es sowohl Zeitfenster selbst festzulegen als auch Zeitfenster an Hand des Sonnenstandes zu ermitteln. Dafür stehen die unterschiedlichen definierten Sonnenauf- und untergänge als Start- bzw. End-Time zur Verfügung, zum besseren Verständnis empfehle ich folgenden Link: Dämmerung – die drei Dämmerungsphasen. Zusätzlich ist auch möglich den Mond ufgang oder untergang genutzt werden oder verschiedene Zeiten für Feiertage oder Wochenende.
Im folgenden Flow wird jeden Tag nach zivilem Sonnenuntergang die Beleuchtung im Garten eingeschaltet und nach zivilem Sonnenaufgang die Beleuchtung im Garten deaktiviert.
Das Programm wird minütlich per InjectNode aufgerufen, Konfiguration des Nodes siehe hier:
Minütlich wird somit der within-time-switch Node angestoßen, dieser muss wie im folgenden Bild eingestellt werden.
Zur Erklärung. Zum einen muss man definieren welcher Ort zur Bestimmung der AstroDaten verwendet werden soll. Wollt Ihr Zeitfenster selbst definieren könnt ihr die Einstellung an dieser Stelle überspringen.
Ich habe für meinen Anwendungsfall start-time als sunset definiert, laut info des Nodes ist dies die zivile Abenddämmerung. End-Time ist dawn, dies entspricht dem zivilen Sonnenaufgang. Somit wird jeden Abend wenn die Dämmerung einsetzt und die Dunkelheit beginnt die Beleuchtung im Garten eingeschaltet, sollte die Morgendämmerung eingesetzt haben werden die Lampen deaktiviert.
Je nach zutreffender Bedingung hat der Node zwei Ausgänge. An diese Ausgänge setze ich den Aktor welchen ich schalten mag.
Per change-node wird nun der zu treffende Schaltstatus definiert, im Beispielbild wird msg.payload auf true gesetzt. Das Licht soll angeschaltet werden. Sollte das Licht ausgeschaltet werden sollen muss msg.payload auf false gesetzt werden.
Abschließend noch die Konfiguration des ccu-value nodes
Flow mit der node-red-contrib-sun-position nodes
mit Hilfe des time-inject nodes lässt sich das stark vereinfachen:
Die time-inject Nodes senden eine Nachricht beim erreichen der eingestellten zeit gleich mit dem richtigen payload:
Die Einstellung für die Position wird hier zentral über eine extra Konfiguration gehandelt und muss nicht in jeder Node einzeln konfiguriert werden.
Dies lässt sich mit Hilfe der Auswahl der Tage und entsprechend mehr time-inject nodes realisieren:
noch offen
ausstehend.
Inhaltsverzeichnis RedMatic Documentation © 2018-2022 Sebastian Raff and RedMatic Contributors, licensed under CC BY-SA License 4.0