Robins Blog – Technik und Multimedia

Farbige Wetterlampe mit Raspberry Pi, Siriproxy und Philips hue

Mach die Welt ein wenig bunter,  mit den Philips Living Color Bloom

Mach die Welt ein wenig bunter, mit den Philips Living Colors Bloom

Heute ist mal wieder Basteltag, diesmal mit dabei:

Jennifer’s 365 Project hatte die Idee eine Wetterlampe zu bauen. Was zum Henker ist eine Wetterlampe? Eine Wetterlampe schaut nach der aktuellen Temperatur und ändert je nach Temperatur die Farbe. Mit der Philips hue LED-Technik und dem Raspberry Pi alles kein Thema. Meine Wetterlampe in Form von einer LivingColors Bloom schaltet sich bei mir morgens um 5 Uhr an. Die Farbe der Lampe hängt von der Temperatur ab. Wenn es seit dem gestrigen Tag wärmer wurde, leuchtet sie grün, wenn die Temperatur kälter ist dann blau, wenn gleich geblieben dann Purpur. Die Lampe leuchtet täglich eine Stunde lang. Der Stromverbrauch liegt bei 3 – 6 W, zusätzlich kommt noch der Raspberry Pi mit 3 W dabei.

Nachgebaut: Gesagt getan, das bauen wir uns doch mal nach. Hierzu habe ich das Siriproxy-Image genommen (siehe Beitrag) und konfiguriert. Die genaue Konfiguration könnt ihr von Jennifers Homepage nehmen. Anschließend habe ich den Programm-Code von Jennifer in /usr/local/bin/phue-master/examples/  kopiert.
Was einem nach Durchsicht des Programmcodes auffiel: Das Python-Script ist nicht für uns Europäer gemacht worden, denn es wird der nationale
Service von NOAA genommen. Also funktioniert das Script nicht in Europa.
Da ist mir eingefallen, das ich für meinen Samsung-TV ja auch einen lokalen Wetterservice genommen habe.
Der Service nennt sich Weather-Underground und ist für Privatleute kostenlos. Man muß sich lediglich einmalig registrieren um eine ID zu bekommen und auf deren Wetter-API zuzugreifen. In dem Aufruf wird die ID und der Ortsname mitgegeben und man bekommt alle Wetterdetails des Ortes als XML-Datei zurück. Jetzt muss also nur noch das Python-Script etwas umgeschrieben werden. Ich bin jetzt natürlich nicht der Top-Python-Programmierer unter der Sonne, deshalb mit etwas Frickelei den Programm-Code für den Weather-Unterground angepasst. Der angepasste Code ist hier zu sehen. Im Grunde muss man nur an dem Wert von temp_f (aktuelle Temperatur in Fahrenheit) kommen. Wenn man an die Daten mit einem 2-Zeiler drankommen kann, dann her damit.

# Fetch data (use of the wunderground service get the api and the town)
weather_xml = urllib2.urlopen('http://api.wunderground.com/api/DEINEAPI/geolookup/conditions/forecast/lang:DL/q/Germany/DEINORT.xml').read()
dom = minidom.parseString(weather_xml)

# Parse temperatures
#temperatur = dom.getElementsByTagName('current_observation')

def liesText(pretext, knoten):
for k in knoten.childNodes:
if k.nodeType == k.TEXT_NODE:
if pretext == "temp_f":
global temp
temp = int(k.nodeValue.strip())
# print pretext, k.nodeValue.strip()

def liesAktuelleTemperaturen(knoten):
for num, elem in enumerate(knoten.getElementsByTagName("current_observation")):
# print "%d. current observation:" % (num + 1)
for knotenNamen in elem.getElementsByTagName("temp_f"):
liesText("temp_f", knotenNamen)
for knotenAnschrift in elem.getElementsByTagName("temp_c"):
liesText("temp_c", knotenAnschrift)
# print

def dokument(start):
for elem in start.getElementsByTagName("response"):
liesAktuelleTemperaturen(elem)
dokument(dom)

Im Code habe ich aus dem Array temp noch eine globale temp gemacht.
Was noch fehlt ist der Eintrag ins Crontab für die Aktivierung der Lampe jeden Morgen. Dieser findet sich in /etc/crontab . Es muss lediglich eine Zeile hinzugefügt werden.

* 5 * * * root /usr/bin/python /usr/local/bin/phue-master/examples/HueWeatherLamp.py

Die Wetterlampe mit der Philips hue funktioniert schon seit einigen Tagen perfekt mit meinem Raspberry Pi.

Das könnte Euch auch interessieren:

Die mobile Version verlassen