Hallo,
der aktuelle Baustellenzustand und das Wetter lassen mal wieder etwas Arbeit an der Visu zu.
Also will ich mich wieder an die HUE machen und diese an die restliche KNX installation anbinden.
Die Anleitung zum ersten HUE-Plugin findet man hier:
https://knx-user-forum.de/forum/suppo...ng-einrichtung
An dieser Stelle eimal ein großes Dankeschön an die fleißigen Macher und Tester der Tools.
Ausgangslage/ Komponenten:
1) Philips HUE incl. Bridge (eingerichted und functionsfähig über Handy App)
2) MDT Glastaster (bei mir, es kann aber auch ein anderer TS sein)
3)funktionsfähige SH.py Umgebung (hier: Raspberry mit dem SH/SV image)
von hier:https://knx-user-forum.de/smarthome-p...-pi-2-1-a.html
aufgesetzt wie hier: https://github.com/mknx/smarthome/wiki/SmartHome.pi
Idee dahinter (Einsatzszenario) ist auch gleich geblieben:
http://mknx.github.io/smarthome/plugin.html
Aber die neuere Version, um die es hier gehen soll, befindet sich hier:
https://github.com/mworion/hue
1.Step: Plugin auf Zielmaschine kopieren
Eigentlich sollte man es als SH User hinbekommen, aber ich will trotzdem mal beschreiben, wie ich es mache
(für eine Vereinfachung bin ich immer offen, einen Konsolen-Befehl oder so)
Download des Plugins von der git-Seite (Download ZIP Button)
Dateien entpacken
Transfer der Datei mit einem FTP-Tool auf die Zielmaschine in das folgende Verzeichnis
Zusätzlich das RGB-Plugin von Git laden (auch als ZIP) und nach dem entpacken auch die „rgb_cie.py“ in das gleiche Verzeichnis kopieren.
2. Step: (Plugin aktivieren, bekannt machen)
Folgendes habe ich an die plugin.conf (/usr/smarthome/etc/plugin.conf) angefügt
Die UserID ist beliebig wählbar und dient, wenn authorisiert, als Key für die externe Applikation zur Nutzung der API.
Man kann die ID auch im Debugger der Hue-Bridge "generieren" (d.h. beliebig wählen und registrieren) und dann diese ID in die Config eintragen:
http://www.developers.meethue.com/do...etting-started
Ich habe einfach den aus der plugin Docu genommen.
3. Step: (HUE Items anlegen)
Eine neue Item Datei anlegen um den Rest(Items) nicht zu verändern.
Datei liegt unter: /usr/smarthome/items/hue_items.conf
3. Step: Restart SH
SSH connection aufbauen, wenn nicht schon geschehen und eingeben:
(alternative ist auch ein restart über das Webinterface möglich)
4. Step: Restart SH im interaktive Modus
SSH connection aufbauen, wenn nicht schon geschehen und eingeben:
5. Step: Testen der HUE im interaktive Modus
"Ein" und "Aus" mit Zwischenwerten geht so: z.b.
Dimmen geht so: z.b.
Die Veränderung der Farbe geht so: z.b.
6. Step: Testen der HUE im KNX Modus
Die HUE mit groupswrite testen: (über SSH)
Ein- und Ausschalten geht
Fehler: Die folgenden Aufrufe, funktionieren in der Konsole nicht: (Dimmen)
Auch wenn es eigentlich ein SmartVisu Thema ist, habe ich hier noch mal schnell die Einbindung in die Visu mit reingenommen.
7. Step: SmartVisu einbinden der HUE im interaktive Modus
den folgenden Block in eine Visu-Seite einbinden und freuen:
Der RGB-Chooser funktionierte anfänglich nicht sofort, aber nach mehreren Neustarts, tut er es plötzlich.
Step 8: Anlegen der GAs in der ETS
Das sollte jeder, der hier mitließt auch ohne Anleitung hinbekommen. Der Vollständigkeit halber, wollte ich es aber erwähnen.
(Um Verwirrungen vorzubeugen, habe ich einen Screenshot angefügt.)
(Bild: GA_anlegen.png)
Step 9: Testen der HUE aus der ETS heraus
- Gruppenmonitor öffnen
- GA auswählen
- Wert schreiben
- freuen
(Bild: GA-monitor.png)
Step 10: Glastaster in der ETS vorbereiten
- Taste 3 und 4 des Glastasters auf "Ein-Tasten-Dimmer" einrichten.
(Bild: Parametrierung.png)
- GA mit den Parametern verbinden
- Parameter an den Glastaster übertragen
(Bild: Parameter_1.png, Parameter_2.png, Parameter_3.png)
FERTIG!
(der Beitrag wird von mir immer editiert, sobald sich etwas ergibt)
Ich bedanke mich jetzt schon für eure Mithilfe.
Gruß Stefan
PS: Wenn die Anleitung fertig ist, kann diese auch gerne in das Wiki übernommen werden.
der aktuelle Baustellenzustand und das Wetter lassen mal wieder etwas Arbeit an der Visu zu.
Also will ich mich wieder an die HUE machen und diese an die restliche KNX installation anbinden.
Die Anleitung zum ersten HUE-Plugin findet man hier:
https://knx-user-forum.de/forum/suppo...ng-einrichtung
An dieser Stelle eimal ein großes Dankeschön an die fleißigen Macher und Tester der Tools.
Ausgangslage/ Komponenten:
1) Philips HUE incl. Bridge (eingerichted und functionsfähig über Handy App)
2) MDT Glastaster (bei mir, es kann aber auch ein anderer TS sein)
3)funktionsfähige SH.py Umgebung (hier: Raspberry mit dem SH/SV image)
von hier:https://knx-user-forum.de/smarthome-p...-pi-2-1-a.html
aufgesetzt wie hier: https://github.com/mknx/smarthome/wiki/SmartHome.pi
Idee dahinter (Einsatzszenario) ist auch gleich geblieben:
- Beide Tasten sind als Ein-Tastendimmer konfiguriert. (Kurzer Tastendruck auf eine der beiden, schaltet die Lampe ein und/oder aus. Dabei würde ich einen festen Farbwert vordefinieren wollen)
- Die eine Taste "Farbwert (H)" ist für die Farbe zuständig. (Langer Druck lässt durch die Farben faden)
- Die zweite Taste ist für die Helligkeit (Langer Druck fährt rampenartig die Helligkeit hoch und runter)
http://mknx.github.io/smarthome/plugin.html
Aber die neuere Version, um die es hier gehen soll, befindet sich hier:
https://github.com/mworion/hue
1.Step: Plugin auf Zielmaschine kopieren
Eigentlich sollte man es als SH User hinbekommen, aber ich will trotzdem mal beschreiben, wie ich es mache
(für eine Vereinfachung bin ich immer offen, einen Konsolen-Befehl oder so)
Download des Plugins von der git-Seite (Download ZIP Button)
Dateien entpacken
Transfer der Datei mit einem FTP-Tool auf die Zielmaschine in das folgende Verzeichnis
Code:
/usr/smarthome/plugin/hue
2. Step: (Plugin aktivieren, bekannt machen)
Folgendes habe ich an die plugin.conf (/usr/smarthome/etc/plugin.conf) angefügt
Code:
[HUE] class_name = HUE class_path = plugins.hue hue_user = 38f625a739562a8bd261ab9c7f5e62c8 hue_ip = 192.168.1.224
Man kann die ID auch im Debugger der Hue-Bridge "generieren" (d.h. beliebig wählen und registrieren) und dann diese ID in die Config eintragen:
http://www.developers.meethue.com/do...etting-started
Ich habe einfach den aus der plugin Docu genommen.
3. Step: (HUE Items anlegen)
Eine neue Item Datei anlegen um den Rest(Items) nicht zu verändern.
Datei liegt unter: /usr/smarthome/items/hue_items.conf
Code:
# items/hue_items.conf [huebulb] [[hue1]] # if hue_lamp_id and hue_bridge_id is not set, it is searched in a higher layer hue_lamp_id = 1 hue_bridge_id = 0 [[[bridge_name]]] type = str hue_listen = bridge_name [[[zigbeechannel]]] type = num hue_listen = zigbeechannel [[[mac]]] type = str hue_listen = mac [[[dhcp]]] type = bool hue_listen = dhcp [[[ipaddress]]] type = str hue_listen = ipaddress [[[netmask]]] type = str hue_listen = netmask [[[gateway]]] type = str hue_listen = gateway [[[utc]]] type = str hue_listen = UTC [[[localtime]]] type = str hue_listen = localtime [[[timezone]]] type = str hue_listen = timezone [[[whitelist]]] type = dict hue_listen = whitelist [[[bridge_swversion]]] type = str hue_listen = bridge_swversion [[[apiversion]]] type = str hue_listen = apiversion [[[swupdate]]] type = dict hue_listen = swupdate [[[linkbutton]]] type = bool hue_listen = linkbutton [[[portalservices]]] type = bool hue_listen = portalservices [[[portalconnection]]] type = str hue_listen = portalconnection [[[portalstate]]] type = dict hue_listen = portalstate [[[power]]] type = bool hue_send = on hue_listen = on knx_dpt = 1 knx_cache = 2/2/3 [[[reachable]]] type = bool hue_listen = reachable [[[ct]]] type = num hue_send = ct hue_listen = ct [[[scene]]] type = str hue_send = scene enforce_updates = true [[[bri]]] type = num cache = on hue_send = bri hue_listen = bri hue_transitionTime = 0.2 [[[[dim]]]] type = list knx_dpt = 3 knx_listen = 2/2/4 hue_dim_max = 255 hue_dim_step = 10 hue_dim_time = 0.2 [[[sat]]] type = num cache = on hue_send = sat hue_listen = sat [[[col_r]]] type = num cache = on hue_send = col_r [[[col_g]]] type = num cache = on hue_send = col_g [[[col_b]]] type = num cache = on hue_send = col_b [[[hue]]] type = num cache = on hue_send = hue hue_listen = hue hue_transitionTime = 0.2 [[[[dim]]]] type = list knx_dpt = 3 knx_listen = 2/2/5 hue_dim_max = 65535 hue_dim_step = 2000 hue_dim_time = 0.2 [[[effect]]] type = str hue_send = effect hue_listen = effect [[[alert]]] type = str hue_send = alert hue_listen = alert [[[modeltype]]] type = str hue_listen = type [[[lampname]]] type = str hue_listen = name [[[modelid]]] type = str hue_listen = modelid [[[swversion]]] type = str hue_listen = swversion [[hue2]] # if hue_lamp_id and hue_bridge_id is not set, it is searched in a higher layer hue_lamp_id = 2 hue_bridge_id = 0 [[[bridge_name]]] type = str hue_listen = bridge_name [[[zigbeechannel]]] type = num hue_listen = zigbeechannel [[[mac]]] type = str hue_listen = mac [[[dhcp]]] type = bool hue_listen = dhcp [[[ipaddress]]] type = str hue_listen = ipaddress [[[netmask]]] type = str hue_listen = netmask [[[gateway]]] type = str hue_listen = gateway [[[utc]]] type = str hue_listen = UTC [[[localtime]]] type = str hue_listen = localtime [[[timezone]]] type = str hue_listen = timezone [[[whitelist]]] type = dict hue_listen = whitelist [[[bridge_swversion]]] type = str hue_listen = bridge_swversion [[[apiversion]]] type = str hue_listen = apiversion [[[swupdate]]] type = dict hue_listen = swupdate [[[linkbutton]]] type = bool hue_listen = linkbutton [[[portalservices]]] type = bool hue_listen = portalservices [[[portalconnection]]] type = str hue_listen = portalconnection [[[portalstate]]] type = dict hue_listen = portalstate [[[power]]] type = bool hue_send = on hue_listen = on knx_dpt = 1 knx_cache = 2/2/6 [[[reachable]]] type = bool hue_listen = reachable [[[ct]]] type = num hue_send = ct hue_listen = ct [[[scene]]] type = str hue_send = scene enforce_updates = true [[[bri]]] type = num cache = on hue_send = bri hue_listen = bri hue_transitionTime = 0.2 [[[[dim]]]] type = list knx_dpt = 3 knx_listen = 2/2/7 hue_dim_max = 255 hue_dim_step = 10 hue_dim_time = 0.2 [[[sat]]] type = num cache = on hue_send = sat hue_listen = sat [[[col_r]]] type = num cache = on hue_send = col_r [[[col_g]]] type = num cache = on hue_send = col_g [[[col_b]]] type = num cache = on hue_send = col_b [[[hue]]] type = num cache = on hue_send = hue hue_listen = hue hue_transitionTime = 0.2 [[[[dim]]]] type = list knx_dpt = 3 knx_listen = 2/2/8 hue_dim_max = 65535 hue_dim_step = 2000 hue_dim_time = 0.2 [[[effect]]] type = str hue_send = effect hue_listen = effect [[[alert]]] type = str hue_send = alert hue_listen = alert [[[modeltype]]] type = str hue_listen = type [[[lampname]]] type = str hue_listen = name [[[modelid]]] type = str hue_listen = modelid [[[swversion]]] type = str hue_listen = swversion [[hue3]] # if hue_lamp_id and hue_bridge_id is not set, it is searched in a higher layer hue_lamp_id = 3 hue_bridge_id = 0 [[[bridge_name]]] type = str hue_listen = bridge_name [[[zigbeechannel]]] type = num hue_listen = zigbeechannel [[[mac]]] type = str hue_listen = mac [[[dhcp]]] type = bool hue_listen = dhcp [[[ipaddress]]] type = str hue_listen = ipaddress [[[netmask]]] type = str hue_listen = netmask [[[gateway]]] type = str hue_listen = gateway [[[utc]]] type = str hue_listen = UTC [[[localtime]]] type = str hue_listen = localtime [[[timezone]]] type = str hue_listen = timezone [[[whitelist]]] type = dict hue_listen = whitelist [[[bridge_swversion]]] type = str hue_listen = bridge_swversion [[[apiversion]]] type = str hue_listen = apiversion [[[swupdate]]] type = dict hue_listen = swupdate [[[linkbutton]]] type = bool hue_listen = linkbutton [[[portalservices]]] type = bool hue_listen = portalservices [[[portalconnection]]] type = str hue_listen = portalconnection [[[portalstate]]] type = dict hue_listen = portalstate [[[power]]] type = bool hue_send = on hue_listen = on knx_dpt = 1 knx_cache = 2/1/0 [[[reachable]]] type = bool hue_listen = reachable [[[ct]]] type = num hue_send = ct hue_listen = ct [[[scene]]] type = str hue_send = scene enforce_updates = true [[[bri]]] type = num cache = on hue_send = bri hue_listen = bri hue_transitionTime = 0.2 [[[[dim]]]] type = list knx_dpt = 3 knx_listen = 2/1/1 hue_dim_max = 255 hue_dim_step = 10 hue_dim_time = 0.2 [[[sat]]] type = num cache = on hue_send = sat hue_listen = sat [[[col_r]]] type = num cache = on hue_send = col_r [[[col_g]]] type = num cache = on hue_send = col_g [[[col_b]]] type = num cache = on hue_send = col_b [[[hue]]] type = num cache = on hue_send = hue hue_listen = hue hue_transitionTime = 0.2 [[[[dim]]]] type = list knx_dpt = 3 knx_listen = 2/1/2 hue_dim_max = 65535 hue_dim_step = 2000 hue_dim_time = 0.2 [[[effect]]] type = str hue_send = effect hue_listen = effect [[[alert]]] type = str hue_send = alert hue_listen = alert [[[modeltype]]] type = str hue_listen = type [[[lampname]]] type = str hue_listen = name [[[modelid]]] type = str hue_listen = modelid [[[swversion]]] type = str hue_listen = swversion
3. Step: Restart SH
SSH connection aufbauen, wenn nicht schon geschehen und eingeben:
(alternative ist auch ein restart über das Webinterface möglich)
Code:
/usr/smarthome/bin/smarthome.py --stop /usr/smarthome/bin/smarthome.py --start
4. Step: Restart SH im interaktive Modus
SSH connection aufbauen, wenn nicht schon geschehen und eingeben:
Code:
/usr/smarthome/bin/smarthome.py --stop /usr/smarthome/bin/smarthome.py -i
5. Step: Testen der HUE im interaktive Modus
"Ein" und "Aus" mit Zwischenwerten geht so: z.b.
Code:
>>> sh.huebulbs.hue3.power(1) >>> sh.huebulbs.hue3.power(0) >>> sh.huebulbs.hue3.power(1)
Code:
>>> sh.huebulbs.hue3.bri.dim(10) >>> sh.huebulbs.hue3.bri.dim(250)
Code:
>>> sh.huebulbs.hue3.hue.dim(3200) >>> sh.huebulbs.hue3.hue.dim(65000)
6. Step: Testen der HUE im KNX Modus
Die HUE mit groupswrite testen: (über SSH)
Ein- und Ausschalten geht
Code:
groupswrite ip:localhost 2/1/0 1 groupswrite ip:localhost 2/1/0 0
Code:
groupswrite ip:localhost 2/1/1 1 groupswrite ip:localhost 2/1/1 250
Auch wenn es eigentlich ein SmartVisu Thema ist, habe ich hier noch mal schnell die Einbindung in die Visu mit reingenommen.
7. Step: SmartVisu einbinden der HUE im interaktive Modus
den folgenden Block in eine Visu-Seite einbinden und freuen:
Der RGB-Chooser funktionierte anfänglich nicht sofort, aber nach mehreren Neustarts, tut er es plötzlich.
Code:
<div class="block" style="width: 50%"> <div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true"> <div data-role="collapsible" data-collapsed="false"> <h3>Stehlampe</h3> <table height="90%" width="90%" align="center"> <tr> <td width="15%" align="center"> {{basic.dual('huebulb.1.0','huebulb.hue3.power')}}</td> <td width="15%" align="center"> {{basic.symbol('huebulb.1.1','huebulb.hue3.reachable','',icon1~'it_wifi.png','1')}} {{basic.symbol('huebulb.1.1a','huebulb.hue3.reachable','',icon0~'it_wifi.png','0')}} </td> <td width="15%" align="center"> {{basic.rgb('huebulb.1.2','huebulb.hue3.col_r','huebulb.hue3.col_g','huebulb.hue3.col_b',0,255,'',16)}} </td> <td width="25%" align="center"> Alert:{{basic.dual('huebulb.1.3','huebulb.hue3.alert', icon1~'audio_pause.png', icon1~'audio_play.png', 'lselect', 'none')}}</td> <td width="25%" align="center"> Effect:{{basic.dual('huebulb.1.4','huebulb.hue3.effect', icon1~'audio_pause.png', icon1~'audio_play.png', 'colorloop', 'none')}}</td> </tr> </table> <table height="90%" width="90%" align="center"> <tr> <td width="15%" align="left">Helligkeit</td> <td width="85%"> {{basic.slider('huebulb.1.5','huebulb.hue3.bri',0,255,5)}}</td> </tr> <tr> <td width="15%" align="left">Sättigung</td> <td width="85%"> {{basic.slider('huebulb.1.6','huebulb.hue3.sat',0,255,5)}}</td> </tr> <tr> <td width="15%" align="left">Farbe</td> <td width="85%"> {{basic.slider('huebulb.1.7','huebulb.hue3.hue',0,65535,500)}}</td> </tr> </table> </div> </div> </div>
Step 8: Anlegen der GAs in der ETS
Das sollte jeder, der hier mitließt auch ohne Anleitung hinbekommen. Der Vollständigkeit halber, wollte ich es aber erwähnen.
(Um Verwirrungen vorzubeugen, habe ich einen Screenshot angefügt.)
(Bild: GA_anlegen.png)
Step 9: Testen der HUE aus der ETS heraus
- Gruppenmonitor öffnen
- GA auswählen
- Wert schreiben
- freuen
(Bild: GA-monitor.png)
Step 10: Glastaster in der ETS vorbereiten
- Taste 3 und 4 des Glastasters auf "Ein-Tasten-Dimmer" einrichten.
(Bild: Parametrierung.png)
- GA mit den Parametern verbinden
- Parameter an den Glastaster übertragen
(Bild: Parameter_1.png, Parameter_2.png, Parameter_3.png)
FERTIG!
(der Beitrag wird von mir immer editiert, sobald sich etwas ergibt)
Ich bedanke mich jetzt schon für eure Mithilfe.
Gruß Stefan
PS: Wenn die Anleitung fertig ist, kann diese auch gerne in das Wiki übernommen werden.
Kommentar