Wunderground Wetter mit httpmod auslesen

Begonnen von TobiasR, 26 Januar 2020, 09:35:18

Vorheriges Thema - Nächstes Thema

TobiasR

Hallo,

der Zugriff auf die Wetterapp von Wunderground über Api ist ja schon fast ein Jahr nicht mehr möglich.
Ich wollte nun meine Wetterdaten über das HTTPMOD auslesen.
Aber so einfach ist das nun doch nicht möglich.
Die aktuellen Messwerte werden dort in http gar nicht ausgegeben.

Hat jemand eine Idee wie ich da dran kommen kann?

Hier mal eine Beispielseite von der ich mit HTTPMOD nicht raus bekommen:

https://www.wunderground.com/dashboard/pws/INONNWEI3

rudolfkoenig

In der Netzwerk-Console des Browsers sieht man, dass die Seite vor der Anzeige ca 150 Dateien (etwa 8MB) von 20+ unterschiedlichen Server laedt, etwa die Haelfte davon sind JavaScript Programme. Danach wird etwa sekuendlich ein weiteres Request ausgefuehrt, mit api im URL:
Zitathttps://api.weather.com/v2/pws/observations/current?apiKey=6532d6454b8aa370768e63d6ba5a832e&stationId=INONNWEI3&numericPrecision=decimal&format=json&units=e

Wenn man diese Seite abfragt, dann kriegt man{"observations":[{"stationID":"INONNWEI3","obsTimeUtc":"2020-01-26T12:03:17Z","obsTimeLocal":"2020-01-26 13:03:17","neighborhood":"Nonnweiler-Primstal","softwareType":"Weather logger V2.2.2","country":"DE","solarRadiation":83.7,"lon":6.97351789,"realtimeFrequency":null,"epoch":1580040197,"lat":49.53098297,"uv":1.0,"winddir":274,"humidity":93.0,"qcStatus":1,"imperial":{"temp":41.2,"heatIndex":41.2,"dewpt":39.4,"windChill":41.2,"windSpeed":0.2,"windGust":2.5,"pressure":30.45,"precipRate":0.00,"precipTotal":0.00,"elev":1014.0}}]}was man prima mit HTTPMOD verdauen kann.

Ich gehe davon aus, dass der oben erwaehnte apiKey nicht beliebig gueltig ist, und ohne apiKey kriegt man Authentication failed.
Wie man aus FHEM an einem gueltigen apiKey kommt, bleibt dem geneigten Leser ueberlassen :)

CoolTux

Tobias Du weisst aber das das Weather Modul Wunderground unterstützt? Es gibt dazu ein passendes API Modul für 59_Weather.

https://commandref.fhem.de/commandref_DE.html#Weather

Habe leider gerade gesehen das ich da die Commandref zu noch anpassen muß.

Als API einfach wundergroundAPI nehmen. Brauchst aber einen API Key
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

TobiasR

Hallo,

nach ein bisschen suchen habe die Änderung gefunden.
Nun kommen alle Wetterdaten wieder

Danke euch!

A.Schley

Hallo,

auch wenn der Post schon etwas älter ist, hänge ich exakt an dem selben Problem. Tobias kannst du bitte verraten was du genau geändert hast?

Vielen Dank im Voraus

Gruß Alex

Votec

Ich musste die URL etwas modifizieren: eingetragen sind meine Station-ID und  mein API-Key

https://api.weather.com/v2/pws/observations/current?stationId=IFRANK257&numericPrecision=decimal&format=json&units=m&apiKey=4080af869aa94f5580af869aa9ff558f



Ergebnis, wenn ich den link im browser aufrufe:


{"observations":[{"stationID":"IFRANK257","obsTimeUtc":"2022-02-11T17:34:19Z","obsTimeLocal":"2022-02-11 18:34:19","neighborhood":"Frankenberg","softwareType":null,"country":"DE","solarRadiation":null,"lon":13.045,"realtimeFrequency":null,"epoch":1644600859,"lat":50.916,"uv":null,"winddir":22,"humidity":92.0,"qcStatus":1,"metric":{"temp":3.0,"heatIndex":3.0,"dewpt":1.9,"windChill":3.0,"windSpeed":2.7,"windGust":2.7,"pressure":1021.00,"precipRate":0.00,"precipTotal":11.43,"elev":80.2}}]}


Rudolf, wenn Du schreibst: quote]was man prima mit HTTPMOD verdauen kann.
[/quote]

was muss ich in fhem.config schreiben, um diesen string darstellen zu können?

wie "verdaue" das?

t.moori

Hallo,
ich habe selbiges Problem!
Wer kann helfen??
Danke!!

Otto123

#7
Hi,

die StationID von Votec sieht nach wunderground aus.
Quelle und weiter Darstellung der Werte https://wiki.fhem.de/wiki/DOIF/uiTable_Schnelleinstieg#Visualisierung:_Wetterstation
defmod Wetter HTTPMOD https://www.wunderground.com/dashboard/pws/IFRANK257
attr Wetter enableControlSet 1
attr Wetter event-on-change-reading .*
attr Wetter reading01Name Wind
attr Wetter reading01Regex wu-unit .{109}>(\d+\.\d)
attr Wetter reading02Name Windboeen
attr Wetter reading02Regex wu-unit-speed .{109}>(\d+\.\d)
attr Wetter reading03Name Windrichtung
attr Wetter reading03Regex (\d+)deg\).{84}Wind-Marker
attr Wetter reading04Name Regen
attr Wetter reading04Regex wu-unit-rainRate .{109}>(\d+\.\d\d)
attr Wetter reading05Name RegenGesamt
attr Wetter reading05Regex wu-unit-rain .{109}>(\d+\.\d\d)
attr Wetter reading06Name Temperatur
attr Wetter reading06Regex wu-unit-temperature .{127}>(\d+.\d)
attr Wetter reading07Name Feuchtigkeit
attr Wetter reading07Regex wu-unit-humidity .{109}>(\d\d)
attr Wetter reading08Name UV
attr Wetter reading08Regex UV<.{268}>(\d)
attr Wetter reading09Name Luftdruck
attr Wetter reading09Regex PRESSURE<.{285}>(\d+.\d+)
attr Wetter reading10Name TemperaturGefuehlt
attr Wetter reading10Regex wu-unit is-degree-visible .{109}>(\d+.\d)
attr Wetter reading11Name TaupunktTemp
attr Wetter reading11Regex DEWPOINT.{306}>(\d+.\d)
attr Wetter reading12Name Sonnenstrahlung
attr Wetter reading12Regex Solar radiation<.{549}>(\d+.\d+)
attr Wetter room Wetter
attr Wetter timeout 10
attr Wetter userReadings WindKm {sprintf("%1.1f",ReadingsVal($name,"Wind",0)*1.60934)},\
WindboeenKm {sprintf("%1.1f",ReadingsVal($name,"Windboeen",0)*1.60934)},\
WindrichtungGrad {ReadingsVal($name,"Windrichtung",0)-180},\
RegenMm {ReadingsVal($name,"Regen",0)*25.4},\
RegenGesamtMm {ReadingsVal($name,"RegenGesamt",0)*25.4},\
TemperaturC {sprintf("%1.1f",(ReadingsVal($name,"Temperatur",0)-32)*5/9)},\
TaupunktTempC {sprintf("%1.1f",(ReadingsVal($name,"TaupunktTemp",0)-32)*5/9)},\
LuftdruckHpa {sprintf("%d",ReadingsVal($name,"Luftdruck",0)*33.8639)},\
TemperaturGefuehltC {sprintf("%1.1f",(ReadingsVal($name,"TemperaturGefuehlt",0)-32)*5/9)}

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

t.moori