// 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

// 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.

// Projektvorstellung: Weather.chrisge.org

Nachdem sich mein neues Projekt Weather.chrisge.org schon seit Anfang des Jahres in der Testphase befindet, wird es so langsam Zeit jenes vorzustellen. Die Idee entstand im November 2011, als ich zunächst mit der Einrichtung der Software für die Webcam, Motion, begann.
Motion ist eigentlich eher für Überwachungskameras gedacht, aber mit etwas Spielerei konnte ich die Software optimal an meine Bedürfnisse „herankonfigurieren“. So erstellt Motion automatisch die Timelapses, filmt erkannte Bewegungen, erstellt regelmäßige Snapshots und erlaubt ein Livestreaming.
Wenig später kamen mehrere 1-Wire Sensoren dazu, welche durch die Software OWFS ausgelesen und durch Munin gemonitored werden. Doch dazu später mehr.

So ist am Ende eine kleine Wetterstation mit Webcam entstanden. Das Ergebnis kannst du auf Weather.chrisge.org betrachten. In den folgenden Tagen werde ich auf oben angeführte Software und Hardware in folgenden Teilen näher eingehen:

Bisher gesammelte Daten

Doch bevor ich in den nächsten Posts detalliert auf das Setup eingehe, will ich dir ersteinmal zeigen, was damit so alles möglich ist. Im folgenden findest du eine kleine Auswahl an Snapshots, Timelapses, Motions und Graphen. Eine vollständige Übersicht findest du auf Weather.chrisge.org.

Snapshots, Motions

Da ich die Timelapses regelmäßig auf interessanten Inhalt kontrolliere und anschließend nach Snapshots oder gar einer aufgezeichneten Bewegung schaue, finde ich immer wieder interessante Bilder bzw. Motions.

Vögel

Vor allem Vögel lösen hin und wieder Motion aus:

Sonstiges: Sonnenuntergänge, Wolken, Mond, Sterne...

Ein Archiv der besten bis jetzt gesammelten Snapshots findest du hier:

Aufgezeichnete Bewegungen (ich nenne sie Motions) findest du in folgendem sortierten Archiv:

Eine kleine Auswahl an „Motions“ kannst du hier anschauen:

Wetterdaten

Wie du in den nächsten Posts erfahren wirst, war es ein relativ großer Aufwand vernünftige Messwerte zu erhalten. Um einen Vergleich zu haben, enthalten die Graphen immer noch die Werte von YAHOO! Weather.

Die ersten Versuche

Bei meinen ersten Versuchen hatte ich einen Sensor innerhalb des Hauses an einem Fensterrahmen befestigt. Die anderen Sensoren waren ebenfalls nicht ideal positioniert, was an den Werten sehr gut ersichtlich ist:

Der heutige Stand

Durch verschiedene Maßnahmen, die ich später noch erläutern werde, konnte ich die Messwerte wesentlich verbessern:

→ Hier sind die sehr niedrigen Temperaturen, die wir diesen Winter hatten gut erkennbar.

Timeplases

Das eigentlich genialste Feature (neben der Bewegungserkennung) von Motion ist die automatische Erstellung von Timelapses. Von jenen habe ich bis jetzt einige „aufbereitet“ und auf Vimeo hochgeladen - hier eine kleine Auswahl:


→ mehr dazu in meinem Vimeo Channel

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