mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-22 08:11:44 +00:00
fixed: a lot of code cleanup
git-svn-id: https://svn.fhem.de/fhem/trunk@3665 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
96530271c3
commit
d82c921f4d
@ -1,5 +1,5 @@
|
|||||||
# $Id$
|
# $Id$
|
||||||
##############################################################################
|
####################################################################################################
|
||||||
#
|
#
|
||||||
# 55_GDS.pm
|
# 55_GDS.pm
|
||||||
#
|
#
|
||||||
@ -23,7 +23,7 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with fhem. If not, see <http://www.gnu.org/licenses/>.
|
# along with fhem. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
##############################################################################
|
####################################################################################################
|
||||||
# Changelog:
|
# Changelog:
|
||||||
#
|
#
|
||||||
# 2013-08-07 initial release
|
# 2013-08-07 initial release
|
||||||
@ -40,17 +40,19 @@
|
|||||||
# update commandref
|
# update commandref
|
||||||
#
|
#
|
||||||
# 2013-08-10 added some more tolerance on text inputs
|
# 2013-08-10 added some more tolerance on text inputs
|
||||||
# changed switched from GetLogList to Log3
|
# modi switched from GetLogList to Log3
|
||||||
#
|
#
|
||||||
# 2013-08-11 added retrieval for condition maps
|
# 2013-08-11 added retrieval for condition maps
|
||||||
# added retrieval for forecast maps
|
# added retrieval for forecast maps
|
||||||
# added retrieval for warning maps
|
# added retrieval for warning maps
|
||||||
# added retrieval for radar maps
|
# added retrieval for radar maps
|
||||||
#
|
#
|
||||||
# changed use LWP::ua for some file transfers instead of ftp
|
# modi use LWP::ua for some file transfers instead of ftp
|
||||||
# due to transfer errors on image files
|
# due to transfer errors on image files
|
||||||
# use parameter #5 = 1 in RetrieveFile for ftp
|
# use parameter #5 = 1 in RetrieveFile for ftp
|
||||||
#
|
#
|
||||||
|
####################################################################################################
|
||||||
|
|
||||||
|
|
||||||
package main;
|
package main;
|
||||||
|
|
||||||
@ -71,170 +73,17 @@ sub GDS_Set($@);
|
|||||||
sub GDS_Get($@);
|
sub GDS_Get($@);
|
||||||
sub GDS_Attr(@);
|
sub GDS_Attr(@);
|
||||||
|
|
||||||
sub getListStationsDropdown();
|
|
||||||
sub buildCAPList();
|
|
||||||
|
|
||||||
|
my ($bulaList, $cmapList, %rmapList, $fmapList, %bula2bulaShort, %bulaShort2dwd, %dwd2Dir, %dwd2Name,
|
||||||
my $bulaList = "Baden-Württemberg,Bayern,Berlin,Brandenburg,Bremen,".
|
$alertsXml, %capCityHash, %capCellHash, $sList, $aList);
|
||||||
"Hamburg,Hessen,Mecklenburg-Vorpommern,Niedersachsen,".
|
|
||||||
"Nordrhein-Westfalen,Rheinland-Pfalz,Saarland,Sachsen,".
|
|
||||||
"Sachsen-Anhalt,Schleswig-Holstein,Thüringen";
|
|
||||||
|
|
||||||
my $cmapList = "Deutschland,Mitte,Nordost,Nordwest,Ost,Suedost,Suedwest,West";
|
|
||||||
|
|
||||||
my %rmapList = (
|
|
||||||
Deutschland => "",
|
|
||||||
Mitte => "central/",
|
|
||||||
Nordost => "northeast/",
|
|
||||||
Nordwest => "northwest/",
|
|
||||||
Ost => "east/",
|
|
||||||
Suedost => "southeast/",
|
|
||||||
Suedwest => "southwest/",
|
|
||||||
West => "west/");
|
|
||||||
|
|
||||||
my $fmapList = "Deutschland_heute_frueh,Deutschland_heute_mittag,Deutschland_heute_spaet,Deutschland_heute_nacht,".
|
|
||||||
"Deutschland_morgen_frueh,Deutschland_morgen_spaet,".
|
|
||||||
"Deutschland_ueberm_frueh,Deutschland_ueberm_spaet,".
|
|
||||||
"Deutschland_tag4_frueh,Deutschland_tag4_spaet".
|
|
||||||
"Mitte_heute_frueh,Mitte_heute_mittag,Mitte_heute_spaet,Mitte_heute_nacht,".
|
|
||||||
"Mitte_morgen_frueh,Mitte_morgen_spaet,".
|
|
||||||
"Mitte_ueberm_frueh,Mitte_ueberm_spaet,".
|
|
||||||
"Mitte_tag4_frueh,Mitte_tag4_spaet".
|
|
||||||
"Nordost_heute_frueh,Nordost_heute_mittag,Nordost_heute_spaet,Nordost_heute_nacht,".
|
|
||||||
"Nordost_morgen_frueh,Nordost_morgen_spaet,".
|
|
||||||
"Nordost_ueberm_frueh,Nordost_ueberm_spaet,".
|
|
||||||
"Nordost_tag4_frueh,Nordost_tag4_spaet".
|
|
||||||
"Nordwest_heute_frueh,Nordwest_heute_mittag,Nordwest_heute_spaet,Nordwest_heute_nacht,".
|
|
||||||
"Nordwest_morgen_frueh,Nordwest_morgen_spaet,".
|
|
||||||
"Nordwest_ueberm_frueh,Nordwest_ueberm_spaet,".
|
|
||||||
"Nordwest_tag4_frueh,Nordwest_tag4_spaet".
|
|
||||||
"Ost_heute_frueh,Ost_heute_mittag,Ost_heute_spaet,Ost_heute_nacht,".
|
|
||||||
"Ost_morgen_frueh,Ost_morgen_spaet,".
|
|
||||||
"Ost_ueberm_frueh,Ost_ueberm_spaet,".
|
|
||||||
"Ost_tag4_frueh,Ost_tag4_spaet".
|
|
||||||
"Suedost_heute_frueh,Suedost_heute_mittag,Suedost_heute_spaet,Suedost_heute_nacht,".
|
|
||||||
"Suedost_morgen_frueh,Suedost_morgen_spaet,".
|
|
||||||
"Suedost_ueberm_frueh,Suedost_ueberm_spaet,".
|
|
||||||
"Suedost_tag4_frueh,Suedost_tag4_spaet".
|
|
||||||
"Suedwest_heute_frueh,Suedwest_heute_mittag,Suedwest_heute_spaet,Suedwest_heute_nacht,".
|
|
||||||
"Suedwest_morgen_frueh,Suedwest_morgen_spaet,".
|
|
||||||
"Suedwest_ueberm_frueh,Suedwest_ueberm_spaet,".
|
|
||||||
"Suedwest_tag4_frueh,Suedwest_tag4_spaet".
|
|
||||||
"West_heute_frueh,West_heute_mittag,West_heute_spaet,West_heute_nacht,".
|
|
||||||
"West_morgen_frueh,West_morgen_spaet,".
|
|
||||||
"West_ueberm_frueh,West_ueberm_spaet,".
|
|
||||||
"West_tag4_frueh,West_tag4_spaet";
|
|
||||||
|
|
||||||
#
|
|
||||||
# Bundesländer den entsprechenden Dienststellen zuordnen
|
|
||||||
#
|
|
||||||
my %bula2bulaShort = (
|
|
||||||
"baden-württemberg" => "bw",
|
|
||||||
"bayern" => "by",
|
|
||||||
"berlin" => "be",
|
|
||||||
"brandenburg" => "bb",
|
|
||||||
"bremen" => "hb",
|
|
||||||
"hamburg" => "hh",
|
|
||||||
"hessen" => "he",
|
|
||||||
"mecklenburg-vorpommern" => "mv",
|
|
||||||
"niedersachsen" => "ni",
|
|
||||||
"nordrhein-westfalen" => "nw",
|
|
||||||
"rheinland-pfalz" => "rp",
|
|
||||||
"saarland" => "sl",
|
|
||||||
"sachsen" => "sn",
|
|
||||||
"sachsen-anhalt" => "st",
|
|
||||||
"schleswig-holstein" => "sh",
|
|
||||||
"thüringen" => "th",
|
|
||||||
"deutschland" => "xde",
|
|
||||||
"bodensee" => "xbo" );
|
|
||||||
|
|
||||||
my %bulaShort2dwd = (
|
|
||||||
bw => "DWSG",
|
|
||||||
by => "DWMG",
|
|
||||||
be => "DWPG",
|
|
||||||
bb => "DWPG",
|
|
||||||
hb => "DWHG",
|
|
||||||
hh => "DWHH",
|
|
||||||
he => "DWOH",
|
|
||||||
mv => "DWPH",
|
|
||||||
ni => "DWHG",
|
|
||||||
nw => "DWEH",
|
|
||||||
rp => "DWOI",
|
|
||||||
sl => "DWOI",
|
|
||||||
sn => "DWLG",
|
|
||||||
st => "DWLH",
|
|
||||||
sh => "DWHH",
|
|
||||||
th => "DWLI",
|
|
||||||
xde => "xde",
|
|
||||||
xbo => "xbo" );
|
|
||||||
|
|
||||||
#
|
|
||||||
# Dienststellen den entsprechenden Serververzeichnissen zuordnen
|
|
||||||
#
|
|
||||||
my %dwd2Dir = (
|
|
||||||
DWSG => "SU", # Stuttgart
|
|
||||||
DWMG => "MS", # München
|
|
||||||
DWPG => "PD", # Potsdam
|
|
||||||
DWHG => "HA", # Hamburg
|
|
||||||
DWHH => "HA", # Hamburg
|
|
||||||
DWOH => "OF", # Offenbach
|
|
||||||
DWPH => "PD", # Potsdam
|
|
||||||
DWHG => "HA", # Hamburg
|
|
||||||
DWEH => "EM", # Essen
|
|
||||||
DWOI => "OF", # Offenbach
|
|
||||||
DWLG => "LZ", # Leipzig
|
|
||||||
DWLH => "LZ", # Leipzig
|
|
||||||
DWLI => "LZ", # Leipzig
|
|
||||||
DWHC => "HA", # Hamburg
|
|
||||||
DWHB => "HA", # Hamburg
|
|
||||||
DWPD => "PD", # Potsdam
|
|
||||||
DWRW => "PD", # Potsdam
|
|
||||||
DWEM => "EM", # Essen
|
|
||||||
LSAX => "LZ", # Leipzig
|
|
||||||
LSNX => "LZ", # Leipzig
|
|
||||||
THLX => "LZ", # Leipzig
|
|
||||||
DWOF => "OF", # Offenbach
|
|
||||||
DWTR => "OF", # Offenbach
|
|
||||||
DWSU => "SU", # Stuttgart
|
|
||||||
DWMS => "MS",
|
|
||||||
xde => "D",
|
|
||||||
xbo => "Bodensee" # München
|
|
||||||
# ???? => "FG" # Freiburg
|
|
||||||
);
|
|
||||||
|
|
||||||
my %dwd2Name = (
|
|
||||||
EM => "Essen",
|
|
||||||
FG => "Freiburg",
|
|
||||||
HA => "Hamburg",
|
|
||||||
LZ => "Leipzig",
|
|
||||||
MS => "München",
|
|
||||||
OF => "Offenbach",
|
|
||||||
PD => "Potsdam",
|
|
||||||
SU => "Stuttgart"
|
|
||||||
);
|
|
||||||
|
|
||||||
my ($alertsXml, %capCityHash, %capCellHash);
|
|
||||||
|
|
||||||
my $sList;
|
|
||||||
if (-e "/tmp/conditions"){
|
|
||||||
$sList = getListStationsDropdown();
|
|
||||||
} else {
|
|
||||||
$sList = "please_use_rereadcfg_first";
|
|
||||||
}
|
|
||||||
|
|
||||||
my ($aList, $numCAPCount);
|
|
||||||
if (-e "/tmp/alerts"){
|
|
||||||
($aList, $numCAPCount) = buildCAPList();
|
|
||||||
} else {
|
|
||||||
$aList = "please_use_rereadcfg_first";
|
|
||||||
$numCAPCount = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
####################################################################################################
|
####################################################################################################
|
||||||
#
|
#
|
||||||
# Main routines
|
# Main routines
|
||||||
#
|
#
|
||||||
|
####################################################################################################
|
||||||
|
|
||||||
|
|
||||||
sub GDS_Initialize($) {
|
sub GDS_Initialize($) {
|
||||||
my ($hash) = @_;
|
my ($hash) = @_;
|
||||||
@ -251,6 +100,9 @@ sub GDS_Initialize($) {
|
|||||||
|
|
||||||
CommandDefine(undef, "gds_web HTTPSRV gds /tmp/ GDS Files");
|
CommandDefine(undef, "gds_web HTTPSRV gds /tmp/ GDS Files");
|
||||||
createIndexFile();
|
createIndexFile();
|
||||||
|
fillMappingTables();
|
||||||
|
initDropdownLists
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub GDS_Define($$$) {
|
sub GDS_Define($$$) {
|
||||||
@ -290,36 +142,61 @@ sub GDS_Undef($$) {
|
|||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub GDS_Attr(@){
|
sub GDS_Set($@) {
|
||||||
my @a = @_;
|
my ($hash, @a) = @_;
|
||||||
my $hash = $defs{$a[1]};
|
my $name = $hash->{NAME};
|
||||||
my (undef, $name, $attrName, $attrValue) = @a;
|
my $usage = "Unknown argument, choose one of clear:noArg help:noArg rereadcfg:noArg update:noArg ".
|
||||||
given($attrName){
|
"conditions:".$sList." ";
|
||||||
when("gdsDebug"){
|
|
||||||
CommandDeleteReading(undef, "$name _dF.*") if($attrValue != 1);
|
my $command = lc($a[1]);
|
||||||
|
my $parameter = $a[2] if(defined($a[2]));
|
||||||
|
|
||||||
|
my ($result, $next);
|
||||||
|
|
||||||
|
$hash->{LOCAL} = 1;
|
||||||
|
$hash->{STATE} = "active";
|
||||||
|
|
||||||
|
given($command) {
|
||||||
|
when("clear"){
|
||||||
|
CommandDeleteReading(undef, "$name a_.*");
|
||||||
|
CommandDeleteReading(undef, "$name c_.*");
|
||||||
|
CommandDeleteReading(undef, "$name g_.*");
|
||||||
|
}
|
||||||
|
when("help"){
|
||||||
|
$result = setHelp();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
default {$attr{$name}{$attrName} = $attrValue;}
|
when("rereadcfg"){
|
||||||
}
|
eval {
|
||||||
return "";
|
retrieveFile($hash,"conditions");
|
||||||
|
$sList = getListStationsDropdown();
|
||||||
|
};
|
||||||
|
eval {
|
||||||
|
retrieveFile($hash,"alerts");
|
||||||
|
($aList, undef) = buildCAPList();
|
||||||
|
};
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub GDS_GetUpdate($) {
|
when("update"){
|
||||||
my ($hash) = @_;
|
RemoveInternalTimer($hash);
|
||||||
my $name = $hash->{NAME};
|
GDS_GetUpdate($hash);
|
||||||
my (@a, $next);
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
push @a, undef;
|
when("conditions"){
|
||||||
push @a, undef;
|
|
||||||
push @a, ReadingsVal($name, "c_stationName", "");
|
|
||||||
retrieveConditions($hash, "c", @a);
|
retrieveConditions($hash, "c", @a);
|
||||||
|
|
||||||
$next = gettimeofday()+$hash->{helper}{INTERVAL};
|
$next = gettimeofday()+$hash->{helper}{INTERVAL};
|
||||||
readingsSingleUpdate($hash, "c_nextUpdate", localtime($next), 1);
|
readingsSingleUpdate($hash, "c_nextUpdate", localtime($next), 1);
|
||||||
|
RemoveInternalTimer($hash);
|
||||||
InternalTimer($next, "GDS_GetUpdate", $hash, 1);
|
InternalTimer($next, "GDS_GetUpdate", $hash, 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
return 1;
|
default { return $usage; };
|
||||||
|
}
|
||||||
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub GDS_Get($@) {
|
sub GDS_Get($@) {
|
||||||
@ -340,7 +217,6 @@ sub GDS_Get($@) {
|
|||||||
"warningsmap:"."Deutschland,Bodensee,".$bulaList." ".
|
"warningsmap:"."Deutschland,Bodensee,".$bulaList." ".
|
||||||
"warnings:".$bulaList;
|
"warnings:".$bulaList;
|
||||||
|
|
||||||
|
|
||||||
my ($result, $datensatz, $found);
|
my ($result, $datensatz, $found);
|
||||||
|
|
||||||
given($command) {
|
given($command) {
|
||||||
@ -437,67 +313,45 @@ sub GDS_Get($@) {
|
|||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub GDS_Set($@) {
|
sub GDS_Attr(@){
|
||||||
my ($hash, @a) = @_;
|
my @a = @_;
|
||||||
|
my $hash = $defs{$a[1]};
|
||||||
|
my (undef, $name, $attrName, $attrValue) = @a;
|
||||||
|
given($attrName){
|
||||||
|
when("gdsDebug"){
|
||||||
|
CommandDeleteReading(undef, "$name _dF.*") if($attrValue != 1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
default {$attr{$name}{$attrName} = $attrValue;}
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
sub GDS_GetUpdate($) {
|
||||||
|
my ($hash) = @_;
|
||||||
my $name = $hash->{NAME};
|
my $name = $hash->{NAME};
|
||||||
my $usage = "Unknown argument, choose one of clear:noArg help:noArg rereadcfg:noArg update:noArg ".
|
my (@a, $next);
|
||||||
"conditions:".$sList." ";
|
|
||||||
|
|
||||||
my $command = lc($a[1]);
|
push @a, undef;
|
||||||
my $parameter = $a[2] if(defined($a[2]));
|
push @a, undef;
|
||||||
|
push @a, ReadingsVal($name, "c_stationName", "");
|
||||||
my ($result, $next);
|
|
||||||
|
|
||||||
$hash->{LOCAL} = 1;
|
|
||||||
$hash->{STATE} = "active";
|
|
||||||
|
|
||||||
given($command) {
|
|
||||||
when("clear"){
|
|
||||||
CommandDeleteReading(undef, "$name a_.*");
|
|
||||||
CommandDeleteReading(undef, "$name c_.*");
|
|
||||||
CommandDeleteReading(undef, "$name g_.*");
|
|
||||||
}
|
|
||||||
when("help"){
|
|
||||||
$result = setHelp();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
when("rereadcfg"){
|
|
||||||
eval {
|
|
||||||
retrieveFile($hash,"conditions");
|
|
||||||
$sList = getListStationsDropdown();
|
|
||||||
};
|
|
||||||
eval {
|
|
||||||
retrieveFile($hash,"alerts");
|
|
||||||
($aList, undef) = buildCAPList();
|
|
||||||
};
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
when("update"){
|
|
||||||
RemoveInternalTimer($hash);
|
|
||||||
GDS_GetUpdate($hash);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
when("conditions"){
|
|
||||||
retrieveConditions($hash, "c", @a);
|
retrieveConditions($hash, "c", @a);
|
||||||
|
|
||||||
$next = gettimeofday()+$hash->{helper}{INTERVAL};
|
$next = gettimeofday()+$hash->{helper}{INTERVAL};
|
||||||
readingsSingleUpdate($hash, "c_nextUpdate", localtime($next), 1);
|
readingsSingleUpdate($hash, "c_nextUpdate", localtime($next), 1);
|
||||||
RemoveInternalTimer($hash);
|
|
||||||
InternalTimer($next, "GDS_GetUpdate", $hash, 1);
|
InternalTimer($next, "GDS_GetUpdate", $hash, 1);
|
||||||
break;
|
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
default { return $usage; };
|
|
||||||
}
|
|
||||||
return $result;
|
|
||||||
}
|
|
||||||
|
|
||||||
####################################################################################################
|
####################################################################################################
|
||||||
#
|
#
|
||||||
# Routines used by "get"
|
# Tools
|
||||||
#
|
#
|
||||||
|
####################################################################################################
|
||||||
|
|
||||||
|
|
||||||
sub getHelp(){
|
sub getHelp(){
|
||||||
return "Use one of the following commands:\n".
|
return "Use one of the following commands:\n".
|
||||||
@ -540,11 +394,6 @@ sub getListStationsText($@){
|
|||||||
return join("\n", @a);
|
return join("\n", @a);
|
||||||
}
|
}
|
||||||
|
|
||||||
####################################################################################################
|
|
||||||
#
|
|
||||||
# Routines used by "set"
|
|
||||||
#
|
|
||||||
|
|
||||||
sub setHelp(){
|
sub setHelp(){
|
||||||
return "Use one of the following commands:\n".
|
return "Use one of the following commands:\n".
|
||||||
sepLine(35)."\n".
|
sepLine(35)."\n".
|
||||||
@ -555,12 +404,6 @@ sub setHelp(){
|
|||||||
"set <name> help\n";
|
"set <name> help\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
####################################################################################################
|
|
||||||
#
|
|
||||||
# some tools
|
|
||||||
# called by various routines
|
|
||||||
#
|
|
||||||
|
|
||||||
sub buildCAPList(){
|
sub buildCAPList(){
|
||||||
my $xml = new XML::Simple;
|
my $xml = new XML::Simple;
|
||||||
$alertsXml = undef;
|
$alertsXml = undef;
|
||||||
@ -963,6 +806,163 @@ sub createIndexFile(){
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub fillMappingTables(){
|
||||||
|
|
||||||
|
$bulaList = "Baden-Württemberg,Bayern,Berlin,Brandenburg,Bremen,".
|
||||||
|
"Hamburg,Hessen,Mecklenburg-Vorpommern,Niedersachsen,".
|
||||||
|
"Nordrhein-Westfalen,Rheinland-Pfalz,Saarland,Sachsen,".
|
||||||
|
"Sachsen-Anhalt,Schleswig-Holstein,Thüringen";
|
||||||
|
|
||||||
|
$cmapList = "Deutschland,Mitte,Nordost,Nordwest,Ost,Suedost,Suedwest,West";
|
||||||
|
|
||||||
|
%rmapList = (
|
||||||
|
Deutschland => "",
|
||||||
|
Mitte => "central/",
|
||||||
|
Nordost => "northeast/",
|
||||||
|
Nordwest => "northwest/",
|
||||||
|
Ost => "east/",
|
||||||
|
Suedost => "southeast/",
|
||||||
|
Suedwest => "southwest/",
|
||||||
|
West => "west/");
|
||||||
|
|
||||||
|
$fmapList = "Deutschland_heute_frueh,Deutschland_heute_mittag,Deutschland_heute_spaet,Deutschland_heute_nacht,".
|
||||||
|
"Deutschland_morgen_frueh,Deutschland_morgen_spaet,".
|
||||||
|
"Deutschland_ueberm_frueh,Deutschland_ueberm_spaet,".
|
||||||
|
"Deutschland_tag4_frueh,Deutschland_tag4_spaet".
|
||||||
|
"Mitte_heute_frueh,Mitte_heute_mittag,Mitte_heute_spaet,Mitte_heute_nacht,".
|
||||||
|
"Mitte_morgen_frueh,Mitte_morgen_spaet,".
|
||||||
|
"Mitte_ueberm_frueh,Mitte_ueberm_spaet,".
|
||||||
|
"Mitte_tag4_frueh,Mitte_tag4_spaet".
|
||||||
|
"Nordost_heute_frueh,Nordost_heute_mittag,Nordost_heute_spaet,Nordost_heute_nacht,".
|
||||||
|
"Nordost_morgen_frueh,Nordost_morgen_spaet,".
|
||||||
|
"Nordost_ueberm_frueh,Nordost_ueberm_spaet,".
|
||||||
|
"Nordost_tag4_frueh,Nordost_tag4_spaet".
|
||||||
|
"Nordwest_heute_frueh,Nordwest_heute_mittag,Nordwest_heute_spaet,Nordwest_heute_nacht,".
|
||||||
|
"Nordwest_morgen_frueh,Nordwest_morgen_spaet,".
|
||||||
|
"Nordwest_ueberm_frueh,Nordwest_ueberm_spaet,".
|
||||||
|
"Nordwest_tag4_frueh,Nordwest_tag4_spaet".
|
||||||
|
"Ost_heute_frueh,Ost_heute_mittag,Ost_heute_spaet,Ost_heute_nacht,".
|
||||||
|
"Ost_morgen_frueh,Ost_morgen_spaet,".
|
||||||
|
"Ost_ueberm_frueh,Ost_ueberm_spaet,".
|
||||||
|
"Ost_tag4_frueh,Ost_tag4_spaet".
|
||||||
|
"Suedost_heute_frueh,Suedost_heute_mittag,Suedost_heute_spaet,Suedost_heute_nacht,".
|
||||||
|
"Suedost_morgen_frueh,Suedost_morgen_spaet,".
|
||||||
|
"Suedost_ueberm_frueh,Suedost_ueberm_spaet,".
|
||||||
|
"Suedost_tag4_frueh,Suedost_tag4_spaet".
|
||||||
|
"Suedwest_heute_frueh,Suedwest_heute_mittag,Suedwest_heute_spaet,Suedwest_heute_nacht,".
|
||||||
|
"Suedwest_morgen_frueh,Suedwest_morgen_spaet,".
|
||||||
|
"Suedwest_ueberm_frueh,Suedwest_ueberm_spaet,".
|
||||||
|
"Suedwest_tag4_frueh,Suedwest_tag4_spaet".
|
||||||
|
"West_heute_frueh,West_heute_mittag,West_heute_spaet,West_heute_nacht,".
|
||||||
|
"West_morgen_frueh,West_morgen_spaet,".
|
||||||
|
"West_ueberm_frueh,West_ueberm_spaet,".
|
||||||
|
"West_tag4_frueh,West_tag4_spaet";
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bundesländer den entsprechenden Dienststellen zuordnen
|
||||||
|
#
|
||||||
|
%bula2bulaShort = (
|
||||||
|
"baden-württemberg" => "bw",
|
||||||
|
"bayern" => "by",
|
||||||
|
"berlin" => "be",
|
||||||
|
"brandenburg" => "bb",
|
||||||
|
"bremen" => "hb",
|
||||||
|
"hamburg" => "hh",
|
||||||
|
"hessen" => "he",
|
||||||
|
"mecklenburg-vorpommern" => "mv",
|
||||||
|
"niedersachsen" => "ni",
|
||||||
|
"nordrhein-westfalen" => "nw",
|
||||||
|
"rheinland-pfalz" => "rp",
|
||||||
|
"saarland" => "sl",
|
||||||
|
"sachsen" => "sn",
|
||||||
|
"sachsen-anhalt" => "st",
|
||||||
|
"schleswig-holstein" => "sh",
|
||||||
|
"thüringen" => "th",
|
||||||
|
"deutschland" => "xde",
|
||||||
|
"bodensee" => "xbo" );
|
||||||
|
|
||||||
|
%bulaShort2dwd = (
|
||||||
|
bw => "DWSG",
|
||||||
|
by => "DWMG",
|
||||||
|
be => "DWPG",
|
||||||
|
bb => "DWPG",
|
||||||
|
hb => "DWHG",
|
||||||
|
hh => "DWHH",
|
||||||
|
he => "DWOH",
|
||||||
|
mv => "DWPH",
|
||||||
|
ni => "DWHG",
|
||||||
|
nw => "DWEH",
|
||||||
|
rp => "DWOI",
|
||||||
|
sl => "DWOI",
|
||||||
|
sn => "DWLG",
|
||||||
|
st => "DWLH",
|
||||||
|
sh => "DWHH",
|
||||||
|
th => "DWLI",
|
||||||
|
xde => "xde",
|
||||||
|
xbo => "xbo" );
|
||||||
|
|
||||||
|
#
|
||||||
|
# Dienststellen den entsprechenden Serververzeichnissen zuordnen
|
||||||
|
#
|
||||||
|
%dwd2Dir = (
|
||||||
|
DWSG => "SU", # Stuttgart
|
||||||
|
DWMG => "MS", # München
|
||||||
|
DWPG => "PD", # Potsdam
|
||||||
|
DWHG => "HA", # Hamburg
|
||||||
|
DWHH => "HA", # Hamburg
|
||||||
|
DWOH => "OF", # Offenbach
|
||||||
|
DWPH => "PD", # Potsdam
|
||||||
|
DWHG => "HA", # Hamburg
|
||||||
|
DWEH => "EM", # Essen
|
||||||
|
DWOI => "OF", # Offenbach
|
||||||
|
DWLG => "LZ", # Leipzig
|
||||||
|
DWLH => "LZ", # Leipzig
|
||||||
|
DWLI => "LZ", # Leipzig
|
||||||
|
DWHC => "HA", # Hamburg
|
||||||
|
DWHB => "HA", # Hamburg
|
||||||
|
DWPD => "PD", # Potsdam
|
||||||
|
DWRW => "PD", # Potsdam
|
||||||
|
DWEM => "EM", # Essen
|
||||||
|
LSAX => "LZ", # Leipzig
|
||||||
|
LSNX => "LZ", # Leipzig
|
||||||
|
THLX => "LZ", # Leipzig
|
||||||
|
DWOF => "OF", # Offenbach
|
||||||
|
DWTR => "OF", # Offenbach
|
||||||
|
DWSU => "SU", # Stuttgart
|
||||||
|
DWMS => "MS", # München
|
||||||
|
xde => "D",
|
||||||
|
xbo => "Bodensee");
|
||||||
|
# ???? => "FG" # Freiburg);
|
||||||
|
|
||||||
|
%dwd2Name = (
|
||||||
|
EM => "Essen",
|
||||||
|
FG => "Freiburg",
|
||||||
|
HA => "Hamburg",
|
||||||
|
LZ => "Leipzig",
|
||||||
|
MS => "München",
|
||||||
|
OF => "Offenbach",
|
||||||
|
PD => "Potsdam",
|
||||||
|
SU => "Stuttgart");
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub initDropdownLists(){
|
||||||
|
if (-e "/tmp/conditions"){
|
||||||
|
$sList = getListStationsDropdown();
|
||||||
|
} else {
|
||||||
|
$sList = "please_use_rereadcfg_first";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (-e "/tmp/alerts"){
|
||||||
|
($aList, undef) = buildCAPList();
|
||||||
|
} else {
|
||||||
|
$aList = "please_use_rereadcfg_first";
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
||||||
|
|
||||||
@ -970,13 +970,12 @@ sub createIndexFile(){
|
|||||||
#
|
#
|
||||||
# Further informations
|
# Further informations
|
||||||
#
|
#
|
||||||
|
|
||||||
# DWD's data format is unpleasant to read,
|
# DWD's data format is unpleasant to read,
|
||||||
# since the data columns change depending on the available data
|
# since the data columns change depending on the available data
|
||||||
# (e.g. the SSS column for snow disappears when there is no snow).
|
# (e.g. the SSS column for snow disappears when there is no snow).
|
||||||
# It's also in ISO8859-1, i.e. it contains non-ASCII characters. To
|
# It's also in ISO8859-1, i.e. it contains non-ASCII characters. To
|
||||||
# avoid problems, we need some conversion subs in this program.
|
# avoid problems, we need some conversion subs in this program.
|
||||||
|
#
|
||||||
# Höhe : m über NN
|
# Höhe : m über NN
|
||||||
# Luftd.: reduzierter Luftdruck auf Meereshöhe in hPa
|
# Luftd.: reduzierter Luftdruck auf Meereshöhe in hPa
|
||||||
# TT : Lufttemperatur in Grad Celsius
|
# TT : Lufttemperatur in Grad Celsius
|
||||||
@ -989,12 +988,16 @@ sub createIndexFile(){
|
|||||||
# FF : Windgeschwindigkeit letztes 10-Minutenmittel in km/h
|
# FF : Windgeschwindigkeit letztes 10-Minutenmittel in km/h
|
||||||
# FX : höchste Windspitze im Bezugszeitraum in km/h
|
# FX : höchste Windspitze im Bezugszeitraum in km/h
|
||||||
# --- : Wert nicht vorhanden
|
# --- : Wert nicht vorhanden
|
||||||
|
#
|
||||||
|
####################################################################################################
|
||||||
|
|
||||||
|
|
||||||
####################################################################################################
|
####################################################################################################
|
||||||
#
|
#
|
||||||
# Documentation
|
# Documentation
|
||||||
#
|
#
|
||||||
|
####################################################################################################
|
||||||
|
|
||||||
|
|
||||||
=pod
|
=pod
|
||||||
=begin html
|
=begin html
|
||||||
|
Loading…
x
Reference in New Issue
Block a user