Das Problem mit kommerziellen Wetter-APIs
Wetter-Daten braucht man überraschend häufig. Irgendein Projekt, eine kleine App, ein Skript, das einem morgens die Jacken-Entscheidung abnimmt. Und fast immer landet man früher oder später bei derselben Frage: Welche API nutze ich?
Die Antwort, die man überall findet, ist OpenWeatherMap. Manchmal auch Weather.com, AccuWeather oder den eingestellten DarkSky-Dienst von Apple. Diese Antworten haben gemeinsam, dass sie alle entweder zu einer Kreditkarteneingabe oder zu einer Tracking-ID bei jedem Request führen.
Dabei gibt es für Deutschland und ausgwählte Orte weltweit eine bessere Option. Sie ist kostenlos und qualitativ überlegen: der Deutsche Wetterdienst (DWD).
Deutscher Wetterdienst – offen und kostenlos
Wettervorhersagen für Deutschland stammen maßgeblich vom Deutschen Wetterdienst (DWD). Eine öffentliche Behörde, finanziert über Steuermittel, die ihre Daten auf opendata.dwd.de veröffentlicht.
Kein API-Key. Kein Rate-Limiting (jenseits normaler HTTP-Höflichkeit), keine Nutzungsbedingungen, die kommerzielle Verwendung einschränken. Die Daten sind gemeinfrei.
DWD OpenData bietet unter anderem:
- MOSMIX: Daten für ca. 2.700 Stationen nicht nur in Deutschland, stündlich aufgelöst, 10 Tage Horizont, 4× täglich aktualisiert
- ICON-D2: Hochaufgelöste Gitterdaten für Deutschland (2,2 km), aktualisiert 8× täglich, z.B. für Wetterwarnungen
- Klimaarchiv: Historische Beobachtungsdaten von Stationen weltweit, jahrzehnteweise
- Ensemble-Vorhersagen: wahrscheinlichkeitsbasierte Vorhersagen mit Schwankungsbreiten
Die Frage ist nur: Kann man direkt damit arbeiten, ohne Mittelsmann?
Die kurze Antwort lautet ja. Die lange Antwort ist diese Artikelserie.
Was DWD OpenData technisch bietet
Das MOSMIX-System (Model Output Statistics Mix) ist das operative Vorhersageprodukt. Es kombiniert numerische Modelle (ICON, ECMWF) mit statistischen Korrekturen aus historischen Beobachtungen.
- ca. 2.700 Messstationen weltweit
- ~115 Wetterparameter pro Station: Temperatur, Wind, Niederschlag, Bewölkung, Sichtweite, Wettercode, Luftdruck, Taupunkt, und dutzende weitere
- 10 Tage Vorhersage, stündlich aufgelöst
- 4 × täglich aktualisiert: 00:00, 06:00, 12:00, 18:00 UTC
Der Zugriff erfolgt über HTTP, ohne Authentifizierung:
https://opendata.dwd.de/weather/local_forecasts/mos/MOSMIX_L/single_stations/10382/kml/MOSMIX_L_LATEST_10382.kmzDie einzige Anforderung: ein User-Agent-Header, der identifiziert, wer die Anfragen stellt, muss gesetzt sein Nicht als technische Hürde, sondern als Höflichkeit, damit der DWD nachvollziehen kann, wie seine Daten genutzt werden.
Der typische Datenfluss
Um eine Wettervorhersage zu erstellen sind folgende Schritte notwendig:
- Geocoding (OpenStreetMap Nominatim oder eigene Koordinaten)
Input: „Berlin“
Output: { lat: 52.5174, lon: 13.3951 } - Stationssuche (Haversine-Distanz über den Stationskatalog)
Input: Benutzerkoordinaten Aktion: Suche nach nächster Station
Output: Station 10382 (Berlin-Tegel, 8.3 km) - KMZ Download URL: opendata.dwd.de/…/10382/kml/MOSMIX_L_LATEST_10382.kmz
- ZIP entpacken
Input: MOSMIX_L_LATEST_10382.kmz (ZIP) Output: MOSMIX_L_2026032821_10382.kml (KML/XML) - KML parsen
Input: XML mit Zeitreihen
Output: JavaScript-Objekt mit ~240 Zeitpunkten × 115 Parametern - Einheiten konvertieren
Kelvin → Celsius, Pa → hPa, m/s → km/h - Ausgabe
Terminal, JSON-API, Datenbank, …
Dafür sind keine speziellen Biblotheken notwendig. Man muss sich allerdings etwas ausführlicher mit dem Datenformat auseinandersetzen.
Ein CLI als einfachstes Beispiel
Um zu zeigen, dass der direkte DWD-Zugriff praktisch funktioniert, bietet sich ein CLI-Tool als einfache Implementierung an. Keine Infrastruktur, kein Hosting und keine Datenbank. Als Umgebung wähle ich Node.js, weil JavaScript momentan die meist genutzte Programmiersprache ist.
node forecast.js BerlinAusgabe: eine vollständige 10-Tage-Vorhersage, mit aktuellen Bedingungen, stündlicher Vorhersage für die nächsten 24 Stunden und einer täglichen Zusammenfassung.
AKTUELLE BEDINGUNGEN (22:00 UTC)
Temperatur: 10,4°C 💧 72% (Taupunkt: 5.1°C)
Wetter: Leicht bewölkt [ww=2]
Wind: NNW 14 km/h (Böen 22 km/h)
Bewölkung: 45%
Sichtweite: 22 km
Luftdruck: 1018,2 hPa
Sonnenaufgang: 06:14 UTC
Sonnenuntergang: 18:42 UTC
Stündliche Vorhersage — nächste 24 Stunden
Zeit Temp Regen Richt Wind Wolken Wetter
─────────────────────────────────────────────────────────────────
22:00 10,4° 0,0mm NNW 14(22)km/h 45% Teilw. bewölkt
23:00 10,8° 0,0mm N 10(16)km/h 40% Gering bewölkt
00:00 10,2° 0,1mm NW 8(14)km/h 35% olkenlosDer Vorteil eines CLI gegenüber einer Web-App für diesen Zweck: es gibt keinen HTTP-Layer zwischen der Kernlogik und dem Test. Wenn node cli.js Berlin funktioniert, weiß man, dass die Verarbeitung stimmt — bevor man an eine weiterführende Infrastruktur denkt.
Minimale Abhängigkeiten
Für eine DWD-MOSMIX-basierte Applikation braucht man in Node.js sehr wenig. Die minimale Abhängigkeitsliste:
{
"type": "module",
"engines": { "node": ">=18.0.0" },
"dependencies": {
"unzipper": "^0.12",
"xml2js": "^0.6",
"minimist": "^1.2"
}
}unzipper: Stream-basierter ZIP-Parser. MOSMIX-KMZ ist ein ZIP-Archiv, Node hat keine ZIP-Unterstützung in der Standardbibliothek.xml2js: XML zu JavaScript-Objekten. Das KMZ enthält eine KML-Datei — ein XML-Dialekt.minimist: CLI-Argument-Parsing. Nur relevant für CLI-Nutzung.
Wie geht es weiter?
Die nächsten drei Artikel gehen jeweils auf die konkrete Problemlösung ein. Teil 2 erklärt, wie man die richtige Wetterststion findet, Teil 3 wie man aus den Rohdaten eine Wettervorhersage extrahiert und Teil 4 fasst ausgiebig alle notwendigen Schritte zu einem lauffähigem Programm zusammen. Lost geht’s!
Weiter: Teil 2 – Die richtige Wetterstation finden

Schreibe einen Kommentar