NINA API


Das Modulare Warnsystem (MoWaS) ist das vom Bundesamt für Bevölkerungsschutz und Katastrophenhilfe (BBK) entwickelte System zur Warnung der Bevölkerung. Die über MoWaS versendeten Meldungen sind nicht öffentlich. Die API, über die die NINA-Warnapp die eigenen Daten bezieht, kann man allerdings problemlos abfragen. Die API ist nicht öffentlich, aber durch das zivilgesellschaftliche Projekt bund.dev dokumentiert.

Einzelne Meldungen werden vom BBK im Common Alerting Protocol v1.2-Format  1Organization for the Advancement of Structured Information Standards (2010). Common Alerting Protocol Version 1.2. https://docs.oasis-open.org/emergency/cap/v1.2/CAP-v1.2-os.html (CAP v1.2) als JSON zurückgegeben. Listen von Meldungen werden in einem an das CAP-Format angelehnten Format zurückgegeben.

Die API hat einen Endpunkt, um eine Liste an Meldungen für einen Landkreis abzufragen, fünf Endpunkte, um Meldungslisten von den angebundenen Diensten (BIWAPP, DWD, KATWARN, LHP, MoWaS) abzufragen, und einen Endpunkt, um einzelne Meldungen abzufragen.

Liste der Meldungen nach Dienst


Eine Liste von Meldungen kann man je nach Dienst von den folgenden URLs abfragen:

https://warnung.bund.de/api31/biwapp/mapData.json
https://warnung.bund.de/api31/dwd/mapData.json
https://warnung.bund.de/api31/katwarn/mapData.json
https://warnung.bund.de/api31/lhp/mapData.json
https://warnung.bund.de/api31/mowas/mapData.json

Die Antwort für die Listen von Meldungen der fünf Dienste ist wie folgt:

[
   {
      "id": "mow.DE-TH-G-W109-20240628-001",
      "version": 5,
      "startDate": "2024-06-28T19:43:20+02:00",
      "expiresDate": "2024-06-29T01:43:20+02:00",
      "severity": "Minor",
      "urgency": "Immediate",
      "type": "Cancel",
      "i18nTitle":{
         "de": "Entwarnung: Gefahr durch Rauchentwicklung - Fichtenhainichen"
      },
      "transKeys":{
         "event": "BBK-EVC-010"
      }
   }
]

Das Format ist selbsterklärend (version scheint MoWaS-intern zu sein). In anderen Meldungen, beispielsweise standardmäßig bei DWD-Warnungen, enthält i18nTitle mehr Einträge.

Die Felder Severity, Urgency und Type stammen aus CAP v1.2.

Severity

Severity beschreibt die Intensität der Auswirkungen. Es gibt folgende Stufen:

CAP v1.2StufeMoWaSDWDLHP
Extreme1Extreme GefahrExtreme UnwetterwarnungSehr großes Hochwasser
Severe2GefahrUnwetterwarnungGroßes Hochwasser
Moderate3Gefahren­mitteilungMarkante WetterwarnungMittleres Hochwasser
Minor4Gefahren­informationWetterwarnungKleines Hochwasser
Unknown

Unknown wird bei Entwarnungen benutzt. In der NINA App scheinen Moderate und Minor zusammengefasst zu werden.

Urgency

Urgency beschreibt die zur Vorbereitung verfügbare Zeit. CAP beschreibt die fünf Werte Immediate, Expected, Future, Past, Unknown.

Der DWD nutzt Future für Vorherwarnungen. Aktuelle Warnungen werden mit Immediate gekennzeichnet.

Type (CAP: MsgType)

Type heißt in CAP MsgType und kann die Werte Alert, Update, Cancel, Ack und Error annehmen. Alert, Update und Cancel werden zum Melden, Aktualisieren einer Warnung, und zum Entwarnen benutzt. Ack und Cancel werden beim Austausch von Cell Broadcast Nachrichten verwendet  2Bundesnetzagentur für Elektrizität, Gas, Telekommunikation, Post und Eisenbahnen (2022). Technische Richtlinie DE-Alert (S. 21). https://www.bundesnetzagentur.de/SharedDocs/Downloads/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Anbieterpflichten/OeffentlicheSicherheit/DEAlert/Downlaod_TR-DE-Alert_1.1_Final.pdf?__blob=publicationFile&v=2.

transKeys

transKeys ist ein nicht-standardisiertes Array. Es enthält Key-Value-Paare. Beim Schlüssel event sind ein oder mehrere Eventcodes hinterlegt. Ein zum Eventcode passendes Bild kann heruntergeladen werden: https://warnung.bund.de/api31/appdata/gsb/eventCodes/[EventCode].png

Liste der Meldungen nach Region


Die Antwort für eine Region fällt schon etwas größer aus. Mit einem Amtlichen Regionalschlüssel kann eine Liste von Meldungen für eine bestimmte Region unter folgender URL abgerufen werden: https://warnung.bund.de/api31/dashboard/[ARS-Schlüssel]0000000.json. Die Daten sind nur auf Kreis-Ebene verfügbar, daher bleiben die letzten sieben Ziffern auf null.

[
  {
    "id": "mow.DE-TH-G-W109-20240628-001",
    "payload": {
      "version": 5,
      "type": "ALERT",
      "id": "mow.DE-TH-G-W109-20240628-001",
      "hash": "c67f714afd82e9417571e51bdbe0b171e37da292cf26118203714951538b0d29",
      "data": {
        "headline": "Entwarnung: Gefahr durch Rauchentwicklung - Fichtenhainichen",
        "provider": "MOWAS",
        "severity": "Minor",
        "urgency": "Immediate",
        "msgType": "Cancel",
        "transKeys": {
          "event": "BBK-EVC-010"
        },
        "area": {
          "type": "GRID",
          "data": "245634+3,246245+7,246858+8,247470+9,248083+9,248696+9,249309+9,249923+8,250536+7,251151+3,500001"
        },
        "valid": true
      }
    },
    "i18nTitle": {
      "de": "Entwarnung: Gefahr durch Rauchentwicklung - Fichtenhainichen"
    },
    "sent": "2024-06-28T19:43:20+02:00",
    "expires": "2024-06-29T01:43:20+02:00"
  }
]

Dazugekommen ist der provider, area, und valid. Bei valid weiß ich nicht was es heißt, da ich es noch nie auf false gesehen habe. Area ist von CAP übernommen.

Area

type beschreibt um welche Art von Kartendaten es sich handelt. data enthält die Kartendaten. Diese Daten lehnen sich am CAP-Format an. Das CAP area Feld wird unter Einzelne Meldungen noch einmal genauer beschrieben.

Einzelne Meldungen


Abschließend gibt es noch die einzelnen Meldungen, die man über https://warnung.bund.de/api31/warnings/[ID].json abrufen kann.

{
  "identifier": "mow.DE-TH-G-W109-20240628-001",
  "sender": "DE-TH-G-W109",
  "sent": "2024-06-28T19:43:20+02:00",
  "status": "Actual",
  "msgType": "Cancel",
  "scope": "Public",
  "code": [
    "DVN:5"
  ],
  "references": "DE-TH-G-W109,mow.DE-TH-G-W109-20240628-000,2024-06-28T00:00:00+00:00",
  "info": [
    {
      "language": "DE",
      "category": [
        "Fire"
      ],
      "event": "Gefahreninformation",
      "urgency": "Immediate",
      "severity": "Minor",
      "certainty": "Observed",
      "eventCode": [
        {
          "valueName": "profile:DE-BBK-EVENTCODE",
          "value": "BBK-EVC-010"
        }
      ],
      "expires": "2024-06-29T01:43:20+02:00",
      "headline": "Entwarnung: Gefahr durch Rauchentwicklung - Fichtenhainichen",
      "description": "Dies ist die Entwarnung zur Warnung \"Gefahr durch Rauchentwicklung - Fichtenhainichen\" vom 28.06.2024 09:34:12 gesendet durch LS Gera vS/E, Kreis (DEU, TH). Die Warnung ist aufgehoben.<br/><br/>Im Landkreis Altenburger Land ist es im Bereich Fichtenhainichen zu einem Brand von Strohballen gekommen. Dabei kommt es zu einer  Rauchentwicklung.<br/><br/>Die Feuerwehr ist im Einsatz!",
      "instruction": "Meiden Sie das betroffene Gebiet.<br/>Schließen Sie Fenster und Türen und schalten Sie Lüftungen und Klimaanlagen ab.",
      "contact": "Zentrale Leitstelle Gera<br/>Berliner Straße 153<br/>07546 Gera<br/>+49 365 838939 100",
      "parameter": [
        {
          "valueName": "warnVerwaltungsbereiche",
          "value": "160770001001,160770032032,160775004007,160775004048,160775004052,160775005008,160775005022,160775005027,160775005034,160775005042,160775005044"
        },
        {
          "valueName": "instructionCode",
          "value": "BBK-ISC-001 BBK-ISC-087"
        },
        {
          "valueName": "sender_langname",
          "value": "Zentrale Leitstelle Gera"
        },
        {
          "valueName": "sender_signature",
          "value": "Zentrale Leitstelle Gera\nBerliner Straße 153\n07546 Gera"
        },
        {
          "valueName": "PHGEM",
          "value": "7071+3,7076+3,7081,7083,100001"
        },
        {
          "valueName": "GRID",
          "value": "245634+3,246245+7,246858+8,247470+9,248083+9,248696+9,249309+9,249923+8,250536+7,251151+3,500001"
        },
        {
          "valueName": "cellBroadcastId",
          "value": "rTycrYoBra9j"
        }
      ],
      "area": [
        {
          "areaDesc": "Fichtenhainichen",
          "geocode": [
            {
              "valueName": "AreaId",
              "value": "0"
            }
          ]
        }
      ]
    }
  ]
}

Für jede Meldung kann auch eine Historie unter https://warnung.bund.de/api31/archive.mowas/[ID].json abgerufen werden.

{
  "history": [
    {
      "identifier": "mow.DE-TH-G-W109-20240628-000_20240628093416.json",
      "msgType": "ALERT",
      "sent": "2024-06-28T09:34:16+02:00",
      "headline": "Gefahr durch Rauchentwicklung - Fichtenhainichen"
    },
    {
      "identifier": "mow.DE-TH-G-W109-20240628-001_20240628194320.json",
      "msgType": "CANCEL",
      "sent": "2024-06-28T19:43:20+02:00",
      "headline": "Entwarnung: Gefahr durch Rauchentwicklung - Fichtenhainichen"
    }
  ]
}

Die früheren Meldungen lassen sich vollständig abrufen. Die Abfrage geht über https://warnung.bund.de/api31/archive.mowas/[ID+Date].json. Das Format von ID+Date ist [ID]_[YYYYMMDDHHMMSS].

References

Ist die Meldung ein Update oder eine Entwarnung kann mit Reference Bezug auf frühere Warnungen genommen werden. Die Abfrage geht wieder über https://warnung.bund.de/api31/archive.mowas/[ID+Date].json.

Info

Info ist ein Array, das prinzipiell mehrere, von einander unabhängige Warnungen umfassen kann. Der einzige Dienst, der aktuell mehr als ein info-Objekt enthält ist der DWD, der seine Meldungen in mehreren Sprachen aussendet (ein info-Objekt pro Sprache).

Category

Die Kategorie beschreibt, um welche Art von Ereignis es sich handelt. CAP definiert 12 Kategorien wie Geo (geologisch, z.B. Erdrutsch), Met (meteorologisch, z.B. Überflutung), oder Fire (Feuer). Die Kategorien sind sehr grob und werden durch die Eventcodes weiter spezifiziert.

Event

Event lässt sich leider nur mäßig nutzen. Prinzipiell wird der Typ des Events hier laut CAP lesbar beschrieben. MoWaS und DWD beschreiben das Event auch gut, das LHP beschreibt das Event leider nur auf English und BIWAPP hat eine Zahl im Feld.

EventCode

Durch die EventCodes wird die Kategorie weiter spezifiziert. Eine Liste findet sich hier. Ein zum Eventcode passendes Bild kann heruntergeladen werden: https://warnung.bund.de/api31/appdata/gsb/eventCodes/[EventCode].png

Status

Status beschreibt den Status der Meldung. Durch die Änderung dieses Felds in test werden Test-Warnungen versendet.

Code

Wird unterschiedlich verwendet. DVN:5 scheint wieder für die Version zu stehen.

Der DWD verwendet bringt hier zusätzliche Informationen unter. code kann SILENT_UPDATE annehmen, wenn sich das Gebiet unter area ändert, PARTIAL_CLEAR für Teilaufhebungen, und einen id-String als Sprachunabhängigen Bezeichner einer Warnung.  3Deutscher Wetterdienst (2023). CAP DWD Profil zum Common Alerting Protocol v1.2. https://www.dwd.de/DE/leistungen/opendata/help/warnungen/cap_dwd_profile_de_pdf_2_1_14.pdf?__blob=publicationFile&v=2

Parameter

Dieses Feld ist ein Array von Key-Value Paaren. Hier können zusätzliche Informationen untergebracht werden. Mit dem Schlüssel instructionCode sind Instruction Codes verbunden, die standardisierte Handlungsempfehlungen enthalten.

Area

Area kann hier mehrere Elemente enthalten. areaDesc beschreibt den Ort der Meldung. geocode ist ein Array von Key-Value-Paaren, dessen Schlüssel zur Beschreibung des Ortsformats dient, und der Wert die Beschreibung des Orts im angegebenen Format ist. Auch möglich ist polygon, dessen Wert Koordinatenpaare enthält, die ein Polygon darstellen. Das erst und letzte Paar muss gleich sein.

Weitere Werte finden sich in CAP.  1Organization for the Advancement of Structured Information Standards (2010). Common Alerting Protocol Version 1.2. https://docs.oasis-open.org/emergency/cap/v1.2/CAP-v1.2-os.html