Skip to end of metadata
Go to start of metadata

Problem

Nach der Übernahme von Weather Underground durch IBM bietet WU keine kostenlosen Developer Keys zur Abfrage von Daten mehr an. Um weiterhin an die Daten der eigenen Wetterstation über Wunderground zu gelangen nutze ich einen Aufruf, welcher auch in der Webansicht der eigenen Wetterstation von Wunderground (https://www.wunderground.com/dashboard/pws/StationID) genutzt wird.

Lösung

Nicht offiziell supported!

Stand Januar 2019:

Das hier verwendete Verfahren ist nicht offiziell zur externen Nutzung vorgesehen, jedoch aktuell funktionsfähig. Sollten vom Anbieter Änderungen an der Webansicht vorgenommen werden, ist es gut möglich, dass auch dieser Aufruf nicht mehr funktioniert!

Update Mai 2019:

Die Webseite von Wunderground wurde neu gestaltet und verwendet den ursprünglichen URL-Aufruf nicht mehr. Einige Wetterstationen funktionieren mit dem alten Aufruf schon nicht mehr. Die Anleitung wurde auf die neue URL umgestellt.

Die Webview von Wunderground nutzt diverse Webservices um die Daten für die aktuelle Ansicht zu erhalten. Einige davon liefern als Antwort ein JSON, welches wiederum in Loxone verarbeitet werden können:

http://api.weather.com/v2/pws/observations/current?apiKey=6532d6454b8aa370768e63d6ba5a832e&stationId=StationID&format=json&units=m

In diesem Aufruf muss lediglich die StationID eingetragen werden. Der API-Key ist öffentlich und muss nicht geändert werden! Die StationID findet man am einfachsten über die Wundermap heraus. 


Was bekommen wir nun zurück? Ein JSON formatierter Datensatz der die Informationen der im Request eingegrenzten Wetterstation enthält!

Response
{
  "observations": [
    {
    "stationID": "IDARMSTA223",
    "obsTimeUtc": "2019-05-27T08:00:25Z",
    "obsTimeLocal": "2019-05-27 10:00:25",
    "neighborhood": "Tulpenweg",
    "softwareType": "WH2602 V4.5.6",
    "country": "DE",
    "solarRadiation": 159.31,
    "lon": 8.64811707,
    "realtimeFrequency": null,
    "epoch": 1558944025,
    "lat": 49.90708923,
    "uv": 2.0,
    "winddir": 103,
    "humidity": 93,
    "qcStatus": 1,
    "metric": {
      "temp": 15,
      "heatIndex": 15,
      "dewpt": 14,
      "windChill": 15,
      "windSpeed": 0,
      "windGust": 0,
      "pressure": 1008.81,
      "precipRate": 0.0,
      "precipTotal": 1.02,
      "elev": 224
      }
    }
  ]
}

In der Loxone Config


Virtueller Eingang:

Bei den virtuellen Eingängen wird ein neuer Virtueller HTTP Eingang angelegt, diesen nennen wir in diesem Beispiel "Wetter".

In den Eigenschaften des Virtuellen Eingangs muss anschließend der Link zur Wetterstation eingetragen werden, von der wir die Daten auslesen wollen

In diesem Beispiel nehmen wir als Station ID die Wetterstation IWAIZENK9

Der Link sollte dann so aussehen:

http://api.weather.com/v2/pws/observations/current?apiKey=6532d6454b8aa370768e63d6ba5a832e&stationId=IWAIZENK9&format=json&units=m

Um die Station ID deiner nächstgelegenen Wetterstation herauszufinden,

einfach auf https://www.wunderground.com/wundermap deinen Ort suchen und die nächstegelegene Wetterstation anklicken (die farbigen Punkte auf der Landkarte)

in dem kleinen Fenster, das sich öffnet, findest du die Station ID .



Im Eigenschaften Fenster sieht das Ganze dann so aus:


Virtueller Eingang Befehl:

Anschließend werden mit Virtueller HTTP Eingang Befehl die gewünschten Daten ausgelesen.

In diesem Beispiel wird die Temperatur mit dem Befehl "temp":\v abgefragt.

Für jeden Wert, den wir auslesen möchten legen wir einen eigenen Virtueller HTTP Eingang Befehl an, und tragen den entspechenden Befehl ein.

Wenn du https://api.weather.com/v2/pws/observations/current?apiKey=6532d6454b8aa370768e63d6ba5a832e&stationId=IWAIZENK9&format=json&units=m im Browser öffnest siehst du alle Werte die ausgelesen werden können.

Hier einige Beispiele:

InformationBefehlserkennungAusgabe
Windrichtung"winddir":\vGrad als Kompassrichtung → Für Umrechnung in Himmelsrichtung siehe unten
Windgeschwindigkeit"windSpeed":\vAktuelle Windgeschwindigkeit in km/h
Windböen"windGust":\vWindböen in km/h 
Luftfeuchtigkeit"humidity":\vLuftfeuchtigkeit in %
Außentemperatur"temp":\vTemperatur in Celsius (°C) 
Gefühlte Temperatur"windChill":\vTemperatur in Celsius (°C) 
Regenrate"precipRate":\vAktuelle Regenrate in mm
Regenmenge"precipTotal":\vTagesregenmenge in mm
Sonneneinstrahlung"solarRadiation":\vAktuelle Sonneneinstrahlung in Watt je m² (W/m²)
Luftdruck"pressure":\v

Luftdruck in mbar


Windrichtung als Himmelsrichtung anzeigen:

der Befehl "winddir":\v gibt die Himmelsrichtung in Grad aus. 0°=Norden, 180°=Süden usw.

Die Windrichtung kann mithilfe des Status-Bausteins auch im Format N NO O SO S SW W NW angezeigt werden.



Beispiel für eine fertige Config:

Datenalter und Validierung

Im Json ist die Unix Epoche Zeit (Unix Timestamp) verfügbar, welche es erlaubt die Daten auf Aktualität zu validieren. Eine genaue Anleitung dazu findest Du hier: epochtime (Unix-Zeit) zum Prüfen auf Datenaktualität nutzen




19 Comments

  1. Hallo Stefan,

    Du hast meine Version wieder überschrieben. Der Aufruf braucht aber die zusätzlichen Parameter wie iconsize etc, nicht! Probier' es doch bitte aus: http://stationdata.wunderground.com/cgi-bin/stationdata?maxage=7200&format=json&station=ISACHSEN347

    Die Begründung ist doch etwas unsinnig. Der Aufruf ist nicht offiziell, daher kann er sowieso jederzeit geändert werden. Ob Du Dich nun "nahe an das Original" hälst oder nicht spielt doch da keine Rolle. Den Abruf in dieser Art gibt es übrigens bereits seit 2012 - auch die kurze Version.


    1. Hallo Michael,

      es gibt sicherlich differenzierte Meinung dazu, ich ken nes aus meineem beruflich Background , du sicherlich auch, dass es an viele Stellen die Methodik "Detect & React" gibt. Daher macht es meiner Meineung nach schon Sinn mit dne Requests möglichts am Orginial zu bleiben um nicht eine entsprechende Regel auszulösen.

      Das der Request mit weniger Parameter klar kommt ist richtig, aber es spart auch nur bedingt ressourcen auf dem Miniserver. Den Hinweis über nicht zwingend notwendige Parameter können wir gerne vermerken, dann darf es sich jeder selbst überlegen. Ich fande nur das Entfernen der Erklärung für die optionalenem Request-Parameter suboptimal, irgendwnan such jemand nach genau dieser Information.

  2. Ach, übrigens:

    Das hier ist ein Wiki. Und an einem Wiki sollen alle mitarbeiten. Die Seite auf "nicht beschreibbar" zu setzen ist ein extrem seltsames Verhalten in einem Wiki. Was ist, wenn Du keine Lust mehr hast "Deine" Seite hier zu pflegen? Dann landet die Seite im Nirvana.

    Was soll denn sowas? Fühlst Du Dich dadurch "angegriffen"? Dann hast Du das Prinzip eines Wikis nicht verstanden.

    1. Wie oben schon geschrieben, ich fühle mich nicht angegriffen und schätze auch kompetenten Input, jedoch finde ich das Löschen von korrekten Informationen ohne entsprechenden Hinweis nicht gut.

  3. Lieber Peter, ich habe deine Seite wieder - wie in einem Wiki üblich - auf allgemein bearbeitbar gesetzt. 

    Wie Michael schon ausführt, darf jeder richtige und sinnvolle ergänzungen an jedem Artikel im Wiki machen, ausgenommen sind ein paar Administrative Seiten sowie Startseite, Wiki Regeln usw.  

    Eine bitte noch an dich, bevor du nächstes mal Änderungen von jemandem zurücksetzt, klär das ab.

    Deine loxwiki Admins

  4. Hallo Spezialisten (wink)

    Gibt es eine Mögichkeit die windrichtung nicht in Grad sondern in N NO O SO S usw. zu visualisieren?

    So wie es auch auf der Wetterseite angezeigt wird

    https://www.wunderground.com/personal-weather-station/dashboard?ID=IWAIZENK9#history

    z.b.: Wind from ESE

  5. Florian Mitter     mit dem Statusbaustein kannst du es mit Text ausgeben

    1. Hallo Peter! Ich hoffe ich erreiche dich hier im Kommentar.

      Entwickelst du noch das Alexa2Lox Plugin? Dort gibt es seit mehreren Monaten keine Antworten auf Kommentare mehr bezüglich meiner Frage und der Frage von anderen.

      Vielleicht könntest du dort mal kurz Rückmeldung geben. (wink) In der Zwischenzeit habe ich mir erlaubt das Plugin auf unstable zu setzen da es keiner mehr zum Laufen bekommt (Siehe Kommentare).

      Liebe Grüße!

  6. Hallo Miteinander,

    das mit den "Zuvor registrierte API Keys bleiben (vorläufig) funktionsfähig." scheint nicht mehr zu funktionieren. Bekomme seit 06.03.2019 keine Daten mehr. Hab es leider erst heute bemerkt.

  7. Irgendwie funktioniert das bei mir nicht (sad)
    Ich übermittel meine Daten auch an WeatherUnderground und ich kann mir in meinem Account einen neuen API-Key generieren lassen. Es gibt auch eine neue URL dazu die auch ein JSON zurück gibt:

    https://api.weather.com/v2/pws/observations/current?stationId=ID-DER-STATION&format=json&units=m&apiKey=NEUER-32-ZEICHEN-KEY

    Bekomme dies aber leider auch nicht zum laufen... im Browser bekomme ich die neuen Werte angezeigt aber in der Loxone Config kommt nix.
    Mit der neuen URL inkl. dem Key habe ich mich hier an die Anleitung gehalten.

    1. Vergiss den Key, den brauchst du nicht mehr.

      Schau dir den Punkt "Beispiel für einen Aufbau in der Config" an.

      1. Okay, erneut copy&paste gemacht und schon geht es...
        Besten Dank 

  8. Moin,

    ich habe mich an die Anleitung gehalten und bekomme leider keine Daten in die Config. Im Browser bekomme ich die Daten im JSON Format oder im XML Format.
    Die URL für den virtuellen HTTP Eingang lautet:

    https://api.weather.com/v2/pws/observations/current?apiKey=6532d6454b8aa370768e63d6ba5a832e&stationId=IWINSEN51&format=json&units=m 

    Der virtuelle HTTP-Eingangs Befehl sieht so aus:

    was mache ich falsch? Könnt Ihr mir weiterhelfen?

    1. Die Befehlserkennungen in der Tabelle sind leider nicht (mehr) korrekt.

      Korrekt müsste das zum Beispiel so aussehen: "windSpeed":\v

      Also einfach jeweils das Leerzeichen und das Anführungszeichen vor dem \v weglassen, dann funktioniert es. Zudem kann die Loxone meines Wissens ohne Umwege keine https-Seiten abfragen. Also entweder begnügst du dich mit http, oder du musst über das entsprechende Loxberry-Plugin gehen.


      EDIT: Ich hab das mal in der Tabelle angepasst.

      1. Ich hatte mit der Konvention der Befehlserkennung schon einiges durchprobiert aber so wie Du es dokumentiert hast leider nicht (smile). Vielen Dank, nun purzeln die Werte mit http auch in die Config...

  9. Zur Validierung verwende ich nicht die epochtime, sondern eine Prüfsumme aus verschiedenen, relativ wechselhaften Werten, die ich alle 4 h mit der vorherigen vergleiche. Kürzere Intervalle wären sicherlich auch möglich, mir reicht es aber so und ich möchte keine unnötigen Fehlermeldungen.

    Das Problem an der epochtime ist, dass man nicht weiß, wo der Zeitstempel herkommt und auf was genau er sich bezieht. Ich hatte letztes Jahr das Problem, dass die Wetterstation auf die ich schaue defekt war. Das hatte zur folge, dass ich immer die selben Werte mit einem neuen Zeitstempel bekommen habe. Möglicherweise ist dies nach den jüngsten Anpassungen bei WU nicht mehr der Fall, aber solange die Wetterstation nicht wieder offline geht kann ich das nicht prüfen und bleibe bei meiner Methode.

    Nur mal um ein bisschen zum Nachdenken anzuregen (wink)

  10. Hallo Wiki-Gemeinde!

    Ich bin ganz neu hier, aber habe hier schon zahlreiche Tipps erhalten. Ich habe sehr lange probiert mit der obrigen Anleitung die Daten von WeatherUnderground in Loxone zu bekommen. 

    Aber nun funktioniert es! Vielen Dank Leute!

    ABER: Ich habe folgende Adresse genommen:

    http://api.weather.com/v2/pws/observations/current?apiKey=6532d6454b8aa370768e63d6ba5a832e&stationId=StationID&format=json&units=m


    Wenn ich httpbenutze, hat der Miniserver immer 0 als Daten ausgespuckt. Sobald ich nur http verwende funktioniert das Ganze ohne Probleme. Vielleicht hilft das hier einigen (smile)



  11. Hallo Freunde,

    da meine Wetterstations seit einiger Zeit nicht mehr fünktioniert weil sich die URL`s und die Befehle geändert haben, hab ich mich mal hingesetzt und den ganzen Beitrag überarbeitet.

    Die Links, Befehle und Screenshots hab ich aktualisiert und nach diesem Beispiel sollte auch alles wieder wie gewohn funktionieren.

    LG,

    Florian