Hochwasser? Wie ist der Pegel?
Gerade für die, die nahe am Wasser leben oder aus sonstigen privaten oder beruflichen Gründen wissen wollen, wie der Wasserstand eines Flusses gerade ist, ist diese Information interessant. Netterweise gibt es eine öffentliche Schnittstelle dazu!
Es gibt das Gewässerkundliche Informationssystem der Wasserstraßen- und Schifffahrtsverwaltung des Bundes. Mit dem Portal PEGELONLINE gibt es die tagesaktuellen Werte - vor allem vom Wasserstand. Ein Webservice bietet diese für jeden frei verfürbar an.
Während der Pegel der Nordsee innerhalb von nur 6 Stunden stark schwankt, sieht man bei kleinere Flüssen im Laufe des Tages kaum Veränderungen. Im Inland ist man vom Wasserstand heutzutage auch nicht mehr abhängig - wann will ja nur noch selten mit dem Pferd über eine Furt ;)
Aber tatsächlich werden manche Straßen in Ufernähe eben bei Hochwasser gesperrt oder eine Fähre fährt je nach Stand nicht mehr. Bei zu niedrigem Wasser kann die Schifffahrt eingestellt werden.
Für mich war der Wasserstand des Rheins bei Köln interessant. Ein Web-Aufruf sieht dazu wie folgt aus:
http://www.pegelonline.wsv.de/webservices/rest-api/v2/stations/K%C3%96LN/W/currentmeasurement.json
Das Ergebnis ist ein JSON-Objekt, in diesem Fall dieses:
{
  "timestamp": "2018-08-06T14:00:00+02:00",
  "value": 122.0,
  "trend": 0,
  "stateMnwMhw": "low",
  "stateNswHsw": "normal"
}
Via cURL rufe ich ein einem Einzeiler diesen Webservice auf und speicher das Ergebnis direkt in einer Datei ab:
curl -s 'http://www.pegelonline.wsv.de/webservices/rest-api/v2/stations/K%C3%96LN/W/currentmeasurement.json' > /home/pi/daten/pegelcgn
Der relevante Wert steht in "value", sodass ein weiterer Aufruf notwendig ist, diese Zahl aus meiner Ergebnis-Datei zu extrahieren. jq ist da ein netter Helfer für JSON-Objekte:
/bin/cat /home/pi/daten/pegelcgn | /usr/bin/jq '.value'
Das Ergebnis lautet in diesem Fall "122.0".