Zum Hauptinhalt springen
Data Connectors · Wetter

DWD Weather Warnings

Der Node lädt die aktuellen Gemeindewarnungen des Deutschen Wetterdienstes (DWD), ordnet sie den von Ihnen überwachten Orten zu und gibt jede zutreffende Warnung als flaches WeatherAlert-Objekt mit vereinfachtem Warnpolygon aus. Orte legen Sie als Koordinaten oder als DWD-Warnzellen (Landkreise, Gemeinden) fest.

  • Datenquelle
  • Triggerbasiert
  • WeatherAlert
Node-Typ
hypertegrity-dwd-weatherwarnings
Paket
@htag/node-red-contrib-hypertegrity-weather
Eingänge / Ausgänge
1 / 1
Datenquelle
DWD WarnWetter-Daten (gemeinde_warnings.json, warnings.json) und DWD-GeoServer

Wofür Sie den Node verwenden​

Der DWD veröffentlicht amtliche Warnungen vor Unwetter, Glätte, Hitze oder Nebel für jede Gemeinde und jeden Landkreis. Der DWD-Weather-Warnings-Node filtert aus dem bundesweiten Datensatz genau die Warnungen heraus, die Ihre Orte betreffen, und bringt sie in ein einheitliches Format. Dabei nutzt er die hochauflösenden Warnzellengeometrien des DWD, um Punkte zuverlässig einem Landkreis oder einer Gemeinde zuzuordnen.

Typische Einsatzfälle sind:

  • Warnlagen anzeigen auf einem kommunalen Dashboard oder in einer Bürger-App.
  • Alarmketten auslösen für Bauhof, Winterdienst oder Veranstaltungsmanagement.
  • Warnungen archivieren in einem NGSI-LD Context Broker als WeatherAlert-Entitäten.
  • Mehrere Orte überwachen, zum Beispiel alle Gemeinden eines Landkreises oder einzelne Liegenschaften.

So funktioniert der Node​

1

Auslösen

Eine eingehende Nachricht startet den Abruf. Der Inhalt der Nachricht wird nicht ausgewertet.

2

Abrufen

Der Node lädt die Zuordnung Warnzelle → Warnung (warnings.json) und die Warnungsdetails (gemeinde_warnings.json). Warnzellengeometrien werden einmal täglich vom DWD-GeoServer geladen.

3

Zuordnen

Jede Warnung wird mit allen Orten verglichen: Warnzellen per ID oder Flächenschnitt, Koordinaten per Punkt-in-Polygon-Test. Überlappende Treffer werden auf die größte Fläche reduziert.

4

Ausgeben

Jede zutreffende Warnung verlässt den Node als eigene Nachricht mit einem WeatherAlert-Objekt und vereinfachtem Polygon.

Ergebnis: Ein Strom einzelner WeatherAlert-Objekte mit Join-Metadaten, der direkt in den NGSI-LD Builder oder einen Join-Node geführt werden kann.

Der Node ist triggerbasiert. Verbinden Sie ihn mit einem Inject-Node, der zum Beispiel alle 15 Minuten auslöst. Bei jedem Durchlauf werden alle aktuell gültigen Warnungen erneut ausgegeben; eine Duplikaterkennung über mehrere Abrufe hinweg findet nicht statt.

Treffen mehrere Orte dieselbe Warnung, gilt die Regel „größte Fläche gewinnt“: Liegt eine Gemeinde innerhalb eines ebenfalls überwachten Landkreises, wird die Warnung nur einmal für den Landkreis ausgegeben. Orte ohne gemeinsame Fläche erhalten jeweils eine eigene Nachricht.

Konfiguration​

Der Bearbeitungsdialog besteht aus dem Feld Name und zwei Registerkarten.

Registerkarte „Orte“​

Hier verwalten Sie die Liste der überwachten Orte (locations). Jeder Eintrag hat einen Namen, einen Typ und einen Wert.

FeldTypStandardBedeutung
NameTextDWD WeatherAlertAnzeigename des Nodes im Flow.
KartenauswahlKarte–Ein Klick auf die Karte setzt einen Punkt. Der Node ermittelt sofort die Warnzellen an dieser Stelle und bietet sie mit „Add as Area“ zur Übernahme an. „Punkt hinzufügen“ übernimmt stattdessen die Koordinate selbst.
Ausgewählte Orte (locations)ListeleerEinträge vom Typ coord (Breite/Länge) oder warncell (DWD-Warnzellen-ID). Der Name jedes Eintrags erscheint später im Feld locationName der Ausgabe.
Warnzelle hinzufügenSuchfeld–Sucht ab zwei Zeichen in der Warnzellenliste des DWD nach Name oder ID. Mit „Hinzufügen“ oder Enter übernehmen Sie auch eine direkt eingetippte ID.
Manuelle KoordinatenBreitengrad, Längengrad, Name–Fügt einen Punkt per Hand hinzu, zum Beispiel 49.44, 7.77.

Registerkarte „Einstellungen“​

FeldTypStandardBedeutung
Historie (ignoreExpired)KontrollkästchenaktivAbgelaufene Warnungen ignorieren.
Zukunft (ignoreFuture)KontrollkästcheninaktivWarnungen ignorieren, die erst in der Zukunft beginnen (Vorabinformationen).
Veraltete Daten (staleAllow)KontrollkästcheninaktivZuletzt erfolgreich geladene Daten verwenden, wenn der DWD nicht erreichbar ist. Ausgaben werden dann mit msg.isStale = true markiert.
Max. Punktanzahl (maxPoints)Zahl30Höchstzahl der Eckpunkte des ausgegebenen Polygons. Größere Polygone werden nach Visvalingam-Whyatt vereinfacht.
JSON URL (url)Textsiehe untenQuelle der Warnungsdetails. Die Zuordnungsdatei warnings.json wird aus demselben Verzeichnis geladen.

Standardwerte der URL-Felder:

JSON URL: https://app-prod-static.warnwetter.de/v16/gemeinde_warnings.json

Die Felder latitude, longitude und warncellId älterer Versionen werden beim Start automatisch in die Ortsliste übernommen und nicht mehr im Dialog angezeigt.

Eingang​

Der Eingang dient ausschließlich als Auslöser. Der Node wertet keine Eigenschaft der Eingangsnachricht aus und übernimmt sie auch nicht in die Ausgabe.

EigenschaftTypBedeutung
msgbeliebigJede Nachricht startet einen vollständigen Abruf und Abgleich.

Ausgang​

Für jede zutreffende Warnung sendet der Node eine eigene Nachricht. Der Payload ist ein flaches Objekt, das sich am Smart Data Model WeatherAlert orientiert und ohne Umformung an den NGSI-LD Builder übergeben werden kann.

{
"id": "2.49.0.0.276.0.DWD.PVW.1759305600000_123456",
"type": "WeatherAlert",
"dateIssued": "2026-10-01T08:15:00.000Z",
"validFrom": "2026-10-01T06:00:00.000Z",
"validTo": "2026-10-01T18:00:00.000Z",
"severity": "moderate",
"category": "weather",
"subCategory": "wind",
"alertSource": "https://www.dwd.de",
"name": "Amtliche WARNUNG vor WINDBÖEN",
"description": "Es treten Windböen mit Geschwindigkeiten um 60 km/h, 17 m/s, 7 Bft, aus südwestlicher Richtung auf.",
"instruction": "",
"location": {"type": "Polygon", "coordinates": [[[7.62, 49.38], [7.91, 49.39], [7.89, 49.52], [7.62, 49.38]]]},
"locationName": "Beispielstadt"
}
FeldBedeutung
idDie letzten beiden Teile der DWD-Warn-ID, durch _ verbunden.
typeImmer WeatherAlert.
dateIssuedZeitpunkt des Abrufs im ISO-8601-Format.
validFrom, validToBeginn und Ende der Warnung laut DWD. Fehlt ein Wert, wird der Abrufzeitpunkt eingesetzt.
severityDWD-Warnstufe 1–4 als minor, moderate, severe oder extreme.
categoryImmer weather.
subCategoryAus dem DWD-Ereignis abgeleitet: fog, ice, frost, forestFire, thunderstorm, wind, rainfall, snow, heatWave, coldWave, flood oder other.
alertSourceImmer https://www.dwd.de.
nameSchlagzeile der Warnung. Klammern werden durch Kommas, Semikolons durch Punkte ersetzt.
descriptionWarntext, gleich bereinigt.
instructionVerhaltenshinweise des DWD, gleich bereinigt.
locationGeoJSON-Polygon der betroffenen Warnzelle, auf höchstens „Max. Punktanzahl“ Eckpunkte vereinfacht. Liegt keine Warnzellengeometrie vor, wird das Warngebiet des DWD verwendet.
locationNameDer von Ihnen vergebene Name des betroffenen Ortes.

Zusätzlich setzt der Node auf jeder Nachricht:

EigenschaftBedeutung
msg.partsJoin-Metadaten (id, index, count, type: "array", key: "payload"), damit ein Join-Node alle Warnungen eines Durchlaufs wieder zu einem Array zusammenfassen kann.
msg.isStaletrue, wenn die Daten aus dem Zwischenspeicher stammen, weil der DWD nicht erreichbar war.

Liegen keine zutreffenden Warnungen vor, sendet der Node keine Nachricht.

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-weatherwarnings. Alternativ laden Sie die Datei dwd-weatherwarnings.json herunter und importieren sie über Menü → Importieren.

Schritt 1

Inject

Ein Inject-Node löst den Abruf alle 15 Minuten aus.

Schritt 2

DWD WeatherAlert

Der Node gleicht die aktuellen Warnungen mit den konfigurierten Orten ab. Im Beispiel ist die Ortsliste leer und muss ergänzt werden.

Schritt 3

Debug

Der Debug-Node ist im Beispiel deaktiviert. Nach dem Aktivieren zeigt er die WeatherAlert-Objekte in der Seitenleiste an.

Beispiel-Flow als JSON anzeigen
[
{"id": "tab1", "type": "tab", "label": "dwd-weatherwarnings", "disabled": false, "info": ""},
{"id": "inject1", "type": "inject", "z": "tab1", "name": "alle 15 min", "props": [{"p": "payload"}, {"p": "topic", "vt": "str"}], "repeat": "900", "crontab": "", "once": false, "onceDelay": 0.1, "topic": "", "payload": "", "payloadType": "date", "x": 150, "y": 120, "wires": [["warn1"]]},
{"id": "warn1", "type": "hypertegrity-dwd-weatherwarnings", "z": "tab1", "name": "DWD WeatherAlert", "ignoreExpired": true, "ignoreFuture": false, "staleAllow": false, "maxPoints": 30, "url": "https://app-prod-static.warnwetter.de/v16/gemeinde_warnings.json", "locations": [], "latitude": "", "longitude": "", "warncellId": "", "x": 390, "y": 120, "wires": [["debug1"]]},
{"id": "debug1", "type": "debug", "z": "tab1", "name": "WeatherWarnings", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "x": 690, "y": 120, "wires": []}
]

Status und Fehler​

AnzeigeBedeutung
Blauer Punkt „Rufe ab…“Der Abruf läuft.
Grüner Punkt „Active: n“n Warnungen wurden ausgegeben.
Gelber Punkt „Stale: n“n Warnungen wurden aus dem Zwischenspeicher ausgegeben, weil der DWD nicht erreichbar war.
Grüner Ring „Keine Warnungen“Für die konfigurierten Orte liegt keine zutreffende Warnung vor.
Roter Ring „API Fehler“Die Warnungsdetails konnten nicht geladen werden und es gab keinen Zwischenspeicher. Zusätzlich wird der Fehler „DWD Abruf Fehler: …“ gemeldet.
Roter Ring „Verarbeitungsfehler“Beim Abgleich ist ein Fehler aufgetreten; Details liefert „DWD Verarbeitungsfehler: …“.
Warnung „DWD Mapping Abruf fehlgeschlagen, nutze Fallback.“Die Zuordnungsdatei warnings.json war nicht erreichbar.
Warnung „DWD API nicht erreichbar. Nutze veraltete Daten.“Die Warnungsdetails waren nicht erreichbar; der Zwischenspeicher wird verwendet.

Fehler werden über node.error gemeldet und können mit einem Catch-Node abgefangen werden. Die Timeouts betragen 10 Sekunden für die Warnungsdateien und 30 Sekunden für die Geometrien.

Hinweise​

  • Nutzungsbedingungen: Die Warnungen und Geometrien stammen aus dem Open-Data-Angebot des DWD und stehen unter der Datenlizenz Deutschland – Namensnennung – Version 2.0 (DL-DE/BY-2-0). Die Adresse app-prod-static.warnwetter.de ist das Datenverzeichnis der WarnWetter-App. Ein API-Schlüssel ist nicht erforderlich.
  • Datenvolumen: Beim ersten Abruf nach einem Start lädt der Node die Warnzellengeometrien aller Gemeinden und Landkreise vom DWD-GeoServer (mehrere Megabyte) und hält sie 24 Stunden im Arbeitsspeicher. Die Warnzellenliste für die Suche im Editor wird ebenfalls 24 Stunden zwischengespeichert.
  • Kontextspeicher: Zwischenspeicher für veraltete Daten und Geometrien liegen nur im Arbeitsspeicher und gehen bei Neustart oder Deploy verloren.
  • Proxy: Es gibt keine eigene Proxy-Einstellung; axios beachtet die Umgebungsvariablen HTTP_PROXY und HTTPS_PROXY.
  • Externe Dienste im Editor: Die Karte lädt Kacheln von OpenStreetMap; die Warnzellensuche und die Geometrien laufen über das Node-RED-Backend.
  • Personenbezogene Daten: Die Ausgabe enthält Warntexte, Polygone und die von Ihnen vergebenen Ortsnamen. Vergeben Sie keine Namen von Privatpersonen oder private Adressen als Ortsnamen, wenn die Daten veröffentlicht werden.
  • Einheiten: Warntexte des DWD nennen Geschwindigkeiten in km/h, m/s und Beaufort sowie Niederschlagsmengen in l/m² (entspricht mm).

Weiterführende Themen​

Referenzen​