reduced redundant api querys

This commit is contained in:
Philipp Wo 2019-12-10 16:20:57 +01:00
parent 1f82ad7824
commit fe13d672e7
1 changed files with 16 additions and 14 deletions

View File

@ -704,7 +704,6 @@ sub TadoAPI_UpdateFn(@){
hash => $hash,
callback => \&TadoAPI_UpdateAllZoneReadingsCallback
};
HttpUtils_NonblockingGet($request);
# mobile devices
@ -719,7 +718,6 @@ sub TadoAPI_UpdateFn(@){
hash => $hash
};
HttpUtils_NonblockingGet($request);
}
}
@ -771,18 +769,22 @@ sub TadoAPI_UpdateAllZoneReadingsCallback($){
foreach my $zone ( @$decoded_data ){
my $zoneid = $zone->{'id'};
Log3 $name, 5, "TadoAPI $name" . ": " . "Set Reading Update for Zone $zoneid ";
my ($temperature, $humidity, $desiredTemp, $currentHeatingPower, $overlay ) = TadoAPI_GetZoneReadingsById($hash, $zoneid);
my $zoneName = TadoAPI_GetZoneNameById($hash, $zoneid);
if(defined($zoneName)){
readingsBeginUpdate($hash);
readingsBulkUpdate($hash, "Temperatur_" . $zoneName, $temperature);
readingsBulkUpdate($hash, "Luftfeuchtigkeit_" . $zoneName, $humidity);
readingsBulkUpdate($hash, "Heizleistung_" . $zoneName, $currentHeatingPower);
readingsBulkUpdate($hash, "OverlayType_" . $zoneName, $overlay);
readingsBulkUpdate($hash, "DesiredTemp_" . $zoneName, $desiredTemp);
readingsEndUpdate( $hash, 0 );
}
# updates zone readings
TadoAPI_GetZoneReadingsById($hash, $zoneid);
# my ($temperature, $humidity, $desiredTemp, $currentHeatingPower, $overlay ) = TadoAPI_GetZoneReadingsById($hash, $zoneid);
# my $zoneName = TadoAPI_GetZoneNameById($hash, $zoneid);
# if(defined($zoneName)){
# readingsBeginUpdate($hash);
# readingsBulkUpdate($hash, "Temperatur_" . $zoneName, $temperature);
# readingsBulkUpdate($hash, "Luftfeuchtigkeit_" . $zoneName, $humidity);
# readingsBulkUpdate($hash, "Heizleistung_" . $zoneName, $currentHeatingPower);
# readingsBulkUpdate($hash, "OverlayType_" . $zoneName, $overlay);
# readingsBulkUpdate($hash, "DesiredTemp_" . $zoneName, $desiredTemp);
# readingsEndUpdate( $hash, 1 );
# }
# iterate through all devices in zone
my $devices = $zone->{'devices'};
foreach my $device ( @$devices ){
@ -1233,7 +1235,7 @@ sub TadoAPI_GetZoneReadingsById(@){
url => $URL,
header => {"Content-Type"=>"application/json;charset=UTF-8","Authorization" => "$TokenData->{'token_type'} $TokenData->{'access_token'}"},
method => 'GET',
timeout => 5,
timeout => 4,
hash => $hash
};