Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- #coding: utf8
- # python script muss mit 'colorloop/strobo/off' und der ID der gewünschten Birne aufgerufen werden
- # z.B. python ~/.huedisco/huedisco.py colorloop 4
- # erstellt von Thomas Reimann am 21.12.2016 in Karlsruhe
- import sys
- import requests
- import json
- # Parametrieren
- hue_ip = "192.168.2.100"
- hue_user = "NewDeveloper"
- hue_url = "http://" + hue_ip + "/api/" + hue_user
- # auslesen des gewünschten Effekts aus dem Aufruf
- disco_para = str(sys.argv[1])
- bulb = str(sys.argv[2])
- # Funktion um den aktuellen Status der gewünschten Birne abzufragen
- def hue_status( bulb ):
- url = hue_url + "/lights/" + bulb
- r = requests.get(url)
- hue_state = r.json()
- #print hue_state["state"]["on"]
- return hue_state
- # Aktueller Status der Birne wird abgefragt
- hue_response = hue_status(bulb)
- # Funktion um die gewünschte Birne mit 'body_msg' anzusteuern
- def hue_change( body_msg ):
- url = hue_url + "/lights/" + bulb + "/state/"
- request = requests.put(url, body_msg)
- return
- # Abfrage welche Funktion gewünscht ist
- if disco_para=="colorloop":
- if str(hue_response["state"]["on"])=="False":
- # fals die Birne aus ist, wird sie noch eingeschaltet und Colorloop dazu
- body = '{"on":true, "effect":"colorless"}'
- elif hue_response["state"]["effect"]=="colorloop":
- # fals die Birne bereits im Colorloop ist, wird dieser (und nur dieser) ausgeschaltet
- body = '{"effect":"none"}'
- else:
- # ansonsten ist die Birne ja an und so wird einfach Colorloop eingeschaltet
- body = '{"effect":"colorloop"}'
- hue_change(body) # und ausführen
- elif disco_para=="colorloop_off":
- # Für die HomeKit Integration wird ein eindeutiger Off Trigger benötigt
- body = '{"effect":"none"}'
- hue_change(body) # und ausführen
- elif disco_para=="strobo":
- if str(hue_response["state"]["on"])=="False":
- body = '{"on":true, "alert":"lselect"}'
- elif str(hue_response["state"]["alert"])!="none":
- body = '{"alert":"none"}'
- else:
- body = '{"alert":"lselect"}'
- hue_change(body) # und ausführen
- elif disco_para=="strobo_off":
- # Für die HomeKit Integration wird ein eindeutiger Off Trigger benötigt
- body = '{"alert":"none"}'
- hue_change(body) # uns ausführen
- elif disco_para=="off":
- body = '{"on":false, "effect":"none", "alert":"none"}'
- hue_change(body)
- print "Hue Birne " + bulb + " ist jetzt aus."
- else:
- print "Parameter 'colorloop', 'strobo' oder 'off' angeben."
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement