Hue per Skript ansprechen
Nachdem im letzten Artikel beschrieben wurde wie ich die IKEA Lampe Hue tauglich gemacht hab gibt es nun ein kleines Beispiel was man damit so machen kann.
Ziel ist es einen kleinen „Warp-Antrieb Simulator“ zu programmieren. Dazu wird ein kleines Skript benötigt. Da es für das Hue-System bereits eine fertige Python-Bibliothek gibt hab ich mich entschieden das Skript mit ebendieser Skriptsprache zu schreiben.
Erster Schritt ist daher natürlich das Python zu installieren (unter Debian/Ubunutu Linux: apt-get install python
). Anschließend brauchen wir noch die Hue-Bibliothek „phue“. Die ist ebenfalls schnell mit „pip install phue
“ installiert. Eine etwas ausführlichere Anleitung steht auf der entsprechende Projektseite.
Um die drei Hue-Leuchten jetzt Warp-Antriebmässig aufleuchten zu lassen schalten wir sie einfach der Reihe nach ein bzw. aus. Damit das nicht zu schnell abläuft ist jeweils eine kleine Verzögerung zwischen den Schaltvorgängen nötig. Außerdem definieren wir eine kurze „Transitiontime“ um keine harten Schaltvorgänge zu sehen zu kriegen. Wie bei dem echten Warp-Antreib soll das Leuchten sanft wechseln.
Um einen Nachleucht-Effekt zu simulieren werden die abgeschalteten Hues nicht direkt auf Helligkeit Null gesetzt sondern erst auf 50 und im zweiten Schritt auf 20. Zum Einschalten wird die entsprechende Hue auf 254 gesetzt (entspricht dann 100% Helligkeit).
Insgesamt sieht das ganze Skript folgendermaßen aus:
#!/usr/bin/python from phue import Bridge from time import sleep b = Bridge('192.168.10.72') # If the app is not registered and the button is not pressed, press the button and call connect() (this only needs to be run a singl b.connect() # Get the bridge state (This returns the full dictionary that you can explore) b.get_api() lights = b.get_light_objects('id') # Define light parameters for all three bulbs # Transitiontime is measured in 1/10 seconds. So 5 means half a second # oben = lights[2] oben.transitiontime=5 oben.hue = 46920 oben.saturation = 180 mitte = lights[3] mitte.transitiontime=5 mitte.hue = 46920 mitte.saturation = 180 unten = lights[1] unten.transitiontime=5 unten.hue = 46920 unten.saturation = 180 while True: oben.brightness=254 mitte.brightness=20 unten.brightness=50 sleep(0.6) oben.brightness=50 mitte.brightness=254 unten.brightness=20 sleep(0.6) oben.brightness=20 mitte.brightness=50 unten.brightness=254 sleep(0.6)
Im Betrieb schaut das Skript folgendermaßen aus: