hue
Das Plugin bindet eine oder mehrere Philips Hue Bridges an SmartHomeNG an. Es liest den Status von Lampen, Gruppen und der Bridge selbst per zyklischem Polling ein (die Hue Bridge sendet selbst keine Benachrichtigungen über Änderungen) und sendet Befehle zur Steuerung von Lampen, Gruppen und Szenen.
Voraussetzungen
Eine oder mehrere Philips Hue Bridges. Für jede Bridge wird ein autorisierter Benutzer (hue_user) benötigt. Dieser kann über die Funktion authorizeuser() angelegt werden (siehe Verwendung weiter unten); dazu muss zuvor der Link-Button auf der Bridge gedrückt werden.
Konfiguration
Die Informationen zur Konfiguration des Plugins sind unter Plugin ‚hue‘ Konfiguration beschrieben.
Bei mehreren Bridges werden hue_ip, hue_port und hue_user als Listen angegeben. Die Position in der jeweiligen Liste bestimmt die hue_bridge_id (beginnend bei 0), über die eine Lampe, Gruppe oder Bridge in den Items adressiert wird. Alle drei Listen müssen daher die gleiche Länge und Reihenfolge haben:
HUE:
class_name: HUE
class_path: plugins.hue
hue_ip:
- 192.168.2.2
- 192.168.2.3
hue_port:
- '80'
- '80'
hue_user:
- 38f625a739562a8bd261ab9c7f5e62c8
- 38f625a739562a8bd261ab9c7f5e62c8
Item-Attribute
Lampen
Jede Lampe wird über bis zu drei Adress-Attribute identifiziert. Sie können am Item selbst oder an einem übergeordneten Item gesetzt werden und werden dann an die Kind-Items vererbt:
- hue_bridge_id
Nummer der Bridge (beginnend bei 0), an die die Lampe angeschlossen ist. Bei nur einer konfigurierten Bridge kann das Attribut entfallen, es wird dann 0 angenommen.
- hue_lamp_id
Nummer der Lampe auf der Bridge (beginnend bei 1). Fehlt dieses Attribut vollständig, meldet das Plugin einen Fehler und startet nicht.
- hue_lamp_type
Lampentyp für die Farbraumberechnung von col_r/col_g/col_b. Gültige Werte: 0 (Hue Bulb-Lampen) und 1 (LivingColors Bloom, Aura und Iris). Ein dritter Wert (2) wird vom Plugin ebenfalls akzeptiert. Fehlt das Attribut, wird 0 angenommen.
Zum Lesen und Schreiben des Lampenstatus dienen hue_listen und hue_send, jeweils mit dem Namen des gewünschten Attributs als Wert:
Attribut |
Typ |
Wertebereich |
Lesbar (hue_listen) |
Schreibbar (hue_send) |
|---|---|---|---|---|
on |
bool |
False / True |
ja |
ja |
bri |
num |
0-255 |
ja |
ja |
hue |
num |
0-65535 |
ja |
ja |
sat |
num |
0-255 |
ja |
ja |
ct |
num |
153-500 |
ja |
ja |
alert |
str |
|
ja |
ja |
effect |
str |
|
ja |
ja |
reachable |
bool |
False / True |
ja |
nein |
col_r / col_g / col_b |
num |
0-255 |
nein |
ja |
type / name / modelid / swversion / uniqueid / manufacturername |
str |
Text |
ja |
nein |
Alle Attribute außer ‚on‘ können nur gesetzt werden, wenn die Lampe eingeschaltet ist. Anstelle des Hue-eigenen ‚xy‘-Zustands implementiert das Plugin col_r, col_g und col_b, um die Farbsteuerung direkt aus einem SmartVISU-Widget (z.B. Colordisc) heraus zu ermöglichen. Für eine einfache Steuerung genügen üblicherweise on, bri, hue, sat und ct.
hue_transitionTime ist unter Plugin ‚hue‘ Konfiguration beschrieben.
Gruppen
Für Gruppen (Räume) gelten die gleichen Zustands-Attribute wie für Lampen, mit Ausnahme von col_r/col_g/col_b und der Lampen-Eigenschaften (type, name usw.). Anstelle von hue_listen/hue_send werden hue_listen_group/hue_send_group verwendet, adressiert über hue_group_id (beginnend bei 1, Default 1) statt hue_lamp_id:
wohnzimmer_gruppe:
hue_group_id: 1
hue_bridge_id: 0
power:
type: bool
hue_send_group: 'on'
hue_listen_group: 'on'
bri:
type: num
hue_send_group: bri
hue_listen_group: bri
Szenen
Eine auf der Bridge gespeicherte Szene wird über hue_send mit dem Wert scene aktiviert. Es
wird nur hue_bridge_id benötigt, keine Lampen- oder Gruppen-ID:
scene:
type: str
hue_send: scene
enforce_updates: 'true'
Der Item-Wert entspricht dem Namen der Szene, wie er auf der Bridge hinterlegt ist.
Bridge-Status
Über hue_listen an einem Item mit gesetzter hue_bridge_id lassen sich Statuswerte der Bridge selbst lesen:
Attribut |
Typ |
Bedeutung |
|---|---|---|
bridge_name |
str |
Name der Bridge |
zigbeechannel |
num |
Zigbee-Kanal (1-13) |
mac / ipaddress / netmask / gateway |
str |
Netzwerkeinstellungen der Bridge |
dhcp |
bool |
DHCP aktiv |
UTC / localtime / timezone |
str |
Zeiteinstellungen der Bridge |
bridge_swversion / apiversion |
str |
Firmware- bzw. API-Version |
swupdate / whitelist / portalstate |
dict |
Rohdaten-Objekte der Bridge-Konfiguration |
linkbutton |
bool |
Status des Link-Buttons |
portalservices / portalconnection |
bool / str |
Status der Cloud-Anbindung der Bridge |
errorstatus |
bool |
True, wenn die Kommunikation zwischen Plugin und Bridge gestört ist |
Dimmen über DPT3
Ein KNX-DPT3-Dimmer kann über ein Unter-Item eines dimmbaren Hue-Items (Typ num, z.B. bri oder hue) angebunden werden, unabhängig davon, ob es sich um ein Hue-Item handelt:
- hue_dim_max
Maximalwert des Dimmbereichs. Ohne dieses Attribut funktioniert das DPT3-Dimmen nicht.
- hue_dim_step
Schrittweite je Dimmschritt. Muss zusammen mit hue_dim_max gesetzt werden, sonst wird eine Warnung geloggt und der Standardwert 25 verwendet.
- hue_dim_time
Zeit je Dimmschritt in Sekunden. Muss zusammen mit hue_dim_max gesetzt werden, sonst wird eine Warnung geloggt und der Standardwert 1 verwendet.
Werte unter 0.2 Sekunden sollten aus Performance-Gründen vermieden werden. Für ein gleichmäßiges Dimmergebnis sollten hue_transitionTime und hue_dim_time auf den gleichen Wert gesetzt werden. Ist die Lampe ausgeschaltet, schaltet das Plugin sie beim Start des Dimmens automatisch ein und dimmt vom zuletzt bekannten Wert aus weiter.
Beispiel
keller:
hue:
hue_lamp_id: 1
hue_bridge_id: 0
hue_lamp_type: 0
power:
type: bool
hue_send: 'on'
hue_listen: 'on'
bri:
type: num
cache: 'on'
hue_send: bri
hue_listen: bri
hue_transitionTime: '0.2'
dim:
type: list
knx_dpt: 3
knx_listen: 8/0/2
hue_dim_max: 255
hue_dim_step: 10
hue_dim_time: '0.2'
hue:
type: num
cache: 'on'
hue_send: hue
hue_listen: hue
hue_transitionTime: '0.2'
sat:
type: num
cache: 'on'
hue_send: sat
hue_listen: sat
ct:
type: num
hue_send: ct
hue_listen: ct
reachable:
type: bool
hue_listen: reachable
Verwendung
Das Plugin stellt zwei Funktionen bereit, die interaktiv über die Shell oder aus einer Logik heraus aufgerufen werden:
- authorizeuser(hue_bridge_id=‘0‘)
Autorisiert den in hue_user konfigurierten Benutzer an der angegebenen Bridge. Der Link-Button auf der Bridge muss vorher gedrückt werden:
sh.hue.authorizeuser('0')
- get_config(hue_bridge_id=‘0‘)
Schreibt die auf der Bridge gespeicherten Szenen und Gruppen in den Log (Level warning) und gibt die Gruppen der angegebenen Bridge zurück:
sh.hue.get_config('0')