// Wetter.chrisge.org Update & Wettergraphen 2015

Nachdem die Wetterstation hinter Wetter.chrisge.org mittlerweile über Wetteraufzeichnungen der letzten 4 Jahre verfügt, habe ich über die Feiertage neben der Umstellung des Designs der Wetterseite zusätzlich noch eine Übersichtsseite generiert, auf der die Graphen vom Temperatur und relativer Luftfeuchte für diese 4 Jahre jeweils als Plot über das ganze Jahr sowie für die einzelnen Monate betrachtet werden können.

Das neue Design basiert – wie unschwer zu erkennen ist – auf Twitter Bootstrap. Im Hintergrund werkeln weiterhin die gleichen Komponenten (Munin, OWFS sowie ein paar Bash Skripte). Auch die externen Wetterdaten werden weiterhin über die Wundergound Weather API bezogen. Nur die Webcam läuft seit Mai dieses Jahres nicht mehr.

Wettergraphen 2015

Traditionell auch in diesem Jahr wie bereits 2012, 2013 und 2014 die Wettergraphen des vergangen Jahres. Die Graphen dieser Jahren sind nun übersichtlich auf der überarbeiteten Wetterseite dargestellt.

// Jahresrückblick: Wettergraphen 2014

Die Wetteraufzeichnen von Weather.chrisge.org reichen mittlerweile 3 Jahre zurück. Deshalb gibt es dieses Jahr zusätzlich zu den traditionellen Wettergraphen ein kurzer Kommentar zum Wetterjahr 2014.
Leider gibt es dieses mal keine Jahres-Timelapse wie in den beiden letzten Jahren. Dies liegt vor allem daran, dass die Qualität der Webcambilder bereits letztes Jahr erheblich nachgelassen hat (Lichteinstrahlung auf die Webcam). Ein anderer Grund ist aber auch die wiederholte starke Absenkung der „Kamerahalterung“. Bis ich keine bessere Position für die Kamera gefunden habe, werde ich gegen dieses Problem aber nicht mehr vorgehen.

Das Wetter 2014

Doch nun zum Wetter! Der diesjährige August war insgesamt recht kalt, dafür vielen die ersten Juniwochen sehr warm aus. Der September war wie der ganze Herbst sehr mild. Der Herbst war im Vergleich zum letzten Jahr wärmer und zog sich gefühlt bis Ende Dezember hin. Erst in der letzten Woche dieses Jahres wurde es kälter und es viel tatsächlich mal wieder Schnee.
Die Durchschnittstemperatur war auf allen gemessenen Sensoren (und der externen Referenzquelle) höher als die Jahre zuvor, dies bestätigen auch externe Quellen, 2014 gilt als das bisher wärmste Jahr seit Beginn der Wetteraufzeichnungen.

Jahresraffer 2012 & 2013

Hier nochmal die Jahresraffer der letzten beiden Jahren.

  • Timelapse No.9 – One Year in Schutterwald II auf Vimeo
  • Timelapse No.8 – One Year in Schutterwald auf Vimeo

// Jahresrückblick: Jahresraffer & Wettergraphen 2013

Auch für dieses Jahr habe ich wieder eine Timelapse aus täglichen Snapshots zusammengestellt. Diese wurden immer um 17 Uhr in der Zeitspanne vom 29.12.2012 bis zum 29.12.2013 aufgenommen und anschließend mit ffmpeg zusammengesschnitten. Leider hatte ich – wie unschwer ersichtlich – auch dieses Jahr wieder Probleme mit der Absenkung der Webcam.


→ Timelapse No.9 – One Year in Schutterwald II auf Vimeo, weitere Timelapses auf meinem Vimeo Channel

Weather.chrisge.org hat mittlerweile Wetteraufzeichnungen, die zwei Jahre zurückreichen. Hier die zur Timelapse passenden und zum Vergleich auch noch die von letztem Jahr.

// Die Wundergound Weather API – endlich eine brauchbare

Seit längerem befinde ich mich auf der Suche nach (brauchbaren!) externen Wetterdaten für Weather.chrisge.org – Die Google Wetter API existiert schon seit längerem nicht mehr und das YAHOO! Pendant ist auf Grund nicht enthaltener Werte für mich unbrauchbar geworden. Zunächst bin ich dann dazu übergegangen die deutsche Unterseite von TheWeatherChannel zu dumpen. Da die Seite aber einen Relaunch erlebt hat und ich keine Lust mehr auf ständiges Anpassen der Munin Plugins hatte, habe ich mich auf die Suche nach einer brauchbaren API gemacht und in der Wunderground.com Weather API eine hervorragende gefunden.

Features

Als Entwickler bekommt man den API-Zugang mit sämtlichen Zusatzfeatures für lau. Darin enthalten ist folgendes:

  • Anvil Plan mit Radar- und Satellitenbilder, Webcam Thumbnails und vielen mehr oder weniger brauchbaren Features
  • das History Add-On („one of the biggest historical weather databases on the web“)
  • …und eine Limitierung auf 10 Anfragen pro Minute und 500 pro Tag :-(

Nach dem man sich für einen API Key registriert hat, empfiehlt es sich zunächst sich etwas in der Dokumentation umzusehen. Es fällt auf, dass in die Anwendung bzw. in die Webseite das Wunderground Logo eingebunden werden muss, was auf Grund der sehr humanen Vorschriften (das „Horizontal Logo“ darf auf 126px skaliert werden) absolut kein Problem darstellt.

Einfache Abfragen

Eine Übersicht über mögliche Abfragemethoden findet sich in der Dokumentation. Unter anderem können auch sog. Layers erzeugt werden (sehr empfehlenswert!). Für mich war aber in erster Linie eine Abfrage der Conditions relevant, weshalb ich mich im folgenden auch nur mit diesen beschäftigen werde.

Zunächst muss entscheiden werden, ob die Antwort in XML oder JSON „formatiert“ sein soll. Ich entscheide mich für JSON. Eine Abfrage nach den aktuellen Conditions sieht nun in etwa so aus (wobei die Variablen natürlich ersetzt werden müssen):

http://api.wunderground.com/api/${KEY}/conditions/${OPTIONS}/q/${PLACE}.json

Den Ortscode ${PLACE} erhält man, indem man auf der Startseite nach dem Ort sucht und sich die URL anschaut (z.B. für Schutterwald http://www.wunderground.com/q/zmw:00000.47.10805zmw:00000.47.10805). Ich wähle folgende Werte für die Variablen:

KEY=""                         # generierten API Key angeben
OPTIONS="lang:DL"              # Sprache auf Deutsch
PLACE="zmw:00000.47.10805"     # Ortscode für Schutterwald...
PLACE="zmw:00000.1.10702"      # bzw. für Karlsruhe

Die Abfrage kann nun testweise im Browser oder natürlich auch mit einem Textbrowser wie w3m oder lynx ausgeführt werden:

w3m -dump http://api.wunderground.com/api/${KEY}/conditions/${OPTIONS}/q/${PLACE}.json

Als Antwort erhalte ich für die Wetterbedingungen in Karlsruhe unter anderem folgendes (stark gekürzt):

"weather":"Partly Cloudy",
"temp_c":12.2,
"relative_humidity":"85%",
"wind_string":"Calm",
"wind_dir":"WSW",
"wind_degrees":242,
"wind_kph":0.0,
"wind_gust_kph":"1.6",
"pressure_mb":"1001",
"dewpoint_c":10,
"feelslike_c":"12.2",
"visibility_km":"10.0",
"UV":"1",

Die darin enthalten Werte sind für meine Bedürfnisse mehr als ausreichend :-)

Eine praktische Umsetzung

Zuerst scheinen 500 Anfragen pro Tag ausreichend. Das würde immerhin alle drei Minuten eine Anfrage gestatten. Das Problem ist nur, dass ich drei Munin Plugins einsetze, die alle 5 Minuten zweimal (wegen zwei Muninmastern) ausgeführt werden. Außerdem frage ich die Werte hin und wieder für den Versand via SMS oder XMPP ab. Folglich muss eine andere Lösung her.
Dazu habe ich folgendes kleine Skript (api-get) erstellt, welches mir die Werte für Schutterwald abfrägt bzw. mit wget downloaded:

#!/bin/bash
 
FILE="/var/weather/output_sw"      # Pfad anpassen
KEY=""                             # Key einfügen!
OPTIONS="lang:DL"
PLACE="zmw:00000.47.10805"         # Ortscodes/Variablen anpassen!
 
wget -q http://api.wunderground.com/api/${KEY}/conditions/${OPTIONS}/q/${PLACE}.json -O $FILE

Das obige Skript führe ich alle 4 Minuten in Cron aus.

Das $FILE verarbeite ich nun mit allen weiteren Services, die Zugriff auf die Wetterdaten brauchen, mit folgendem Skript (api):

#!/bin/bash
FILE="/var/weather/output_sw"    # Ort anpassen
WHAT="$1"
 
case "$WHAT" in
 
# Verarbeiten von $FILE; JSON lässt sich in der bash sicherlich auch schöner verarbeiten ;-)
temp)
   grep temp_c $FILE | cut -d':' -f2 | cut -d',' -f1
   ;;
 
dew)
   grep dewpoint_c $FILE | cut -d':' -f2 | cut -d',' -f1
   ;;
 
hum)
   grep relative_humidity $FILE | cut -d':' -f2 | cut -d',' -f1 | cut -d'"' -f2 | cut -d'%' -f1
   ;;
 
*)
   echo "ERR: WHAT!"
   exit 1
   ;;
esac

Nun kann ich mit /Pfad/zum/api/skript [temp|dew|hum] die aktuellen Werte aus der heruntergeladenen Datei auslesen. Natürlich muss der jew. User Zugriff auf die Datei haben und die benötigten Rechte besitzen um das Skript ausführen zu dürfen!

Fazit

Ich hoffe der Wetter API von Wunderground.com ist ein längeres Leben als der von Google prophezeit. Ende Dezember bin ich auf die Wundeground Weather API umgestiegen und ich muss sagen, dass ich höchst zufrieden bin.
Bis jetzt habe ich noch nicht alle Möglichkeiten der API ausgeschöpft, mit den History und Layer Feeatures muss ich mich unbedingt noch mehr auseinandersetzen.

Hello World!

This is the personal website of Christoph Winkler.
Here you will find a sort of blog and some information about me and my projectshave fun!

Recent Comments
Latest Tweets
QR-Code: aktuelle Seiten-URL
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Noncommercial-Share Alike 3.0 Unported