DWD Weather
Der Node lädt die MOSMIX-Punktvorhersage des Deutschen Wetterdienstes (DWD) für eine oder mehrere Wetterstationen, interpoliert die Werte auf den aktuellen Zeitpunkt und gibt sie als flache WeatherObserved- und WeatherForecast-Objekte aus. Stationen wählen Sie bequem über eine Karte mit Adresssuche und Umkreisfilter.
- Node-Typ
- hypertegrity-dwd-weather
- Paket
- @htag/node-red-contrib-hypertegrity-weather
- Eingänge / Ausgänge
- 1 / 2
- Datenquelle
- DWD Open Data, MOSMIX_L (KMZ je Station)
Wofür Sie den Node verwenden
Der DWD stellt mit MOSMIX stündlich aktualisierte Punktvorhersagen für mehr als 5 000 Stationen weltweit frei zur Verfügung. Der DWD-Weather-Node bringt diese Daten ohne eigene KML-Verarbeitung in einen Node-RED-Flow. Er übernimmt das Herunterladen der komprimierten Datei, das Entpacken, das speicherschonende Parsen und die Umrechnung in metrische Einheiten.
Typische Einsatzfälle sind:
- Aktuelle Wetterlage für eine Kommune als WeatherObserved-Objekt in einen NGSI-LD Context Broker übernehmen.
- Stundenweise Vorhersagen für Dashboards, Bewässerungssteuerungen oder Energieprognosen bereitstellen.
- Mehrere Stationen in einem Node bündeln, zum Beispiel alle Stationen eines Landkreises.
- Spezielle MOSMIX-Elemente wie Windböen, Sonnenscheindauer oder Globalstrahlung gezielt mit ausgeben.
So funktioniert der Node
Auslösen
Eine eingehende Nachricht startet den Abruf. Der Node fragt den DWD nicht von selbst ab.
Herunterladen und parsen
Für jede konfigurierte Station wird die KMZ-Datei MOSMIX_L_LATEST geladen, entpackt und als Datenstrom gelesen. Der Stationskatalog wird einmal täglich aktualisiert.
Interpolieren
Die stündlichen Vorhersagewerte werden linear auf den aktuellen Zeitpunkt beziehungsweise auf jede Vorhersagestunde interpoliert.
Ausgeben
Ausgang 1 erhält je Station ein WeatherObserved-Objekt, Ausgang 2 ein Array von WeatherForecast-Objekten.
Ergebnis: Flache Wetterobjekte in metrischen Einheiten, die direkt in den NGSI-LD Builder geführt werden können.
Der Node ist triggerbasiert. Kombinieren Sie ihn mit einem Inject-Node, der in einem festen Intervall auslöst. Da der DWD die MOSMIX_L-Dateien stündlich erneuert, ist ein Intervall von 60 Minuten sinnvoll. Für jede Station wird bei jedem Auslösen die vollständige KMZ-Datei heruntergeladen; laufende Downloads derselben Station werden nicht parallel gestartet.
Für Ausgang 1 interpoliert der Node die MOSMIX-Werte auf die aktuelle Uhrzeit und gibt das Ergebnis als WeatherObserved aus.
Konfiguration
Der Bearbeitungsdialog ist in drei Registerkarten unterteilt. Auf den Registerkarten Wetter Beobachtung und Wetter Vorhersage wählen Sie Stationen über eine Karte aus: Adresse oder Stadt suchen, Umkreis zwischen 5 und 100 km einstellen, Liste filtern, einzelne Stationen anklicken oder alle sichtbaren übernehmen. Alternativ tragen Sie Stations-IDs manuell ein. Die Karte bezieht die Stationsliste über den konfigurierten Stationskatalog und die Adresssuche über den Nominatim-Dienst von OpenStreetMap.
Registerkarte „Wetter Beobachtung“
| Feld | Typ | Standard | Bedeutung |
|---|---|---|---|
| Name | Text | leer | Anzeigename des Nodes im Flow. |
Manuelle ID(s) / Stationsauswahl (mosmixStation) | Text, kommagetrennt | leer, Pflichtfeld | DWD-Stations-IDs für Ausgang 1. Die Auswahl gilt auch für Ausgang 2, solange keine eigenen Vorhersagestationen festgelegt sind. |
Registerkarte „Wetter Vorhersage“
| Feld | Typ | Standard | Bedeutung |
|---|---|---|---|
Vorausblick (lookAheadHours) | Zahl | 0 | Zeitraum, für den stündliche Vorhersagen erzeugt werden. 0 bedeutet: keine Vorhersage, nur aktuelle Werte. |
Einheit (lookAheadUnit) | Auswahl Stunden / Tage | Stunden | Einheit des Vorausblicks. Tage werden intern mit 24 multipliziert. |
Spezifische Stationen für Vorhersage verwenden (useForecastStation) | Kontrollkästchen | inaktiv | Aktiviert eine eigene Stationsauswahl für Ausgang 2. |
Auswahl der Vorhersagestationen (forecastStation) | Text, kommagetrennt | leer | Stations-IDs für Ausgang 2. Nur wirksam, wenn das Kontrollkästchen aktiv ist. |
Registerkarte „Erweitert“
| Feld | Typ | Standard | Bedeutung |
|---|---|---|---|
Topic (topic) | Text | leer | Wird in msg.topic beider Ausgänge gesetzt. |
Detaillierte Vorhersageelemente (detailedElements) | Auswahl je Station und Rolle | {} | Zusätzliche MOSMIX-Elemente, die der Ausgabe für eine bestimmte Station angehängt werden. Sie wählen zuerst „Station (weatherObserved)“ oder „Station (weatherForecast)“ und dann die Elemente aus der Liste, die der Node live aus der MOSMIX-Datei liest. Intern als JSON der Form STATION_observed beziehungsweise STATION_forecast → Elementliste gespeichert. |
MOSMIX-URL (mosmixUrl) | Text | DWD-Open-Data-Vorlage, siehe unten | URL-Vorlage für die Stationsdateien. Der Platzhalter {$station} wird durch die Stations-ID ersetzt. |
Katalog-URL (catalogUrl) | Text | DWD-Stationskatalog, siehe unten | Stationskatalog mit Namen und Koordinaten. Wird höchstens alle 24 Stunden neu geladen. |
Standardwerte der beiden URL-Felder:
MOSMIX-URL: https://opendata.dwd.de/weather/local_forecasts/mos/MOSMIX_L/single_stations/{$station}/kml/MOSMIX_L_LATEST_{$station}.kmz
Katalog-URL: https://www.dwd.de/DE/leistungen/met_verfahren_mosmix/mosmix_stationskatalog.cfg?view=nasPublication&nn=16102
MOSMIX_L enthält Vorhersagen für rund zehn Tage. Mit einem Vorausblick von 24 Stunden erzeugt der Node 24 Vorhersageobjekte je Station. Ein zu großer Wert führt zu dem Fehler „Keine Vorhersagen für zukünftige Termine gefunden“.
Eingang
Der Eingang dient als Auslöser. Eine beliebige Nachricht startet den Abruf für alle konfigurierten Stationen. Zusätzlich wertet der Node zwei Eigenschaften im Payload aus.
| Eigenschaft | Typ | Bedeutung |
|---|---|---|
msg.payload | beliebig | Löst den Abruf aus. Ist der Payload kein Objekt, wird er ignoriert. |
msg.payload.action | Text | weatherObserved bedient nur Ausgang 1, weatherForecast nur Ausgang 2. Ohne Angabe werden beide Ausgänge bedient. |
msg.payload.lookAheadHours | Zahl | Überschreibt den konfigurierten Vorausblick für diesen Aufruf, in Stunden. |
Alle übrigen Eigenschaften der Eingangsnachricht werden auf die Ausgangsnachrichten übernommen; msg.topic wird durch das konfigurierte Topic ersetzt.
Ausgang
Für jede Station sendet der Node eine eigene Nachricht. Beide Payloads sind flache Objekte, die sich an das Smart Data Model WeatherObserved beziehungsweise WeatherForecast anlehnen und ohne Umformung an den NGSI-LD Builder übergeben werden können.
Ausgang 1: WeatherObserved
{
"id": "N5227",
"type": "WeatherObserved",
"location": {"type": "Point", "coordinates": [8.6821, 50.1109]},
"atmosphericPressure": 1013.2,
"temperature": 14.6,
"windDirection": 230,
"windSpeed": 3.4,
"relativeHumidity": 0.78,
"precipitation": 0.2,
"precipitationProbability": 0.35,
"observedAt": "2026-10-01T08:00:00.000Z",
"DD": 230,
"TTT": 287.75
}
| Feld | Bedeutung |
|---|---|
id | DWD-Stations-ID. |
type | WeatherObserved. |
location | GeoJSON-Punkt [Länge, Breite] aus dem Stationskatalog. Fehlt die Station im Katalog, steht hier [0, 0]. |
atmosphericPressure | Reduzierter Luftdruck in hPa (MOSMIX PPPP, eine Nachkommastelle). |
temperature | Lufttemperatur 2 m über Grund in °C (MOSMIX TTT, eine Nachkommastelle). |
windDirection | Windrichtung in Grad (MOSMIX DD). |
windSpeed | Windgeschwindigkeit in m/s (MOSMIX FF). |
relativeHumidity | Relative Luftfeuchte als Anteil 0–1, berechnet aus Temperatur und Taupunkt (TTT, Td). |
precipitation | Niederschlag der letzten Stunde in mm (MOSMIX RR1c, kg/m²). Fehlt der Wert, 0. |
precipitationProbability | Niederschlagswahrscheinlichkeit als Anteil 0–1 (MOSMIX wwP). Fehlt der Wert, 0. |
observedAt | Zeitpunkt des Abrufs im ISO-8601-Format. |
| weitere Felder | Unter „Detaillierte Vorhersageelemente“ gewählte MOSMIX-Elemente, benannt nach ihrem Code. Prozentwerte werden als Anteil 0–1 ausgegeben, alle anderen in der MOSMIX-Einheit (zum Beispiel Kelvin für TTT, Pa für PPPP). |
Ausgang 2: WeatherForecast
Der Payload ist ein Array mit einem Objekt je Vorhersagestunde, beginnend eine Stunde nach dem Abruf bis zum Ende des Vorausblicks. Die Felder entsprechen Ausgang 1; statt observedAt enthält jedes Objekt dateIssued mit dem Zeitpunkt, für den die Vorhersage gilt.
[
{
"id": "N5227",
"type": "WeatherForecast",
"location": {"type": "Point", "coordinates": [8.6821, 50.1109]},
"atmosphericPressure": 1012.8,
"temperature": 15.9,
"windDirection": 235,
"windSpeed": 3.9,
"relativeHumidity": 0.71,
"precipitation": 0,
"precipitationProbability": 0.12,
"dateIssued": "2026-10-01T09:00:00.000Z"
}
]
Ist der Vorausblick 0 und wird er nicht über msg.payload.lookAheadHours überschrieben, sendet Ausgang 2 nichts.
Beispiel-Flow
Das Paket bringt einen Beispiel-Flow mit. Sie importieren ihn in Node-RED über Menü → Importieren → Beispiele → @htag/node-red-contrib-hypertegrity-weather → dwd-weather. Alternativ laden Sie die Datei dwd-weather.json herunter und importieren sie über Menü → Importieren.
Inject
Ein Inject-Node löst den Abruf manuell oder in einem festen Intervall aus.
DWD Weather
Der Node lädt die MOSMIX-Datei der Station N5227 und gibt zusätzlich die Elemente DD und TTT aus.
Debug
Zwei Debug-Nodes zeigen WeatherObserved und WeatherForecast in der Seitenleiste an.
Beispiel-Flow als JSON anzeigen
[
{"id": "tab1", "type": "tab", "label": "dwd-weather", "disabled": false, "info": ""},
{"id": "inject1", "type": "inject", "z": "tab1", "name": "", "props": [{"p": "payload"}, {"p": "topic", "vt": "str"}], "repeat": "", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "", "payloadType": "date", "x": 180, "y": 220, "wires": [["dwd1"]]},
{"id": "dwd1", "type": "hypertegrity-dwd-weather", "z": "tab1", "name": "", "mosmixStation": "N5227", "useForecastStation": false, "forecastStation": "", "lookAheadHours": "0", "lookAheadUnit": "hours", "topic": "", "mosmixUrl": "https://opendata.dwd.de/weather/local_forecasts/mos/MOSMIX_L/single_stations/{$station}/kml/MOSMIX_L_LATEST_{$station}.kmz", "catalogUrl": "https://www.dwd.de/DE/leistungen/met_verfahren_mosmix/mosmix_stationskatalog.cfg?view=nasPublication&nn=16102", "detailedElements": "{\"N5227_observed\":[\"DD\",\"TTT\"]}", "x": 380, "y": 220, "wires": [["debug1"], ["debug2"]]},
{"id": "debug1", "type": "debug", "z": "tab1", "name": "WeatherObserved", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "x": 650, "y": 200, "wires": []},
{"id": "debug2", "type": "debug", "z": "tab1", "name": "WeatherForecast", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "x": 650, "y": 240, "wires": []}
]
Im Beispiel ist der Vorausblick 0; Ausgang 2 bleibt daher leer, bis Sie einen Vorausblick eintragen.
Status und Fehler
Nach einem erfolgreichen Abruf wird die Statusanzeige geleert.
| Anzeige | Bedeutung |
|---|---|
| Roter Ring „Download fehlgeschlagen“ | Die KMZ-Datei konnte nicht entpackt werden. |
| Roter Ring „Parsing fehlgeschlagen“ | Die enthaltene KML-Datei ist kein gültiges XML. |
| Roter Ring „HTTP-Anfrage fehlgeschlagen“ | Der DWD-Server antwortete mit einem Fehler oder war nicht erreichbar. |
| Warnung „MOSMIX-Anfrage für … fehlgeschlagen: …“ | Der Abruf einer Station ist gescheitert. Bei HTTP 404 lautet die Ursache „MOSMIX lieferte keine Daten (404) für …“; prüfen Sie die Stations-ID. Die übrigen Stationen werden weiter verarbeitet. |
| Fehler „Wetterdaten für … konnten nicht erstellt werden: …“ | Die Werte konnten nicht berechnet werden, zum Beispiel „Keine Vorhersagen für zukünftige Termine gefunden“, wenn die Datei zu alt oder der Vorausblick zu groß ist. |
Warnungen erscheinen über node.warn in der Debug-Seitenleiste; Fehler werden über node.error gemeldet und können mit einem Catch-Node abgefangen werden. Im Bearbeitungsdialog melden Hinweise wie „DWD-Stationen konnten nicht geladen werden“ oder „Standort nicht gefunden“ Probleme der Kartenoberfläche.
Hinweise
- Nutzungsbedingungen: Die MOSMIX-Daten stehen unter der Datenlizenz Deutschland – Namensnennung – Version 2.0 (DL-DE/BY-2-0). Nennen Sie den DWD als Quelle, wenn Sie die Daten veröffentlichen.
- Abrufhäufigkeit: Je Station und Auslösung wird eine KMZ-Datei von typischerweise mehreren hundert Kilobyte geladen. Ein Intervall von 60 Minuten reicht aus, da der DWD die Dateien stündlich aktualisiert.
- Kein API-Schlüssel nötig: DWD Open Data ist frei zugänglich. Ein Proxy wird nicht gesondert konfiguriert;
axiosbeachtet die UmgebungsvariablenHTTP_PROXYundHTTPS_PROXY. - Kontextspeicher: Der Node hält Vorhersagedaten und Stationskatalog nur im Arbeitsspeicher. Nach einem Neustart oder Deploy werden sie neu geladen.
- Einheiten: Alle Hauptfelder sind metrisch (°C, hPa, m/s, mm). Zusätzliche MOSMIX-Elemente behalten ihre Originaleinheit, Temperaturen also Kelvin. Eine Übersicht der Elemente bietet die MOSMIX-Elementdefinition des DWD.
- Externe Dienste im Editor: Die Kartenansicht lädt Kacheln von OpenStreetMap und nutzt Nominatim für die Adresssuche. Der Browser, in dem Sie den Node-RED-Editor öffnen, benötigt dafür Internetzugang.
- Personenbezogene Daten: Die Ausgabe enthält nur Stationskennungen, Koordinaten und Wetterwerte.