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 .= ' | |
---|
Start: | '.localtime(ReadingsVal($name, "Warn_".$i."_Start", "")).' | ';
-
+
+ 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 .= ' | |
---|
Anfang: | '."$DEweekdays[$wday], $mday $DEmonths[$mon] ".(1900+$year)." $hour:$min ".'Uhr | ';
+ } elsif ( $hash->{CountryCode} ~~ [ 'NL' ] ) {
+ $ret .= ' | |
---|
Begin: | '."$NLweekdays[$wday], $mday $NLmonths[$mon] ".(1900+$year)." $hour:$min ".'uur | ';
+ } elsif ( $hash->{CountryCode} ~~ [ 'FR' ] ) {
+ $ret .= ' | |
---|
Valide à partir du: | '."$FRweekdays[$wday], $mday $FRmonths[$mon] ".(1900+$year)." $hour:$min ".'heure | ';
+ } else {
+ $ret .= ' | |
---|
Start: | '."$ENweekdays[$wday], $mday $ENmonths[$mon] ".(1900+$year)." $hour:$min ".'hour | ';
+ }
+ # 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 .= 'Ende: | '.localtime(ReadingsVal($name, "Warn_".$i."_End", "")).' | ';
+ $ret .= 'Ende: | '."$DEweekdays[$wday], $mday $DEmonths[$mon] ".(1900+$year)." $hour:$min ".'Uhr | ';
+ } elsif ( $hash->{CountryCode} ~~ [ 'NL' ] ) {
+ $ret .= 'Einde: | '."$NLweekdays[$wday], $mday $NLmonths[$mon] ".(1900+$year)." $hour:$min ".'uur | ';
+ } elsif ( $hash->{CountryCode} ~~ [ 'FR' ] ) {
+ $ret .= 'Jusqu\'au: | '."$FRweekdays[$wday], $mday $FRmonths[$mon] ".(1900+$year)." $hour:$min ".'heure | ';
} else {
- $ret .= 'End: | '.localtime(ReadingsVal($name, "Warn_".$i."_End", "")).' | ';
+ $ret .= 'End: | '."$ENweekdays[$wday], $mday $ENmonths[$mon] ".(1900+$year)." $hour:$min ".'hour | ';
}
# end language by AttrVal
$ret .= ' ';
@@ -1097,14 +1295,36 @@ sub UWZAsHtml($;$) {
$ret .= '  | ';
$ret .= ''.ReadingsVal($name, "Warn_".$i."_ShortText", "").'
';
$ret .= ReadingsVal($name, "Warn_".$i."_LongText", "").'
';
-
- $ret .= ' | |
---|
Start: | '.localtime(ReadingsVal($name, "Warn_".$i."_Start", "")).' | ';
-
+
+ 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 .= 'Ende: | '.localtime(ReadingsVal($name, "Warn_".$i."_End", "")).' | ';
+ $ret .= ' | |
---|
Anfang: | '."$DEweekdays[$wday], $mday $DEmonths[$mon] ".(1900+$year)." $hour:$min ".'Uhr | ';
+ } elsif ( $hash->{CountryCode} ~~ [ 'NL' ] ) {
+ $ret .= ' | |
---|
Begin: | '."$NLweekdays[$wday], $mday $NLmonths[$mon] ".(1900+$year)." $hour:$min ".'uur | ';
+ } elsif ( $hash->{CountryCode} ~~ [ 'FR' ] ) {
+ $ret .= ' | |
---|
Valide à partir du: | '."$FRweekdays[$wday], $mday $FRmonths[$mon] ".(1900+$year)." $hour:$min ".'heure | ';
} else {
- $ret .= 'End: | '.localtime(ReadingsVal($name, "Warn_".$i."_End", "")).' | ';
+ $ret .= ' | |
---|
Start: | '."$ENweekdays[$wday], $mday $ENmonths[$mon] ".(1900+$year)." $hour:$min ".'hour | ';
+ }
+ # 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 .= 'Ende: | '."$DEweekdays[$wday], $mday $DEmonths[$mon] ".(1900+$year)." $hour:$min ".'Uhr | ';
+ } elsif ( $hash->{CountryCode} ~~ [ 'NL' ] ) {
+ $ret .= 'Einde: | '."$NLweekdays[$wday], $mday $NLmonths[$mon] ".(1900+$year)." $hour:$min ".'uur | ';
+ } elsif ( $hash->{CountryCode} ~~ [ 'FR' ] ) {
+ $ret .= 'Juzqu\'au: | '."$FRweekdays[$wday], $mday $FRmonths[$mon] ".(1900+$year)." $hour:$min ".'heure | ';
+ } else {
+ $ret .= 'End: | '."$ENweekdays[$wday], $mday $ENmonths[$mon] ".(1900+$year)." $hour:$min ".'hour | ';
}
# end language by AttrVal
$ret .= ' ';
@@ -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 .= ' | |
---|
Start: | '.localtime(ReadingsVal($name, "Warn_".$i."_Start", "")).' | ';
+
+ 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 .= 'Ende: | '.localtime(ReadingsVal($name, "Warn_".$i."_End", "")).' | ';
+ $ret .= ' | |
---|
Anfang: | '."$DEweekdays[$wday], $mday $DEmonths[$mon] ".(1900+$year)." $hour:$min ".'Uhr | ';
+ } elsif ( $hash->{CountryCode} ~~ [ 'NL' ] ) {
+ $ret .= ' | |
---|
Begin: | '."$NLweekdays[$wday], $mday $NLmonths[$mon] ".(1900+$year)." $hour:$min ".'uur | ';
+ } elsif ( $hash->{CountryCode} ~~ [ 'FR' ] ) {
+ $ret .= ' | |
---|
Valide à partir du: | '."$FRweekdays[$wday], $mday $FRmonths[$mon] ".(1900+$year)." $hour:$min ".'heure | ';
} else {
- $ret .= 'End: | '.localtime(ReadingsVal($name, "Warn_".$i."_End", "")).' | ';
+ $ret .= ' | |
---|
Start: | '."$ENweekdays[$wday], $mday $ENmonths[$mon] ".(1900+$year)." $hour:$min ".'hour | ';
+ }
+# 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 .= 'Ende: | '."$DEweekdays[$wday], $mday $DEmonths[$mon] ".(1900+$year)." $hour:$min ".'Uhr | ';
+ } elsif ( $hash->{CountryCode} ~~ [ 'NL' ] ) {
+ $ret .= 'Einde: | '."$NLweekdays[$wday], $mday $NLmonths[$mon] ".(1900+$year)." $hour:$min ".'uur | ';
+ } elsif ( $hash->{CountryCode} ~~ [ 'FR' ] ) {
+ $ret .= 'Jusqu\'au: | '."$FRweekdays[$wday], $mday $FRmonths[$mon] ".(1900+$year)." $hour:$min ".'heure | ';
+ } else {
+ $ret .= 'End: | '."$ENweekdays[$wday], $mday $ENmonths[$mon] ".(1900+$year)." $hour:$min ".'hour | ';
}
# end language by AttrVal
$ret .= ' ';
@@ -1181,13 +1427,35 @@ sub UWZAsHtmlLite($;$) {
for ( my $i=0; $i';
$ret .= ''.ReadingsVal($name, "Warn_".$i."_ShortText", "").'
';
- $ret .= ' | |
---|
Start: | '.localtime(ReadingsVal($name, "Warn_".$i."_Start", "")).' | ';
+
+ 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 .= 'Ende: | '.localtime(ReadingsVal($name, "Warn_".$i."_End", "")).' | ';
+ $ret .= ' | |
---|
Anfang: | '."$DEweekdays[$wday], $mday $DEmonths[$mon] ".(1900+$year)." $hour:$min ".'Uhr | ';
+ } elsif ( $hash->{CountryCode} ~~ [ 'NL' ] ) {
+ $ret .= ' | |
---|
Begin: | '."$NLweekdays[$wday], $mday $NLmonths[$mon] ".(1900+$year)." $hour:$min ".'uur | ';
+ } elsif ( $hash->{CountryCode} ~~ [ 'FR' ] ) {
+ $ret .= ' | |
---|
Valide à partir du: | '."$FRweekdays[$wday], $mday $FRmonths[$mon] ".(1900+$year)." $hour:$min ".'heure | ';
} else {
- $ret .= 'End: | '.localtime(ReadingsVal($name, "Warn_".$i."_End", "")).' | ';
+ $ret .= ' | |
---|
Start: | '."$ENweekdays[$wday], $mday $ENmonths[$mon] ".(1900+$year)." $hour:$min ".'hour | ';
+ }
+ # 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 .= 'Ende: | '."$DEweekdays[$wday], $mday $DEmonths[$mon] ".(1900+$year)." $hour:$min ".'Uhr | ';
+ } elsif ( $hash->{CountryCode} ~~ [ 'NL' ] ) {
+ $ret .= 'Einde: | '."$NLweekdays[$wday], $mday $NLmonths[$mon] ".(1900+$year)." $hour:$min ".'uur | ';
+ } elsif ( $hash->{CountryCode} ~~ [ 'FR' ] ) {
+ $ret .= 'Jusqu\'au: | '."$FRweekdays[$wday], $mday $FRmonths[$mon] ".(1900+$year)." $hour:$min ".'heure | ';
+ } else {
+ $ret .= 'End: | '."$ENweekdays[$wday], $mday $ENmonths[$mon] ".(1900+$year)." $hour:$min ".'hour | ';
}
# end language by AttrVal
$ret .= ' ';
@@ -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
|
|
|
|