reduced API-querys in UpdateFn up to 50%
This commit is contained in:
parent
e2a3946e3e
commit
4102cadc6c
@ -40,6 +40,7 @@ my $tokenFile = "./FHEM/FhemUtils/TadoAPI_token";
|
||||
my $header = {};
|
||||
my $data = {};
|
||||
my $TokenData = {};
|
||||
my $reqDebug = 5;
|
||||
|
||||
# helpers
|
||||
my $apiStatus = 1;
|
||||
@ -376,6 +377,7 @@ sub TadoAPI_CheckStatus(@){
|
||||
callback => \&TadoAPI_callback
|
||||
};
|
||||
#test if api is reachable
|
||||
Log3 $name, $reqDebug, "TadoAPI $name" . ": " . "Request $AuthURL";
|
||||
HttpUtils_NonblockingGet($param);
|
||||
|
||||
return undef;
|
||||
@ -440,6 +442,7 @@ sub TadoAPI_NewTokenRequest(@) {
|
||||
};
|
||||
|
||||
#Log3 $name, 5, 'Blocking GET: ' . Dumper($param);
|
||||
Log3 $name, $reqDebug, "TadoAPI $name" . ": " . "Request $AuthURL";
|
||||
my ($err, $data) = HttpUtils_BlockingGet($param);
|
||||
|
||||
if($err ne "")
|
||||
@ -495,6 +498,7 @@ sub TadoAPI_TokenRefresh(@) {
|
||||
};
|
||||
|
||||
#Log3 $name, 5, 'Blocking GET TokenRefresh: ' . Dumper($param);
|
||||
Log3 $name, $reqDebug, "TadoAPI $name" . ": " . "Request $AuthURL";
|
||||
my ($err, $data) = HttpUtils_BlockingGet($param);
|
||||
|
||||
if($err ne "")
|
||||
@ -663,6 +667,7 @@ sub TadoAPI_SetZoneOverlayById(@){
|
||||
};
|
||||
|
||||
#Log3 $name, 5, 'NonBlocking Request: ' . Dumper($request);
|
||||
Log3 $name, $reqDebug, "TadoAPI $name" . ": " . "Request $URL";
|
||||
HttpUtils_NonblockingGet($request);
|
||||
}
|
||||
}
|
||||
@ -705,6 +710,7 @@ sub TadoAPI_UpdateFn(@){
|
||||
hash => $hash,
|
||||
callback => \&TadoAPI_UpdateAllZoneReadingsCallback
|
||||
};
|
||||
Log3 $name, $reqDebug, "TadoAPI $name" . ": " . "UpdFN: Request $URL";
|
||||
HttpUtils_NonblockingGet($request);
|
||||
|
||||
# mobile devices
|
||||
@ -718,6 +724,7 @@ sub TadoAPI_UpdateFn(@){
|
||||
callback => \&TadoAPI_UpdateMobileReadingsCallback,
|
||||
hash => $hash
|
||||
};
|
||||
Log3 $name, $reqDebug, "TadoAPI $name" . ": " . "Request $URL";
|
||||
HttpUtils_NonblockingGet($request);
|
||||
}
|
||||
}
|
||||
@ -770,9 +777,10 @@ sub TadoAPI_UpdateAllZoneReadingsCallback($){
|
||||
readingsBeginUpdate($hash);
|
||||
foreach my $zone ( @$decoded_data ){
|
||||
my $zoneid = $zone->{'id'};
|
||||
my $zoneName = TadoAPI_ReplaceUmlaute($zone->{'name'});
|
||||
Log3 $name, 5, "TadoAPI $name" . ": " . "Set Reading Update for Zone $zoneid ";
|
||||
|
||||
my ($temperature, $humidity, $desiredTemp, $currentHeatingPower, $overlay, $zoneName ) = TadoAPI_GetZoneReadingsById($hash, $zoneid);
|
||||
my ($temperature, $humidity, $desiredTemp, $currentHeatingPower, $overlay ) = TadoAPI_GetZoneReadingsById($hash, $zoneid);
|
||||
|
||||
# updates zone readings
|
||||
readingsBulkUpdate($hash, "Temperatur_" . $zoneName, $temperature);
|
||||
@ -785,7 +793,6 @@ sub TadoAPI_UpdateAllZoneReadingsCallback($){
|
||||
my $devices = $zone->{'devices'};
|
||||
foreach my $device ( @$devices ){
|
||||
readingsBulkUpdate($hash, "Battery_" . $device->{'serialNo'}, $device->{'batteryState'});
|
||||
$hash->{LastRequest}="OK";
|
||||
}
|
||||
}
|
||||
readingsEndUpdate( $hash, 1 );
|
||||
@ -794,6 +801,7 @@ sub TadoAPI_UpdateAllZoneReadingsCallback($){
|
||||
readingsBeginUpdate($hash);
|
||||
readingsBulkUpdate($hash, "ActiveZones", $zonecount);
|
||||
readingsEndUpdate( $hash, 0 );
|
||||
$hash->{LastRequest}="OK";
|
||||
}
|
||||
}
|
||||
|
||||
@ -915,6 +923,7 @@ sub TadoAPI_GetZoneInfo(@) {
|
||||
hash => $hash,
|
||||
callback => \&TadoAPI_LogInfoCallback
|
||||
};
|
||||
Log3 $name, $reqDebug, "TadoAPI $name" . ": " . "Request $URL";
|
||||
HttpUtils_NonblockingGet($request);
|
||||
|
||||
# Mobileinfo
|
||||
@ -943,6 +952,7 @@ sub TadoAPI_GetZoneInfo(@) {
|
||||
hash => $hash,
|
||||
callback => \&TadoAPI_LogInfoCallback
|
||||
};
|
||||
Log3 $name, $reqDebug, "TadoAPI $name" . ": " . "Request $URL";
|
||||
HttpUtils_NonblockingGet($request);
|
||||
}
|
||||
|
||||
@ -961,6 +971,7 @@ sub TadoAPI_GetZoneInfo(@) {
|
||||
hash => $hash,
|
||||
callback => \&TadoAPI_LogInfoCallback
|
||||
};
|
||||
Log3 $name, $reqDebug, "TadoAPI $name" . ": " . "Request $URL";
|
||||
HttpUtils_NonblockingGet($request);
|
||||
}
|
||||
}
|
||||
@ -993,6 +1004,7 @@ sub TadoAPI_SetGeoById(@){
|
||||
hash => $hash,
|
||||
callback => \&TadoAPI_SetGeoByIdCallback
|
||||
};
|
||||
Log3 $name, $reqDebug, "TadoAPI $name" . ": " . "Request $URL";
|
||||
HttpUtils_NonblockingGet($request);
|
||||
}
|
||||
}
|
||||
@ -1026,6 +1038,7 @@ sub TadoAPI_GetHomeId(@){
|
||||
};
|
||||
|
||||
#Log3 $name, 5, 'Blocking GET: ' . Dumper($param);
|
||||
Log3 $name, $reqDebug, "TadoAPI $name" . ": " . "Request $DataURL";
|
||||
my ($err, $data) = HttpUtils_BlockingGet($param);
|
||||
|
||||
if($err ne "")
|
||||
@ -1068,6 +1081,7 @@ sub TadoAPI_GetGeoById(@){
|
||||
};
|
||||
|
||||
#Log3 $name, 5, 'Blocking GET: ' . Dumper($param);
|
||||
Log3 $name, $reqDebug, "TadoAPI $name" . ": " . "Request $URL";
|
||||
my ($err, $data) = HttpUtils_BlockingGet($param);
|
||||
|
||||
if($err ne "")
|
||||
@ -1092,7 +1106,7 @@ sub TadoAPI_GetGeoById(@){
|
||||
}
|
||||
}
|
||||
}elsif(defined($item)){
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "GetGeoById: parsing item";
|
||||
Log3 $name, 5, "TadoAPI $name" . ": " . "GetGeoById: parsing passed item";
|
||||
return my ($setting, $distance) = TadoAPI_ParseMobileItem($hash, $item);
|
||||
}
|
||||
return undef;
|
||||
@ -1143,6 +1157,7 @@ sub TadoAPI_GetMobileDevices(@) {
|
||||
};
|
||||
|
||||
#Log3 $name, 5, 'Blocking GET: ' . Dumper($param);
|
||||
Log3 $name, $reqDebug, "TadoAPI $name" . ": " . "Request $URL";
|
||||
my ($err, $data) = HttpUtils_BlockingGet($param);
|
||||
|
||||
if($err ne "")
|
||||
@ -1191,6 +1206,7 @@ sub TadoAPI_GetZoneCount(@) {
|
||||
};
|
||||
|
||||
#Log3 $name, 5, 'Blocking GET: ' . Dumper($param);
|
||||
Log3 $name, $reqDebug, "TadoAPI $name" . ": " . "Request $URL";
|
||||
my ($err, $data) = HttpUtils_BlockingGet($param);
|
||||
|
||||
if($err ne "")
|
||||
@ -1223,10 +1239,10 @@ sub TadoAPI_GetZoneCount(@) {
|
||||
sub TadoAPI_GetZoneNameById(@) {
|
||||
my ($hash, $zoneID) = @_;
|
||||
my $name = $hash->{NAME};
|
||||
my @devArr = TadoAPI_GetTadoDevices($hash);
|
||||
my $zoneName = undef;
|
||||
my @zones = TadoAPI_GetTadoDevices($hash);
|
||||
|
||||
foreach my $zone ( @devArr ){
|
||||
foreach my $zone ( @zones ){
|
||||
if ($zone->{'id'} == $zoneID){
|
||||
$zoneName = TadoAPI_ReplaceUmlaute($zone->{'name'});
|
||||
return $zoneName;
|
||||
@ -1258,6 +1274,7 @@ sub TadoAPI_GetZoneReadingsById(@){
|
||||
};
|
||||
|
||||
#Log3 $name, 5, 'Blocking GET: ' . Dumper($param);
|
||||
Log3 $name, $reqDebug, "TadoAPI $name" . ": " . "Request $URL";
|
||||
my ($err, $data) = HttpUtils_BlockingGet($param);
|
||||
|
||||
if($err ne "")
|
||||
@ -1271,8 +1288,6 @@ sub TadoAPI_GetZoneReadingsById(@){
|
||||
if ($@){
|
||||
Log3 $name, 3, "TadoAPI $name" . ": " . "GetZoneReadingsById: Zone $zoneID decode_json failed, invalid json. error:$@\n";
|
||||
}else{
|
||||
my $zoneName = TadoAPI_GetZoneNameById($hash, $zoneID);
|
||||
|
||||
$temperature = sprintf("%.1f", $decoded_data->{'sensorDataPoints'}->{'insideTemperature'}->{'celsius'});
|
||||
$humidity = $decoded_data->{'sensorDataPoints'}->{'humidity'}->{'percentage'};
|
||||
if($decoded_data->{'setting'}->{'power'} eq "OFF"){
|
||||
@ -1284,7 +1299,7 @@ sub TadoAPI_GetZoneReadingsById(@){
|
||||
$overlay = $decoded_data->{'overlayType'};
|
||||
if (!defined $overlay) {$overlay = "no overlay"};
|
||||
|
||||
return ($temperature, $humidity, $desiredTemp, $currentHeatingPower, $overlay, $zoneName );
|
||||
return ($temperature, $humidity, $desiredTemp, $currentHeatingPower, $overlay );
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1309,6 +1324,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 "")
|
||||
|
Loading…
x
Reference in New Issue
Block a user