Ich bin folgendermaßen vorgegangen und gespannt ob es funktioniert.
Als erstes habe ich 3 Datenpunkte erstellt.
Bildschirmfoto 2019-11-21 um 20.31.28.png
-nachtschicht
-nachtschicht1
-tagschicht
Anschließend habe ich folgendes Blockly Script erstellt:
Bildschirmfoto 2019-11-21 um 20.33.51.png
Hierbei werden zwei Termine aus iCal gertriggert.
NW Nachtdienst 🌒 für die 8h Schicht und
N1W Nachtschicht 🔦 für die 12h Schicht
Wenn einer der beiden Termine in iCal auftaucht, wird der Datenpunkt "nachtschicht" im ersten Teil des Blocklys auf true gesetzt, wenn nicht auf false.
Bildschirmfoto 2019-11-21 um 20.39.01.png
Im nächsten Teil des Blockly Scripts wird bei Änderung des Datenpunktes "Nachtschicht" geprüft, ob der Datenpunkt auf false steht. Wenn ja, wird der Datenpunkt "Nachtschicht1" auf true gesetzt.
Der Hintergrund ist hierbei folgender. iCal prüft alle 30 Minuten, ob sich ein Ereignis im Kalender geändert hat.
Wenn ich meine letzte Nachtschicht habe, wird ab 0:00 Uhr in den nächsten 30 Minuten von iCal erkannt, dass keiner der beiden Termine
NW Nachtdienst 🌒
N1W Nachtschicht 🔦
mehr im Kalender steht und somit wird der Datenpunkt "nachtschicht" auf false gesetzt. Das Bolckly sollte dies nun im zweiten Teil erkennen und den Datenpunkt "nachtschicht1" auf true setzen.
Bildschirmfoto 2019-11-21 um 20.52.55.png
Im unteren Teil des Blockly Scriptes wird der Datenpunkt "nachtschicht1" getriggert. Steht dieser auf true, dann startet ein Timeout mit 1500 Minuten, dass sind 25 Stunden. Wenn diese Zeit abgelaufen ist, sollte der State von "nachtschicht1" wieder auf false gesetzt werden und der Datenpunkt "tagschicht" auf true.
Bildschirmfoto 2019-11-21 um 20.55.30.png
In einem weiterem Blockly Script werden dann über die Datenpunkte
-nachtschicht
-nachtschicht1
-tagschicht
die FritzDect Schaltvorlagen in der Fritzbox für die Heizungsthermostate geschaltet.
Bildschirmfoto 2019-11-21 um 21.03.24.png
Ich bin gespannt, ob dass so funktioniert.
Vielleicht, kann der Eine oder Andere Spezialist hier, sich die Blockly Scripte mal anschauen!?