From 8946a3c8d04349caec24d56f3498e517d7026244 Mon Sep 17 00:00:00 2001 From: krannich <> Date: Thu, 4 Apr 2019 20:12:17 +0000 Subject: [PATCH] 74_HusqvarnaAutomower: Updated decode_json error handling git-svn-id: https://svn.fhem.de/fhem/trunk@19113 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/74_HusqvarnaAutomower.pm | 31 +++++++++++++----------------- 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/fhem/FHEM/74_HusqvarnaAutomower.pm b/fhem/FHEM/74_HusqvarnaAutomower.pm index 9ebe1d2be..4f8f5de18 100644 --- a/fhem/FHEM/74_HusqvarnaAutomower.pm +++ b/fhem/FHEM/74_HusqvarnaAutomower.pm @@ -364,11 +364,10 @@ sub HusqvarnaAutomower_APIAuthResponse($) { } elsif($data ne "") { - my $result = {}; - eval { $result = decode_json($data) }; - if ($@) { + my $result = eval { decode_json($data) }; + if ($@) { Log3( $name, 3, " - JSON error while request: $@"); - return undef; + return; } if ($result->{errors}) { @@ -507,13 +506,12 @@ sub HusqvarnaAutomower_getMowerResponse($) { Log3 $name, 5, "Automower(s) found"; Log3 $name, 5, $data; - my $result = {}; - eval { $result = decode_json($data) }; - if ($@) { + my $result = eval { decode_json($data) }; + if ($@) { Log3( $name, 3, " - JSON error while request: $@"); - return undef; - } - + return; + } + my $mower = $hash->{HusqvarnaAutomower}->{mower}; Log3 $name, 5, $result->[$mower]->{'name'}; @@ -592,13 +590,11 @@ sub HusqvarnaAutomower_getMowerStatusResponse($) { } elsif($data ne "") { #Log3 $name, 5, $data; - my $result = {}; - eval { $result = decode_json($data) }; - if ($@) { + my $result = eval { decode_json($data) }; + if ($@) { Log3( $name, 3, " - JSON error while request: $@"); - return undef; + return; } - $hash->{HusqvarnaAutomower}->{mower_battery} = $result->{'batteryPercent'}; $hash->{HusqvarnaAutomower}->{mower_activity} = HusqvarnaAutomower_ToGerman($hash, $result->{'mowerStatus'}->{'activity'}); @@ -710,11 +706,10 @@ sub HusqvarnaAutomower_CMDResponse($) { } elsif($data ne "") { - my $result = {}; - eval { $result = decode_json($data) }; + my $result = eval { decode_json($data) }; if ($@) { Log3( $name, 3, " - JSON error while request: $@"); - return undef; + return; } if ($result->{errors}) {