whitespace at the end of lines removed

This commit is contained in:
Philipp Wo 2020-04-20 00:36:32 +02:00
parent d9bfbd0038
commit 8154b435d5
1 changed files with 71 additions and 71 deletions

View File

@ -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 <name> TadoAPI <username> <homeID> [<mobileID>]";
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;