critic -4 done, protos removed

This commit is contained in:
Philipp Wo 2020-04-22 02:12:01 +02:00
parent bfb50d1ac5
commit cb245489be
1 changed files with 54 additions and 49 deletions

View File

@ -1,5 +1,5 @@
#=============================================================================== #===============================================================================
# $Id: 98_TadoAPI.pm 102 2019-12-27 15:58:26Z psycho160 $ # $Id: 98_TadoAPI.pm 105 2019-12-27 15:58:26Z psycho160 $
# #
# FILE: 98_TadoAPI.pm # FILE: 98_TadoAPI.pm
# #
@ -79,14 +79,18 @@ sub TadoAPI_Initialize {
. "showPosData:0,1 " . "showPosData:0,1 "
. "updateIntervall " . "updateIntervall "
. $readingFnAttributes; . $readingFnAttributes;
return;
} }
sub TadoAPI_Init { sub TadoAPI_Init {
my $hash = shift; my $hash = shift;
my @args = @_; my $def = shift;
my @args = split( "[ \t][ \t]*", $def );
my $u = my $u =
"wrong syntax: define <name> TadoAPI <username> <homeID> [<mobileID>]"; "wrong syntax: define <name> TadoAPI <username>";
return $u if ( int(@args) < 2 ); return $u if ( int(@args) < 2 );
return; return;
} }
@ -101,7 +105,7 @@ sub TadoAPI_Define {
my $tokenFileName = $tokenFile . "_" . $name; my $tokenFileName = $tokenFile . "_" . $name;
return "Invalid number of arguments: " return "Invalid number of arguments: "
. "define <name> TadoAPI <username> [<homeID>]" . "define <name> TadoAPI <username>"
if ( int(@a) < 1 ); if ( int(@a) < 1 );
my ( $user, $homeID ) = @a; my ( $user, $homeID ) = @a;
@ -149,13 +153,13 @@ sub TadoAPI_Define {
} }
sub TadoAPI_Set { sub TadoAPI_Set {
my $hash = shift; my $hash = shift;
my @a = @_; my $name = shift;
return "Need at least one parameters" if ( @a < 2 ); my $cmd = shift // return qq{set $name needs at least one argument};
my $cmd = $a[1]; my $value = shift;
my $value = $a[2]; my $value2 = shift;
my $name = $hash->{NAME}; my $value3 = shift;
my $subcmd;
my $message = undef; my $message = undef;
if ( !defined( $sets{$cmd} ) ) { if ( !defined( $sets{$cmd} ) ) {
@ -164,7 +168,7 @@ sub TadoAPI_Set {
push @cmds, push @cmds,
$sets{$key} ? $key . ":" . join( ",", $sets{$key} ) : $key; $sets{$key} ? $key . ":" . join( ",", $sets{$key} ) : $key;
} }
return "Unknown argument $a[1], choose one of " . join( " ", @cmds ); return "Unknown argument $cmd, choose one of " . join( " ", @cmds );
} }
if ( ( $cmd ne "password" ) ) { if ( ( $cmd ne "password" ) ) {
@ -179,8 +183,8 @@ sub TadoAPI_Set {
} }
if ( $cmd eq 'setGeo' ) { if ( $cmd eq 'setGeo' ) {
return "Need at least two parameters (mobileID, Setting)" if ( @a < 4 ); return "Need at least two parameters (mobileID, Setting)" if ( !defined($value) );
if ( $a[3] eq "on" ) { if ( $value2 eq "on" ) {
Log3 $name, 3, "TadoAPI: set $name: processing ($cmd)"; Log3 $name, 3, "TadoAPI: set $name: processing ($cmd)";
TadoAPI_SetGeoById( $hash, $value, 1 ); TadoAPI_SetGeoById( $hash, $value, 1 );
} }
@ -195,16 +199,16 @@ sub TadoAPI_Set {
Log3 $name, 5, "TadoAPI $name" . ": " . "processing ($cmd)"; Log3 $name, 5, "TadoAPI $name" . ": " . "processing ($cmd)";
return return
"Need at least two parameters [ZoneID] [Setting] (duration in sec); Setting Info: remove=delete overlay; 0=heating power off; 1<=desired temperature (overlay)" "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 ( !defined($value2) );
if ( $a[3] eq "remove" ) { if ( $value2 eq "remove" ) {
TadoAPI_SetZoneOverlayById( $hash, $value, "remove" ); TadoAPI_SetZoneOverlayById( $hash, $value, "remove" );
} }
elsif ( defined( $a[4] ) ) { elsif ( defined( $value3 ) ) {
TadoAPI_SetZoneOverlayById( $hash, $value, $a[3], $a[4] ); TadoAPI_SetZoneOverlayById( $hash, $value, $value2, $value3 );
} }
elsif ( $a[3] >= 0 ) { elsif ( $value2 >= 0 ) {
TadoAPI_SetZoneOverlayById( $hash, $value, $a[3] ); TadoAPI_SetZoneOverlayById( $hash, $value, $value2 );
} }
Log3 $name, 4, "TadoAPI $name" . ": " . "$cmd finished"; Log3 $name, 4, "TadoAPI $name" . ": " . "$cmd finished";
@ -213,19 +217,17 @@ sub TadoAPI_Set {
Log3 $name, 5, "TadoAPI $name" . ": " . "processing ($cmd)"; Log3 $name, 5, "TadoAPI $name" . ": " . "processing ($cmd)";
return return
"Need at least three parameters [ZoneID] [Duration (sec)] [Setting]" "Need at least three parameters [ZoneID] [Duration (sec)] [Setting]"
if ( @a < 4 ); if (!defined($value3) );
if ( defined( $a[4] ) ) { if ( defined( $value3 ) ) {
TadoAPI_SetTimedZoneOverlay( $hash, $value, $a[3], $a[4] ); TadoAPI_SetTimedZoneOverlay( $hash, $value, $value2, $value3 );
} }
Log3 $name, 4, "TadoAPI $name" . ": " . "$cmd finished"; Log3 $name, 4, "TadoAPI $name" . ": " . "$cmd finished";
} }
elsif ( $cmd eq 'setAllOverlays' ) { elsif ( $cmd eq 'setAllOverlays' ) {
Log3 $name, 5, "TadoAPI $name" . ": " . "processing ($cmd)"; Log3 $name, 5, "TadoAPI $name" . ": " . "processing ($cmd)";
return return "Need at least one parameter (Setting) - Setting: remove=delete overlay; 0=heating power off; 1<=desired temperature (overlay)" if ( !defined($value) );
"Need at least one parameter (Setting) - Setting: remove=delete overlay; 0=heating power off; 1<=desired temperature (overlay)"
if ( @a < 3 );
if ( $value eq "remove" ) { if ( $value eq "remove" ) {
TadoAPI_SetAllOverlays( $hash, "remove" ); TadoAPI_SetAllOverlays( $hash, "remove" );
} }
@ -289,13 +291,13 @@ sub TadoAPI_Set {
elsif ( $cmd eq 'password' ) { elsif ( $cmd eq 'password' ) {
Log3 $name, 3, "TadoAPI $name" . ": " . "processing ($cmd)"; Log3 $name, 3, "TadoAPI $name" . ": " . "processing ($cmd)";
# name und cmd überspringen
shift @a;
shift @a;
# den Rest der das passwort enthält, als ein String # den Rest der das passwort enthält, als ein String
$subcmd = join( " ", @a ); if (defined($value)){
$message = TadoAPI_storePassword( $name, $subcmd ); $message = TadoAPI_storePassword( $name, $value );
}
else{
$message = "no password given";
}
# start the status update timer # start the status update timer
RemoveInternalTimer($hash); RemoveInternalTimer($hash);
@ -308,13 +310,11 @@ sub TadoAPI_Set {
} }
sub TadoAPI_Get { sub TadoAPI_Get {
my $hash = shift; my $hash = shift;
my @a = @_; my $name = shift;
my $cmd = shift // return qq{get $name needs at least one argument};
my $value = shift;
return "Need at least one parameters" if ( @a < 2 );
my $cmd = $a[1];
my $value = $a[2];
my $name = $hash->{NAME};
my $homeID = $attr{$name}{homeID}; my $homeID = $attr{$name}{homeID};
my $message = undef; my $message = undef;
@ -324,7 +324,7 @@ sub TadoAPI_Get {
push @cmds, push @cmds,
$gets{$key} ? $key . ":" . join( ",", $gets{$key} ) : $key; $gets{$key} ? $key . ":" . join( ",", $gets{$key} ) : $key;
} }
return "Unknown argument $a[1], choose one of " . join( " ", @cmds ); return "Unknown argument $cmd, choose one of " . join( " ", @cmds );
} }
my $pwd = TadoAPI_readPassword($name); my $pwd = TadoAPI_readPassword($name);
@ -340,7 +340,7 @@ sub TadoAPI_Get {
COMMAND_HANDLER: { COMMAND_HANDLER: {
$cmd eq "getGeo" and do { $cmd eq "getGeo" and do {
return "Need at least one parameter (mobileID)" if ( @a < 3 ); return "Need at least one parameter (mobileID)" if ( !defined($value) );
return "Wrong MobileID" if ( length($value) < 6 ); return "Wrong MobileID" if ( length($value) < 6 );
Log3 $name, 3, "TadoAPI $name" . ": " . "processing ($cmd)"; Log3 $name, 3, "TadoAPI $name" . ": " . "processing ($cmd)";
TadoAPI_GetGeoById( $hash, $value ); TadoAPI_GetGeoById( $hash, $value );
@ -466,8 +466,10 @@ sub TadoAPI_LoadToken {
my $Token = undef; my $Token = undef;
if ($apiStatus) { if ($apiStatus) {
open( my $TOKENFILE, q{<}, $tokenFileName ) or croak("ERROR: $!"); my $TOKENFILE;
eval { $Token = decode_json(<$TOKENFILE>) }; eval{
open( $TOKENFILE, q{<}, $tokenFileName ) or die("ERROR: $!");
$Token = decode_json(<$TOKENFILE>) };
close($TOKENFILE); close($TOKENFILE);
if ( $@ || $tokenLifeTime < gettimeofday() ) { if ( $@ || $tokenLifeTime < gettimeofday() ) {
@ -546,13 +548,14 @@ sub TadoAPI_NewTokenRequest {
} }
else { else {
#write token data in file #write token data in file
open( my $TOKENFILE, q{>}, $tokenFileName ) or croak("ERROR: $!"); open( my $TOKENFILE, q{>}, $tokenFileName ) or die("ERROR: $!");
print $TOKENFILE $returnData . "\n"; print $TOKENFILE $returnData . "\n";
close($TOKENFILE); close($TOKENFILE);
# token lifetime management # token lifetime management
$hash->{TOKEN_LIFETIME} = if (defined($decoded_data)){
gettimeofday() + $decoded_data->{'expires_in'}; $hash->{TOKEN_LIFETIME} = gettimeofday() + $decoded_data->{'expires_in'};
}
$hash->{TOKEN_LIFETIME_HR} = localtime( $hash->{TOKEN_LIFETIME} ); $hash->{TOKEN_LIFETIME_HR} = localtime( $hash->{TOKEN_LIFETIME} );
Log3 $name, 5, Log3 $name, 5,
"TadoAPI $name" . ": " "TadoAPI $name" . ": "
@ -572,8 +575,10 @@ sub TadoAPI_TokenRefresh {
my $Token = undef; my $Token = undef;
# load token # load token
open( my $TOKENFILE, q{<}, $tokenFileName ) or croak("ERROR: $!"); my $TOKENFILE;
eval { $Token = decode_json(<$TOKENFILE>) }; eval {
open( $TOKENFILE, q{<}, $tokenFileName ) or die("ERROR: $!");
$Token = decode_json(<$TOKENFILE>) };
close($TOKENFILE); close($TOKENFILE);
my $data = { my $data = {
@ -618,7 +623,7 @@ sub TadoAPI_TokenRefresh {
} }
else { else {
#write token data in file #write token data in file
open( my $TOKENFILE, q{>}, $tokenFileName ) or croak("ERROR: $!"); open( my $TOKENFILE, q{>}, $tokenFileName ) or die("ERROR: $!");
print $TOKENFILE $returnData . "\n"; print $TOKENFILE $returnData . "\n";
close($TOKENFILE); close($TOKENFILE);
@ -1778,7 +1783,7 @@ sub TadoAPI_storePassword {
sub TadoAPI_readPassword { sub TadoAPI_readPassword {
my $name = shift; my $name = shift;
my $index = "TadoAPI_" . $name . "_passwd"; my $index = "TadoAPI_" . $name . "_passwd";
my $key = getUniqueId() . $index; my $key = getUniqueId() . $index;