Wetter-Warnungen

SvxLink Repeater Überherrn-Berus

Die Wetterwarnungen werden vom Open-Data-Portal des Deutschen Wetterdienstes im 5-Minuten-Takt bezogen und via pico2wav in künstlich in Sprache übersetzt. Das entsprechende SVXLink-Modul kann man unter https://github.com/Dloranger/Svxlink-Custom runterladen. Das verwendete Script zum Download der Meldungen beim DWD findet man als Download beim Funktelegramm-Forum. Wer sich für weitere Infos interessiert, kann im zugehörigen Forenbeitrag mehr lesen.

Wer die letzten Wetterwarnungen per Hand initiiert abspielen möchte, aktiviert das Wetter-Warnmodul mit dem DTMF-Kommando 3# und kann dann mit 1# die Anzahl der vorliegenden Meldungen erfahren bzw. mit 2# alle vorliegenden Meldungen ausspielen lassen. Das Kommando 21# spielt die allerletzte Meldung erneut ab.

Mit dem Kommando 4# kann man sich die jeweils aktuellen Pegelstände der Saar und, falls vorhanden, eine Einschätzung der Hochwassersituation ansagen lassen.

Hier haben wir einmal zwei Audiobeispiele solcher Warn-Meldungen aus dem Archiv bereitgestellt:

Mit 3# kann man die aktuelle Wetterlage abfragen. Diese wird in der Regel stündlich durch den DWD aktualisiert.

Und so hört sich eine solche aktuelle Wetterlagemeldung an:

Also hier noch einmal die Kommandos in der Übersicht:

DTMF-CodeFunktion
1#Anzahl der vorliegenden Warnmeldungen ausgeben
2#Alle vorliegenden Warnmeldungen ausspielen
21#Letzte Warnmeldung ausspielen
3#Aktueller Wetterbericht
4#Pegelstände der Saar

Wer sich dafür interessiert, wie das Script aussieht, welches aktuell die Meldungen vom Deutschen Wetterdienst zieht und in Sprachdateien umwandelt, dem sei hier ein Einblick gegeben:

#!/bin/bash
#-----------------------------------------------------------------------------------------------------------------
# Script zur Suche nach Wetterwarnunggen vom DWD anhand einer Region (z.B. BXXX=Berlin)
# Quelle: https://www.dwd.de/DE/leistungen/opendata/help/inhalt_allgemein/opendata_content_de_en_xls.xls?__blob=publicationFile&v=18
#
# Komplett überarbeitete Fassung
# DL 7 ATA 05-05-2018 / 10.05.2018
# DG9VH 31.12.2019
#
#------------------individuelle Anpassungen-Anfang----------------------------
CALL="DB0VKS"
TYP="txt"	#Lange Textfassung - gut für TTS/svxlink, "sms" ideal für APRS
PFAD=/home/svxlink
FILE="dwd.msg"
REGION="OF" 	#PD Potsdam f. B/BB, SU Stuttgart,...
QTH="SBXX"  	#BXXX f. Berlin, FRXF Freiburg
#QTH="TOLX"  	#BXXX f. Berlin, FRXF Freiburg
#REGION="MS" 	#PD Potsdam f. B/BB, SU Stuttgart,...
#--------------------------------Anpassungen- ende-------------------------

link="https://opendata.dwd.de/weather/alerts/$TYP/$REGION"

d=$(date +%y%m%d.%H%M%S)

# Das Verzeichnis vom DWD mit weiteren möglichen Meldungsdateien holen
/usr/bin/wget -q -O $PFAD/$FILE $link
mkdir -p $PFAD/wx_msg/

IFS=$'\n'
array=$(cat $PFAD/$FILE )
for item in $array; do
	qth=$(echo : $item : | cut -c39-42)
	if [[ "$qth" == "$QTH" ]];then
		ort=$(echo $item | cut -d'"' -f2)
		#Meldungstyp "WW"=Wetterwarnung
		warn=$(echo $ort | cut -b1-2)
	    	# prüfen ob schon vorhanden und eine WW (Wetterwarnung)
	     if [[ ! -s "$PFAD/wx_msg/dwd_msg.$ort" ]] && [[ $warn == "WJ" || $warn == "WD" || $warn == "WW" ]]
		then
		#Noch nicht vorhanden, baue kompletten Dateinamen zusammen und hole eigentliche Meldungsdatei
		/usr/bin/wget -q -O $PFAD/wx_msg/dwd_msg.$ort $link/$ort
		echo "$d: $REGION $QTH / $ort"

		if [[ $warn == "WJ" || $warn == "WW" ]]
		   then
		   #Audioaufbereitung
		   #In dieser Variablen steckt die gesamte Nachricht die von MARY in eine WAV gewandelt werden soll
		   messageT=$(cat $PFAD/wx_msg/dwd_msg.$ort | sed -n '/Amtliche/,/Detaillierte/p' | sed -e 's/^[ \t]*//;s/m\/s/ meter pro sekunde /g;s/kn/ Knoten /g;s/Bft/ boo ford /g;s/l\/qm/ Liter pro Quadratmeter/g;s/ Uhr/h/' | sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ:/abcdefghijklmnopqrstuvwxyzäöü /' |  sed '$d' | iconv -f windows-1252 -t utf-8//translit)
		elif  [[ $warn == "WD" ]]
		   then
		   #Audioaufbereitung
		   #In dieser Variablen steckt die gesamte Nachricht die von MARY in eine WAV gewandelt werden soll
		   messageT=$(cat $PFAD/wx_msg/dwd_msg.$ort | sed -n '/VORABINFORMATION/,/Detaillierte/p' | sed -e 's/^[ \t]*//;s/m\/s/ meter pro sekunde /g;s/kn/ Knoten /g;s/Bft/ boo ford /g;s/l\/qm/ Liter pro Quadratmeter/g;s/ Uhr/h/' | sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ:/abcdefghijklmnopqrstuvwxyzäöü /' | tr -d " " | sed '$d' | iconv -f windows-1252 -t utf-8//translit)
		fi

		# Prüfen ob es sich um eine AUFHEBUNG handelt
		var="AUFHEBUNG"
		if [ -z "${messageT%%*${var}*}" ]; then
		   echo -e "Meldung ist eine $var, beende /n"
		   exit
		fi

		pico2wave --lang de-DE --wave $PFAD/Warnwetter.$ort.wav "$messageT"
		cp $PFAD/Warnwetter.$ort.wav /var/spool/svxlink/weatherinfo/$CALL.$ort.wav
		echo $messageT > /var/spool/svxlink/weatherinfo/$CALL.$ort.info
	     fi
	fi
done

# löschen alter Meldungen (> 14 Tage)
find $PFAD/wx_msg -name 'dwd_msg.*' -mtime +14 -exec rm {} \;

exit 0

Warnungsarchiv

Das Archiv mit den Wetterwarnungen ist auf einer eigenen Unterseite zu finden: Zum Warnungsarchiv