no event when readingsBulkUpdate
This commit is contained in:
parent
03fef4a2cc
commit
505de090f2
@ -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 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user