Ankündigung

Einklappen
Keine Ankündigung bisher.

Elegantere Lösung Blinken ?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Elegantere Lösung Blinken ?

    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:

    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]

    #2
    Ich würde eine Regel um Mitternacht triggern lassen, die dann die Beleuchtung ausschaltet und einen Timer für den Stern startet. Bei Ablauf des Timers dann jedes mal umschalten und den Timer wieder starten. Ein ähnliches Beispiel hab ich hier irgendwann mal gepostet.

    Kommentar

    Lädt...
    X