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
my $Na = "Name des Warndevice" # z.B. Wetterwarnung
kommt da nicht noch ein ";" am Ende damit es funktioniert
Stimmt, ist wohl beim Kommentieren überschrieben worden. Habs geändert.
LG
Andreas