FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: rischbiter123 am 12 März 2019, 12:08:35

Titel: Ansage der Wetterwarnung von DWD und/oder UWZ
Beitrag von: rischbiter123 am 12 März 2019, 12:08:35
Hier mal eine Möglichkeit, die Wetterwarnungen von DWD und UWZ ansagen zu lassen.

DWD:

Notify:
defmod DWDSprachausgabe notify 'Name des Warndevice':a_count:.* {Warnansage()}

99_myUtils:
# Ansage für DWD
sub Warnansage() {
my $Na = "Name des Warndevice"; # z.B. Wetterwarnung
my $warncounter = (ReadingsVal($Na,'a_count',""));
my $warntext = "";
my $warntext1 = "";
my $i = 0;
    my $aq = "";
while ($i < $warncounter)
{
$aq = "a_".$i."_description";
$warntext1 = (ReadingsVal($Na,$aq,""));
$warntext = $warntext." ".$warntext1;
$i += 1;
}
# Löschen des Klammerausdrucks, m/s, kn, Bft
$warntext =~ tr/\(/#/;
$warntext =~ tr/\)/#/;
$warntext =~ s/#([^#]+)#//g;
# Löschen Ende
if($warncounter > 0) {fhem( "set MyTTS tts Wetterwarnung. $warntext" )};
}


UWZ:

Notify:
defmod UWZSprachausgabe notify 'Name des Warndevice':WarnCount:.* {Warnansage2()}

99_myUtils:
# Ansage für UWZ
sub Warnansage2() {
my $Na = "Name des Warndevice"; # z.B. Unwetterzentrale
my $warncounter = (ReadingsVal($Na,'WarnCount',""));
my $warntext = "";
my $warntext1 = "";
my $i = 0;
    my $aq = "";
while ($i < $warncounter)
{
$aq = "Warn_".$i."_LongText"; # hier kann auch _ShortText stehen
$warntext1 = (ReadingsVal($Na,$aq,""));
$warntext = $warntext." ".$warntext1;
$i += 1;
}
if($warncounter > 0) {fhem( "set MyTTS tts Wetterwarnung. $warntext" )};
}


LG

Andreas
Titel: Antw:Ansage der Wetterwarnung von DWD und/oder UWZ
Beitrag von: inesa394 am 14 März 2019, 17:21:09
my $Na = "Name des Warndevice" # z.B. Wetterwarnung
kommt da nicht noch ein ";" am Ende damit es funktioniert
Titel: Antw:Ansage der Wetterwarnung von DWD und/oder UWZ
Beitrag von: rischbiter123 am 14 März 2019, 18:13:44
Stimmt, ist wohl beim Kommentieren überschrieben worden. Habs geändert.

LG

Andreas