mediola

Komplette Integration von Philips Hue-Lampen

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Werbung


Komplette Integration von Philips Hue-Lampen

Beitragvon janhuddel » 28.04.2017, 11:19

Tag zusammen,

wie man mittels CCU und CUxD seine Hue-Lampen ansteuern kann ist mir bekannt. Allerdings ist das reine ein-/ausschalten via curl ja nur die eine Seite der Medaille. Ich möchte innerhalb der CCU (bzw. in Drittapplikationen wie zum Bsp. PocketControl) auch den Zustand der Lampe sehen. Eine Herausforderung hierbei ist, der CCU mitzuteilen, wenn die Lampen mit "Homematic-Fremden" Anwendungen geschaltet werden.

Ich habe mir mit CUxD und Node-RED eine Lösung gebastelt, welche grundsätzlich funktioniert, die ich aber hier mal zur Diskussion stellen möchte.

  1. Einrichtung eines neuen CUxD-Gerätes: (40) 16 Kanal Universalsteuerung - Icon: Schaltaktor 1fach Unterputz - Control: Schalter (Wichtig ist hier m.E., dass man hier explizit "Schalter" wählt - der Taster kennt keinen Status)
  2. In der CCU ordne ich jetzt jede Hue-Lampe einem Kanal des eben erzeugten Geräts zu.
    In den Kanaleinstellungen setze ich dann folgende Parameter:
    Code: Alles auswählen
    SWITCH|CMD_EXEC : on
    SWITCH|CMD_SHORT: /usr/local/addons/hue/lights.tcl 9 false
    SWITCH|CMD_LONG : /usr/local/addons/hue/lights.tcl 9 true

Mit dieser Konfiguration kann ich bereits die Lampen via CCU schalten. Sofern ich sie lediglich innerhalb der CCU schalte, wird in den verschiedenen Ansichten auch immer der korrekte Status (ein oder aus) der Lampe angezeigt.

Schalte ich aber zum Bsp. die Lampe per Hue-App an, dann wird mir die Lampe in der CCU logischerweise immer noch als "aus" angezeigt. Das ist der Punkt, wo Node-RED ins Spiel kommt.

Das ist der Ablauf:
Bild


Erklärung der einzelnen Schritte:
  • alle 10 Sekunden: Timer, welcher den Flow alle 10 Sekunden ausführt
  • get light state: Liest den Status aller Lampen mittels http://<HUE-IP>/api/<APIKEY>/lights
  • process & split: Wertet den Status aller Lampen aus und prüft, ob sich der Status seit dem letzten Abruf verändert hat. Für jede Lampe mit einem neuen Status werden dann die weiteren Schritte ausgeführt
  • map light: Übersetzt die Lampen-ID (Bsp. '3') auf den entsprechenden CCU-Gerätekanal (Bsp. CUX4000002:3)
  • prepare rega: Erzeugt ein REGA-Skript (Bsp. dom.GetObject('CUxD.CUX4000002:3.SET_STATE').State(1);)
  • hmrega: Führt das zuvor erzeugte REGA-Skript auf der CCU aus

Hinweis: Ich verwende hier zwei selbst entwickelte Nodes. Wer den Flow selbst testen möchte, muss vorher noch folgende 2 Nodes installieren (habe ich für diesen Zweck selbst geschrieben):

Hier der Node-RED-Code zum importieren:
https://gist.github.com/janhuddel/862ae79638ad662021e1e8ea5912d13f

Ich freue mich auf euer Feedback.
RaspberryMatic 2.27.8.20170501 @ RPi3 + ioBroker
Benutzeravatar
janhuddel
 
Beiträge: 7
Registriert: 25.05.2016, 15:21

Re: Komplette Integration von Philips Hue-Lampen

Beitragvon penicol » 06.06.2017, 20:42

Hallo,

ich habe meine Hue Lampen auch eingebunden, was auch gut funktioniert. Allerdings habe ich das von dir beschriebene Problem auch, dass der Status je nach Schaltung (über Homematic oder Hue) falsch gesetzt ist.
Kannst du kurz beschreiben, wie ich die Nodes in die CCU2 einbinde? Ich bn zwar kein völliger NOOB mehr, aber ganz so tief stecke ich in der Materie - noch - nicht drinnen.

Danke dir.

Gruß

Peter
penicol
 
Beiträge: 1
Registriert: 06.06.2017, 20:35


Zurück zu CUxD

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast







© homematic-forum.de & Lizenzgebern. Alle Rechte vorbehalten. Alle Bilder & Texte auf dieser Seite sind Eigentum
der jeweiligen Besitzer und dürfen ohne deren Einwilligung weder kopiert noch sonstwie weiter verwendet werden.