59_LuftdatenInfo: fix readings

git-svn-id: https://svn.fhem.de/fhem/trunk@14227 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
igami
2017-05-09 17:58:22 +00:00
parent f96c9006ae
commit af096b5b52

View File

@@ -244,16 +244,6 @@ sub LuftdatenInfo_ParseHttpResponse($) {
readingsSingleUpdate($hash, "state", "error", 1); readingsSingleUpdate($hash, "state", "error", 1);
} }
elsif(
$connection eq "remote" && $data !~ /^\[.*\]$/s
|| $connection eq "local" && $data !~ /^\{.*\}$/s
){
Log3(
$SELF, 2, "$TYPE ($SELF) - error while request: malformed JSON string"
);
readingsSingleUpdate($hash, "state", "error", 1);
}
elsif($data eq "[]"){ elsif($data eq "[]"){
if( index($param->{url}, $hash->{SENSORID2}) > -1 if( index($param->{url}, $hash->{SENSORID2}) > -1
&& InternalVal($SELF, "SENSORIDS", "implicit") eq "implicit" && InternalVal($SELF, "SENSORIDS", "implicit") eq "implicit"
@@ -272,7 +262,16 @@ sub LuftdatenInfo_ParseHttpResponse($) {
Log3 $SELF, 4, "$TYPE ($SELF) - returned data: $data"; Log3 $SELF, 4, "$TYPE ($SELF) - returned data: $data";
$data = encode('UTF-8', $data); $data = encode('UTF-8', $data);
$data = JSON->new->utf8->decode($data);
$data = eval{decode_json($data)};
if($@){
Log3($SELF, 2, "$TYPE ($SELF) - error while request: $@");
readingsSingleUpdate($hash, "state", "error", 1);
return;
}
if($param->{url} =~ m/openstreetmap/){ if($param->{url} =~ m/openstreetmap/){
my $address = $data->{address}; my $address = $data->{address};
@@ -361,15 +360,16 @@ sub LuftdatenInfo_ParseHttpResponse($) {
foreach (@{$sensor->{sensordatavalues}}){ foreach (@{$sensor->{sensordatavalues}}){
$_->{value} =~ m/^(\S+)(\s|$)/; $_->{value} =~ m/^(\S+)(\s|$)/;
$_->{value} = $1;
if($_->{value_type} =~ /temperature$/){ if($_->{value_type} =~ /temperature$/){
readingsBulkUpdate($hash, "temperature", $1); readingsBulkUpdate($hash, "temperature", $_->{value});
} }
elsif($_->{value_type} =~ /humidity$/){ elsif($_->{value_type} =~ /humidity$/){
readingsBulkUpdate($hash, "humidity", $1); readingsBulkUpdate($hash, "humidity", $_->{value});
} }
elsif($_->{value_type} =~ /pressure$/){ elsif($_->{value_type} =~ /pressure$/){
readingsBulkUpdate($hash, "pressure", $1); readingsBulkUpdate($hash, "pressure", $_->{value});
} }
} }