DWD Wetterwarnungen via APRX ausgeben

Einführung

Ich habe ein kleines Script geschrieben, welches Textdateien erstellt, die APRX als Baken aussenden kann. In APRX fügt man in der Konfiguration die erstellten Textdateien hinzu. In meinem Fall sind die Wetterbaken ein extra Zyklus. Das habe ich mit mit folgender Einstellung in der /etc/aprx.conf in einem beacon-Tag erledigt:

cycle-size 30m
beaconmode radio
beacon via WIDE1-1 \
file /var/www/html/dwd_warn/dwd_gth
beacon via WIDE1-1 \
file /var/www/html/dwd_warn/dwd_wak
beacon via WIDE1-1 \
file /var/www/html/dwd_warn/dwd_uh
beacon via WIDE1-1 \
file /var/www/html/dwd_warn/dwd_sm
beacon via WIDE1-1,WIDE2-1 \
file /var/www/html/dwd_warn/dwd_thr

Das Script

Hier ist das Script: DWD_Get_Warn

Das Script holt sich vom DWD-GS-FTP-Server die Aktuellen Warnhinweise, der in der Konfiguration hinterlegten Landkreise. In der im Verzeichnis (auf dem FTP-Server) ftp-outgoing2.dwd.de/gds/specials/alerts/sms/LZ/ hinterlegten Mitteilungen kann man sich seinen Landkreis heraus suchen. Dort findet man auch den Suchstring, welchen man in der Konfiguration unter z.B. $gth_rgx hinterlegt. Ich habe mir für eine bessere Übersichtlichkeit die Variablen noch nach Landkreisen benannt.

Heißt die Datei auf dem Server zum Besipiel HPLZ65_DDXX_282228, dann wäre DDXX der im Script zu hinterlegende Suchstring. Dieser würde dann die Warnwetterdaten für Dresden (DD) liefern.

Das Script holt sich die Dateien vom Server, speichert diese unter dem angegebenen Pfad und bearbeitet diese dann. Es kürzt die Texte zusammen und speichert die Dateien wieder zurück.

Die Variablen

$gth_datei = "/var/www/html/dwd_warn/dwd_gth";
$gth_rgx = "/(GTHX)/";
$gth_bln = "BLN1WXGTH";
$gth_lk = "Kreis Gotha";

$gth_datei gibt den Namen und den absoluten Pfad zu der Datei an, die nach Verarbeitung von APRX ausgesendet werden soll. Das ist auch der Name, unter dem die herunter geladene Datei gespeichert wird.

$gth_rgx ist der Reguläre Ausdruck, über den gesucht wird. Hier einfach die 4 Zeichen aus der Mitte der auf dem DWD-FTP-Server hinterlegten Datei angeben. Für HPLZ65_DDXX_282228 wäre das /(DDXX)/.

$gth_bln ist das APRS-Bulletin. https://de.aprs.fi/bulletin/ in das gesendet wird. Ein Bulletin ist eine Art schwarzes Brett.

$gth_lk Ist die Bezeichnung, die dann als Landreisbezeichnung in der Aussendung hinterlegt wird.

Ziel für die Dateien

Für eine bessere Übersichtlichkeit habe ich mir den Ordner dwd_warn in /var/www/html erstellt, und dem Webserver Schreibrechte gegeben. Dort werden die erstellten Datein abgelegt:
sudo chown www-data.www-data dwd_warn/

Cronjob zur periodischen Ausführung des Scriptes

Wenn man nicht alle paar Minuten von Hand das Script aufrufen möchte, sondern alle paar Minuten das Script automatisch ausgeführt werden soll, dann sollte man sich einen Cronjob einrichten. Dieser holt z.B. alle 5 Minuten die Warndaten vom DWD-Server, indem er das Script ausführt. Wichtig ist, dass der User www-data das Script ausführt, damit alle Rechte gewahrt bleiben:
sudo crontab -e -u www-data

Und dort folgende Zeile hinzufügen:
*/5 * * * * php /var/www/html/dwd_get_warn.php

Funktion aufrufen

Weiter unten im Script kann man die Funktion warnung_extract() für beliebig viele Landkreise aufrufen. Dieser Funktion werden dann die jeweiligen Variablen mit übergeben. Als für den Kreis Gotha zum Besipiel die oben festgelegten Parameter:
warnung_extract($gth_rgx, $gth_datei, $gth_bln, $gth_lk, $buff, $conn_id);

Bei Fragen/Problemen/Anregungen bitte Mail an dl2ajb(at)gmx.net