no event when readingsBulkUpdate
This commit is contained in:
parent
03fef4a2cc
commit
505de090f2
|
@ -770,8 +770,16 @@ sub TadoAPI_UpdateAllZoneReadingsCallback($){
|
||||||
my $zoneid = $zone->{'id'};
|
my $zoneid = $zone->{'id'};
|
||||||
Log3 $name, 5, "TadoAPI $name" . ": " . "Set Reading Update for Zone $zoneid ";
|
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
|
# 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
|
# iterate through all devices in zone
|
||||||
my $devices = $zone->{'devices'};
|
my $devices = $zone->{'devices'};
|
||||||
|
@ -787,7 +795,7 @@ sub TadoAPI_UpdateAllZoneReadingsCallback($){
|
||||||
my $zonecount = TadoAPI_GetZoneCount($hash);
|
my $zonecount = TadoAPI_GetZoneCount($hash);
|
||||||
readingsBeginUpdate($hash);
|
readingsBeginUpdate($hash);
|
||||||
readingsBulkUpdate($hash, "ActiveZones", $zonecount);
|
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";
|
Log3 $name, 3, "TadoAPI $name" . ": " . "GetZoneReadingsById: Zone $zoneID decode_json failed, invalid json. error:$@\n";
|
||||||
}else{
|
}else{
|
||||||
my $zoneName = TadoAPI_GetZoneNameById($hash, $zoneID);
|
my $zoneName = TadoAPI_GetZoneNameById($hash, $zoneID);
|
||||||
|
|
||||||
if (defined($zoneName)){
|
$temperature = sprintf("%.1f", $decoded_data->{'sensorDataPoints'}->{'insideTemperature'}->{'celsius'});
|
||||||
$temperature = sprintf("%.1f", $decoded_data->{'sensorDataPoints'}->{'insideTemperature'}->{'celsius'});
|
$humidity = $decoded_data->{'sensorDataPoints'}->{'humidity'}->{'percentage'};
|
||||||
$humidity = $decoded_data->{'sensorDataPoints'}->{'humidity'}->{'percentage'};
|
if($decoded_data->{'setting'}->{'power'} eq "OFF"){
|
||||||
if($decoded_data->{'setting'}->{'power'} eq "OFF"){
|
$desiredTemp = "OFF";
|
||||||
$desiredTemp = "OFF";
|
}else{
|
||||||
}else{
|
$desiredTemp = $decoded_data->{'setting'}->{'temperature'}->{'celsius'};
|
||||||
$desiredTemp = $decoded_data->{'setting'}->{'temperature'}->{'celsius'};
|
}
|
||||||
}
|
$currentHeatingPower = $decoded_data->{'activityDataPoints'}->{'heatingPower'}->{'percentage'};
|
||||||
$currentHeatingPower = $decoded_data->{'activityDataPoints'}->{'heatingPower'}->{'percentage'};
|
$overlay = $decoded_data->{'overlayType'};
|
||||||
$overlay = $decoded_data->{'overlayType'};
|
if (!defined $overlay) {$overlay = "no overlay"};
|
||||||
if (!defined $overlay) {$overlay = "no overlay"};
|
|
||||||
|
return ($temperature, $humidity, $desiredTemp, $currentHeatingPower, $overlay, $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 );
|
|
||||||
}
|
|
||||||
return ($temperature, $humidity, $desiredTemp, $currentHeatingPower, $overlay );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue