no event when readingsBulkUpdate

This commit is contained in:
Philipp Wo 2019-12-10 17:41:08 +01:00
parent 03fef4a2cc
commit 505de090f2
1 changed files with 23 additions and 24 deletions

View File

@ -770,8 +770,16 @@ sub TadoAPI_UpdateAllZoneReadingsCallback($){
my $zoneid = $zone->{'id'};
Log3 $name, 5, "TadoAPI $name" . ": " . "Set Reading Update for Zone $zoneid ";
my ($temperature, $humidity, $desiredTemp, $currentHeatingPower, $overlay, $zoneName ) = TadoAPI_GetZoneReadingsById($hash, $zoneid);
# updates zone readings
TadoAPI_GetZoneReadingsById($hash, $zoneid);
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 );
# iterate through all devices in zone
my $devices = $zone->{'devices'};
@ -787,7 +795,7 @@ sub TadoAPI_UpdateAllZoneReadingsCallback($){
my $zonecount = TadoAPI_GetZoneCount($hash);
readingsBeginUpdate($hash);
readingsBulkUpdate($hash, "ActiveZones", $zonecount);
readingsEndUpdate( $hash, 1 );
readingsEndUpdate( $hash, 0 );
}
}
@ -1242,28 +1250,19 @@ sub TadoAPI_GetZoneReadingsById(@){
Log3 $name, 3, "TadoAPI $name" . ": " . "GetZoneReadingsById: Zone $zoneID decode_json failed, invalid json. error:$@\n";
}else{
my $zoneName = TadoAPI_GetZoneNameById($hash, $zoneID);
if (defined($zoneName)){
$temperature = sprintf("%.1f", $decoded_data->{'sensorDataPoints'}->{'insideTemperature'}->{'celsius'});
$humidity = $decoded_data->{'sensorDataPoints'}->{'humidity'}->{'percentage'};
if($decoded_data->{'setting'}->{'power'} eq "OFF"){
$desiredTemp = "OFF";
}else{
$desiredTemp = $decoded_data->{'setting'}->{'temperature'}->{'celsius'};
}
$currentHeatingPower = $decoded_data->{'activityDataPoints'}->{'heatingPower'}->{'percentage'};
$overlay = $decoded_data->{'overlayType'};
if (!defined $overlay) {$overlay = "no overlay"};
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 );
}
return ($temperature, $humidity, $desiredTemp, $currentHeatingPower, $overlay );
$temperature = sprintf("%.1f", $decoded_data->{'sensorDataPoints'}->{'insideTemperature'}->{'celsius'});
$humidity = $decoded_data->{'sensorDataPoints'}->{'humidity'}->{'percentage'};
if($decoded_data->{'setting'}->{'power'} eq "OFF"){
$desiredTemp = "OFF";
}else{
$desiredTemp = $decoded_data->{'setting'}->{'temperature'}->{'celsius'};
}
$currentHeatingPower = $decoded_data->{'activityDataPoints'}->{'heatingPower'}->{'percentage'};
$overlay = $decoded_data->{'overlayType'};
if (!defined $overlay) {$overlay = "no overlay"};
return ($temperature, $humidity, $desiredTemp, $currentHeatingPower, $overlay, $zoneName );
}
}
}