Die Philips Hue Go Lampen zieren seit kurzem die Nachttische. Die Funktion Natürlich Aufwachen und Schlafen gehen hat es mir ziemlich angetan. Dabei wird ein Sonnenaufgang oder ein Sonnenuntergang simuliert und das Licht wird innerhalb von z.B. 15 Minuten immer heller oder immer dunkler. Soweit so toll. Leider handelt es sich bei der Funktion um eine Routine, die zu einer eingestellten Zeit startet. Es gibt scheinbar keine Möglichkeit die Funktion manuell zu starten. OpenHAB wäre aber nicht openHAB, wenn man es nicht auch direkt als Regel programmieren könnte.
Items der Lampe
In meinem Fall handelt es sich um eine Hue Go Lampe. Damit können Farben aber auch verschiedene Weißtöne (Tunable White) dargestellt werden. Der Vollständigkeit halber zeige ich alle Items, die ich für die Lampe angelegt habe.
1 2 3 4 |
Switch Bettlampe_Schalter "Bett" { channel="hue:0210:xxxxxxxx:8:color" } Dimmer Bettlampe_Dimmer "Bett Dimmen" { channel="hue:0210:xxxxxxxx:8:color" } Color Bettlampe_Farbe "Bett Farbe" { channel="hue:0210:xxxxxxxx:8:color" } Dimmer Bettlampe_Farbtemperatur "Bett Farbtemperatur" { channel="hue:0210:xxxxxxxx:8:color_temperature" } |
Zusätzlich wird noch ein Dummy Switch angelegt, um später die Regel auslösen zu können:
1 |
Switch Sonnenuntergang "Sonnenuntergang starten" |
Sonnenuntergang Regel erstellen
Nun haben sind alle notwendigen Items vorhanden, so dass die Regel erstellt werden kann. Hierzu wird einfach eine neue .rules Datei angelegt wie zum Beispiel „sonnenuntergang.rules“
Die Regel selbst sieht so aus:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
var Timer timer = null rule "Beleuchtung Simulation Sonnenuntergang" when Item Sonnenuntergang changed to ON then timer?.cancel timer = createTimer(now.plusMillis(10),[| if((Bettlampe_Dimmer.state as Number) > 0) { Bettlampe_Dimmer.sendCommand((Bettlampe_Dimmer.state as Number) - 2) Bettlampe_Farbtemperatur.sendCommand((Bettlampe_Farbtemperatur.state as Number) +1) timer.reschedule(now.plusSeconds(36)) } if((Bettlampe_Dimmer.state as Number) == 0) { Sonnenuntergang.sendCommand(OFF) timer?.cancel } ]) end |
Es wird ein Timer erstellt, um die Regel immer wieder laufen zu lassen bis ein bestimmter Wert erreicht ist. Der Wert an dem festgemacht wird, ob die Regel weiterläuft ist der Dimmwert der Lampe:
if((Bettlampe_Dimmer.state as Number) > 0)
Die Regel startet nur, wenn der Dimmerwert größer 0 ist und endet wenn die Bedingung nicht mehr erfüllt ist, also der Dimmwert 0 beträgt.
Bei einem „realistischen“ Sonnenuntergang sollte sich neben der Helligkeit auch die Lichtfarbe hin zu warm ändern. Meine Bettlampe ist grundsätzlich mit einem Dimmwert von 50% und einer Farbtemperatur von 75% eingeschaltet. Im Verlauf des Sonnenuntergangs soll die Helligkeit abnehmen und die Farbtemperatur zunehmen.
Damit nach 15 Minuten alle gewünschten Werte erreicht sind, wird ein Durchgang alle 36 Sekunden wiederholt. Das sind insgesamt 25 Durchgänge mit folgenden Befehlen:
1 2 3 |
Bettlampe_Dimmer.sendCommand((Bettlampe_Dimmer.state as Number) - 2) Bettlampe_Farbtemperatur.sendCommand((Bettlampe_Farbtemperatur.state as Number) +1) timer.reschedule(now.plusSeconds(36)) |
Bettlampe_Dimmer wird pro Durchgang um den Wert 2 reduziert.
Bettlampe_Farbtemperatur wird pro Durchgang um den 1 erhöht.
timer wird auf 36 eingestellt.
Im letzten Schritt geben wir noch an was passieren soll, wenn der Dimmwert 0 erreicht ist.
1 2 3 4 5 |
if((Bettlampe_Dimmer.state as Number) == 0) { Sonnenuntergang.sendCommand(OFF) timer?.cancel } |
Wenn der Dimmwert 0 erreicht hat, ist unser Ziel erreicht. Jetzt wird der Dummyswitch wieder auf OFF gestellt und zur Sicherheit der laufende Timer gestoppt.
Wenn du das ganze nun noch per Sprachbefehl steuern möchtest, kannst du das Dummy Item mit der Alexa Funktion [Switchable] versehen. Wie das genau funktioniert kannst du im Artikel Mit Alexa Routinen schönere Befehle erteilen nachlesen.
Fertig ist der Sonnenuntergang. Viel Spaß damit in dieser dunklen Jahreszeit. Diese Regel ist übrigens nicht auf Hue Lampen beschränkt. Du kannst sie für sämtliche dimmbaren Lampen anwenden. Sollte die Farbtemperatur nicht einzeln ansteuerbar sein, einfach weglassen.
Super! Probiere ich gleich mal aus 😉
By the way: Top Seite! Vielen Dank für deine Tipps!!
Viele Grüße
Kirsten
Hey Kirsten,
vielen Dank – freut mich 🙂
Liebe Grüße
Patrick
Ich habe so eine Funktion für das natürliche Aufwachen nie genutzt. Funktioniert es wirklich so das man morgens davon Wach wird? Ich kann es mir nicht wirklich vorstellen, ich denke eher das ich auch ein Wecker stellen müsste 🙂
Grüße
Andi