Bundes-API Warntag

Anbetracht des gerade eingelaufenen Test-Alarms kam mir erneut die Frage auf, wie man auf tatsächliche Alarma mit IP-Symcon reagieren könnte. z.B. bei einer drohenden Gefahr die Rollläden öffnen, bevor der Strom ausfällt, die Kellerfenster schließen (alarmieren) bevor die Sturmflut kommt, o.ä.

Hat die offiziellen Schnittstellen (wenn es denn welche gibt) schonmal jemand abgefragt und weiß wie/wo das geht?

3 „Gefällt mir“

Es gibt eine umfangreiche API.
https://nina.api.bund.dev/

Cool. Hab ich mir gleich mal angesehen. Die Frage war ja eigentlich, ob das schonmal jemand hat. Oder ggf. auch, ob bedarf besteht und man sich mal an ein Modul setzen sollte.

Wie oft fragt man diese APIs ab? Ich kann ja nicht alle 20 Sekunden einen Request sezten, nur damit ich im Warnfall auch wirklich eine Info bekomme.

Oh ja. Dafür ein Modul wäre sehr gut.
Eine tolle Idee und ein echter Mehrwert für IPS.

Leider habe ich keine Ahnung von PHP etc.
Sonst würde ich gern unterstützen.

1 „Gefällt mir“

Ich hatte damit vor längerer Zeit mal experimentiert, da ich meine Lüftungsanlage automatisch abschalten wollte, wenn die Warnung kommt, Fenster und Türen geschlossen zu halten. Habe es aufgegeben. Weiß allerdings heute nicht mehr, warum.

Ich hatte damit auch schon mal geliebäugelt und experimentiert. Da ich beruflich bedingt normalerweise auch auf der anderen Seite sitze und solche Warnungen auslöse. :man_firefighter:
Folgenden Code habe ich dazu erstellt:

<?php
$ch = curl_init();

$Bund=GetValueInteger(52595);
$Bund = str_pad($Bund, 2, '0', STR_PAD_LEFT);
$Bezirk=GetValueInteger(18632);
$Kreis=GetValueInteger(50912);
$Kreis = str_pad($Kreis, 2, '0', STR_PAD_LEFT);

$url='https://nina.api.proxy.bund.dev/api31/dashboard/'.$Bund.$Bezirk.$Kreis.'0000000.json';

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');


$headers = array();
$headers[] = 'Accept: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
}
curl_close($ch);

VIO_PushText(33853, $result);

Das funktioniert so. Aber man müsste eben zyklisch abfragen. Zumindest ist das mein know how. Soweit ich weiß, gibt es da keinen push wie in der Warn-App NINA. Das wäre natürlich schöner.

Aber die Daten in der JSON sind durchaus dann sehr umfangreich.

Fragst du das dann zyklisch ab? Wenn ja in welchem Intervall? Wonach filtest du dann später um dich zu Benachrichtigen?

Ich frage es nicht zyklisch ab. Das Skript ist nur ein Test, ob und wie es funktioniert.
Man müsste es also zyklisch jede Minute oder aller 5 Minuten abfragen. Zumindest weiß ich keine andere Möglichkeit.