FHEM > Codeschnipsel

Ansteuerung von Philips Hue auf FritzBox

(1/1)

akw:
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)
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


--- Code: ---#!/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
--- Ende Code ---

C64Emulator:
Hallo,


--- Zitat von: akw schrieb am Mi, 26 Dezember 2012 10:52 ---
Da es auf der Fritz!Box kein curl gibt,

--- Ende Zitat ---

Also ich habe mal aus dem fritz!load-package (http://thomasheinz.net/installation-von-fritzload-auf-der-fritzbox-z-b-7270/) ein curl genommen. Hat funktioniert.
Helmut.

Markus Bloch:
Mittlerweile gibt es aber Module in FHEM für HUE ;-)

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln