Skip to content
Hypnos edited this page Nov 14, 2018 · 10 revisions

Ausführen von Funktion in definierten Zeitfenstern

Dieser Flow stellt exemplarisch dar, wie Funktionen an Zeitfenster geknüpft werden können. Dafür werden beispielhaft zwei Szenarien dargestellt.

Inhalt

Gartenbeleuchtung

In RedMatic ist der Node time-range integriert. Dieser 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.

Ein verbesserter Node ist in dem Paket node-red-contrib-sun-position enthalten, welches zusätzlich installiert werden kann. Hier kann man zusätzlich auch der Mond aufgang oder untergang genutzt werden oder verschiedene Zeiten für Feiertage oder Wochenende.

Flow mit der time-range node

Im folgenden Flow wird jeden Tag nach zivilem Sonnenuntergang die Beleuchtung im Garten eingeschaltet und nach zivilem Sonnenaufgang die Beleuchtung im Garten deaktiviert. image

Das Programm wird minütlich per InjectNode aufgerufen, Konfiguration des Nodes siehe hier:

image

Minütlich wird somit der time-range Node angestoßen, dieser muss wie im folgenden Bild eingestellt werden.

image

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.

image

Abschließend noch die Konfiguration des ccu-value nodes

image

mit Hilfe des time-inject nodes lässt sich das stark vereinfachen:

image

Die time-inject Nodes senden eine Nachricht beim erreichen der eingestellten zeit gleich mit dem richtigen payload:

image

Die Einstellung für die Position wird hier zentral über eine extra Konfiguration gehandelt und muss nicht in jeder Node einzeln konfiguriert werden.

verschiedene Zeiten für Wochenende

Dies lässt sich mit Hilfe der Auswahl der Tage und entsprechend mehr time-inject nodes realisieren:

image

image

image

verschiedene Zeiten für Feiertage

noch offen

Gartenbeleuchtung

ausstehend.

Clone this wiki locally