mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-01-31 18:59:33 +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:
parent
a1b29f4001
commit
8ca7d6a559
@ -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"} = Dumper($alertsXml->{identifier}) if($_gdsAll || $_gdsDebug);
|
$readings{"a_".$anum."_identifier"} = $alertsXml->{identifier};
|
||||||
$readings{"a_".$anum."_idPublisher"} = $dummy[5] if($_gdsAll);
|
$readings{"a_".$anum."_idPublisher"} = $dummy[5];
|
||||||
$readings{"a_".$anum."_idSysten"} = $dummy[6] if($_gdsAll);
|
$readings{"a_".$anum."_idSysten"} = $dummy[6];
|
||||||
$readings{"a_".$anum."_idTimeStamp"} = $dummy[7] if($_gdsAll);
|
$readings{"a_".$anum."_idTimeStamp"} = $dummy[7];
|
||||||
$readings{"a_".$anum."_idIndex"} = $dummy[8] if($_gdsAll);
|
$readings{"a_".$anum."_idIndex"} = $dummy[8];
|
||||||
|
}
|
||||||
|
|
||||||
$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($$@) {
|
||||||
#
|
#
|
||||||
|
Loading…
Reference in New Issue
Block a user