diff --git a/98_TadoAPI.pm b/98_TadoAPI.pm index 749b3bc..f0c0412 100644 --- a/98_TadoAPI.pm +++ b/98_TadoAPI.pm @@ -44,7 +44,7 @@ my $TokenData = {}; my $apiStatus = 1; my %sets = ( - "getTemperature" => "", + "zoneUpdate" => "", "refreshToken" => "noArg", "password" => "", "update" => "noArg", @@ -57,7 +57,7 @@ my %gets = ( "getZoneDevices" => "noArg", "getZoneInfo" => "noArg", "getGeo" => "", - "getXTest" => "", + #"getXTest" => "", "getMobileDevices" => "noArg" ); @@ -199,7 +199,7 @@ sub TadoAPI_Set(@) { TadoAPI_UpdateFn($hash); Log3 $name, 3, "TadoAPI $name" . ": " . "$cmd finished\n"; - } elsif( $cmd eq 'getTemperature' ) { + } elsif( $cmd eq 'zoneUpdate' ) { Log3 $name, 5, "TadoAPI $name" . ": " . "processing ($cmd)"; return "ZoneID as parameter needed" if (!$value); if( $value >= 1 ) { @@ -269,7 +269,7 @@ sub TadoAPI_Get(@) { Log3 $name, 3, "TadoAPI $name" . ": " . "$cmd finished\n"; last; }; - + # only for testing $cmd eq "getXTest" and do { Log3 $name, 5, "TadoAPI $name" . ": " . "processing ($cmd)"; my $zoneName = TadoAPI_GetZoneNameById($hash, $value); @@ -1185,6 +1185,7 @@ sub TadoAPI_GetZoneNameById(@) { return $zoneName; } } + Log3 $name, 3, "TadoAPI $name" . ": " . "Error GetZoneNameById: Wrong zone ID ($zoneID)"; return undef; } @@ -1223,16 +1224,16 @@ sub TadoAPI_GetZoneReadingsById(@){ if ($@){ Log3 $name, 3, "TadoAPI $name" . ": " . "GetZoneReadingsById: Zone $zoneID decode_json failed, invalid json. error:$@\n"; }else{ - $temperature = $decoded_data->{'sensorDataPoints'}->{'insideTemperature'}->{'celsius'}; - $humidity = $decoded_data->{'sensorDataPoints'}->{'humidity'}->{'percentage'}; - $desiredTemp = $decoded_data->{'setting'}->{'temperature'}->{'celsius'}; - $currentHeatingPower = $decoded_data->{'activityDataPoints'}->{'heatingPower'}->{'percentage'}; - $overlay = $decoded_data->{'overlayType'}; - if (!defined $overlay) {$overlay = "no overlay"}; - my $zoneName = TadoAPI_GetZoneNameById($hash, $zoneID); if (defined($zoneName)){ + $temperature = $decoded_data->{'sensorDataPoints'}->{'insideTemperature'}->{'celsius'}; + $humidity = $decoded_data->{'sensorDataPoints'}->{'humidity'}->{'percentage'}; + $desiredTemp = $decoded_data->{'setting'}->{'temperature'}->{'celsius'}; + $currentHeatingPower = $decoded_data->{'activityDataPoints'}->{'heatingPower'}->{'percentage'}; + $overlay = $decoded_data->{'overlayType'}; + if (!defined $overlay) {$overlay = "no overlay"}; + readingsBeginUpdate($hash); readingsBulkUpdate($hash, "Temperatur_" . $zoneName, $temperature); readingsBulkUpdate($hash, "Luftfeuchtigkeit_" . $zoneName, $humidity);