FHEM Forum

FHEM => Sonstiges => Thema gestartet von: Ralf Kruppa am 12 August 2016, 08:38:47

Titel: HTTPMOD einrichten für openweathermap.org
Beitrag von: Ralf Kruppa am 12 August 2016, 08:38:47
Hallo, ich möchte gerne die Wettervorhersagen von openweathermap.org in FHEM einbinden.
Es gibt dort eine entsprechende API um dieses zu machen und man bekommt dann eine entsprechende XML Datei.

Ich habe nun schon so einiges mit den Readings und dem Regex probiert aber ich bekomme es nicht hin.

die XML Datei sieht folgendermacßen aus (nur ein Auszug):

<weatherdata>
<location>
<name>Langenhagen</name>
<type/>
<country>DE</country>
<timezone/>
<location altitude="0" latitude="52.450001" longitude="9.75" geobase="geonames" geobaseid="0"/></location>
<credit/>
<meta>
<lastupdate/>
<calctime>0.0696</calctime>
<nextupdate/>
</meta>
<sun rise="2016-08-11T03:58:29" set="2016-08-11T18:52:28"/>
<forecast>
<time from="2016-08-11T12:00:00" to="2016-08-11T15:00:00">
<symbol number="803" name="broken clouds" var="04d"/>
<precipitation/>
<windDirection deg="240.503" code="WSW" name="West-southwest"/>
<windSpeed mps="6.57" name="Moderate breeze"/>
<temperature unit="celsius" value="17.49" min="16.47" max="17.49"/>
<pressure unit="hPa" value="1028.35"/>
<humidity value="73" unit="%"/>
<clouds value="broken clouds" all="64" unit="%"/>
</time>
<time from="2016-08-11T15:00:00" to="2016-08-11T18:00:00">
<symbol number="500" name="light rain" var="10d"/>
<precipitation unit="3h" value="0.84" type="rain"/>
<windDirection deg="221.501" code="SW" name="Southwest"/>
<windSpeed mps="7.01" name="Moderate breeze"/>
<temperature unit="celsius" value="14.13" min="13.37" max="14.13"/>
<pressure unit="hPa" value="1027.55"/><humidity value="88" unit="%"/>
<clouds value="overcast clouds" all="92" unit="%"/>
</time>


Folgendes habe ich in FHEM eingetragen:

define Wetter_Langenhagen HTTPMOD http://api.openweathermap.org/data/2.5/forecast/city?q=Langenhagen,de&mode=xml&APPID=a45c5f186ba821cadac660ba9cf6eb9a 300
attr Wetter_Langenhagen userattr readingsName_temperatur
attr Wetter_Langenhagen readingsName_temperatur temperatur
attr Wetter_Langenhagen readingsRegex_temperatur temp":([\d\.]+)
attr Wetter_Langenhagen room Klimawerte


Es ligt sicherlich an den Regex eintrag. Aber wie müste es aussehen um die beiden Temperaturen auszulesen ?
Temperatur1 = 17.49
Temperatur2 = 14.13

Vielen Dank für die Hilfe.
Gruß Ralf
Titel: Antw:HTTPMOD einrichten für openweathermap.org
Beitrag von: devil77 am 12 August 2016, 09:33:33
Es liegt ganz sicher am regex denn Du suchst die xml nach einem string ab der überhaupt nicht vorkommt.
temp":

Versuche mal als regex folgendes
celsius" value="([\d\.]+)

Für solchen Sachen verwende ich immer gerne http://rubular.com/
Hier kann man in ruhe Testen und sieht sofort ein Ergebnis.
Titel: Antw:HTTPMOD einrichten für openweathermap.org
Beitrag von: Ralf Kruppa am 12 August 2016, 09:47:59
Hallo,
danke für die schnelle Antwort es klappt und das Tool ist super zum Teste.

In meinem Beispiel gibt es ja nun zwei Treffer.
Kann man nun auch die entsprehend in zwei separate Readings schreibe?
Beispiel:
Temperatur1
Temperatur2

So wird nur der Erste Treffer angezeigt.

Gruß Ralf
Titel: Antw:HTTPMOD einrichten für openweathermap.org
Beitrag von: frank am 12 August 2016, 10:53:42
mit attr ...RegOpt=g sollten automatisch 2 readings erzeugt werden.
Titel: Antw:HTTPMOD einrichten für openweathermap.org
Beitrag von: Ralf Kruppa am 12 August 2016, 11:03:47
Hallo,

wie muß es denn genau heißen ?
Folgendes habe ich alles Probiert, aber ohne Erfolg.

attr Wetter_Langenhagen RegOpt_temperatur=g
attr Wetter_Langenhagen RegOpt_temperatur=g
attr Wetter_Langenhagen RedingsRegOpt_temperatur=g
attr Wetter_Langenhagen RedingsRegOpt_temperatur g

Gruß Ralf
Titel: Antw:HTTPMOD einrichten für openweathermap.org
Beitrag von: frank am 12 August 2016, 13:30:06
ändere mal die namen deiner attribute gemäss der "neuen" namensgebung (siehe commandref):

attr Wetter_Langenhagen reading01Name temperatur
attr Wetter_Langenhagen reading01Regex temp":([\d\.]+)
attr Wetter_Langenhagen reading01RegOpt g
Titel: Antw:HTTPMOD einrichten für openweathermap.org
Beitrag von: Ralf Kruppa am 12 August 2016, 13:59:00
Hallo FHEM kennt RegOpt nicht.

wie kann ich das Modul aktualisieren oder installieren wenn es fehlt ?

Gruß
Titel: Antw:HTTPMOD einrichten für openweathermap.org
Beitrag von: frank am 12 August 2016, 14:18:04
dan starte mal ein fhem update. also "update" in die eingabezeile tippen.
Titel: Antw:HTTPMOD einrichten für openweathermap.org
Beitrag von: Ralf Kruppa am 12 August 2016, 14:18:58
Versuche es mal mit

update 98_HTTPMOD.pm
Titel: Antw:HTTPMOD einrichten für openweathermap.org
Beitrag von: Ralf Kruppa am 12 August 2016, 14:25:31
Das hat nichts gebracht und alles Updaten ist mir zu riskant nicht das dann was anderes nicht mehr geht.
Muß man für die RegOpt noch was anderes aktualiesieren bzw. erstmal installieren ?

Gruß Ralf
Titel: Antw:HTTPMOD einrichten für openweathermap.org
Beitrag von: frank am 12 August 2016, 14:28:28
je nach dem, wie alt der rest ist, kann es probleme geben.
warum nicht alles erneuern? zu not nutze attr global excludeFromUpdate für gewisse module.
ausserdem nach dem update am besten shutdown restart.
Titel: Antw:HTTPMOD einrichten für openweathermap.org
Beitrag von: Ralf Kruppa am 12 August 2016, 14:37:44
shutdown restart
das wars jetzt geht es.

Super...

Werde jetzt noch alles für openweathermap fertig machen und dann hier reinstellen.

Gruß Ralf