Oder kurz gesagt: Wie ich die Lichtsteuerung in unserem Bad realisiert habe.
Ausgangssitation
In unserem neuen Bad haben wir 3 Lichtquellen (Dusche, Hauptbereich und WC). Die müssen je nach Situation nicht alle an sein, bzw nicht alle in voller Helligkeit. Gesteuert werden diese lediglich über einen Stromkreis / Schalter (Planungsfehler unsereseits) – darum war die Umsetzung via Smarter Lampen am einfachsten.
Umsetzung
Komponenten
Folgende Komponenten habe ich verwendet.
1 x Homematic Taster 2 Fach (ELV.de ~ 25 €)
1x Hue Dimmschalter (Amazon ~20 €)
2 x Hue Color (Amazon ~ 80 €)
1 x Innr Gu10 Warmwhite (Amazon ~ 20 €)
Schaltlogik
Tippe ich auf den Homematic Taster nach unten, soll das Licht im Bad in einer der Uhrzeit angepassten Heligkeit leuchten. Tippt man erneut auf AN, dann wechselt man zur nächsten Helligkeitsstufe, bzw springt zur ersten zurück. Beim tippen nach Oben soll das Licht ausgehen. Bei uns zu Hause ergeben sich dabei 3 Modi zu gewissen Uhrzeiten:
- morgens zwischen 7 und 9: Volle Helligkeit, etwas kältere Farbtemperatur für einen wachen Start
- tagsüber bis Abends um 8: mittlere Helligkeit und wärme Farbtemperatur
- nachts: sehr geringe Helligkeit und sehr warme Farbtemperatur, als Toiletten-Licht für die Kinder und uns
Erste Tests erfolgten mit dem HUE Adapter von Iobroker, diese waren aber für das gewünschte Ergebnis nicht zufriedenstellend. Der Adapter kann nur 10 Kommandos in 10 Sekunden versenden, daher kommt man bei 3 Lampen mit Helligkeits und Farbwerten sehr schnell an jenes Limit.
Hue Szenen mit Iobroker schalten
Um das Limit-Problem zu meistern, sollte man einfach direkt HUE Szenen schalten. Leider kann es der Iobroker Adapter aktuell nicht, aber im Forum findet man eine Lösung, die alle Szenen IDs via einer Node-Hue Api ausliest und man diese dann direkt starten kann. Funktioniert tadellos und ohne Aussetzer.
Noch dazu hat es den großen Vorteil, dass ich in der HUE App jederzeit die Szenen weiter anpassen kann und dafür nichts mehr am Script ändern muss. Und als Zusatzvorteil: Ich kann diese Szenen ebenso via Dimmschalter von HUE Steuern – z.B. direkt an der Badewanne für gemütliches Licht.
Das Script gibt es bei Github: Ab zum Script
Die Installationshinweise solltet ihr beachten, es ist wichtig innerhalb der JS Adapter Einstellungen das Modul „node-hue-api“ einzutragen.
Im Script bei Zeile 4 und 5 noch IP und euren HUE Nutzer (den kann man z.B. via HUE Adatper erstellen lassen) eintragen.
Unter Objekte -> Javascript -> Phillips Hue -> Scenes gibt es einen State mit einem Button. Einmal anklicken und alle aktuellen Szenen werden resynct. Muss man nur einmalig machen oder wenn man frisch was neu angelegt hat, ansonsten passiert dies via Cron jeden Tag um 3 Uhr nachts.
Das Script zum schalten
Mein aktuelles Script gibts hier auf Github: ab zum Script
console.log("start bad schalter");
var akt_modus = 0; // aktueller Lichtmodus
var isOn = 0; // ist das licht aktuell an?
/* Function die den aktuellen Startmodus je nach Uhrzeit ausspukt */
function getStartModus() {
var datum = new Date();
var stunde = datum.getHours(); // Aktuelle Stunde bestimmen um Anschaltmodus anzupassen
var statModus = 0;
if (stunde <= 6 || stunde >= 22) { // Nachts dunkel starten
startModus = 0;
} else if (stunde >= 7 && stunde <= 10) { // Ab morgens 7 Uhr bis 9 Uhr Voll Hell
startModus = 2;
} else {
startModus = 1; // zu allen anderen Uhrzeiten mittelhell
}
return startModus;
}
function switchON() {
if (isOn == 0) { // Wenn Lampen angeschaltet werden. dann startmodus holen
akt_modus = getStartModus();
console.log("StatMOdus: " + akt_modus);
}
isOn = 1;
if (akt_modus === 0) {
setState("javascript.0.PhilipsHue.Scenes.bad-szene-nacht.9Jrzt3q6pvbOEYy", true);
akt_modus = 1;
} else if (akt_modus === 1) {
setState("javascript.0.PhilipsHue.Scenes.bad-szene-mittel.4o8ZRaHcsOOafBh", true);
akt_modus = 2;
} else if (akt_modus === 2) {
setState("javascript.0.PhilipsHue.Scenes.bad-szene-hell.91hx4a4y-HyZ2Vu", true);
akt_modus = 0;
}
}
function switchOff() {
setState("hue.0.Philips_hue.Bad.level", 0);
akt_modus = 0;
isOn = 0;
}
on({ id: "hm-rpc.0.PEQ0534362.1.PRESS_SHORT" }, function () {
switchON();
});
on({ id: "hm-rpc.0.PEQ0534362.1.PRESS_LONG" }, function () {
switchON();
});
on({ id: "hm-rpc.0.PEQ0534362.2.PRESS_SHORT" }, function () {
switchOff();
});
on({ id: "hm-rpc.0.PEQ0534362.2.PRESS_LONG" }, function () {
switchOff();
});
Der Aufbau und Funktion sollte soweit selbsterklärend sein. den Listener auf den Long_Press braucht man nicht unbedingt, aber ich habe festgestellt, dass mein Sohn nachts versucht das Licht durch langes drücken anzuschalten. Da ich nicht will, dass er im dunkeln stehen muss passiert hier das gleiche wie beim Short_Press.
Fragen? Anregungen?
Dann hinterlasst mir sehr gerne ein Kommentar 😉