2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-02-01 01:09:47 +00:00

contrib/GDS: RC3

git-svn-id: https://svn.fhem.de/fhem/trunk@9627 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
betateilchen 2015-10-24 11:12:14 +00:00
parent a1b29f4001
commit 8ca7d6a559

View File

@ -42,7 +42,7 @@ use Archive::Extract;
use Net::FTP; use Net::FTP;
use XML::Simple; use XML::Simple;
use Data::Dumper; #use Data::Dumper;
eval { use GDSweblink; }; eval { use GDSweblink; };
@ -60,7 +60,7 @@ my @allConditionsData;
################################################################################################### ###################################################################################################
# #
# Main routines # Main routines
sub GDS_Initialize($) { sub GDS_Initialize($) {
my ($hash) = @_; my ($hash) = @_;
@ -106,7 +106,7 @@ sub _fillMappingTables($){
$tempDir = "/tmp/"; $tempDir = "/tmp/";
$aList = "data_retrieval_running"; $aList = "no_data_available";
$sList = $aList; $sList = $aList;
$fList = $aList; $fList = $aList;
@ -362,8 +362,6 @@ sub GDS_Set($@) {
my ($result, $next); my ($result, $next);
$hash->{LOCAL} = 1;
return $usage if $command eq '?'; return $usage if $command eq '?';
if(IsDisabled($name)) { if(IsDisabled($name)) {
@ -421,8 +419,6 @@ sub GDS_Get($@) {
my $parameter = $a[2] if(defined($a[2])); my $parameter = $a[2] if(defined($a[2]));
my $name = $hash->{NAME}; my $name = $hash->{NAME};
$hash->{LOCAL} = 1;
my $usage = "Unknown argument $command, choose one of help:noArg rereadcfg:noArg ". my $usage = "Unknown argument $command, choose one of help:noArg rereadcfg:noArg ".
"list:stations,capstations,data ". "list:stations,capstations,data ".
"alerts:".$aList." ". "alerts:".$aList." ".
@ -534,7 +530,6 @@ sub GDS_Get($@) {
} }
my $_gdsAll = AttrVal($name,"gdsAll", 0); my $_gdsAll = AttrVal($name,"gdsAll", 0);
my $_gdsDebug = AttrVal($name,"gdsDebug", 0); my $_gdsDebug = AttrVal($name,"gdsDebug", 0);
readingsSingleUpdate($hash,'_lastAlertCheck','see timestamp ->',1) if($_gdsAll || $_gdsDebug);
break; break;
} }
@ -569,7 +564,6 @@ sub GDS_Get($@) {
$parameter = $bula2bulaShort{lc($parameter)}; $parameter = $bula2bulaShort{lc($parameter)};
} }
my $dwd = $bulaShort2dwd{lc($parameter)}; my $dwd = $bulaShort2dwd{lc($parameter)};
# my $dir = $dwd2Dir{$dwd};
my $dir = "gds/specials/warnings/".$dwd2Dir{$dwd}."/"; my $dir = "gds/specials/warnings/".$dwd2Dir{$dwd}."/";
$hash->{file}{dir} = $dir; $hash->{file}{dir} = $dir;
@ -980,24 +974,30 @@ sub decodeCAPData($$$){
Log3($name, 4, "GDS $name: Decoding CAP record #".$datensatz); Log3($name, 4, "GDS $name: Decoding CAP record #".$datensatz);
# topLevel informations # topLevel informations
@dummy = split(/\./, $alertsXml->{identifier}); if($_gdsAll || $_gdsDebug) {
@dummy = split(/\./, $alertsXml->{identifier});
$readings{"a_".$anum."_identifier"} = $alertsXml->{identifier};
$readings{"a_".$anum."_idPublisher"} = $dummy[5];
$readings{"a_".$anum."_idSysten"} = $dummy[6];
$readings{"a_".$anum."_idTimeStamp"} = $dummy[7];
$readings{"a_".$anum."_idIndex"} = $dummy[8];
}
$readings{"a_".$anum."_identifier"} = Dumper($alertsXml->{identifier}) if($_gdsAll || $_gdsDebug);
$readings{"a_".$anum."_idPublisher"} = $dummy[5] if($_gdsAll);
$readings{"a_".$anum."_idSysten"} = $dummy[6] if($_gdsAll);
$readings{"a_".$anum."_idTimeStamp"} = $dummy[7] if($_gdsAll);
$readings{"a_".$anum."_idIndex"} = $dummy[8] if($_gdsAll);
$readings{"a_".$anum."_sent"} = $alertsXml->{sent}[0]; $readings{"a_".$anum."_sent"} = $alertsXml->{sent}[0];
$readings{"a_".$anum."_status"} = $alertsXml->{status}[0]; $readings{"a_".$anum."_status"} = $alertsXml->{status}[0];
$readings{"a_".$anum."_msgType"} = $alertsXml->{msgType}[0]; $readings{"a_".$anum."_msgType"} = $alertsXml->{msgType}[0];
# infoSet informations # infoSet informations
$readings{"a_".$anum."_language"} = $alertsXml->{info}[$info]{language} if($_gdsAll); if($_gdsAll || $_gdsDebug) {
$readings{"a_".$anum."_language"} = $alertsXml->{info}[$info]{language};
$readings{"a_".$anum."_urgency"} = $alertsXml->{info}[$info]{urgency};
$readings{"a_".$anum."_severity"} = $alertsXml->{info}[$info]{severity};
$readings{"a_".$anum."_certainty"} = $alertsXml->{info}[$info]{certainty};
}
$readings{"a_".$anum."_category"} = $alertsXml->{info}[$info]{category}; $readings{"a_".$anum."_category"} = $alertsXml->{info}[$info]{category};
$readings{"a_".$anum."_event"} = $alertsXml->{info}[$info]{event}; $readings{"a_".$anum."_event"} = $alertsXml->{info}[$info]{event};
$readings{"a_".$anum."_responseType"} = $alertsXml->{info}[$info]{responseType}; $readings{"a_".$anum."_responseType"} = $alertsXml->{info}[$info]{responseType};
$readings{"a_".$anum."_urgency"} = $alertsXml->{info}[$info]{urgency} if($_gdsAll);
$readings{"a_".$anum."_severity"} = $alertsXml->{info}[$info]{severity} if($_gdsAll);
$readings{"a_".$anum."_certainty"} = $alertsXml->{info}[$info]{certainty} if($_gdsAll);
# eventCode informations # eventCode informations
# loop through array # loop through array
@ -1013,7 +1013,7 @@ sub decodeCAPData($$$){
} }
# time/validity informations # time/validity informations
$readings{"a_".$anum."_effective"} = $alertsXml->{info}[$info]{effective} if($_gdsAll); $readings{"a_".$anum."_effective"} = $alertsXml->{info}[$info]{effective} if($_gdsAll);
$readings{"a_".$anum."_onset"} = $alertsXml->{info}[$info]{onset}; $readings{"a_".$anum."_onset"} = $alertsXml->{info}[$info]{onset};
$readings{"a_".$anum."_expires"} = $alertsXml->{info}[$info]{expires}; $readings{"a_".$anum."_expires"} = $alertsXml->{info}[$info]{expires};
$readings{"a_".$anum."_valid"} = _checkCAPValid($readings{"a_".$anum."_onset"},$readings{"a_".$anum."_expires"}); $readings{"a_".$anum."_valid"} = _checkCAPValid($readings{"a_".$anum."_onset"},$readings{"a_".$anum."_expires"});
@ -1026,13 +1026,13 @@ sub decodeCAPData($$$){
# text informations # text informations
$readings{"a_".$anum."_headline"} = $alertsXml->{info}[$info]{headline}; $readings{"a_".$anum."_headline"} = $alertsXml->{info}[$info]{headline};
$readings{"a_".$anum."_description"} = $alertsXml->{info}[$info]{description} if($_gdsAll || $_gdsLong); $readings{"a_".$anum."_description"} = $alertsXml->{info}[$info]{description} if($_gdsAll || $_gdsLong);
$readings{"a_".$anum."_instruction"} = $alertsXml->{info}[$info]{instruction} $readings{"a_".$anum."_instruction"} = $alertsXml->{info}[$info]{instruction}
if($readings{"a_".$anum."_responseType"} eq "Prepare" & ($_gdsAll || $_gdsLong)); if($readings{"a_".$anum."_responseType"} eq "Prepare" & ($_gdsAll || $_gdsLong));
# area informations # area informations
$readings{"a_".$anum."_areaDesc"} = $alertsXml->{info}[$info]{area}[$area]{areaDesc}; $readings{"a_".$anum."_areaDesc"} = $alertsXml->{info}[$info]{area}[$area]{areaDesc};
$readings{"a_".$anum."_areaPolygon"} = $alertsXml->{info}[$info]{area}[$area]{polygon} if($_gdsAll || $_gdsPolygon); $readings{"a_".$anum."_areaPolygon"} = $alertsXml->{info}[$info]{area}[$area]{polygon} if($_gdsAll || $_gdsPolygon);
# area geocode informations # area geocode informations
# loop through array # loop through array
@ -1110,7 +1110,7 @@ sub _capTrans($) {
################################################################################################### ###################################################################################################
# #
# new: nonblocking data retrieval # nonblocking data retrieval
sub retrieveData($$){ sub retrieveData($$){
my ($hash,$req) = @_; my ($hash,$req) = @_;
@ -1551,7 +1551,7 @@ sub _abortedFORECAST {
################################################################################################### ###################################################################################################
# #
# forecast retrieval - provided by jensb # forecast retrieval - provided by jensb
sub retrieveForecasts($$@) { sub retrieveForecasts($$@) {
# #