Hallo openHab Experten,
ich möchte zu Silvester (heute
) um 0 Uhr gern meinen Weihnachtestern für ca. 15 Minuten lang blinken lassen. Dazu habe ich mir auch eine Lösung erstellt. Ich denke aber, dass das von mir verwendete Thread:sleep sich auf andere Rules auswirken könnte, daher meine Frage an die Gemeinde ob ihr eine elegantere Lösung habt.
Besten Dank!
Hier nun mein Beispiel:
ich möchte zu Silvester (heute

Besten Dank!
Hier nun mein Beispiel:
Code:
[B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055] [LEFT]rule[/LEFT][/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055][LEFT][/LEFT][/COLOR][LEFT][/LEFT][/SIZE][LEFT][/LEFT][/COLOR][LEFT][/LEFT][/SIZE][LEFT][SIZE=2][COLOR=#000000] [/COLOR][/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"Weihnachtsstern blinken zu Silvester"[/COLOR][/SIZE][/COLOR][/SIZE][/LEFT][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff] [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [LEFT][/LEFT][/SIZE][LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]when[/COLOR][/SIZE][/COLOR][/SIZE][/B][/LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055] [/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [LEFT][/LEFT][/SIZE][LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]//Time cron "0 50 11 31 12 ?"[/COLOR][/SIZE][/COLOR][/SIZE][/LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f] [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [LEFT][/LEFT][/SIZE][LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]Time[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]cron[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]"0 0 0 1 1 ?"[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [/SIZE][/LEFT][SIZE=2] [LEFT][/LEFT][/SIZE][LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]then[/COLOR][/SIZE][/COLOR][/SIZE][/B][/LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055] [/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [LEFT]Silvester = [/LEFT][/SIZE][LEFT][SIZE=2][COLOR=#7d7d7d][SIZE=2][COLOR=#7d7d7d]0[/COLOR][/SIZE][/COLOR][/SIZE][/LEFT][SIZE=2][COLOR=#7d7d7d][SIZE=2][COLOR=#7d7d7d] [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [LEFT]Thread::[I]sleep[/I]([/LEFT][/SIZE][LEFT][SIZE=2][COLOR=#7d7d7d][SIZE=2][COLOR=#7d7d7d]40000[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]) [/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]// 40 Sekunden warten bevor das Blinken beginnt [/COLOR][/SIZE][/COLOR][/SIZE][/LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f] [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [LEFT][/LEFT][/SIZE][LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]while[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] (Silvester < [/SIZE][SIZE=2][COLOR=#7d7d7d][SIZE=2][COLOR=#7d7d7d]100[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2])[/SIZE][/LEFT][SIZE=2] [LEFT]{[/LEFT] [LEFT][I]sendCommand[/I](Steckdose_DG_Aussen_Giebel,ON) [/LEFT][/SIZE][LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]// schalte Weihnachtsstern ein [/COLOR][/SIZE][/COLOR][/SIZE][/LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f] [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [LEFT][I]sendCommand[/I](Licht_OG_Wohnzimmer_Sofa_Dimmer,OFF) [/LEFT][/SIZE][LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]// schalte Wohnzimmer Sofalicht (Dimmer) aus[/COLOR][/SIZE][/COLOR][/SIZE][/LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f] [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [LEFT]Thread::[I]sleep[/I]([/LEFT][/SIZE][LEFT][SIZE=2][COLOR=#7d7d7d][SIZE=2][COLOR=#7d7d7d]5000[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]) // schlafe 5 Sekunden[/SIZE][/LEFT][SIZE=2] [LEFT][I]sendCommand[/I](Steckdose_DG_Aussen_Giebel,OFF) [/LEFT][/SIZE][LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]// schalte Weihnachtsstern aus[/COLOR][/SIZE][/COLOR][/SIZE][/LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f] [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [LEFT][I]sendCommand[/I](Licht_OG_Wohnzimmer_Sofa_Dimmer,ON) [/LEFT][/SIZE][LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]// schalte Wohnzimmer Sofalicht (Dimmer) ein[/COLOR][/SIZE][/COLOR][/SIZE][/LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f] [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [LEFT]Thread::[I]sleep[/I]([/LEFT][/SIZE][LEFT][SIZE=2][COLOR=#7d7d7d][SIZE=2][COLOR=#7d7d7d]5000[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]) [/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]/* 5000 Millisekunden warten bis es weitergeht */[/COLOR][/SIZE][/COLOR][/SIZE][/LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f] [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [LEFT]Silvester = Silvester + [/LEFT][/SIZE][LEFT][SIZE=2][COLOR=#7d7d7d][SIZE=2][COLOR=#7d7d7d]1[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [/SIZE][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]/* couter um 1 erhöhen */[/COLOR][/SIZE][/COLOR][/SIZE][/LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f] [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [LEFT]}[/LEFT] [LEFT][I]sendCommand[/I](Licht_OG_Wohnzimmer_Sofa_Dimmer,OFF)[/LEFT][/SIZE][LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]// zum Beenden des Programms schalte Wohnzimmer Sofalicht (Dimmer) aus[/COLOR][/SIZE][/COLOR][/SIZE][/LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f] [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [LEFT][I]sendCommand[/I](Steckdose_DG_Aussen_Giebel,ON) [/LEFT][/SIZE][LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]// schalte Weihnachtsstern nochmals ein[/COLOR][/SIZE][/COLOR][/SIZE][/LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f] [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [LEFT][/LEFT][/SIZE][LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]/* setze Timer um Stern nach 65 Minuten auszuschalten */[/COLOR][/SIZE][/COLOR][/SIZE][/LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f] [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [LEFT][/LEFT][/SIZE][LEFT][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]if[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] (TimerSilvesterStern!=[/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]null[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2])[/SIZE][/LEFT][SIZE=2] [LEFT]TimerSilvesterStern.cancel() [/LEFT] [LEFT]TimerSilvesterStern = [I]createTimer[/I]([I]now[/I].plusMinutes([/LEFT][/SIZE][LEFT][SIZE=2][COLOR=#7d7d7d][SIZE=2][COLOR=#7d7d7d]65[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2])) [|[/SIZE][/LEFT][SIZE=2] [LEFT][/LEFT][/SIZE][LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f]//Stern bei "erreichen" des Timer ausschalten[/COLOR][/SIZE][/COLOR][/SIZE][/LEFT][SIZE=2][COLOR=#3f7f5f][SIZE=2][COLOR=#3f7f5f] [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] [LEFT][I]sendCommand[/I](Steckdose_DG_Aussen_Giebel, OFF)[/LEFT] [LEFT]][/LEFT] [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]end [/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055][/COLOR][/SIZE][/COLOR][/SIZE]
Kommentar