Philips Hue mit homematic IP Sender dimmen

Ich hatte vor einiger Zeit schon einmal einen Beitrag geschrieben, wie man Philips Hue Leuchten über einen Homematic Sender dimmen kann. Da ein homematic IP Sender hier einen entscheidenden Vorteil gegenüber Homematic hat, gibt es hier nun die passende Anleitung für homematic IP Sender.

Der große Vorteil von homematic IP Sendern ist, dass der lange Tastendruck wiederholend gesendet wird und ein entsprechendes Zentralenprogramm immer wieder triggert.

Als erstes muss die Philips Hue Bridge mit der CCU gekoppelt werden.
Das geschieht unter Einstellungen -> Systemsteuerung -> Kopplungen
Sollte sich die Bridge nicht koppeln lassen, diese ggf. einmal vom Strom trennen und neu starten.
Zudem empfehle ich, der Hue-Bridge unbedingt eine feste IP-Adresse zu geben.

Hue Kopplung

Nach der Kopplung erscheinen die Hue-Leuchten direkt in der Geräteliste.

Geräteliste

Als nächstes muss für jede Hue Leuchte eine Systemvariable vom Typ Zahl angelegt werden.
Der Minimalwert ist 0, der Maximalwert ist 1.
Da ich im Beispiel wieder meine Hue-Leuchte vom Sideboard verwende, habe ich diese Variable Dimmwert_Sideboard genannt. Der Wertebereich von 0 – 1 entspricht dem Dimmwert von 0 – 100%.

Systemvariable

Als nächstes müssen wir für jede Leuchte zwei Zentralenprogramme anlegen.

Das erste Programm sieht so aus:

Zentralenprogramm 1
Getriggert in Bedingung: Wenn… wird dieses Programm auf unsere zuvor erstellte Systemvariable im Wertebereich größer oder gleich 0.00 bei Aktualisierung auslösen.
Im Dann… wählen wir die zu dimmende HUE-Leuchte aus mit sofort Wert und klicken dann auf das kleine Klemmbrett-Symbol am Ende der Zeile.
Im dann erscheinenden Dialog wählen wir Systemzustand und dann unsere zuvor erzeugte Systemvariable aus.
Klemmbrett
Damit ist das erste Programm fertig.

Das zweite Programm ist etwas länger, aber auch nicht komplizierter.

Zentralenprogramm 2

Eine Nacherzählung spare ich mir, und zeige hier nur den Inhalt der beiden Skripte, die im unteren Teil des Programms eingesetzt werden müssen.

Bei Wandtaster Taste oben bei Tastendruck lang, muss folgendes Skript in den Dann… Teil:

real dimmwert = dom.GetObject("Dimmwert_Sideboard").Value();
dimmwert = dimmwert + 0.05;
if (dimmwert > 1) { dimmwert = 1; }
dom.GetObject("Dimmwert_Sideboard").State(dimmwert);

Bei Wandtaster Taste unten bei Tastendruck lang, muss folgendes Skript in den Dann… Teil:

real dimmwert = dom.GetObject("Dimmwert_Sideboard").Value();
dimmwert = dimmwert - 0.05;
if (dimmwert < 0) { dimmwert = 0; }
dom.GetObject("Dimmwert_Sideboard").State(dimmwert);

In den beiden Skripten muss in der ersten und letzten Zeile der Name der eigenen Systemvariable (grün markiert) eingesetzt werden.

Das war es auch schon.
Nun sollte sich die Hue Leuchte über den homematic IP Taster rauf- und runterdimmen lassen.

Ein kurzer Tastendruck nach oben schaltet die Leuchte auf den letzten Dimmwert ein,
ein kurzer Tastendruck nach unten schaltet die Leuchte aus,
ein langer Tastendruck nach oben dimmt die Leuchte hoch,
ein langer Tastendruck nach unten dimmt die Leuchte herunter.

Zwei Wandthermostate synchronisieren

In seltenen Fällen kann es notwendig oder sinnvoll sein, dass man zwei Wandthermostate synchronisieren möchte.
Sei es, dass man zwei Räume immer auf gleicher Temperatur halten möchte oder sei es, dass es in einem Raum einfach an zwei Stellen die Möglichkeit geben soll, die Temperatur im Raum einzustellen.

Da keine direkten Verknüpfungen zwischen den Thermostaten möglich sind, kann man nur den Weg über ein Zentralenprogramm mit Skript wählen.

Als erstes erstellen wir ein Zentralenprogramm, das die beiden zu synchronisierenden Thermostate als Trigger enthält.
Als Bedingung wird die Solltemperatur und als Wertebereich größer als 5.00° C ausgewählt und bei Aktualisierung auslösen. Die beiden Thermostate werden als Trigger mit ODER verknüpft, denn die Änderung an einem von beiden – und zwar egal an welchem – soll die Aktivität: Dann… ausführen.

WTH Sync

Unter Aktivität: Dann… wählen wir Skript aus und fügen dort folgendes Skript ein:

!Thermostate
string thermostat_a = "000C98A98F27A3";
string thermostat_b = "000C970996690C";

!Ab hier nichts mehr ändern
object trigger = dom.GetObject("$src$");
if(trigger)
{
    string tname = trigger.Name();
    boolean a_source = tname.Contains("HmIP-RF." # thermostat_a # ":1.SET_POINT_TEMPERATURE");
    boolean b_source = tname.Contains("HmIP-RF." # thermostat_b # ":1.SET_POINT_TEMPERATURE");
}

if (a_source == true) {
   var new_temp = dom.GetObject("HmIP-RF." # thermostat_a # ":1.SET_POINT_TEMPERATURE").Value();
   var old_temp  = dom.GetObject("HmIP-RF." # thermostat_a # ":1.SET_POINT_TEMPERATURE").LastValue();
   var thermostat_b_temp = dom.GetObject("HmIP-RF." # thermostat_b # ":1.SET_POINT_TEMPERATURE").Value();
   if ((new_temp != old_temp) && (new_temp != thermostat_b_temp)) {
      dom.GetObject("HmIP-RF." # thermostat_b # ":1.SET_POINT_TEMPERATURE").State(new_temp);
   }
}
else {
  if (b_source == true) {
     var new_temp = dom.GetObject("HmIP-RF." # thermostat_b # ":1.SET_POINT_TEMPERATURE").Value();
     var old_temp  = dom.GetObject("HmIP-RF." # thermostat_b # ":1.SET_POINT_TEMPERATURE").LastValue();
     var thermostat_a_temp = dom.GetObject("HmIP-RF." # thermostat_a # ":1.SET_POINT_TEMPERATURE").Value();
     if ((new_temp != old_temp) && (new_temp != thermostat_a_temp)) {
        dom.GetObject("HmIP-RF." # thermostat_a # ":1.SET_POINT_TEMPERATURE").State(new_temp);
     }
  }
}
 

Nun editieren wir die beiden Zeilen 2. und 3. und tragen dort die Seriennummern unserer Thermostate ein.
string thermostat_a = "000C98A98F27A3";
string thermostat_b = "000C970996690C";

Die Seriennummer der Thermostate finden wir unter Einstellungen -> Geräte
WTH Serial

Das Skript erkennt, welches Thermostat das Programm durch Änderung der Soll-Temperatur getriggert hat.
Nun vergleicht das Skript die aktuelle Soll-Temperatur mit der vorherigen Soll-Temperatur dieses Thermostaten und ob die aktuelle Soll-Temperatur von der des zweiten Thermostaten abweicht. Nur wenn beides zutrifft, wird das zweite Thermostat auf dieselbe Temperatur gestellt.

Wichtiger Hinweis
Bei dieser Art der Synchronisation von zwei Thermostaten ist es wichtig, dass entweder beide Thermostate im manuellen Modus sind oder maximal ein Thermostat im Automodus arbeitet.