increased timeouts + verbose level support
This commit is contained in:
parent
70bbea2d2a
commit
08c32cf0dc
132
98_TadoAPI.pm
132
98_TadoAPI.pm
|
@ -4,7 +4,7 @@
|
|||
# FILE: 98_TadoAPI.pm
|
||||
#
|
||||
# USAGE: Module for FHEM
|
||||
# Info: Turn $debug on for debugging
|
||||
# Info: Turn verbose on for debugging
|
||||
#
|
||||
# REQUIREMENTS: Below modules should be pre-installed.
|
||||
# HTTP::Request::Common
|
||||
|
@ -38,7 +38,6 @@ my $AuthURL = qq{https://auth.tado.com/oauth/token};
|
|||
my $DataURL = qq{https://my.tado.com/api/v2/me};
|
||||
my $QueryURL = qq{https://my.tado.com/api/v2/homes};
|
||||
my $tokenFile = "./FHEM/FhemUtils/TadoAPI_token";
|
||||
my $debug = 0;
|
||||
my $header = {};
|
||||
my $data = {};
|
||||
my $TokenData = {};
|
||||
|
@ -148,9 +147,8 @@ sub TadoAPI_Set(@) {
|
|||
my $value = $a[2];
|
||||
my $name = $hash->{NAME};
|
||||
my $subcmd;
|
||||
my $message = undef;
|
||||
|
||||
#debug
|
||||
$debug = $attr{$name}{debug};
|
||||
if(!defined($sets{$cmd})) {
|
||||
my @cmds = ();
|
||||
foreach my $key (sort keys %sets) {
|
||||
|
@ -169,10 +167,9 @@ sub TadoAPI_Set(@) {
|
|||
TadoAPI_SetGeoById($hash, $value, 0);
|
||||
}
|
||||
TadoAPI_GetGeoById($hash, $value);
|
||||
return undef;
|
||||
|
||||
} elsif( $cmd eq 'setZoneOverlay' ) {
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "processing ($cmd)" if $debug;
|
||||
Log3 $name, 5, "TadoAPI $name" . ": " . "processing ($cmd)";
|
||||
return "Need at least two parameters (ZoneID, Setting)" if(@a < 4);
|
||||
|
||||
if( $a[3] eq "off" ) {
|
||||
|
@ -181,10 +178,9 @@ sub TadoAPI_Set(@) {
|
|||
TadoAPI_SetZoneOverlayById($hash, $value, $a[3]);
|
||||
}
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "$cmd finished\n";
|
||||
return undef;
|
||||
|
||||
} elsif( $cmd eq 'setAllOverlays' ) {
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "processing ($cmd)" if $debug;
|
||||
Log3 $name, 5, "TadoAPI $name" . ": " . "processing ($cmd)";
|
||||
return "Need at least one parameter (Setting)" if(@a < 3);
|
||||
if( $value eq "off" ) {
|
||||
TadoAPI_SetAllOverlays($hash, "off");
|
||||
|
@ -192,22 +188,21 @@ sub TadoAPI_Set(@) {
|
|||
TadoAPI_SetAllOverlays($hash, $value);
|
||||
}
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "$cmd finished\n";
|
||||
return undef;
|
||||
|
||||
} elsif( $cmd eq 'refreshToken' ) {
|
||||
Log3 $name, 3, "TadoAPI: set $name: processing ($cmd)";
|
||||
RemoveInternalTimer($hash);
|
||||
InternalTimer( gettimeofday() + 10, "TadoAPI_Update", $hash, 0 );
|
||||
TadoAPI_LoadToken($hash);
|
||||
return undef;
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "$cmd finished\n";
|
||||
|
||||
} elsif( $cmd eq 'update' ) {
|
||||
Log3 $name, 3, "TadoAPI: set $name: processing ($cmd)";
|
||||
TadoAPI_UpdateFn($hash);
|
||||
return undef;
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "$cmd finished\n";
|
||||
|
||||
} elsif( $cmd eq 'getTemperature' ) {
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "processing ($cmd)" if $debug;
|
||||
Log3 $name, 5, "TadoAPI $name" . ": " . "processing ($cmd)";
|
||||
return "ZoneID as parameter needed" if (!$value);
|
||||
if( $value >= 1 ) {
|
||||
TadoAPI_GetZoneReadingsById($hash, $value);
|
||||
|
@ -215,24 +210,23 @@ sub TadoAPI_Set(@) {
|
|||
return "Wrong ZoneID";
|
||||
}
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "$cmd finished\n";
|
||||
return undef;
|
||||
|
||||
|
||||
} elsif( $cmd eq 'password' ) {
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "processing ($cmd)" if $debug;
|
||||
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
|
||||
$subcmd = join(" ",@a);
|
||||
return TadoAPI_storePassword($name,$subcmd);
|
||||
#Log3 $name, 3, "TadoAPI $name" . ": " . "$cmd finished\n";
|
||||
$message = TadoAPI_storePassword($name,$subcmd);
|
||||
|
||||
# start the status update timer
|
||||
RemoveInternalTimer($hash);
|
||||
InternalTimer( gettimeofday() + 10, "TadoAPI_Update", $hash, 0 );
|
||||
return undef;
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "$cmd finished\n";
|
||||
}
|
||||
|
||||
return $message if $message;
|
||||
return TadoAPI_Catch($@) if $@;
|
||||
}
|
||||
|
||||
|
@ -245,8 +239,6 @@ sub TadoAPI_Get(@) {
|
|||
my $homeID = $attr{$name}{homeID};
|
||||
my $message = undef;
|
||||
|
||||
#debug
|
||||
$debug = $attr{$name}{debug};
|
||||
if(!defined($gets{$cmd})) {
|
||||
my @cmds = ();
|
||||
foreach my $key (sort keys %gets) {
|
||||
|
@ -262,14 +254,14 @@ sub TadoAPI_Get(@) {
|
|||
$cmd eq "getGeo" and do {
|
||||
return "Need at least one parameter (mobileID)" if(@a < 3);
|
||||
return "Wrong MobileID" if (length($value) < 6);
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "processing ($cmd)" if $debug;
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "processing ($cmd)";
|
||||
TadoAPI_GetGeoById($hash, $value);
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "$cmd finished\n";
|
||||
last;
|
||||
};
|
||||
|
||||
$cmd eq "getMobileDevices" and do {
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "processing ($cmd)" if $debug;
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "processing ($cmd)";
|
||||
my @data = TadoAPI_GetMobileDevices($hash);
|
||||
$message = "Device List:\n";
|
||||
foreach my $item ( @data ){
|
||||
|
@ -281,14 +273,14 @@ sub TadoAPI_Get(@) {
|
|||
};
|
||||
|
||||
$cmd eq "getXTest" and do {
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "processing ($cmd)" if $debug;
|
||||
Log3 $name, 5, "TadoAPI $name" . ": " . "processing ($cmd)";
|
||||
$message = "Name: " . TadoAPI_GetZoneNameById($hash, $value);
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "$cmd finished\n";
|
||||
last;
|
||||
};
|
||||
|
||||
$cmd eq "getZoneDevices" and do {
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "processing ($cmd)" if $debug;
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "processing ($cmd)";
|
||||
my @devArr = TadoAPI_RequestTadoDevices($hash);
|
||||
my $devicecount = 0;
|
||||
$message = "Tado-Device(s):\n";
|
||||
|
@ -309,7 +301,7 @@ sub TadoAPI_Get(@) {
|
|||
};
|
||||
|
||||
$cmd eq "getZoneInfo" and do {
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "processing ($cmd)" if $debug;
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "processing ($cmd)";
|
||||
TadoAPI_GetZoneInfo($hash);
|
||||
my $zonecount = TadoAPI_GetZoneCount($hash);
|
||||
$message = "You have $zonecount Zones in Home " . $attr{$name}{homeID} . ".\n";
|
||||
|
@ -373,8 +365,6 @@ sub TadoAPI_LoadToken(@){
|
|||
my $tokenLifeTime = $hash->{TOKEN_LIFETIME};
|
||||
$tokenLifeTime = 0 if(!defined $tokenLifeTime || $tokenLifeTime eq '');
|
||||
my $Token = undef;
|
||||
#debug
|
||||
$debug = $attr{$name}{debug};
|
||||
|
||||
TadoAPI_OnlineStatus($hash);
|
||||
|
||||
|
@ -383,14 +373,14 @@ sub TadoAPI_LoadToken(@){
|
|||
open(TOKENFILE, '<', $tokenFileName) or die("ERROR: $!");
|
||||
$Token = decode_json(<TOKENFILE>)};
|
||||
if($@ || $tokenLifeTime < gettimeofday()){
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "Error while loading: $@" if $debug && $@;
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "No Token or Token is expired, requesting new one" if $debug && $tokenLifeTime < gettimeofday();
|
||||
Log3 $name, 5, "TadoAPI $name" . ": " . "Error while loading: $@ ,requesting new one";
|
||||
Log3 $name, 5, "TadoAPI $name" . ": " . "Token is expired, requesting new one" if $tokenLifeTime < gettimeofday();
|
||||
TadoAPI_NewTokenRequest($hash);
|
||||
}else{
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "Token expires at " . localtime($tokenLifeTime) if $debug;
|
||||
Log3 $name, 5, "TadoAPI $name" . ": " . "Token expires at " . localtime($tokenLifeTime);
|
||||
# if token is about to expire, refresh him
|
||||
if(($tokenLifeTime-15) < gettimeofday()){
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "Token will expire soon, refreshing" if $debug;
|
||||
Log3 $name, 5, "TadoAPI $name" . ": " . "Token will expire soon, refreshing";
|
||||
TadoAPI_TokenRefresh($hash);
|
||||
}
|
||||
}
|
||||
|
@ -407,7 +397,7 @@ sub TadoAPI_NewTokenRequest(@) {
|
|||
my $password = TadoAPI_readPassword($name);
|
||||
my $tokenFileName = $tokenFile."_".$name;
|
||||
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "calling NewTokenRequest()" if $debug;
|
||||
Log3 $name, 5, "TadoAPI $name" . ": " . "calling NewTokenRequest()";
|
||||
|
||||
$data = {
|
||||
client_id => $client_id,
|
||||
|
@ -426,7 +416,7 @@ sub TadoAPI_NewTokenRequest(@) {
|
|||
data => $data
|
||||
};
|
||||
|
||||
Log3 $name, 3, 'Blocking GET: ' . Dumper($param) if $debug;
|
||||
Log3 $name, 5, 'Blocking GET: ' . Dumper($param);
|
||||
my ($err, $data) = HttpUtils_BlockingGet($param);
|
||||
|
||||
if($err ne "")
|
||||
|
@ -435,7 +425,7 @@ sub TadoAPI_NewTokenRequest(@) {
|
|||
}
|
||||
elsif($data ne "")
|
||||
{
|
||||
Log3 $name, 3, "url ".$param->{url}." returned: $data" if $debug;
|
||||
Log3 $name, 5, "url ".$param->{url}." returned: $data";
|
||||
my $decoded_data = eval { decode_json($data) };
|
||||
if ($@){
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "NewTokenRequest: decode_json failed, invalid json. error: $@ ";
|
||||
|
@ -448,7 +438,7 @@ sub TadoAPI_NewTokenRequest(@) {
|
|||
# token lifetime management
|
||||
$hash->{TOKEN_LIFETIME} = gettimeofday() + $decoded_data->{'expires_in'};
|
||||
$hash->{TOKEN_LIFETIME_HR} = localtime($hash->{TOKEN_LIFETIME});
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "Retrived new authentication token successfully. Valid until " . localtime($hash->{TOKEN_LIFETIME})if $debug;
|
||||
Log3 $name, 5, "TadoAPI $name" . ": " . "Retrived new authentication token successfully. Valid until " . localtime($hash->{TOKEN_LIFETIME});
|
||||
$hash->{STATE}="reachable";
|
||||
}
|
||||
}
|
||||
|
@ -458,7 +448,7 @@ sub TadoAPI_TokenRefresh(@) {
|
|||
my ($hash) = @_;
|
||||
my $name = $hash->{NAME};
|
||||
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "calling TokenRefresh()" if $debug;
|
||||
Log3 $name, 5, "TadoAPI $name" . ": " . "calling TokenRefresh()";
|
||||
|
||||
# load token
|
||||
eval {
|
||||
|
@ -490,7 +480,7 @@ sub TadoAPI_Update(@){
|
|||
my ($hash) = @_;
|
||||
my $name = $hash->{NAME};
|
||||
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "TadoAPI_Update called" if $debug;
|
||||
Log3 $name, 5, "TadoAPI $name" . ": " . "TadoAPI_Update called";
|
||||
|
||||
# timer loop
|
||||
#
|
||||
|
@ -524,7 +514,7 @@ sub TadoAPI_SetZoneOverlayById(@){
|
|||
my $method = "";
|
||||
my $myjson ="";
|
||||
|
||||
Log3 $name, 3, "TadoAPI $name" . ": SetOverlay for Zone $zoneID (Setting: " . $setting . ") - " . "query-URL: $URL" if $debug;
|
||||
Log3 $name, 5, "TadoAPI $name" . ": SetOverlay for Zone $zoneID (Setting: " . $setting . ") - " . "query-URL: $URL";
|
||||
|
||||
if ($setting eq "off"){
|
||||
$method = "DELETE";
|
||||
|
@ -606,7 +596,7 @@ sub TadoAPI_SetAllOverlays(@){
|
|||
url => $URL,
|
||||
header => { "Content-Type"=>"application/json;charset=UTF-8","Authorization" => "$TokenData->{'token_type'} $TokenData->{'access_token'}" },
|
||||
method => $method,
|
||||
timeout => 3,
|
||||
timeout => 10,
|
||||
callback => \&Tado_UpdateZoneOverlayCallback,
|
||||
hash => $hash,
|
||||
setting => $setting,
|
||||
|
@ -634,10 +624,10 @@ sub TadoAPI_UpdateAllZonesCallback($){
|
|||
|
||||
elsif($data ne "")
|
||||
{
|
||||
Log3 $name, 3, "url ".$param->{url}." returned: $data" if $debug;
|
||||
Log3 $name, 5, "url ".$param->{url}." returned: $data";
|
||||
my $zonecount = TadoAPI_GetZoneCount($hash);
|
||||
for (my $i=1; $i <= $zonecount; $i++) {
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "Set Reading Update for Zone $i ";
|
||||
Log3 $name, 5, "TadoAPI $name" . ": " . "Set Reading Update for Zone $i ";
|
||||
my ($temperature, $humidity, $desiredTemp, $currentHeatingPower, $overlay ) = TadoAPI_GetZoneReadingsById($hash, $i);
|
||||
my $zoneName = TadoAPI_GetZoneNameById($hash, $i);
|
||||
|
||||
|
@ -670,7 +660,7 @@ sub TadoAPI_UpdateFn(@){
|
|||
url => $URL,
|
||||
header => { "Content-Type"=>"application/json;charset=UTF-8","Authorization" => "$TokenData->{'token_type'} $TokenData->{'access_token'}" },
|
||||
method => 'GET',
|
||||
timeout => 4,
|
||||
timeout => 10,
|
||||
hash => $hash,
|
||||
callback => \&TadoAPI_UpdateAllZonesCallback
|
||||
};
|
||||
|
@ -678,6 +668,7 @@ sub TadoAPI_UpdateFn(@){
|
|||
HttpUtils_NonblockingGet($request);
|
||||
|
||||
# mobile devices
|
||||
$TokenData = TadoAPI_LoadToken($hash);
|
||||
$URL=$QueryURL . qq{/$homeID/mobileDevices};
|
||||
$request = {
|
||||
url => $URL,
|
||||
|
@ -690,12 +681,13 @@ sub TadoAPI_UpdateFn(@){
|
|||
HttpUtils_NonblockingGet($request);
|
||||
|
||||
# tado devices
|
||||
$TokenData = TadoAPI_LoadToken($hash);
|
||||
$URL=$QueryURL.qq{/$homeID/zones};
|
||||
$request = {
|
||||
url => $URL,
|
||||
header => { "Content-Type"=>"application/json;charset=UTF-8","Authorization" => "$TokenData->{'token_type'} $TokenData->{'access_token'}" },
|
||||
method => 'GET',
|
||||
timeout => 10,
|
||||
timeout => 8,
|
||||
callback => \&TadoAPI_UpdateTadoDeviceInformationCallback,
|
||||
hash => $hash
|
||||
};
|
||||
|
@ -715,11 +707,11 @@ sub TadoAPI_GetGeoById(@){
|
|||
url => $URL,
|
||||
header => {"Content-Type"=>"application/json;charset=UTF-8","Authorization" => "$TokenData->{'token_type'} $TokenData->{'access_token'}"},
|
||||
method => 'GET',
|
||||
timeout => 2,
|
||||
timeout => 4,
|
||||
hash => $hash,
|
||||
};
|
||||
|
||||
Log3 $name, 3, 'Blocking GET: ' . Dumper($param) if $debug;
|
||||
Log3 $name, 5, 'Blocking GET: ' . Dumper($param);
|
||||
my ($err, $data) = HttpUtils_BlockingGet($param);
|
||||
|
||||
if($err ne "")
|
||||
|
@ -728,7 +720,7 @@ sub TadoAPI_GetGeoById(@){
|
|||
}
|
||||
elsif($data ne "")
|
||||
{
|
||||
Log3 $name, 3, "url ".$param->{url}." returned: $data" if $debug;
|
||||
Log3 $name, 5, "url ".$param->{url}." returned: $data";
|
||||
my $decoded_data = eval { decode_json($data) };
|
||||
if ($@){
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "TadoAPI_GetGeoById: decode_json failed, invalid json. error:$@\n";
|
||||
|
@ -755,12 +747,12 @@ sub TadoAPI_callback($){
|
|||
if($param->{code} == 401 || $param->{code} == 400){
|
||||
$apiStatus = 1;
|
||||
$hash->{STATE}="reachable";
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "API is reachable. Callback Status: " . $param->{code} if $debug;
|
||||
Log3 $name, 5, "TadoAPI $name" . ": " . "API is reachable. Callback Status: " . $param->{code};
|
||||
|
||||
}else{
|
||||
$apiStatus = 0;
|
||||
$hash->{STATE}="error";
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "API error: apiStatus $apiStatus ($err)" if $debug;
|
||||
Log3 $name, 5, "TadoAPI $name" . ": " . "API error: apiStatus $apiStatus ($err)";
|
||||
|
||||
}
|
||||
return undef;
|
||||
|
@ -781,7 +773,7 @@ sub Tado_StoreTokenCallback($)
|
|||
|
||||
elsif($data ne "")
|
||||
{
|
||||
Log3 $name, 3, "url ".$param->{url}." returned: $data" if $debug;
|
||||
Log3 $name, 5, "url ".$param->{url}." returned: $data";
|
||||
|
||||
my $decoded_data = eval{decode_json($data);};
|
||||
|
||||
|
@ -797,7 +789,7 @@ sub Tado_StoreTokenCallback($)
|
|||
# token lifetime management
|
||||
$hash->{TOKEN_LIFETIME} = gettimeofday() + $decoded_data->{'expires_in'};
|
||||
$hash->{TOKEN_LIFETIME_HR} = localtime($hash->{TOKEN_LIFETIME});
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "StoreTokenCallback: Refreshed authentication token successfully. Valid until " . localtime($hash->{TOKEN_LIFETIME})if $debug;
|
||||
Log3 $name, 5, "TadoAPI $name" . ": " . "StoreTokenCallback: Refreshed authentication token successfully. Valid until " . localtime($hash->{TOKEN_LIFETIME});
|
||||
$hash->{STATE}="reachable";
|
||||
}
|
||||
}
|
||||
|
@ -819,7 +811,7 @@ sub Tado_UpdateZoneOverlayCallback($)
|
|||
|
||||
elsif($data ne "")
|
||||
{
|
||||
Log3 $name, 3, "url ".$param->{url}." returned: $data" if $debug;
|
||||
Log3 $name, 5, "url ".$param->{url}." returned: $data";
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "Set Overlay for Zone $zoneID to: $setting";
|
||||
|
||||
}
|
||||
|
@ -857,7 +849,7 @@ sub TadoAPI_UpdateTadoDeviceInformationCallback($){
|
|||
|
||||
elsif($data ne "")
|
||||
{
|
||||
Log3 $name, 3, "url ".$param->{url}." returned: $data" if $debug;
|
||||
Log3 $name, 5, "url ".$param->{url}." returned: $data";
|
||||
my $decoded_data = eval { decode_json($data) };
|
||||
|
||||
# if api returns error
|
||||
|
@ -888,12 +880,12 @@ sub TadoAPI_UpdateMobileReadingsCallback($){
|
|||
|
||||
if($err ne "")
|
||||
{
|
||||
Log3 $name, 3, "Error in TadoAPI_UpdateMobileReadingsCallback while requesting ".$param->{url}." - $err";
|
||||
Log3 $name, 3, "Error in UpdateMobileReadingsCallback while requesting ".$param->{url}." - $err";
|
||||
}
|
||||
|
||||
elsif($data ne "")
|
||||
{
|
||||
Log3 $name, 3, "url ".$param->{url}." returned: $data" if $debug;
|
||||
Log3 $name, 5, "url ".$param->{url}." returned: $data";
|
||||
my $decoded_data = eval { decode_json($data) };
|
||||
|
||||
# if api returns error
|
||||
|
@ -901,7 +893,7 @@ sub TadoAPI_UpdateMobileReadingsCallback($){
|
|||
|
||||
if ($@){
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "Decode_json failed, invalid json. error:$@\n" if $@;
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "Error in TadoAPI_UpdateMobileReadingsCallback, Code: " . $decoded_data->{'errors'}->[0]->{'code'};
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "Error in UpdateMobileReadingsCallback, Code: " . $decoded_data->{'errors'}->[0]->{'code'};
|
||||
$hash->{LastRequest}="error";
|
||||
}else{
|
||||
foreach my $item ( @$decoded_data ){
|
||||
|
@ -927,7 +919,7 @@ sub TadoAPI_GetZoneInfo(@) {
|
|||
url => $URL,
|
||||
header => { "Content-Type"=>"application/json;charset=UTF-8","Authorization" => "$TokenData->{'token_type'} $TokenData->{'access_token'}" },
|
||||
method => 'GET',
|
||||
timeout => 3,
|
||||
timeout => 4,
|
||||
infotext => "HomeInfos",
|
||||
hash => $hash,
|
||||
callback => \&TadoAPI_LogInfoCallback
|
||||
|
@ -1068,7 +1060,7 @@ sub TadoAPI_RequestTadoDevices(@) {
|
|||
hash => $hash
|
||||
};
|
||||
|
||||
Log3 $name, 3, 'Blocking GET: ' . Dumper($param) if $debug;
|
||||
Log3 $name, 5, 'Blocking GET: ' . Dumper($param);
|
||||
my ($err, $data) = HttpUtils_BlockingGet($param);
|
||||
|
||||
if($err ne "")
|
||||
|
@ -1077,7 +1069,7 @@ sub TadoAPI_RequestTadoDevices(@) {
|
|||
}
|
||||
elsif($data ne "")
|
||||
{
|
||||
Log3 $name, 3, "url ".$param->{url}." returned: $data" if $debug;
|
||||
Log3 $name, 5, "url ".$param->{url}." returned: $data";
|
||||
my $decoded_data = eval { decode_json($data) };
|
||||
if ($@){
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "TadoAPI_RequestTadoDevices: decode_json failed, invalid json. error:$@\n";
|
||||
|
@ -1114,7 +1106,7 @@ sub TadoAPI_ZoneRequest(@) {
|
|||
zoneID => $i
|
||||
};
|
||||
|
||||
Log3 $name, 3, 'Blocking GET: ' . Dumper($param) if $debug;
|
||||
Log3 $name, 5, 'Blocking GET: ' . Dumper($param);
|
||||
my ($err, $data) = HttpUtils_BlockingGet($param);
|
||||
|
||||
if($err ne "")
|
||||
|
@ -1123,7 +1115,7 @@ sub TadoAPI_ZoneRequest(@) {
|
|||
}
|
||||
elsif($data ne "")
|
||||
{
|
||||
Log3 $name, 3, "url ".$param->{url}." returned: $data" if $debug;
|
||||
Log3 $name, 5, "url ".$param->{url}." returned: $data";
|
||||
|
||||
# An dieser Stelle die Antwort parsen / verarbeiten mit $data
|
||||
my $decoded_data = eval { decode_json($data) };
|
||||
|
@ -1155,7 +1147,7 @@ sub TadoAPI_GetMobileDevices(@) {
|
|||
hash => $hash
|
||||
};
|
||||
|
||||
Log3 $name, 3, 'Blocking GET: ' . Dumper($param) if $debug;
|
||||
Log3 $name, 5, 'Blocking GET: ' . Dumper($param);
|
||||
my ($err, $data) = HttpUtils_BlockingGet($param);
|
||||
|
||||
if($err ne "")
|
||||
|
@ -1165,7 +1157,7 @@ sub TadoAPI_GetMobileDevices(@) {
|
|||
elsif($data ne "")
|
||||
{
|
||||
my @devices = ();
|
||||
Log3 $name, 3, "url ".$param->{url}." returned: $data" if $debug;
|
||||
Log3 $name, 5, "url ".$param->{url}." returned: $data";
|
||||
my $decoded_data = eval { decode_json($data) };
|
||||
if ($@){
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "TadoAPI_GetMobileDevices: decode_json failed, invalid json. error:$@\n";
|
||||
|
@ -1209,7 +1201,7 @@ sub TadoAPI_GetHomeId(@){
|
|||
hash => $hash,
|
||||
};
|
||||
|
||||
Log3 $name, 3, 'Blocking GET: ' . Dumper($param) if $debug;
|
||||
Log3 $name, 5, 'Blocking GET: ' . Dumper($param);
|
||||
my ($err, $data) = HttpUtils_BlockingGet($param);
|
||||
|
||||
if($err ne "")
|
||||
|
@ -1218,7 +1210,7 @@ sub TadoAPI_GetHomeId(@){
|
|||
}
|
||||
elsif($data ne "")
|
||||
{
|
||||
Log3 $name, 3, "url ".$param->{url}." returned: $data" if $debug;
|
||||
Log3 $name, 5, "url ".$param->{url}." returned: $data";
|
||||
my $decoded_data = eval { decode_json($data) };
|
||||
if ($@){
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "GetHomeId: Decode_json failed, invalid json. error:$@" if $@;
|
||||
|
@ -1249,7 +1241,7 @@ sub TadoAPI_GetZoneCount(@) {
|
|||
hash => $hash
|
||||
};
|
||||
|
||||
Log3 $name, 3, 'Blocking GET: ' . Dumper($param) if $debug;
|
||||
Log3 $name, 5, 'Blocking GET: ' . Dumper($param);
|
||||
my ($err, $data) = HttpUtils_BlockingGet($param);
|
||||
|
||||
if($err ne "")
|
||||
|
@ -1259,7 +1251,7 @@ sub TadoAPI_GetZoneCount(@) {
|
|||
elsif($data ne "")
|
||||
{
|
||||
my @devices = ();
|
||||
Log3 $name, 3, "url ".$param->{url}." returned: $data" if $debug;
|
||||
Log3 $name, 5, "url ".$param->{url}." returned: $data";
|
||||
my $decoded_data = eval { decode_json($data) };
|
||||
#print Dumper($decoded_data);
|
||||
|
||||
|
@ -1294,7 +1286,7 @@ sub TadoAPI_GetZoneNameById(@) {
|
|||
hash => $hash
|
||||
};
|
||||
|
||||
Log3 $name, 3, 'Blocking GET: ' . Dumper($param) if $debug;
|
||||
Log3 $name, 5, 'Blocking GET: ' . Dumper($param);
|
||||
my ($err, $data) = HttpUtils_BlockingGet($param);
|
||||
|
||||
if($err ne "")
|
||||
|
@ -1304,7 +1296,7 @@ sub TadoAPI_GetZoneNameById(@) {
|
|||
elsif($data ne "")
|
||||
{
|
||||
my @devices = ();
|
||||
Log3 $name, 3, "url ".$param->{url}." returned: $data" if $debug;
|
||||
Log3 $name, 5, "url ".$param->{url}." returned: $data";
|
||||
my $decoded_data = eval { decode_json($data) };
|
||||
|
||||
if ($@){
|
||||
|
@ -1344,7 +1336,7 @@ sub TadoAPI_GetZoneReadingsById(@){
|
|||
hash => $hash
|
||||
};
|
||||
|
||||
Log3 $name, 3, 'Blocking GET: ' . Dumper($param) if $debug;
|
||||
Log3 $name, 5, 'Blocking GET: ' . Dumper($param);
|
||||
my ($err, $data) = HttpUtils_BlockingGet($param);
|
||||
|
||||
if($err ne "")
|
||||
|
@ -1353,7 +1345,7 @@ sub TadoAPI_GetZoneReadingsById(@){
|
|||
}
|
||||
elsif($data ne "")
|
||||
{
|
||||
Log3 $name, 3, "url ".$param->{url}." returned: $data" if $debug;
|
||||
Log3 $name, 5, "url ".$param->{url}." returned: $data";
|
||||
my $decoded_data = eval { decode_json($data) };
|
||||
if ($@){
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "TadoAPI_GetZoneReadingsById: Zone $zoneID decode_json failed, invalid json. error:$@\n";
|
||||
|
|
Loading…
Reference in New Issue