From 3f3662d3fb7a40062d833abb46105ec716a40013 Mon Sep 17 00:00:00 2001 From: LeonGaultier Date: Tue, 30 Oct 2018 11:20:16 +0000 Subject: [PATCH] 77_UWZ: add new language french and hollandisch git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@17646 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- CHANGED | 1 + FHEM/77_UWZ.pm | 422 +++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 390 insertions(+), 33 deletions(-) diff --git a/CHANGED b/CHANGED index 3215e7d44..f01650568 100644 --- a/CHANGED +++ b/CHANGED @@ -1,5 +1,6 @@ # Add changes at the top of the list. Keep it in ASCII, and 80-char wide. # Do not insert empty lines here, update check depends on it. + - feature: 77_UWZ: new language support, french and hollandisch - change: 93_DbRep: V8.6.0, devices and readings can be excluded by EXCLUDE-option in attributes "reading/device", reduceLog use attributes "device/reading" - see diff --git a/FHEM/77_UWZ.pm b/FHEM/77_UWZ.pm index 7b0703fbd..bce6236c8 100644 --- a/FHEM/77_UWZ.pm +++ b/FHEM/77_UWZ.pm @@ -57,14 +57,21 @@ eval "use Encode::Guess;1" or $missingModul .= "Encode::Guess "; require 'Blocking.pm'; require 'HttpUtils.pm'; + use vars qw($readingFnAttributes); - use vars qw(%defs); + +my @DEweekdays = qw(Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag); +my @DEmonths = ( "Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"); +my @NLweekdays = qw(zondag maandag dinsdag woensdag donderdag vrijdag zaterdag); +my @NLmonths = ("januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december"); +my @FRweekdays = qw(dimanche lundi mardi mercredi jeudi vendredi samedi); +my @FRmonths = ("janvier","février","mars","avril","mai","juin","juillet","août","september","octobre","novembre","decembre"); +my @ENweekdays = qw(sunday monday thuesday wednesday thursday friday saturday); +my @ENmonths = ("January","February","March","April","Mäy","June","July","August","September","October","November","December"); + my $MODUL = "UWZ"; -my $version = "2.0.0"; - - - +my $version = "2.0.3"; # Declare functions sub UWZ_Log($$$); @@ -141,6 +148,14 @@ sub UWZ_Map2Movie($$) { $lmap->{'niederschlag-wolken-at'}=$uwz_movie_url.'UWZ_EUROPE_AUSTRIA_COMPLETE_niwofi.mp4'; $lmap->{'stroemung-at'}=$uwz_movie_url.'UWZ_EUROPE_AUSTRIA_COMPLETE_stfi.mp4'; + ## NL + $lmap->{'neerslag-wolken-nl'}=$uwz_movie_url.'UWZ_EUROPE_BENELUX_COMPLETE_niwofi.mp4'; + $lmap->{'stroming-nl'}=$uwz_movie_url.'UWZ_EUROPE_BENELUX_COMPLETE_stfi.mp4'; + + ## FR + $lmap->{'nuages-precipitations-fr'}=$uwz_movie_url.'UWZ_EUROPE_FRANCE_COMPLETE_niwofi.mp4'; + $lmap->{'courants-fr'}=$uwz_movie_url.'UWZ_EUROPE_FRANCE_COMPLETE_stfi.mp4'; + ## UK $lmap->{'clouds-precipitation-uk'}=$uwz_movie_url.'UWZ_EUROPE_GREATBRITAIN_COMPLETE_niwofi.mp4'; $lmap->{'currents-uk'}=$uwz_movie_url.'UWZ_EUROPE_GREATBRITAIN_COMPLETE_stfi.mp4'; @@ -271,12 +286,44 @@ sub UWZ_Map2Image($$) { ## FR $lmap->{'france'}=$uwz_fr_url.'france_index.png'; + $lmap->{'alsace'}=$uwz_fr_url.'alsace_index.png'; + $lmap->{'aquitaine'}=$uwz_fr_url.'aquitaine_index.png'; + $lmap->{'basse-normandie'}=$uwz_fr_url.'basse-normandie_index.png'; + $lmap->{'bretagne'}=$uwz_fr_url.'bretagne_index.png'; + $lmap->{'champagne-ardenne'}=$uwz_fr_url.'champagne-ardenne_index.png'; + $lmap->{'franche-comte'}=$uwz_fr_url.'franche-comte_index.png'; + $lmap->{'haute-normandie'}=$uwz_fr_url.'haute-normandie_index.png'; + $lmap->{'ile-de-france'}=$uwz_fr_url.'ile-de-france_index.png'; + $lmap->{'languedoc-roussillon'}=$uwz_fr_url.'languedoc-roussillon_index.png'; + $lmap->{'limousin'}=$uwz_fr_url.'limousin_index.png'; + $lmap->{'lorraine'}=$uwz_fr_url.'lorraine_index.png'; + $lmap->{'bourgogne'}=$uwz_fr_url.'bourgogne_index.png'; + $lmap->{'centre'}=$uwz_fr_url.'centre_index.png'; + $lmap->{'midi-pyrenees'}=$uwz_fr_url.'midi-pyrenees_index.png'; + $lmap->{'nord-pas-de-calais'}=$uwz_fr_url.'nord-pas-de-calais_index.png'; + $lmap->{'pays-de-la-loire'}=$uwz_fr_url.'pays-de-la-loire_index.png'; + $lmap->{'picardie'}=$uwz_fr_url.'picardie_index.png'; + $lmap->{'poitou-charentes'}=$uwz_fr_url.'poitou-charentes_index.png'; + $lmap->{'provence-alpes-cote-dazur'}=$uwz_fr_url.'provence-alpes-cote-dazur_index.png'; + $lmap->{'rhone-alpes'}=$uwz_fr_url.'rhone-alpes_index.png'; ## LU $lmap->{'letzebuerg'}=$uwz_lu_url.'letzebuerg_index.png'; ## NL $lmap->{'nederland'}=$uwz_nl_url.'nederland_index.png'; + $lmap->{'drenthe'}=$uwz_nl_url.'drenthe_index.png'; + $lmap->{'flevoland'}=$uwz_nl_url.'flevoland_index.png'; + $lmap->{'friesland'}=$uwz_nl_url.'friesland_index.png'; + $lmap->{'gelderland'}=$uwz_nl_url.'gelderland_index.png'; + $lmap->{'groningen'}=$uwz_nl_url.'groningen_index.png'; + $lmap->{'limburg'}=$uwz_nl_url.'limburg_index.png'; + $lmap->{'noordbrabant'}=$uwz_nl_url.'noordbrabant_index.png'; + $lmap->{'noordholland'}=$uwz_nl_url.'noordholland_index.png'; + $lmap->{'overijssel'}=$uwz_nl_url.'overijssel_index.png'; + $lmap->{'utrecht'}=$uwz_nl_url.'utrecht_index.png'; + $lmap->{'zeeland'}=$uwz_nl_url.'zeeland_index.png'; + $lmap->{'zuidholland'}=$uwz_nl_url.'zuidholland_index.png'; ## NO $lmap->{'norwegen'}=$uwz_no_url.'norwegen_index.png'; @@ -342,6 +389,7 @@ sub UWZ_Initialize($) { "sort_readings_by:severity,start,creation ". "localiconbase ". "intervalAtWarnLevel ". + "disable:1 ". $readingFnAttributes; foreach my $d(sort keys %{$modules{UWZ}{defptr}}) { @@ -373,6 +421,12 @@ sub UWZ_Define($$) { if ( $hash->{CountryCode} ~~ [ 'DE', 'AT', 'CH' ] ) { $URL_language="de"; } + if ( $hash->{CountryCode} ~~ [ 'NL' ] ) { + $URL_language="nl"; + } + if ( $hash->{CountryCode} ~~ [ 'FR' ] ) { + $URL_language="fr"; + } $hash->{URL} = "http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=getWarning&language=" . $URL_language . "&areaID=UWZ" . $a[2] . $a[3]; @@ -470,7 +524,45 @@ sub UWZ_Get($@) { elsif ($a[1] =~ /^Hagel/) { UWZ_GetCurrentHail($hash); } else { return $usage; } } - + + elsif ($hash->{CountryCode} ~~ [ 'NL' ] ) { + my $usage = "Unknown argument $a[1], choose one of storm:noArg sneeuw:noArg regen:noArg strenge-vorst:noArg bosbrand:noArg onweer:noArg gladheid:noArg hitte:noArg ijzel:noArg grondvorst:noArg hagel:noArg "; + + return $usage if ( @a < 2 ); + + if ($a[1] =~/^storm/) { UWZ_GetCurrent($hash,2); } + elsif ($a[1] =~/^sneeuw/) { UWZ_GetCurrent($hash,3); } + elsif ($a[1] =~/^regen/) { UWZ_GetCurrent($hash,4); } + elsif ($a[1] =~/^strenge-vorst/) { UWZ_GetCurrent($hash,5); } + elsif ($a[1] =~/^bosbrand/) { UWZ_GetCurrent($hash,6); } + elsif ($a[1] =~/^onweer/) { UWZ_GetCurrent($hash,7); } + elsif ($a[1] =~/^gladheid/) { UWZ_GetCurrent($hash,8); } + elsif ($a[1] =~/^hitte/) { UWZ_GetCurrent($hash,9); } + elsif ($a[1] =~/^ijzel/) { UWZ_GetCurrent($hash,10); } + elsif ($a[1] =~/^grondvorst/) { UWZ_GetCurrent($hash,11); } + elsif ($a[1] =~/^hagel/) { UWZ_GetCurrentHail($hash); } + else { return $usage; } + } + + elsif ($hash->{CountryCode} ~~ [ 'FR' ] ) { + my $usage = "Unknown argument $a[1], choose one of tempete:noArg neige:noArg pluie:noArg strenge-vorst:noArg incendie-de-foret:noArg orage:noArg glissange:noArg canicule:noArg verglas:noArg grondvorst:noArg grele:noArg "; + + return $usage if ( @a < 2 ); + + if ($a[1] =~/^tempete/) { UWZ_GetCurrent($hash,2); } + elsif ($a[1] =~/^neige/) { UWZ_GetCurrent($hash,3); } + elsif ($a[1] =~/^pluie/) { UWZ_GetCurrent($hash,4); } + elsif ($a[1] =~/^température/) { UWZ_GetCurrent($hash,5); } + elsif ($a[1] =~/^feu-de-forêt/) { UWZ_GetCurrent($hash,6); } + elsif ($a[1] =~/^orage/) { UWZ_GetCurrent($hash,7); } + elsif ($a[1] =~/^route-glissante/) { UWZ_GetCurrent($hash,8); } + elsif ($a[1] =~/^chaleur/) { UWZ_GetCurrent($hash,9); } + elsif ($a[1] =~/^pluie-de-verglas/) { UWZ_GetCurrent($hash,10); } + elsif ($a[1] =~/^gelée/) { UWZ_GetCurrent($hash,11); } + elsif ($a[1] =~/^grêle/) { UWZ_GetCurrentHail($hash); } + else { return $usage; } + } + elsif ( (lc $hash->{CountryCode}) eq 'search' ) { my $usage = "Unknown argument $a[1], choose one of SearchAreaID "; @@ -479,7 +571,7 @@ sub UWZ_Get($@) { if ($a[1] =~ /^SearchAreaID/) { UWZSearchLatLon($name, $a[2]); } elsif ($a[1] =~ /^AreaID/) { my @splitparam = split(/,/,$a[2]); UWZSearchAreaID($splitparam[0],$splitparam[1]); } else { return $usage; } - + } else { my $usage = "Unknown argument $a[1], choose one of storm:noArg snow:noArg rain:noArg extremfrost:noArg forest-fire:noArg thunderstorms:noArg glaze:noArg heat:noArg glazed-rain:noArg soil-frost:noArg hail:noArg "; @@ -585,8 +677,8 @@ sub UWZ_Start($) { if(!$hash->{fhem}{LOCAL} && $hash->{INTERVAL} > 0) { # set up timer if automatically call RemoveInternalTimer( $hash ); - InternalTimer(gettimeofday() + $hash->{INTERVAL}, "UWZ_Start", $hash, 1 ); - return undef if( AttrVal($name, "disable", 0 ) == 1 ); + InternalTimer(gettimeofday() + $hash->{INTERVAL}, "UWZ_Start", $hash, 1 ); + return undef if( IsDisabled($name) ); readingsSingleUpdate($hash,'currentIntervalMode','normal',0); } @@ -597,6 +689,10 @@ sub UWZ_Start($) { } else { if ( $hash->{CountryCode} ~~ [ 'DE', 'AT', 'CH' ] ) { $URL_language="de"; + } elsif ( $hash->{CountryCode} ~~ [ 'NL' ] ) { + $URL_language="nl"; + } elsif ( $hash->{CountryCode} ~~ [ 'FR' ] ) { + $URL_language="fr"; } } $hash->{URL} = "http://feed.alertspro.meteogroup.com/AlertsPro/AlertsProPollService.php?method=getWarning&language=" . $URL_language . "&areaID=UWZ" . $hash->{CountryCode} . $hash->{PLZ}; @@ -668,6 +764,8 @@ sub UWZ_Done($) { $newState = "Warnings: " . $values{WarnCount}; $newState = "Warnungen: " . $values{WarnCount} if ( $hash->{CountryCode} ~~ [ 'DE', 'AT', 'CH' ] ); + $newState = "Aantal waarschuwingen: " . $values{WarnCount} if ( $hash->{CountryCode} ~~ [ 'NL' ] ); + $newState = "Avertissements: " . $values{WarnCount} if ( $hash->{CountryCode} ~~ [ 'FR' ] ); # end Message by CountryCode } else { $newState = "Error: Could not capture all data. Please check CountryCode and PLZ."; @@ -819,7 +917,30 @@ sub UWZ_Run($) { "9" => "Hitze", # 9 = hitzewarnung "10" => "Glatteisregen", "11" => "Bodenfrost" ); # 11 = bodenfrost - + + my %typenames_nl_str= ( "1" => "unknown", # <===== FIX HERE + "2" => "storm", + "3" => "sneeuw", + "4" => "regen", + "5" => "temperatuur", + "6" => "bosbrand", + "7" => "onweer", + "8" => "gladde wegen", + "9" => "hitte", # 9 = hitzewarnung + "10" => "ijzel", + "11" => "grondvorst" ); # 11 = bodenfrost + + my %typenames_fr_str= ( "1" => "unknown", # <===== FIX HERE + "2" => "tempete", + "3" => "neige", + "4" => "pluie", + "5" => "températur", + "6" => "feu de forêt", + "7" => "orage", + "8" => "route glissante", + "9" => "chaleur", # 9 = hitzewarnung + "10" => "pluie de verglas", + "11" => "gelée" ); # 11 = bodenfrost my %typenames_en_str= ( "1" => "unknown", # <===== FIX HERE "2" => "storm", @@ -832,7 +953,6 @@ sub UWZ_Run($) { "9" => "heat", # 9 = hitzewarnung "10" => "black ice rain", "11" => "soil frost" ); # 11 = bodenfrost - my %severitycolor = ( "0" => "green", "1" => "unknown", # <===== FIX HERE @@ -915,6 +1035,29 @@ sub UWZ_Run($) { UWZ_Log $hash, 4, "Warn_".$i."_uwzLevel_Str: ".$uwzlevelname{ UWZ_GetUWZLevel($hash,$single_warning->{'payload'}{'levelName'}) }; $message .= "Warn_".$i."_uwzLevel_Str|".$uwzlevelname{ UWZ_GetUWZLevel($hash,$single_warning->{'payload'}{'levelName'}) }."|"; + } elsif ( $hash->{CountryCode} ~~ [ 'NL' ] ) { + UWZ_Log $hash, 4, "Warn_".$i."_Type_Str: ".$typenames_nl_str{ $single_warning->{'type'} }; + $message .= "Warn_".$i."_Type_Str|".$typenames_nl_str{ $single_warning->{'type'} }."|"; + my %uwzlevelname = ( "0" => "niveau groen (geen waarschuwingen)", + "1" => "niveau donkergroen (weermelding)", + "2" => "niveau geel (voorwaarschuwing)", + "3" => "waarschuwingsniveau oranje (waarschuwing voor matig noodweer)", + "4" => "waarschuwingsniveau rood (waarschuwing voor zwaar noodweer)", + "5" => "waarschuwingsniveau violet (waarschuwing voor zeer zwaar noodweer)"); + UWZ_Log $hash, 4, "Warn_".$i."_uwzLevel_Str: ".$uwzlevelname{ UWZ_GetUWZLevel($hash,$single_warning->{'payload'}{'levelName'}) }; + $message .= "Warn_".$i."_uwzLevel_Str|".$uwzlevelname{ UWZ_GetUWZLevel($hash,$single_warning->{'payload'}{'levelName'}) }."|"; + + } elsif ( $hash->{CountryCode} ~~ [ 'FR' ] ) { + UWZ_Log $hash, 4, "Warn_".$i."_Type_Str: ".$typenames_nl_str{ $single_warning->{'type'} }; + $message .= "Warn_".$i."_Type_Str|".$typenames_nl_str{ $single_warning->{'type'} }."|"; + my %uwzlevelname = ( "0" => "niveau vert (aucune alerte)", + "1" => "niveau vert foncé (indication météo)", + "2" => "niveau jaune (pré-alerte)", + "3" => "niveau d' alerte orange (alerte météo)", + "4" => "niveau d' alerte rouge (alerte météo)", + "5" => "niveau d' alerte violet (alerte météo)"); + UWZ_Log $hash, 4, "Warn_".$i."_uwzLevel_Str: ".$uwzlevelname{ UWZ_GetUWZLevel($hash,$single_warning->{'payload'}{'levelName'}) }; + $message .= "Warn_".$i."_uwzLevel_Str|".$uwzlevelname{ UWZ_GetUWZLevel($hash,$single_warning->{'payload'}{'levelName'}) }."|"; } else { UWZ_Log $hash, 4, "Warn_".$i."_Type_Str: ".$typenames_en_str{ $single_warning->{'type'} }; @@ -951,6 +1094,10 @@ sub UWZ_Run($) { # Begin Language by AttrVal if ( $hash->{CountryCode} ~~ [ 'DE', 'AT', 'CH' ] ) { $uclang = "DE"; + } elsif ( $hash->{CountryCode} ~~ [ 'NL' ] ) { + $uclang = "NL" + } elsif ( $hash->{CountryCode} ~~ [ 'FR' ] ) { + $uclang = "FR" } else { $uclang = "EN"; } @@ -982,6 +1129,14 @@ sub UWZ_Run($) { if ( $hash->{CountryCode} ~~ [ 'DE', 'AT', 'CH' ] ) { $hagelcount = my @hagelmatch = $single_warning->{'payload'}{'translationsLongText'}{'DE'} =~ /Hagel/g; + + } elsif ( $hash->{CountryCode} ~~ [ 'NL' ] ) { + + $hagelcount = my @hagelmatch = $single_warning->{'payload'}{'translationsLongText'}{'NL'} =~ /hagel/g; + + } elsif ( $hash->{CountryCode} ~~ [ 'FR' ] ) { + + $hagelcount = my @hagelmatch = $single_warning->{'payload'}{'translationsLongText'}{'FR'} =~ /grêle/g; } else { @@ -1025,6 +1180,27 @@ sub UWZ_Run($) { "5" => "Warnstufe Violett (Unwetterwarnung)"); UWZ_Log $hash, 4, "WarnUWZLevel_Str: ".$uwzlevelname{ $max }; $message .= "WarnUWZLevel_Str|".$uwzlevelname{ $max }."|"; + + } elsif ($hash->{CountryCode} ~~ [ 'NL' ] ) { + my %uwzlevelname = ( "0" => "niveau groen (geen waarschuwingen)", + "1" => "niveau donkergroen (voorwaarschuwing)", + "2" => "niveau geel (voorwaarschuwing)", + "3" => "waarschuwingsniveau oranje (waarschuwing voor matig noodweer)", + "4" => "waarschuwingsniveau rood (waarschuwing voor zwaar noodweer)", + "5" => "waarschuwingsniveau violet (waarschuwing voor zeer zwaar noodweer)"); + UWZ_Log $hash, 4, "WarnUWZLevel_Str: ".$uwzlevelname{ $max }; + $message .= "WarnUWZLevel_Str|".$uwzlevelname{ $max }."|"; + + } elsif ($hash->{CountryCode} ~~ [ 'FR' ] ) { + my %uwzlevelname = ( "0" => "niveau vert (aucune alerte)", + "1" => "niveau vert foncé (indication météo)", + "2" => "niveau jaune (pré-alerte)", + "3" => "niveau d' alerte orange (alerte météo)", + "4" => "niveau d' alerte rouge (alerte météo)", + "5" => "niveau d' alerte violet (alerte météo)"); + UWZ_Log $hash, 4, "WarnUWZLevel_Str: ".$uwzlevelname{ $max }; + $message .= "WarnUWZLevel_Str|".$uwzlevelname{ $max }."|"; + } else { my %uwzlevelname = ( "0" => "level green (no warnings)", "1" => "level dark green (weather notice)", @@ -1077,14 +1253,36 @@ sub UWZAsHtml($;$) { $ret .= ''; $ret .= ''.ReadingsVal($name, "Warn_".$i."_ShortText", "").'

'; $ret .= ReadingsVal($name, "Warn_".$i."_LongText", "").'

'; - - $ret .= ''; - + + my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(ReadingsVal($name, "Warn_".$i."_Start", "")); + if (length($hour) == 1) {$hour = "0$hour";} + if (length($min) == 1) {$min = "0$min";} + # language by AttrVal + if ( $hash->{CountryCode} ~~ [ 'DE', 'AT', 'CH' ] ) { + $ret .= '
Start:'.localtime(ReadingsVal($name, "Warn_".$i."_Start", "")).'
'; + } elsif ( $hash->{CountryCode} ~~ [ 'NL' ] ) { + $ret .= '
Anfang:'."$DEweekdays[$wday], $mday $DEmonths[$mon] ".(1900+$year)." $hour:$min ".'Uhr
'; + } elsif ( $hash->{CountryCode} ~~ [ 'FR' ] ) { + $ret .= '
Begin:'."$NLweekdays[$wday], $mday $NLmonths[$mon] ".(1900+$year)." $hour:$min ".'uur
'; + } else { + $ret .= '
Valide à partir du:'."$FRweekdays[$wday], $mday $FRmonths[$mon] ".(1900+$year)." $hour:$min ".'heure
'; + } + # end language by AttrVal + + + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = undef; + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(ReadingsVal($name, "Warn_".$i."_End", "")); + if (length($hour) == 1) {$hour = "0$hour";} + if (length($min) == 1) {$min = "0$min";} # language by AttrVal if ( $hash->{CountryCode} ~~ [ 'DE', 'AT', 'CH' ] ) { - $ret .= ''; + $ret .= ''; + } elsif ( $hash->{CountryCode} ~~ [ 'NL' ] ) { + $ret .= ''; + } elsif ( $hash->{CountryCode} ~~ [ 'FR' ] ) { + $ret .= ''; } else { - $ret .= ''; + $ret .= ''; } # end language by AttrVal $ret .= '
Start:'."$ENweekdays[$wday], $mday $ENmonths[$mon] ".(1900+$year)." $hour:$min ".'hourEnde:'.localtime(ReadingsVal($name, "Warn_".$i."_End", "")).'Ende:'."$DEweekdays[$wday], $mday $DEmonths[$mon] ".(1900+$year)." $hour:$min ".'UhrEinde:'."$NLweekdays[$wday], $mday $NLmonths[$mon] ".(1900+$year)." $hour:$min ".'uurJusqu\'au:'."$FRweekdays[$wday], $mday $FRmonths[$mon] ".(1900+$year)." $hour:$min ".'heureEnd:'.localtime(ReadingsVal($name, "Warn_".$i."_End", "")).'End:'."$ENweekdays[$wday], $mday $ENmonths[$mon] ".(1900+$year)." $hour:$min ".'hour
'; @@ -1097,14 +1295,36 @@ sub UWZAsHtml($;$) { $ret .= ''; $ret .= ''.ReadingsVal($name, "Warn_".$i."_ShortText", "").'

'; $ret .= ReadingsVal($name, "Warn_".$i."_LongText", "").'

'; - - $ret .= ''; - + + my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(ReadingsVal($name, "Warn_".$i."_Start", "")); + if (length($hour) == 1) {$hour = "0$hour";} + if (length($min) == 1) {$min = "0$min";} # language by AttrVal if ( $hash->{CountryCode} ~~ [ 'DE', 'AT', 'CH' ] ) { - $ret .= ''; + $ret .= '
Start:'.localtime(ReadingsVal($name, "Warn_".$i."_Start", "")).'Ende:'.localtime(ReadingsVal($name, "Warn_".$i."_End", "")).'
'; + } elsif ( $hash->{CountryCode} ~~ [ 'NL' ] ) { + $ret .= '
Anfang:'."$DEweekdays[$wday], $mday $DEmonths[$mon] ".(1900+$year)." $hour:$min ".'Uhr
'; + } elsif ( $hash->{CountryCode} ~~ [ 'FR' ] ) { + $ret .= '
Begin:'."$NLweekdays[$wday], $mday $NLmonths[$mon] ".(1900+$year)." $hour:$min ".'uur
'; } else { - $ret .= ''; + $ret .= '
Valide à partir du:'."$FRweekdays[$wday], $mday $FRmonths[$mon] ".(1900+$year)." $hour:$min ".'heureEnd:'.localtime(ReadingsVal($name, "Warn_".$i."_End", "")).'
'; + } + # end language by AttrVal + + + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = undef; + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(ReadingsVal($name, "Warn_".$i."_End", "")); + if (length($hour) == 1) {$hour = "0$hour";} + if (length($min) == 1) {$min = "0$min";} + # language by AttrVal + if ( $hash->{CountryCode} ~~ [ 'DE', 'AT', 'CH' ] ) { + $ret .= ''; + } elsif ( $hash->{CountryCode} ~~ [ 'NL' ] ) { + $ret .= ''; + } elsif ( $hash->{CountryCode} ~~ [ 'FR' ] ) { + $ret .= ''; + } else { + $ret .= ''; } # end language by AttrVal $ret .= '
Start:'."$ENweekdays[$wday], $mday $ENmonths[$mon] ".(1900+$year)." $hour:$min ".'hourEnde:'."$DEweekdays[$wday], $mday $DEmonths[$mon] ".(1900+$year)." $hour:$min ".'UhrEinde:'."$NLweekdays[$wday], $mday $NLmonths[$mon] ".(1900+$year)." $hour:$min ".'uurJuzqu\'au:'."$FRweekdays[$wday], $mday $FRmonths[$mon] ".(1900+$year)." $hour:$min ".'heureEnd:'."$ENweekdays[$wday], $mday $ENmonths[$mon] ".(1900+$year)." $hour:$min ".'hour
'; @@ -1126,6 +1346,10 @@ sub UWZAsHtml($;$) { # language by AttrVal if ( $hash->{CountryCode} ~~ [ 'DE', 'AT', 'CH' ] ) { $ret .='Keine Warnungen'; + } elsif ( $hash->{CountryCode} ~~ [ 'NL' ] ) { + $ret .='Geen waarschuwingen'; + } elsif ( $hash->{CountryCode} ~~ [ 'FR' ] ) { + $ret .='Aucune alerte'; } else { $ret .='No Warnings'; } @@ -1165,13 +1389,35 @@ sub UWZAsHtmlLite($;$) { for ( my $i=ReadingsVal($name, "WarnCount", "")-1; $i>=0; $i--){ $ret .= ''; $ret .= ''.ReadingsVal($name, "Warn_".$i."_ShortText", "").'

'; - $ret .= ''; + + my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(ReadingsVal($name, "Warn_".$i."_Start", "")); + if (length($hour) == 1) {$hour = "0$hour";} + if (length($min) == 1) {$min = "0$min";} # language by AttrVal - if ( $hash->{CountryCode} ~~ [ 'DE', 'AT', 'CH' ] ) { - $ret .= ''; + $ret .= '
Start:'.localtime(ReadingsVal($name, "Warn_".$i."_Start", "")).'Ende:'.localtime(ReadingsVal($name, "Warn_".$i."_End", "")).'
'; + } elsif ( $hash->{CountryCode} ~~ [ 'NL' ] ) { + $ret .= '
Anfang:'."$DEweekdays[$wday], $mday $DEmonths[$mon] ".(1900+$year)." $hour:$min ".'Uhr
'; + } elsif ( $hash->{CountryCode} ~~ [ 'FR' ] ) { + $ret .= '
Begin:'."$NLweekdays[$wday], $mday $NLmonths[$mon] ".(1900+$year)." $hour:$min ".'uur
'; } else { - $ret .= ''; + $ret .= '
Valide à partir du:'."$FRweekdays[$wday], $mday $FRmonths[$mon] ".(1900+$year)." $hour:$min ".'heureEnd:'.localtime(ReadingsVal($name, "Warn_".$i."_End", "")).'
'; + } +# end language by AttrVal + + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = undef; + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(ReadingsVal($name, "Warn_".$i."_End", "")); + if (length($hour) == 1) {$hour = "0$hour";} + if (length($min) == 1) {$min = "0$min";} + # language by AttrVal + if ( $hash->{CountryCode} ~~ [ 'DE', 'AT', 'CH' ] ) { + $ret .= ''; + } elsif ( $hash->{CountryCode} ~~ [ 'NL' ] ) { + $ret .= ''; + } elsif ( $hash->{CountryCode} ~~ [ 'FR' ] ) { + $ret .= ''; + } else { + $ret .= ''; } # end language by AttrVal $ret .= '
Start:'."$ENweekdays[$wday], $mday $ENmonths[$mon] ".(1900+$year)." $hour:$min ".'hourEnde:'."$DEweekdays[$wday], $mday $DEmonths[$mon] ".(1900+$year)." $hour:$min ".'UhrEinde:'."$NLweekdays[$wday], $mday $NLmonths[$mon] ".(1900+$year)." $hour:$min ".'uurJusqu\'au:'."$FRweekdays[$wday], $mday $FRmonths[$mon] ".(1900+$year)." $hour:$min ".'heureEnd:'."$ENweekdays[$wday], $mday $ENmonths[$mon] ".(1900+$year)." $hour:$min ".'hour
'; @@ -1181,13 +1427,35 @@ sub UWZAsHtmlLite($;$) { for ( my $i=0; $i'; $ret .= ''.ReadingsVal($name, "Warn_".$i."_ShortText", "").'

'; - $ret .= ''; + + my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(ReadingsVal($name, "Warn_".$i."_Start", "")); + if (length($hour) == 1) {$hour = "0$hour";} + if (length($min) == 1) {$min = "0$min";} # language by AttrVal - if ( $hash->{CountryCode} ~~ [ 'DE', 'AT', 'CH' ] ) { - $ret .= ''; + $ret .= '
Start:'.localtime(ReadingsVal($name, "Warn_".$i."_Start", "")).'Ende:'.localtime(ReadingsVal($name, "Warn_".$i."_End", "")).'
'; + } elsif ( $hash->{CountryCode} ~~ [ 'NL' ] ) { + $ret .= '
Anfang:'."$DEweekdays[$wday], $mday $DEmonths[$mon] ".(1900+$year)." $hour:$min ".'Uhr
'; + } elsif ( $hash->{CountryCode} ~~ [ 'FR' ] ) { + $ret .= '
Begin:'."$NLweekdays[$wday], $mday $NLmonths[$mon] ".(1900+$year)." $hour:$min ".'uur
'; } else { - $ret .= ''; + $ret .= '
Valide à partir du:'."$FRweekdays[$wday], $mday $FRmonths[$mon] ".(1900+$year)." $hour:$min ".'heureEnd:'.localtime(ReadingsVal($name, "Warn_".$i."_End", "")).'
'; + } + # end language by AttrVal + + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = undef; + ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(ReadingsVal($name, "Warn_".$i."_End", "")); + if (length($hour) == 1) {$hour = "0$hour";} + if (length($min) == 1) {$min = "0$min";} + # language by AttrVal + if ( $hash->{CountryCode} ~~ [ 'DE', 'AT', 'CH' ] ) { + $ret .= ''; + } elsif ( $hash->{CountryCode} ~~ [ 'NL' ] ) { + $ret .= ''; + } elsif ( $hash->{CountryCode} ~~ [ 'FR' ] ) { + $ret .= ''; + } else { + $ret .= ''; } # end language by AttrVal $ret .= '
Start:'."$ENweekdays[$wday], $mday $ENmonths[$mon] ".(1900+$year)." $hour:$min ".'hourEnde:'."$DEweekdays[$wday], $mday $DEmonths[$mon] ".(1900+$year)." $hour:$min ".'UhrEinde:'."$NLweekdays[$wday], $mday $NLmonths[$mon] ".(1900+$year)." $hour:$min ".'uurJusqu\'au:'."$FRweekdays[$wday], $mday $FRmonths[$mon] ".(1900+$year)." $hour:$min ".'heureEnd:'."$ENweekdays[$wday], $mday $ENmonths[$mon] ".(1900+$year)." $hour:$min ".'hour
'; @@ -1207,6 +1475,10 @@ sub UWZAsHtmlLite($;$) { # language by AttrVal if ( $hash->{CountryCode} ~~ [ 'DE', 'AT', 'CH' ] ) { $ret .='Keine Warnungen'; + } elsif ( $hash->{CountryCode} ~~ [ 'NL' ] ) { + $ret .='Geen waarschuwingen'; + } elsif ( $hash->{CountryCode} ~~ [ 'FR' ] ) { + $ret .='Aucune alerte'; } else { $ret .='No Warnings'; } @@ -1268,8 +1540,12 @@ sub UWZAsHtmlMovie($$) { } else { # language by AttrVal - if ( $hash->{CountryCode} ~~ [ 'DE', 'AT', 'CH' ] ) { + if ( $hash->{CountryCode} ~~ [ 'DE' , 'AT' , 'CH' ] ) { $ret .= 'unbekannte Landbezeichnung'; + } elsif ( $hash->{CountryCode} ~~ [ 'NL' ] ) { + $ret .= 'Onbekende landcode'; + } elsif ( $hash->{CountryCode} ~~ [ 'FR' ] ) { + $ret .= 'code de pays inconnu'; } else { $ret .='unknown movie setting'; } @@ -1299,8 +1575,12 @@ sub UWZAsHtmlKarteLand($$) { } else { # language by AttrVal - if ( $hash->{CountryCode} ~~ [ 'DE', 'AT', 'CH' ] ) { + if ( $hash->{CountryCode} ~~ [ 'DE' , 'AT' , 'CH' ] ) { $ret .= 'unbekannte Landbezeichnung'; + } elsif ( $hash->{CountryCode} ~~ [ 'NL' ] ) { + $ret .= 'onbekende landcode'; + } elsif ( $hash->{CountryCode} ~~ [ 'FR' ] ) { + $ret .= 'code de pays inconnu'; } else { $ret .='unknown map setting'; } @@ -1873,10 +2153,42 @@ sub UWZSearchAreaID($$) {
  • finnland

  • france
  • +
  • alsace
  • +
  • aquitaine
  • +
  • basse-normandie
  • +
  • bretagne
  • +
  • champagne-ardenne
  • +
  • franche-comte
  • +
  • haute-normandie
  • +
  • ile-de-france
  • +
  • languedoc-roussillon
  • +
  • limousin
  • +
  • lorraine
  • +
  • bourgogne
  • +
  • centre
  • +
  • midi-pyrenees
  • +
  • nord-pas-de-calais
  • +
  • pays-de-la-loire
  • +
  • picardie
  • +
  • poitou-charentes
  • +
  • provence-alpes-cote-dazur
  • +
  • rhone-alpes

  • letzebuerg

  • nederland
  • +
  • drenthe
  • +
  • flevoland
  • +
  • friesland
  • +
  • gelderland
  • +
  • groningen
  • +
  • limburg
  • +
  • noordbrabant
  • +
  • noordholland
  • +
  • overijssel
  • +
  • utrecht
  • +
  • zeeland
  • +
  • zuidholland

  • norwegen

  • @@ -1923,8 +2235,14 @@ sub UWZSearchAreaID($$) {
  • niederschlag-wolken-at
  • stroemung-at

  • -
  • niederschlag-wolken-uk
  • -
  • stroemung-uk
  • +
  • neerslag-wolken-nl
  • +
  • stroming-nl
  • +
    +
  • nuages-precipitations-fr
  • +
  • courants-fr
  • +
    +
  • clouds-precipitation-uk
  • +
  • currents-uk

  • @@ -2264,10 +2582,42 @@ sub UWZSearchAreaID($$) {
  • finnland

  • france
  • +
  • alsace
  • +
  • aquitaine
  • +
  • basse-normandie
  • +
  • bretagne
  • +
  • champagne-ardenne
  • +
  • franche-comte
  • +
  • haute-normandie
  • +
  • ile-de-france
  • +
  • languedoc-roussillon
  • +
  • limousin
  • +
  • lorraine
  • +
  • bourgogne
  • +
  • centre
  • +
  • midi-pyrenees
  • +
  • nord-pas-de-calais
  • +
  • pays-de-la-loire
  • +
  • picardie
  • +
  • poitou-charentes
  • +
  • provence-alpes-cote-dazur
  • +
  • rhone-alpes

  • letzebuerg

  • nederland
  • +
  • drenthe
  • +
  • flevoland
  • +
  • friesland
  • +
  • gelderland
  • +
  • groningen
  • +
  • limburg
  • +
  • noordbrabant
  • +
  • noordholland
  • +
  • overijssel
  • +
  • utrecht
  • +
  • zeeland
  • +
  • zuidholland

  • norwegen

  • @@ -2314,6 +2664,12 @@ sub UWZSearchAreaID($$) {
  • niederschlag-wolken-at
  • stroemung-at

  • +
  • neerslag-wolken-nl
  • +
  • stroming-nl
  • +
    +
  • nuages-precipitations-fr
  • +
  • courants-fr
  • +
  • clouds-precipitation-uk
  • currents-uk