diff --git a/fhem/FHEM/98_statistics.pm b/fhem/FHEM/98_statistics.pm index feae2f4a3..ec2689ac4 100644 --- a/fhem/FHEM/98_statistics.pm +++ b/fhem/FHEM/98_statistics.pm @@ -519,6 +519,7 @@ statistics_doStatisticMinMaxSingle ($$$$$$$) $statReadingName .= ucfirst($readingName).$period; my @hidden; my @stat; + my $lastValue; my $firstRun = not exists($hash->{READINGS}{$hiddenReadingName}); if ( $firstRun ) { @@ -557,13 +558,16 @@ statistics_doStatisticMinMaxSingle ($$$$$$$) # Store single readings my $singularReadings = AttrVal($name, "singularReadings", ""); if ($singularReadings ne "") { - # statistics_storeSingularReadings $hashName,$singleReading,$dev,$statReadingName,$readingName,$statType,$period,$statValue,$value,$saveLast + # statistics_storeSingularReadings $hashName,$singularReadings,$dev,$statReadingName,$readingName,$statType,$period,$statValue,$lastValue,$saveLast my $statValue = sprintf "%.".$decPlaces."f", $stat[1]; - statistics_storeSingularReadings ($name,$singularReadings,$dev,$statReadingName,$readingName,"Min",$period,$statValue,$value,$saveLast); + if ($saveLast) { $lastValue = $statValue; $statValue = $value; } + statistics_storeSingularReadings ($name,$singularReadings,$dev,$statReadingName,$readingName,"Min",$period,$statValue,$lastValue,$saveLast); $statValue = sprintf "%.".$decPlaces."f", $stat[3]; - statistics_storeSingularReadings ($name,$singularReadings,$dev,$statReadingName,$readingName,"Avg",$period,$statValue,$value,$saveLast); + if ($saveLast) { $lastValue = $statValue; $statValue = $value; } + statistics_storeSingularReadings ($name,$singularReadings,$dev,$statReadingName,$readingName,"Avg",$period,$statValue,$lastValue,$saveLast); $statValue = sprintf "%.".$decPlaces."f", $stat[5]; - statistics_storeSingularReadings ($name,$singularReadings,$dev,$statReadingName,$readingName,"Max",$period,$statValue,$value,$saveLast); + if ($saveLast) { $lastValue = $statValue; $statValue = $value; } + statistics_storeSingularReadings ($name,$singularReadings,$dev,$statReadingName,$readingName,"Max",$period,$statValue,$lastValue,$saveLast); } # Store hidden reading @@ -1096,12 +1100,20 @@ statistics_UpdateDevReading($$$$)