Weckerfunktion - Flow nach einer berechneten Zeit starten

Node-RED als CCU3/RaspberryMatic Addon, WebApp, HomeKit, ...

Moderator: Co-Administratoren

Antworten
didiator
Beiträge: 30
Registriert: 21.12.2017, 13:25

Weckerfunktion - Flow nach einer berechneten Zeit starten

Beitrag von didiator » 13.07.2019, 15:13

Hallo,

ich möchte gern einen Wecker implementieren. Dazu soll die Weckzeit aus einer Systemvariablen ausgelesen werden. Zur Weckzeit soll dann ein Homematic Gerät (z.B. Licht oder Radio...) eingeschaltet werden.

Mir fehlt derzeit eine Methode, einem Inject eine Systemvariable zuzuweisen und dann zur konfigurierten Zeit den Flow ohne weitere Aktion auszulösen.
Mit dem normalen Inject kann man offenbar keinen Zeitwert übergeben.
Mit dem Time Inject kann man zwar eine Zeit übergeben, das Teil will dann aber manuell ausgelöst werden um etwas zu tun.

Könnt Ihr mir da weiterhelfen?
---------------------------------------------------------------
stay original...

Hypnos
Beiträge: 286
Registriert: 06.01.2018, 12:48
Hat sich bedankt: 19 Mal
Danksagung erhalten: 3 Mal

Re: Weckerfunktion - Flow nach einer berechneten Zeit starten

Beitrag von Hypnos » 13.07.2019, 22:46

didiator hat geschrieben:
13.07.2019, 15:13
Mit dem Time Inject kann man zwar eine Zeit übergeben, das Teil will dann aber manuell ausgelöst werden um etwas zu tun.
Hallo,

Was meinst du mit "will manuell ausgelöst werden um etwas zu tun"?

Bei mir tut es etwas ohne irgendein zutun. Zu dem konfiguriertem Zeitpunkt sendet die time-inject Node eine Nachricht. Dabei ist die Konfiguration sehr weit möglich.

Um dein Problem zu lösen kann man Beispielsweise einen globalen oder flow context nehmen:
2019-07-13_22h38 001.png
2019-07-13_22h38 001.png (10.71 KiB) 315 mal betrachtet
Normalerweise berechnet die node den Trigger Zeitpunkt einmal beim Start und dann immer wenn ein Trigger erreicht wurde. Bei Einstellugnen, die keine fixe Zeit haben, findet die Berechnung dann noch in Zeitintervallen statt, die man einstellen kann. Bei globalen oder flow context ist das der Fall und da gibt es dann in der Konfiguration des time-inject einen recalc Eintrag, nach welcher Zeitintervall die node den trigger Zeitpunkt neu berechnen soll:
2019-07-13_22h38 002.png
2019-07-13_22h38 002.png (3.19 KiB) 315 mal betrachtet
Das ist zwar eine Zeitangabe in Stunden, aber es hindert hier niemanden hier einen Bruchteil einer Stunden - Beispielsweise 0.01666 - für eine Minute einzugeben. Man sollte nur nicht zu häufig das machen, da es unnötig das System belastet.

Den inhalt der Systemvariable bekommst man einfach mit einer value node, gefolgt von einer change Node in den context.

Alternativ kann man die ccu nodes auch so konfigurieren, dass man gleich alle Daten in einen globalen context schreiben lässt. Dafür gibt es ein Drop-Down in der Konfiguration der CCU-Config Node:
2019-07-13_22h44 003.png
2019-07-13_22h44 003.png (3.97 KiB) 315 mal betrachtet
Ich hab bei mir file und memory context, wenn man andere hat, ist die Auswahl anders.

In der time-Inject node kann man dann direkt den Wert der Systemvariable nehmen und spart sich so den Umweg:
2019-07-13_22h44 001.png
Das ist jetzt ein Beispiel von mir und kann woanders anders aussahen. Es gibt eine Sidebar, mit der man sich den Inhalt der contexte anzeigen lassen kann und da kann man sehen wie man darauf zugreift.

Gruß

Antworten

Zurück zu „RedMatic“