HUE Helligkeit nach Uhrzeit steuern – mit UP Schalter

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

Alle verwendeten 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.

Der Hue Dimmerschalter an der Badewanne. Endlich umschalten zwischen Entspannung, Lesen usw.

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.

Button unter Objekte zum synchronisieren der Szenen

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 😉

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.