FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: akw am 26 Dezember 2012, 10:52:44

Titel: Ansteuerung von Philips Hue auf FritzBox
Beitrag von: akw am 26 Dezember 2012, 10:52:44
Hi,

hier ist ein kleines Script, mit dem man (solange es noch kein richtiges FHEM-Modul dafür gibt) Philips Hue Lampen steuern und dimmen kann.
Da es auf der Fritz!Box kein curl gibt, benutze ich netcat, um den HTTP PUT Request abzusenden.

Der APIKEY kann mittels curl erzeugt werden. (siehe hier (http://www.issackelly.com/blog/2012/11/10/philips-hue-api-hacking/))
Das Script kann auf der Fritz!Box gespeichert werden und dann von FHEM oder der Kommandozeile benutzt werden.
Beispiel:

./sethue.sh 3 dim50% setzt Lampe 3 auf 50% Helligkeit...

Man kann es natürlich beliebig erweitern und z.B. Farbwert und Sättigung parametrisieren.

Achtung: Da ich die Content-Length nicht richtig ausrechne, reicht es, am Ende des Scriptes (vor EOF) ein paar Leerzeichen einzufügen (ca. 30), damit immer mindestens 64 Zeichen gesendet werden.


Viel Spaß damit!

Arno

#!/bin/sh

APIKEY=fdc41c65c9440d4c8625c47fc7472057
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
Titel: Aw: Ansteuerung von Philips Hue auf FritzBox
Beitrag von: C64Emulator am 04 Juni 2013, 10:26:10
Hallo,

Zitat von: akw schrieb am Mi, 26 Dezember 2012 10:52

Da es auf der Fritz!Box kein curl gibt,

Also ich habe mal aus dem fritz!load-package (http://thomasheinz.net/installation-von-fritzload-auf-der-fritzbox-z-b-7270/ (http://thomasheinz.net/installation-von-fritzload-auf-der-fritzbox-z-b-7270/)) ein curl genommen. Hat funktioniert.
Helmut.
Titel: Aw: Ansteuerung von Philips Hue auf FritzBox
Beitrag von: Markus Bloch am 04 Juni 2013, 10:29:08
Mittlerweile gibt es aber Module in FHEM für HUE ;-)