FHEM-Modul für Philips Hue

Begonnen von akw, 23 Dezember 2012, 19:14:43

Vorheriges Thema - Nächstes Thema

akw

Hallo,

ich wollte gerne ein FHEM-Modul für die Philips Hue Bridge machen.
Dafür brauche ich u.a. irgendetwas, was JSON parsen kann und möglichst ohne Extra-Aufwand auch auf der Fritzbox läuft.
Hat da jemand eine Idee?

Ich hatte mir die Sache so vorgestellt:
Da auf der Hue-Bridge die Daten aller angeschlossener Lampen abrufbar sind, sollte das FHEM-Modul den Zustand der Lampen regelmäßig pollen.
Die Lampen sollten als eigene FHEM-Devices existieren, es müßte also ein HUE_BRIDGE und ein HUE_LIGHT Modul geben.
Schaltbar sind bei die Lampen in verschiedenen Farb-Modi:
Der eine Modus erlaubt beispielsweise das Setzen von Farbwert, Sättigung und Helligkeit (HSV-Farbraum)
Das Setzen von Zuständen erfolgt über HTTP PUT und etwas JSON, das würde ich vermutlich mit einer einfachen Socket-Verbindung machen, wie andere Module (CUN, HM_LAN) es auch machen.

Da ich mit PERL noch nicht freihändig fahre, werde ich mich wohl an den existierenden Modulen orientieren müssen.

Hat noch jemand Vorschläge?

Viele Grüße,
Arno

FHEM-SVN auf MacMini OSX 10.7.5

FS20,FHT,HMS,CUL_WS,CUL_HM,KS300,HUE,FB_DECT

FHEMobile: www.fhemobile.de

akw

Keine eine Idee zum JSON parsen? :-(
FHEM-SVN auf MacMini OSX 10.7.5

FS20,FHT,HMS,CUL_WS,CUL_HM,KS300,HUE,FB_DECT

FHEMobile: www.fhemobile.de

Matthias Gehre

Vielleicht https://metacpan.org/module/JSON
Ich bin auf jeden Fall für eine Standardmodul und gegen das Neuerfinden des Rades.
Falls das Modul auf Fritzboxen o.ö. nicht vorinstalliert ist,
steht immernoch mein Vorschlag im Raum, dass man FHEM mit einem thirdparty/ Verzeichnis ausstattet
und dort solche Module mitliefert.

justme1968

guten morgen,

ich habe eben mit einem hue modul (eigentlich zwei, eins für die bridge und eines für die lampen als server und client) angefangen. registireren und lesen der werte geht schon. schreiben hoffentlich heute oder morgen.

das ganze in zwei modulen zu machen erlaubt es irgendwann den server teil über ein zigbee modul direkt zu machen ohne auf die bridge angewiesen zu sein. die hat leider vor allem den nachteil das sie gepollt werden muss um an den aktuellen stand zu kommen. mit einem zigbee modul könnte man auch auf statusänderungen lauschen.

was von fhem seite noch fehlt ist die infrastruktur um neben an/aus und helligkeit auch dimmer farbtemperatur und farbe zu haben.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

guten abend,

das setzen von werten geht jetzt auch in einer ersten version. falls Interesse besteht jetzt schon damit zu spielen gerne. sonst baue ich erst noch ein paar ideen ein bevor ich den code hier rein stelle.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

ein kurzes update...

im prinzip laufen die beiden module seit wochen stabil bei mir. ein kleines problem gibt es noch ab und an weil die bridge ganz zufällig ab und an keinen vernünftigen wert zurueck gibt und der json parser leider keinen fehler zurueck liefert sondern einfach aussteigt. und damit natürlich ganz fhem. ich glaube aber ich hab es inzwischen im griff. wenn ich die doku fertig habe gebe ich das modul dann raus.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

akw

Hi Andre,

das klingt ja toll! Ich würde Dein Modul gern testen.
Meine Behelfs-Lösung, die allerdings auch auf der Fritz!Box sehr ordentlich funktioniert, sieht derzeit folgendermaßen aus:

define notify_HueDimmer notify HueDimmer "/var/media/ftp/fhem/sethue.sh 1 "%""

und  für sethue.sh

#!/bin/sh

APIKEY=0123456789abcdef0123456789abcdef01
HUEBRIDGE=192.168.178.70
LIGHT=$1
ON=$2
HUE=65535
SAT=40
BRI=255
if [ $2 == 'on' ]; then ON=true; else ON=false; fi
if [ $2 ==  'dim06%' ]; then ON=true; BRI=15;  fi
if [ $2 ==  'dim12%' ]; then ON=true; BRI=31;  fi
if [ $2 ==  'dim18%' ]; then ON=true; BRI=46;  fi
if [ $2 ==  'dim25%' ]; then ON=true; BRI=64;  fi
if [ $2 ==  'dim31%' ]; then ON=true; BRI=79;  fi
if [ $2 ==  'dim37%' ]; then ON=true; BRI=94;  fi
if [ $2 ==  'dim43%' ]; then ON=true; BRI=110; fi
if [ $2 ==  'dim50%' ]; then ON=true; BRI=128; fi
if [ $2 ==  'dim56%' ]; then ON=true; BRI=143; fi
if [ $2 ==  'dim62%' ]; then ON=true; BRI=158; fi
if [ $2 ==  'dim68%' ]; then ON=true; BRI=173; fi
if [ $2 ==  'dim75%' ]; then ON=true; BRI=191; fi
if [ $2 ==  'dim81%' ]; then ON=true; BRI=206; fi
if [ $2 ==  'dim87%' ]; then ON=true; BRI=222; fi
if [ $2 ==  'dim93%' ]; then ON=true; BRI=237; fi
if [ $2 == 'dim100%' ]; then ON=true; BRI=255; fi

if [ $2 == 'toggle' ]; then
  STATE=$(wget http://$HUEBRIDGE/api/$APIKEY/lights/$LIGHT -q -O -|sed 's/.*"on":\(true\|false\).*/\1/')
  if [ $STATE == 'true' ]; then
    ON=false;
  else
    ON=true;
  fi
fi

cat << EOF | nc $HUEBRIDGE 80 >/dev/null
PUT /api/$APIKEY/lights/$LIGHT/state HTTP/1.1
Host: $HUEBRIDGE
Content-Length: 64

{"hue": $HUE, "sat": $SAT, "bri": $BRI, "on": $ON }
EOF
                               


Ciao, Arno
FHEM-SVN auf MacMini OSX 10.7.5

FS20,FHT,HMS,CUL_WS,CUL_HM,KS300,HUE,FB_DECT

FHEMobile: www.fhemobile.de

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968