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.

Verknüpfung von Bewegungsmelder und Aktor mit zwei Helligkeitsschwellen

Verknüpft man einen Bewegungsmelder mit einem Aktor, so kann man in der Direktverknüpfung eine Helligkeitsschwelle angeben. Das ist grundsätzlich eine sinnvolle Funktion, damit das Licht erst unter einer bestimmten Helligkeit eingeschaltet wird, hat aber auch einen Nachteil. Durch das eingeschaltete Licht im Raum, ist die Helligkeit in der Regel oberhalb dieser Helligkeitsschwelle, so dass der Bewegungsmelder das Licht nicht mehr nachtriggert und dieses dann irgendwann abschaltet.

Hierfür gibt es in der WebUI die Einstellung des Helligkeitsfilters, die zwar durchaus praktisch ist, aber ebenfalls einige Nachteile hat. Setzt man den Filter sehr klein (z.B. auf 1), wird das Licht relativ schnell nicht mehr nachgetriggert. Setzt man den Filter relativ hoch (z.B. auf den Standardwert 8), dann wird das Licht morgens noch eingeschaltet, obwohl es im Raum eigentlich schon zu hell ist.

Die Lösung wäre ist zweiter Schwellwert für den Fall, dass das Licht bereits eingeschaltet ist.
Das schöne an dieser Lösung ist, dass es diese Möglichkeit in den Expertenparametern bereits gibt, man es nur entsprechend einstellen muss.

Als erstes muss dazu der Bewegungsmelder selbst entsprechend eingestellt werden.

Einstellungen des BWM
Der Mindestsendeabstand und Zeit nach der eine erkannte Bewegung zurückgesetzt wird müssen beide auf einen identischen Wert gestellt werden, der kleiner ist als die Einschaltdauer unserer Direktverknüpfung mit dem Aktor.
Wird der Aktor z.B. 5 Minuten eingeschaltet, so sollte hier z.B. 4min gewählt werden.
Der Parameter Innerhalb des Sendeabstands erkannte Bewegung senden muss deaktiviert werden und der Helligkeitsfilter muss auf 1 gesetzt werden.
Damit sind die Einstellungen für den Bewegungsmelder fertig.

Nun muss die Helligkeitsschwelle bei eingeschaltetem Licht ermittelt werden.
Dazu unter Status und Bedienung zuerst den Aktor auswählen und das Licht im Raum manuell einschalten.
Dann den Bewegungsmelder auswählen und Reset Status anklicken.
Nun wird auch die Helligkeit aktualisiert und man sollte den korrekten Wert für die Helligkeitsschwelle bei eingeschaltetem Licht ablesen können.
BWM Helligkeit

Wenn bei eingeschaltetem Licht dort z.B. 130 steht, würde ich später als Schwellwert 150 eintragen, also etwa 20 als Reserve draufrechnen.

Als nächstes muss die Direktverknüpfung zwischen Bewegungsmelder und Aktor entsprechend eingestellt werden.
DV BWM Aktor
Dazu wird zuerst das Profil Treppenhauslicht ausgewählt.
Die Art der Verweildauer ist egal, hier sollte man minimal wählen, wenn ein manuell eingeschaltetes Licht nicht vom Bewegungsmelder wieder ausgeschaltet werden soll und absolut, wenn der Bewegungsmelder ein manuell eingeschaltetes Licht nach einer erkannten Bewegung wieder ausschalten soll.
Bei Helligkeitsschwelle trägt man die Helligkeitsschwelle ein, bei der der Aktor normalerweise einschalten soll (also der Wert ohne Fremdlicht durch den eingeschalteten Aktor – hier im Beispiel 40).
Nun klicken wir auf Übernehmen um diese Einstellungen zu übernehmen und in der Ansicht zu verbleiben.

Um nun einen zweiten Schwellwert eintragen zu können, muss das Profil nun auf Experte umgestellt werden (die zuvor eingetragenen Werte bleiben dabei erhalten). Sollte der Punkt Experte nicht vorhanden sein, bitte Google bemühen, wie der Expertenmodus aktiviert werden kann.

In den nun sichtbaren Expertenparametern suchen wir diesen Abschnitt und ändern zwei Parameter.
Zuerst setzen wir SHORT_COND_VALUE_HI auf unseren Schwellwert bei Fremdlicht durch den eingeschalteten Aktor (also wie im Beispiel beschrieben auf z.B. 150).
In SHORT_COND_VALUE_LO steht noch der Schwellwert ohne Fremdlicht, den wir zuvor eingetragen hatten. Dieser Wert bleibt auch unverändert so stehen.
Als letztes ändern wir SHORT_CT_ON auf VALUE_L_HI.
Zweite Helligkeitsschwelle

Nun klicken wir abschließend auf den Button OK um das Profil zu übernehmen.

Die Verknüpfung hat nun zwei Helligkeitsschwellen.
Helligkeitsschwelle 40 bei ausgeschaltetem Licht und Helligkeitsschwelle 150 bei eingeschaltetem Licht.

Wir haben in den Expertenparametern zwei COND_VALUE (also Bedingungswerte) festgelegt.
Der eine als untere Grenze, den anderen als obere Grenze.
Im nächsten Schritt haben wir unter SHORT_CT angeben, welcher Wert mit welcher Bedingung bei welchen Zustand des Aktors verwendet werden soll.

Die vier Zustände des Aktors sind:
OFF = Aus
OFFDELAY = Ausschaltverzögerung
ON = Ein
ONDELAY = Einschaltverzögerung

Bei OFF, OFFDELAY und ONDELAY haben wir VALUE_L_LO, also Wert kleiner SHORT_COND_VALUE_LO eingestellt.
Befindet sich der Aktor in einem dieser Zustände, dann muss der übertragene Helligkeitswert kleiner als SHORT_COND_VALUE_LO sein um den Aktor zu schalten.

Bei ON haben wir VALUE_L_HI, also Wert kleiner SHORT_COND_VALUE_HI eingestellt.
Befindet sich der Aktor in einem dieser Zustände, dann muss der übertragene Helligkeitswert kleiner als SHORT_COND_VALUE_HI sein um den Aktor zu schalten.

HINWEIS: Wenn man eine Ausschaltverzögerung verwendet, dann muss auch SHORT_CT_OFFDELAY von VALUE_L_LO auf VALUE_L_HI umgestellt werden, da in der Ausschaltverzögerung ebenfalls das Licht noch eingeschaltet ist.

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.

HomeHub 3.1

HomeHub macht mit diesem Update den Sprung auf Version 3.1

Was ist neu?

  • Anzeige der Schaltflächen (rot/grün) durch Statusanzeigen (rot/grün/grau) neben den Icons ersetzt.
  • Direktes fahren eines Rollladen durch Bedienpfeile auf der Hauptebene
  • Statusanzeigen für Systemvariablen (Logikwert, Werteliste, Zeichenkette) parametrierbar.

Die wohl wichtigste optische Änderung betrifft hierbei die Darstellung der Schaltzustände, der Zustände der Systemvariablen und Bedienung der Rollläden. Hier einige Screenshots zum Vergleich vorher/nachher.

Darstellung Schaltzustände bisher

Darstellung Schaltzustände neu

Direkte Bedienung der Rollläden (Stop des fahrenden Rollladens über antippen des Rollladensymbols)

Farbige Zustandsanzeigen für Systemvariablen

Für die Darstellung der Zustandsanzeige von Systemvariablen sind neue Parameter in der custom.json hinzugekommen.

Parameter „operate“
Anwendung bei Logikwert, Werteliste, Zahl, Zeichenkette
Zustände "true" (default), "false"

Der bisherige Parameter „expand“ wurde durch „operate“ ersetzt. Wird der Paramater „expand“ verwendet, muss er nach dem Update auf Version 3.1 händisch auf „operate“ geändert werden. Mit dem Parameter „operate“ lassen sich Systemvariablen gegen Bedienung/Änderung sperren.

Parameter „indicator“
Anwendung bei Werteliste, Zeichenkette
Zustände bei Werteliste:
Bei der Werteliste kann ein Wert angegeben werden, z.B. "1". In diesem Fall wird die Zustandanzeige den Zustand true annehmen, wenn der zweite Wert aus der Werteliste aktuell ist (die Zählung beginnt bei 0, also erster Wert der Werteliste = 0, zweiter Wert = 1, etc.). Für die restlichen Werte ist die Anzeige dann false.
Bsp: "indicator":"0" setzt die Anzeige auf grün, wenn der erste Wert der Werteliste aktuell ist, ansonsten ist die Anzeige auf false.

Alternativ kann dort aber auch die Zustandanzeige für mehrere oder alle Werte der Werteliste definiert werden. Das geschieht in der Form
[Position in Werteliste],[Art der Anzeige];...
Die Art der Anzeige kann dabei true=grün, false=rot oder off = grau sein.
Bsp: "indicator":"0,false;1,true;2,off" setzt die Anzeige beim ersten Wert der Werteliste auf false, beim zweiten auf true und beim dritten auf off.

Zustände bei Zeichenkette:
Bei der Zeichenkette kann nach einem oder mehreren Begriffen aus der Zeichenkette gesucht werden.
Bsp:
"indicator": "Regen" sucht nach dem Begriff Regen
"indicator": "Heute|Morgen" sucht nach den Begriffen Heute oder Morgen
Wird der Suchbegriff gefunden, ist die Zustandsanzeige true.

Parameter „indicator_mode“
Anwendung bei Logikwert, Werteliste, Zeichenkette
Zustände "on" (default), "off"
Mit diesem Parameter kann festgelegt werden, ob die Zustandsanzeige ein (grün) oder aus (grau) ist, wenn der Parameter „indicator“ einen Treffer geliefert hat. Dieser Parameter ist ohne Funktion, wenn bei der Werteliste mehrere Werte definiert sind.
Bsp: "indicator_mode": "on" setzt die Anzeige auf grün, wenn indicator einen Treffer ergeben hat.

Parameter „invert_color“
Anwendung bei Logikwert, Werteliste, Zeichenkette
Zustände "false" (default), "true"
Mit diesem Parameter kann die Anzeige true=grün und false=rot invertiert werden. In Kombination mit dem Paramter indicator_mode lassen sich somit alle Darstellungskombinationen aus grün/rot/grau für true und false erreichen.
Bsp: "invert_color": "true" setzt die Anzeige auf rot (false), wenn der eigentliche Wert true (grün) ist und umgekehrt.

Zur Installation von HomeHub bitte dieser Anleitung folgen:
https://github.com/Gerti1972/homehub/blob/master/README.md

Um diese Version als Update zu installieren, bitte zuerst die folgenden lokalen Dateien sichern:
homehub\app\Config\config.php
homehub\app\Config\custom.php
homehub\app\Config\export.php

Nun die heruntergeladene Version in den bestehenden HomeHub Ordner entpacken (alle Dateien dabei überschreiben) und die drei zuvor gesicherten Dateien wieder zurückspielen.

Hier ein kleines Video zu HomeHub 3.1

HomeHub 3.01

Ich habe mal wieder ein kleines Update für HomeHub auf Version 3.01

Was ist neu?

  • Anzeige der Dimmer mit Button im Hintergrund
    (rot = aus / grün = ein) zur schnelleren Übersicht.
  • Direktes Ein-/Ausschalten des Dimmers durch antippen des Icons
  • Eingabe eines Dimmwertes in Prozent möglich (50 für 50%, statt wie bisher 0.5 für 50%)
  • Leichte grafische Modernisierungen
    – Abgerundete Ecke bei der ausgewählten Kategorie
    – Mindestbreite von 50 Pixeln für Buttons
    – Helligkeit der ausgewählten Kategorie leicht erhöht
    – Titelleiste der Subkategorien mit auslaufendem Balken hinterlegt
    – Abstände (Divider) zwischen den Elementen etwas verringert
    – Blauton der Aktionsbuttons etwas dunkler gemacht
    – Startbutton für Programme von blau auf grau geändert

Die Wohl wichtigste Änderung betrifft hierbei die Darstellung und Bedienung der Dimmer. Hier ein Screenshot zum Vergleich vorher/nachher.

Darstellung vorher
Darstellung nachher

Zur Installation von HomeHub bitte dieser Anleitung folgen:
https://github.com/Gerti1972/homehub/blob/master/README.md

Um diese Version als Update zu installieren, bitte zuerst die folgenden lokalen Dateien sichern:
homehub\app\Config\config.php
homehub\app\Config\custom.php
homehub\app\Config\export.php

Nun die heruntergeladene Version in den bestehenden HomeHub Ordner entpacken (alle Dateien dabei überschreiben) und die drei zuvor gesicherten Dateien wieder zurückspielen.

HomeHub 3.0

Dank der Hilfe von steingarten aus dem HomeMatic-Forum war es mir nun endlich möglich, auch die homematic IP Geräte mit Ihrer Vielzahl an Kanälen und nicht immer identischen ISE-ID Abständen in HomeHub zu integrieren. Einige neue Komponenten sind seit Version 3.0 beta1 hinzugekommen, so dass es nun Zeit für eine offizielle Version 3.0 ist.

Neben der Integration vieler neuer homematic IP Komponenten, wurde die Darstellung und Bedienung vieler IP Heizungskomponenten überarbeitet und verbessert. Ansonsten hat sich rein optisch fast nichts verändert, nur das aktuelle Datum wird nun mit in der Titelleiste angezeigt.

Hinzugefügt bzw. überarbeitet wurden folgende Komponenten:

  • HmIP-BROLL
  • HmIP-FSM
  • HmIP-FSM16
  • HmIP-BSM
  • HmIP-SWDO-I
  • HmIP-BSL
  • HmIP-SRH
  • HmIP-SWO-B
  • HmIP-SCI
  • HmIP-BWTH
  • HmIP-WTH-2
  • HmIP-STHD
  • HMIP-eTRV
  • HMIP-eTRV-B
  • HMIP-eTRV-2
  • HmIP-SLO

Zur Installation von HomeHub bitte dieser Anleitung folgen:
https://github.com/Gerti1972/homehub/blob/master/README.md

Um diese Version als Update zu installieren, bitte zuerst die folgenden lokalen Dateien sichern:
homehub\app\Config\config.php
homehub\app\Config\custom.php
homehub\app\Config\export.php

Nun die heruntergeladene Version in den bestehenden HomeHub Ordner entpacken (alle Dateien dabei überschreiben) und die drei zuvor gesicherten Dateien wieder zurückspielen.

HomeHub 3.0 beta 1

Als ich vor drei Jahren nach einer schönen Visualisierung für meine Heimautomation suchte, landete ich recht schnell bei HomeHub vom User braindead aus dem HomeMatic-Forum.

Ich bin ein Freund der einfachen tabellarischen Darstellung und mag eigentlich keinen unnötigen Firlefanz. Daher gefiel mir die Darstellung von HomeHub sofort. Anfangs lief die Visualisierung auf meiner Synology und das Tablet diente nur zur Anzeige. Nach dem Wechsel auf ein Galaxy Tab A, hatte das Tablet aber genug Leistung um auch den Webserver auf dem Tablet selbst laufen zu lassen. Als Browser für die Darstellung der Visualisierung verwende ich Fully Kiosk Browser.

Meine Installation besteht derzeit also aus:
– Samsung Galaxy Tab A6 10 Zoll
PHP Server App
Fully Kiosk Browser
HomeHub 3.0 beta 1

Da braindead leider vor gut zwei Jahren die Entwicklung von HomeHub eingestellt hat, habe ich mir neue Geräte selbst hinzugefügt. Zudem habe ich die Visualisierung grafisch etwas verändert, farbige Markierungen hinzugefügt, sowie bei Systemvariablen die Möglichkeit eingebaut, diese nur lesend darzustellen.

Da braindead das Projekt nicht mehr weiterführt und ich HomeHub viel zu schick finde um es sterben zu lassen, habe ich mich dazu entschlossen nun eine Version 3 (basiert auf braindeads Version 2.0.2) als beta zur Verfügung zu stellen. Die Version 3.0 beta 1 kann im oben genannten Link heruntergeladen werden. Die farbige Markierung für die Komponenten habe ich noch nicht bei allen Geräten hinzugefügt, da ich nicht alle nutze und mir die Arbeit daher noch nicht gemacht habe.

Neben den HomeMatic Komponenten habe ich inzwischen einige homematic IP, sowie homematic IP Wired Komponenten hinzugefügt, weitere Komponenten werden folgen.

HomeHub 3.0 beta 1 stelle ich hiermit – ohne Anspruch auf Vollständigkeit und Funktion – zum Download zur Verfügung und würde mich freuen, auf diesem Weg vielleicht einen Mitstreiter zu finden, der HomeHub mit mir zusammen weiter entwickelt.