Nikolai Bockholt EN

Tiefstand

Gebaut

Eine native macOS-App, die in der Menüleiste sitzt und Deutschlands Niedrigwasserlage auf eine farbcodierte Zahl herunterbricht. Datenquelle ist NIWIS, das bundesweite Niedrigwasser-Informationssystem der Bundesanstalt für Gewässerkunde, das im Juli 2026 online ging. Dazu ein WidgetKit-Widget für den Schreibtisch.

Das Tiefstand-Symbol in der macOS-Menüleiste: ein kreisförmiger Füllstands-Indikator neben der Zahl 50.
Der Alltagsfall – mehr sieht man nicht.

Die interessante Entscheidung ist der Index

NIWIS klassifiziert jede Messstelle in vier Stufen. Daraus eine einzige Zahl zu machen heißt, zwei Annahmen zu treffen – und beide sind angreifbar, also stehen sie offen im Repo.

Erstens: der Index nimmt nur Abfluss und Grundwasser, gewichtet 50/50. Das sind zwei unabhängige hydrologische Kompartimente, über und unter der Oberfläche. Der Wasserstand ist bewusst ausgeschlossen, weil er Oberflächenwasser doppelt zählen würde. Quellabfluss steht im Dashboard, aber nicht in der Kopfzahl – das Netz ist zu dünn und zu regional.

Zweitens: die vier Klassen werden als gleich weit auseinanderliegend behandelt. NIWIS klassifiziert über Perzentil-Schwellen gegen die WMO-Referenzperiode 1991–2020, veröffentlicht die genauen Klassengrenzen aber nicht. Gleiche Abstände sind deshalb eine Minimalannahme – und die ist mir lieber als Gewichtungen zu erfinden, die die Quelle nicht hergibt.

Ein Mittelwert komprimiert die Verteilung, das ist unvermeidlich. Deshalb zeigen die Donuts im Popover die volle Streuung hinter der einen Zahl.

Popover der App: der Bundeswert 50 mit der Einordnung „High“, darunter zwei Ringdiagramme für Abfluss (51) und Grundwasser (49) mit den Stationszahlen je Klasse, dann die trockenste Messstelle Inkofen an der Amper mit 15 Zentimetern, unten die Quellenangabe NIWIS.
Die Streuung hinter der einen Zahl. Live-Daten vom 23. Juli 2026.

Sich gegenüber einer Behörde anständig verhalten

Die App liest ausschließlich, fragt höchstens alle zwei Stunden an und schickt einen identifizierenden User-Agent, damit die BfG den Verkehr zuordnen und sich melden kann. Nichts wird gespiegelt oder weiterverbreitet – geholt wird der aktuelle Bundeswert plus der eigene Pegel, sonst nichts.

Hinter einem DataProvider-Protokoll liegt PEGELONLINE der Wasserstraßen- und Schifffahrtsverwaltung als Fallback. NIWIS ist zur Weiterverwendung offen, hat aber noch keine öffentliche OpenAPI-Spezifikation – wenn sich die Form ändert, übernimmt der Fallback.

Zwei Schreibtisch-Widgets, mittel und klein, jeweils mit dem Füllstands-Kreis, der Zahl 50 und der Einordnung „High“.
WidgetKit, mittel und klein.

Stand

Läuft als echte Menüleisten-App mit Live-Daten, Release v0.1.1, Swift, testgetrieben. Die Notarisierung fehlt noch – die hängt an einem Apple-Developer-Account, nicht am Code. Als nächstes: nächstgelegener Pegel über CoreLocation und die Deutschlandkarte.

Quellcode auf GitHub

← Alles, was ich gebaut habe