[WICHTIG]Die Logik ist nun hier zu finden
[/WICHTIG]
Hallo,
ich möchte hier kurz eine Alpha-Version meiner Wunderground Logik vorstellen:
(eigentlich ist es eine flexible xml-lese-Logik):
Momentan werden nur User-Wetterstationen unterstützt, da das Plugin nicht unterscheidet zwischen aktuellem Wetter und der Vorhersage (das baue ich aber noch ein)
Funktionsweise:
items:
Der XML-String entspricht einfach dem String, nach dem in der xml-Datei von Wunderground gesucht werden soll.
Ein Beispiel für die XML:
Weather Underground
Ich werde hier demnächst auch (m)eine vollständige-Item-Liste posten. Sie sollte eigentlich für jeden einfach zu übernehmen sein.
Hier die Logik:
Vorsichtig müsst ihr noch bei Prozent-Werten sein. Ich denke, da sollte statt 34 eine 0.34 übertragen werden.
Gruß und viel Spaß,
Hendrik
[/WICHTIG]
Hallo,
ich möchte hier kurz eine Alpha-Version meiner Wunderground Logik vorstellen:
(eigentlich ist es eine flexible xml-lese-Logik):
Momentan werden nur User-Wetterstationen unterstützt, da das Plugin nicht unterscheidet zwischen aktuellem Wetter und der Vorhersage (das baue ich aber noch ein)
Funktionsweise:
items:
Code:
cat /usr/local/smarthome/items/wetter.conf [aktuelles_wetter] [[windrichtung]] type=num xmlstring=wind_degrees knx_send=7/7/15 knx_dpt=9 [[windgeschw]] type=num xmlstring=wind_mph knx_send=7/7/23 knx_dpt=9 [[temperatur]] type=num xmlstring=temp_c knx_send=7/7/16 knx_dpt=9 [[Niederschlag_Heute]] type=num xmlstring=precip_today_metric knx_send=7/7/17 knx_dpt=9 [[Niederschlag_letzte_stunde]] type=num xmlstring=precip_1hr_metric [[relative_luftfeuchte]] type=num xmlstring=relative_humidity
Ein Beispiel für die XML:
Weather Underground
Ich werde hier demnächst auch (m)eine vollständige-Item-Liste posten. Sie sollte eigentlich für jeden einfach zu übernehmen sein.
Hier die Logik:
Code:
#!/usr/bin/python from xml.dom import minidom import urllib2 import re non_decimal = re.compile(r'[^\d.]+') def get_current_weather_data(xml, name): for node in xml.getElementsByTagName(name): v=node.childNodes[0].nodeValue for i in xrange(1000000): w=non_decimal.sub('', v) return w response= urllib2.urlopen('http://api.wunderground.com/weatherstation/WXCurrentObXML.asp?ID=INIEDERS60') xml=response.read() xml=minidom.parseString(xml) for item in sh.aktuelles_wetter: item(get_current_weather_data(xml,item.conf['xmlstring']))
Gruß und viel Spaß,
Hendrik
Kommentar