[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


? Kann da sonst auch mal kurz rein schauen, wäre nämlich gar nicht so schlecht.
Kommentar