From 8154b435d560497ea266d8c686eb54e4fcfcbd39 Mon Sep 17 00:00:00 2001 From: Philipp Wo Date: Mon, 20 Apr 2020 00:36:32 +0200 Subject: [PATCH] whitespace at the end of lines removed --- 98_TadoAPI.pm | 142 +++++++++++++++++++++++++------------------------- 1 file changed, 71 insertions(+), 71 deletions(-) diff --git a/98_TadoAPI.pm b/98_TadoAPI.pm index 1fd0dee..3901e45 100644 --- a/98_TadoAPI.pm +++ b/98_TadoAPI.pm @@ -45,8 +45,8 @@ my $reqDebug = 5; # helpers my $apiStatus = 1; -my %sets = ( - "zoneUpdate" => "", +my %sets = ( + "zoneUpdate" => "", "refreshToken" => "noArg", "password" => "", "update" => "noArg", @@ -57,7 +57,7 @@ my %sets = ( "setAllOverlays" => "" ); -my %gets = ( +my %gets = ( "getZoneDevices" => "noArg", "getZoneInfo" => "noArg", "getGeo" => "", @@ -74,7 +74,7 @@ TadoAPI_Initialize($) $hash->{InitFn} = "TadoAPI_Init"; $hash->{SetFn} = "TadoAPI_Set"; $hash->{GetFn} = "TadoAPI_Get"; - $hash->{AttrList} = + $hash->{AttrList} = "homeID " . "mobileID " . "showPosData:0,1 " . @@ -88,7 +88,7 @@ sub TadoAPI_Init($$) { my ($hash,$args) = @_; my $u = "wrong syntax: define TadoAPI []"; - return $u if(int(@$args) < 2); + return $u if(int(@$args) < 2); return; } @@ -132,11 +132,11 @@ sub TadoAPI_Define($$) InternalTimer( gettimeofday() + 15, "TadoAPI_Update", $hash, 0 ); if ( defined($homeID) && $homeID ne "" ) { - $attr{$name}{homeID} = $homeID; + $attr{$name}{homeID} = $homeID; } else{ my $id = TadoAPI_GetHomeId($hash); if ( defined($id) && $id ne "" ) { - $attr{$name}{homeID} = $id; + $attr{$name}{homeID} = $id; } } }else{ @@ -165,7 +165,7 @@ sub TadoAPI_Set(@) { if (($cmd ne "password")) { my $pwd = TadoAPI_readPassword($name); - unless (defined $pwd) + unless (defined $pwd) { $message = "Error: no tado password set. Please define it with 'set $name password Your_tado_Password'"; Log3 $name,2,"$name, $message"; @@ -188,7 +188,7 @@ sub TadoAPI_Set(@) { } elsif( $cmd eq 'setZoneOverlay' ) { Log3 $name, 5, "TadoAPI $name" . ": " . "processing ($cmd)"; return "Need at least two parameters [ZoneID] [Setting] (duration in sec); Setting Info: remove=delete overlay; 0=heating power off; 1<=desired temperature (overlay)" if(@a < 4); - + if( $a[3] eq "remove" ) { TadoAPI_SetZoneOverlayById($hash, $value, "remove"); } elsif (defined($a[4])) { @@ -201,10 +201,10 @@ sub TadoAPI_Set(@) { } elsif( $cmd eq 'timedZoneOverlay' ) { Log3 $name, 5, "TadoAPI $name" . ": " . "processing ($cmd)"; return "Need at least three parameters [ZoneID] [Duration (sec)] [Setting]" if(@a < 4); - + if( defined($a[4]) ) { TadoAPI_SetTimedZoneOverlay($hash, $value, $a[3], $a[4]); - } + } Log3 $name, 4, "TadoAPI $name" . ": " . "$cmd finished"; } elsif( $cmd eq 'setAllOverlays' ) { @@ -248,7 +248,7 @@ sub TadoAPI_Set(@) { readingsBulkUpdate($hash, "OverlayType_" . $zoneName, $overlay); readingsBulkUpdate($hash, "DesiredTemp_" . $zoneName, $desiredTemp); readingsEndUpdate($hash, 1); - + $message = "OK"; } } else { @@ -262,9 +262,9 @@ sub TadoAPI_Set(@) { shift @a; shift @a; # den Rest der das passwort enthält, als ein String - $subcmd = join(" ",@a); + $subcmd = join(" ",@a); $message = TadoAPI_storePassword($name,$subcmd); - + # start the status update timer RemoveInternalTimer($hash); InternalTimer( gettimeofday() + 10, "TadoAPI_Update", $hash, 0 ); @@ -280,7 +280,7 @@ sub TadoAPI_Get(@) { return "Need at least one parameters" if(@a < 2); my $cmd = $a[1]; my $value = $a[2]; - my $name = $hash->{NAME}; + my $name = $hash->{NAME}; my $homeID = $attr{$name}{homeID}; my $message = undef; @@ -293,7 +293,7 @@ sub TadoAPI_Get(@) { } my $pwd = TadoAPI_readPassword($name); - unless (defined $pwd) + unless (defined $pwd) { $message = "Error: no tado password set. Please define it with 'set $name password Your_tado_Password'"; Log3 $name,2,"$name, $message"; @@ -302,7 +302,7 @@ sub TadoAPI_Get(@) { } if($cmd =~ /\Qget\E/) { - + COMMAND_HANDLER: { $cmd eq "getGeo" and do { return "Need at least one parameter (mobileID)" if(@a < 3); @@ -402,8 +402,8 @@ sub TadoAPI_CheckStatus(@){ timeout => 5, hash => $hash, method => "GET", - header => "", - callback => \&TadoAPI_callback + header => "", + callback => \&TadoAPI_callback }; #test if api is reachable Log3 $name, $reqDebug, "TadoAPI $name" . ": " . "Request $AuthURL"; @@ -424,11 +424,11 @@ sub TadoAPI_LoadToken(@){ eval { $Token = decode_json(<$TOKENFILE>)}; close($TOKENFILE); - if($@ || $tokenLifeTime < gettimeofday()){ + if($@ || $tokenLifeTime < gettimeofday()){ Log3 $name, 5, "TadoAPI $name" . ": " . "Error while loading: $@ ,requesting new one" if $@; Log3 $name, 5, "TadoAPI $name" . ": " . "Token is expired, requesting new one" if $tokenLifeTime < gettimeofday(); $Token = TadoAPI_NewTokenRequest($hash); - TadoAPI_CheckStatus($hash); + TadoAPI_CheckStatus($hash); }else{ Log3 $name, 5, "TadoAPI $name" . ": " . "Token expires at " . localtime($tokenLifeTime); # if token is about to expire, refresh him @@ -437,10 +437,10 @@ sub TadoAPI_LoadToken(@){ $Token = TadoAPI_TokenRefresh($hash); } } - return $Token if $Token; + return $Token if $Token; } TadoAPI_CheckStatus($hash); - return; + return; } sub TadoAPI_NewTokenRequest(@) { @@ -531,13 +531,13 @@ sub TadoAPI_TokenRefresh(@) { Log3 $name, $reqDebug, "TadoAPI $name" . ": " . "Request $AuthURL"; my ($err, $returnData) = HttpUtils_BlockingGet($param); - if($err ne "") + if($err ne "") { Log3 $name, 3, "TadoAPI $name" . ": " . "TokenRefresh: Error in token retrival while requesting ".$param->{url}." - $err"; $hash->{STATE}="error"; } - elsif($returnData ne "") + elsif($returnData ne "") { Log3 $name, 5, "url ".$param->{url}." returned: $returnData"; my $decoded_data = eval{decode_json($returnData);}; @@ -552,7 +552,7 @@ sub TadoAPI_TokenRefresh(@) { close($TOKENFILE); # token lifetime management - $hash->{TOKEN_LIFETIME} = gettimeofday() + $decoded_data->{'expires_in'}; + $hash->{TOKEN_LIFETIME} = gettimeofday() + $decoded_data->{'expires_in'}; $hash->{TOKEN_LIFETIME_HR} = localtime($hash->{TOKEN_LIFETIME}); Log3 $name, 5, "TadoAPI $name" . ": " . "TokenRefresh: Refreshed authentication token successfully. Valid until " . localtime($hash->{TOKEN_LIFETIME}); $hash->{STATE}="reachable"; @@ -591,15 +591,15 @@ sub TadoAPI_Update(@){ sub TadoAPI_SetZoneOverlayById(@){ my ($hash, $zoneID, $setting, $duration) = @_; my $name = $hash->{NAME}; - my $homeID = $attr{$name}{homeID}; + my $homeID = $attr{$name}{homeID}; my $URL = $QueryURL . qq{/$homeID/zones/$zoneID/overlay}; my $CurrentTokenData = TadoAPI_LoadToken($hash); if(defined($CurrentTokenData)){ my $method = ""; my $myjson =undef; - - Log3 $name, 5, "TadoAPI $name" . ": SetOverlay for Zone $zoneID (Setting: " . $setting . ") - " . "query-URL: $URL"; + + Log3 $name, 5, "TadoAPI $name" . ": SetOverlay for Zone $zoneID (Setting: " . $setting . ") - " . "query-URL: $URL"; my $dt = time(); $dt += $duration if defined($duration); @@ -617,8 +617,8 @@ sub TadoAPI_SetZoneOverlayById(@){ if(defined($duration) && $duration > 0){ $method = "PUT"; $myjson = { - type => "MANUAL", - setting => { + type => "MANUAL", + setting => { type => "HEATING", power => "OFF" }, @@ -633,8 +633,8 @@ sub TadoAPI_SetZoneOverlayById(@){ # infinite off else{ $method = "PUT"; - $myjson = { - setting => { + $myjson = { + setting => { type => "HEATING", power => "OFF", }, @@ -643,18 +643,18 @@ sub TadoAPI_SetZoneOverlayById(@){ }, }; } - } + } elsif($setting > 0){ # set timed overlay if(defined($duration) && $duration > 0){ $method = "PUT"; $myjson = { - type => "MANUAL", - setting => { + type => "MANUAL", + setting => { type => "HEATING", power => "ON", temperature => { - celsius => $setting + celsius => $setting } }, termination => { @@ -670,12 +670,12 @@ sub TadoAPI_SetZoneOverlayById(@){ else{ # infinite setting $method = "PUT"; - $myjson = { - setting => { + $myjson = { + setting => { type => "HEATING", power => "ON", temperature => { - celsius => $setting + celsius => $setting }, }, termination => { @@ -736,7 +736,7 @@ sub TadoAPI_GetAllZoneOverlays(@){ return; } -sub TadoAPI_UpdateFn(@){ +sub TadoAPI_UpdateFn(@){ my ($hash) = @_; my $name = $hash->{NAME}; my $CurrentTokenData = TadoAPI_LoadToken($hash); @@ -756,7 +756,7 @@ sub TadoAPI_UpdateFn(@){ }; Log3 $name, $reqDebug, "TadoAPI $name" . ": " . "UpdFN: Request $URL"; HttpUtils_NonblockingGet($request); - + # mobile devices $URL=$QueryURL . qq{/$homeID/mobileDevices}; $request = { @@ -780,10 +780,10 @@ sub TadoAPI_UpdateFn(@){ sub TadoAPI_callback($){ my ($param, $err, $data) = @_; my $hash = $param->{hash}; - my $name = $hash->{NAME}; + my $name = $hash->{NAME}; $param->{code} = 0 unless defined $param->{code}; - if($param->{code} == 401 || $param->{code} == 400){ + if($param->{code} == 401 || $param->{code} == 400){ $apiStatus = 1; $hash->{STATE}="reachable"; Log3 $name, 5, "TadoAPI $name" . ": " . "API is reachable. Callback Status: " . $param->{code}; @@ -803,7 +803,7 @@ sub TadoAPI_UpdateAllZoneReadingsCallback($){ if($err ne "") { - Log3 $name, 3, "Error in TadoAPI_UpdateZoneCallback while requesting ".$param->{url}." - $err"; + Log3 $name, 3, "Error in TadoAPI_UpdateZoneCallback while requesting ".$param->{url}." - $err"; } elsif($data ne "") { @@ -818,7 +818,7 @@ sub TadoAPI_UpdateAllZoneReadingsCallback($){ Log3 $name, 3, "TadoAPI $name" . ": " . "UpdateAllZonesCallback: Error in decoded data, Code: " . $decoded_data->{'errors'}->[0]->{'code'} if (exists($decoded_data->{'errors'}->[0]->{'code'})); $hash->{LastRequest}="error"; }else{ - readingsBeginUpdate($hash); + readingsBeginUpdate($hash); foreach my $zone ( @$decoded_data ){ my $zoneID = $zone->{'id'}; my $zoneName = TadoAPI_ReplaceUmlaute($zone->{'name'}); @@ -842,7 +842,7 @@ sub TadoAPI_UpdateAllZoneReadingsCallback($){ readingsEndUpdate( $hash, 1 ); } my $zonecount = TadoAPI_GetZoneCount($hash); - readingsBeginUpdate($hash); + readingsBeginUpdate($hash); readingsBulkUpdate($hash, "ActiveZones", $zonecount); readingsEndUpdate( $hash, 0 ); $hash->{LastRequest}="OK"; @@ -860,14 +860,14 @@ sub Tado_UpdateZoneOverlayCallback($) if($err ne "") { - Log3 $name, 3, "Error in UpdateZoneOverlayCallback while requesting ".$param->{url}." - $err"; + Log3 $name, 3, "Error in UpdateZoneOverlayCallback while requesting ".$param->{url}." - $err"; } elsif($data ne "") { Log3 $name, 5, "url ".$param->{url}." returned: $data"; Log3 $name, 3, "TadoAPI $name" . ": " . "set (async) Overlay for Zone $zoneID to: $setting"; - + } # finaly update readings my ($temperature, $humidity, $desiredTemp, $currentHeatingPower, $overlay ) = TadoAPI_GetZoneReadingsById($hash, $zoneID); @@ -881,14 +881,14 @@ sub Tado_UpdateZoneOverlayCallback($) readingsBulkUpdate($hash, "OverlayType_" . $zoneName, $overlay); readingsBulkUpdate($hash, "DesiredTemp_" . $zoneName, $desiredTemp); - # lock zone if timed overlay + # lock zone if timed overlay if(exists($hash->{helper}->{LockedZones}{$zoneID})){ readingsBulkUpdate($hash, "Zone" . $zoneID . "Lock", "timer"); readingsEndUpdate( $hash, 1 ); } else{ readingsEndUpdate( $hash, 1 ); readingsDelete($hash, "Zone" . $zoneID . "Lock"); - } + } } return; } @@ -900,7 +900,7 @@ sub TadoAPI_LogInfoCallback($){ if($err ne "") { - Log3 $name, 3, "Error in LogInfoCallback while requesting ".$param->{url}." - $err"; + Log3 $name, 3, "Error in LogInfoCallback while requesting ".$param->{url}." - $err"; } elsif($data ne "") @@ -917,7 +917,7 @@ sub TadoAPI_SetGeoByIdCallback($){ if($err ne "") { - Log3 $name, 3, "Error in TadoAPI_SetGeoByIdCallback while requesting ".$param->{url}." - $err"; + Log3 $name, 3, "Error in TadoAPI_SetGeoByIdCallback while requesting ".$param->{url}." - $err"; } elsif($data ne "") { @@ -933,7 +933,7 @@ sub TadoAPI_UpdateMobileReadingsCallback($){ if($err ne "") { - Log3 $name, 3, "Error in UpdateMobileReadingsCallback while requesting ".$param->{url}." - $err"; + Log3 $name, 3, "Error in UpdateMobileReadingsCallback while requesting ".$param->{url}." - $err"; } elsif($data ne "") @@ -960,7 +960,7 @@ sub TadoAPI_UpdateMobileReadingsCallback($){ sub TadoAPI_GetZoneInfo(@) { my ($hash) = @_; my $name = $hash->{NAME}; - my $homeID = $attr{$name}{homeID}; + my $homeID = $attr{$name}{homeID}; my $CurrentTokenData = TadoAPI_LoadToken($hash); if(defined($CurrentTokenData)){ @@ -1193,7 +1193,7 @@ sub TadoAPI_ParseMobileItem(@){ my $name = $hash->{NAME}; my $setting = 0; $setting = 1 if $item->{'settings'}->{'geoTrackingEnabled'}; - my $distance = "-"; + my $distance = "-"; $distance = $item->{'location'}->{'relativeDistanceFromHomeFence'} if $setting; readingsBeginUpdate($hash); @@ -1299,7 +1299,7 @@ sub TadoAPI_GetZoneCount(@) { Log3 $name, 3, "TadoAPI $name" . ": " . "GetZoneCount: decode_json failed, invalid json. error:$@\n"; }else{ if(ref($decoded_data) eq 'ARRAY'){ - foreach my $item( @$decoded_data ) { + foreach my $item( @$decoded_data ) { $zonecount++; } return $zonecount; @@ -1328,10 +1328,10 @@ sub TadoAPI_GetZoneNameById(@) { return; } -sub TadoAPI_GetZoneReadingsById(@){ +sub TadoAPI_GetZoneReadingsById(@){ my ($hash, $zoneID) = @_; my $name = $hash->{NAME}; - my $homeID = $attr{$name}{homeID}; + my $homeID = $attr{$name}{homeID}; my $URL=$QueryURL.qq{/$homeID/zones/$zoneID/state}; my $temperature = 0; my $humidity = 0; @@ -1374,7 +1374,7 @@ sub TadoAPI_GetZoneReadingsById(@){ $currentHeatingPower = $decoded_data->{'activityDataPoints'}->{'heatingPower'}->{'percentage'}; $overlay = $decoded_data->{'overlayType'}; if (!defined $overlay) {$overlay = "no overlay"}; - + return ($temperature, $humidity, $desiredTemp, $currentHeatingPower, $overlay ); } } @@ -1402,7 +1402,7 @@ sub TadoAPI_GetTadoDevices(@) { #Log3 $name, 5, 'Blocking GET: ' . Dumper($param); Log3 $name, $reqDebug, "TadoAPI $name" . ": " . "Request $URL"; my ($err, $data) = HttpUtils_BlockingGet($param); - + if($err ne "") { Log3 $name, 3, "TadoAPI $name" . ": " . "RequestTadoDevices: Error while requesting ".$param->{url}." - $err"; @@ -1437,13 +1437,13 @@ sub TadoAPI_storePassword($$) my $index = "TadoAPI_".$name."_passwd"; my $key = getUniqueId().$index; my $e_pwd = ""; - + if (eval {use Digest::MD5;1}) { $key = Digest::MD5::md5_hex(unpack "H*", $key); $key .= Digest::MD5::md5_hex($key); } - + for my $char (split //, $password) { my $encode=chop($key); @@ -1467,22 +1467,22 @@ sub TadoAPI_readPassword($) #Log3 $name,5,"$name, read user password from FhemUtils/uniqueID Key $key"; ($error, $password) = getKeyValue($index); - if ( defined($error) ) + if ( defined($error) ) { Log3 $name,3, "$name, cant't read Tado password from FhemUtils/uniqueID: $error"; - } - - if ( defined($password) ) + } + + if ( defined($password) ) { - if (eval {use Digest::MD5;1}) + if (eval {use Digest::MD5;1}) { $key = Digest::MD5::md5_hex(unpack "H*", $key); $key .= Digest::MD5::md5_hex($key); } my $dec_pwd = ''; - - for my $char (map { pack('C', hex($_)) } ($password =~ /(..)/g)) + + for my $char (map { pack('C', hex($_)) } ($password =~ /(..)/g)) { my $decode=chop($key); $dec_pwd.=chr(ord($char)^ord($decode)); @@ -1490,7 +1490,7 @@ sub TadoAPI_readPassword($) } return $dec_pwd; } - else + else { Log3 $name,3,"$name, no Tado password found in FhemUtils/uniqueID"; return;