Need a unique gift idea?
A Pastebin account makes a great Christmas gift
SHARE
TWEET

HueDisco.py

a guest Dec 26th, 2016 224 Never
Upgrade to PRO!
ENDING IN00days00hours00mins00secs
 
  1. #!/usr/bin/python
  2. #coding: utf8
  3.  
  4. # python script muss mit 'colorloop/strobo/off' und der ID der gewünschten Birne aufgerufen werden
  5. # z.B. python ~/.huedisco/huedisco.py colorloop 4
  6. # erstellt von Thomas Reimann am 21.12.2016 in Karlsruhe
  7.  
  8. import sys
  9. import requests
  10. import json
  11.  
  12. # Parametrieren
  13. hue_ip = "192.168.2.100"
  14. hue_user = "NewDeveloper"
  15. hue_url = "http://" + hue_ip + "/api/" + hue_user
  16.  
  17. # auslesen des gewünschten Effekts aus dem Aufruf
  18. disco_para = str(sys.argv[1])
  19. bulb = str(sys.argv[2])
  20.  
  21. # Funktion um den aktuellen Status der gewünschten Birne abzufragen
  22. def hue_status( bulb ):
  23.         url = hue_url + "/lights/" + bulb
  24.         r = requests.get(url)
  25.         hue_state = r.json()
  26.         #print hue_state["state"]["on"]
  27.         return hue_state
  28.  
  29. # Aktueller Status der Birne wird abgefragt
  30. hue_response = hue_status(bulb)
  31.  
  32. # Funktion um die gewünschte Birne mit 'body_msg' anzusteuern
  33. def hue_change( body_msg ):
  34.         url = hue_url + "/lights/" + bulb + "/state/"
  35.         request = requests.put(url, body_msg)
  36.         return
  37.  
  38. # Abfrage welche Funktion gewünscht ist
  39. if disco_para=="colorloop":
  40.         if str(hue_response["state"]["on"])=="False":
  41.                 # fals die Birne aus ist, wird sie noch eingeschaltet und Colorloop dazu
  42.                 body = '{"on":true, "effect":"colorless"}'
  43.  
  44.         elif hue_response["state"]["effect"]=="colorloop":
  45.                 # fals die Birne bereits im Colorloop ist, wird dieser (und nur dieser) ausgeschaltet
  46.                 body = '{"effect":"none"}'
  47.         else:
  48.                 # ansonsten ist die Birne ja an und so wird einfach Colorloop eingeschaltet
  49.                 body = '{"effect":"colorloop"}'
  50.  
  51.         hue_change(body) # und ausführen
  52.  
  53. elif disco_para=="colorloop_off":
  54.         # Für die HomeKit Integration wird ein eindeutiger Off Trigger benötigt
  55.         body = '{"effect":"none"}'
  56.  
  57.         hue_change(body) # und ausführen
  58.  
  59. elif disco_para=="strobo":
  60.         if str(hue_response["state"]["on"])=="False":
  61.                 body = '{"on":true, "alert":"lselect"}'
  62.  
  63.         elif str(hue_response["state"]["alert"])!="none":
  64.                 body = '{"alert":"none"}'
  65.         else:
  66.                 body = '{"alert":"lselect"}'
  67.  
  68.         hue_change(body) # und ausführen
  69.  
  70. elif disco_para=="strobo_off":
  71.         # Für die HomeKit Integration wird ein eindeutiger Off Trigger benötigt
  72.         body = '{"alert":"none"}'
  73.  
  74.         hue_change(body) # uns ausführen
  75.  
  76. elif disco_para=="off":
  77.         body = '{"on":false, "effect":"none", "alert":"none"}'
  78.         hue_change(body)
  79.         print "Hue Birne " + bulb + " ist jetzt aus."
  80.  
  81. else:
  82.         print "Parameter 'colorloop', 'strobo' oder 'off' angeben."
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top