2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-02-07 16:59:18 +00:00

git-svn-id: https://svn.fhem.de/fhem/trunk@5699 2b470e98-0d58-463d-a4d8-8e2adae1ed80

This commit is contained in:
tpoitzsch 2014-04-29 20:13:15 +00:00
parent 49ccd8ede3
commit e66eee2e38
2 changed files with 18 additions and 12 deletions

View File

@ -1493,16 +1493,19 @@ LUXTRONIK2_doStatisticMinMaxSingle ($$$$)
my @a = split / /, $hash->{READINGS}{"." . $readingName}{VAL}; # Internal values
my @b = split / /, $lastReading;
# Do calculations
$a[1]++; # Count
$a[3] += $value; # Sum
if ($value < $b[1]) { $b[1]=$value; } # Min
$b[3] = sprintf "%.1f" , $a[3] / $a[1]; # Avg
if ($value > $b[5]) { $b[5]=$value; } # Max
# in case of period change, save "last" values and reset counters
if ($saveLast) {
$result = "Min: $b[1] Avg: $b[3] Max: $b[5]";
if ($a[5] == 1) { $result .= " (since: $b[7] )"; }
readingsBulkUpdate($hash, $readingName . "Last", $lastReading);
$a[1] = 1; $a[3] = $value; $a[5] = 0;
$b[1] = $value; $b[3] = $value; $b[5] = $value;
} else {
$a[1]++; # Count
$a[3] += $value; # Sum
if ($value < $b[1]) { $b[1]=$value; } # Min
$b[3] = sprintf "%.1f" , $a[3] / $a[1]; # Avg
if ($value > $b[5]) { $b[5]=$value; } # Max
}
# Store internal calculation values
$result = "Count: $a[1] Sum: $a[3] ShowDate: $a[5]";

View File

@ -697,16 +697,19 @@ JSONMETER_doStatisticMinMaxSingle ($$$$)
my @a = split / /, $hash->{READINGS}{"." . $readingName}{VAL}; # Internal values
my @b = split / /, $lastReading;
# Do calculations
$a[1]++; # Count
$a[3] += $value; # Sum
if ($value < $b[1]) { $b[1]=$value; } # Min
$b[3] = sprintf "%.0f" , $a[3] / $a[1]; # Avg
if ($value > $b[5]) { $b[5]=$value; } # Max
# in case of period change, save "last" values and reset counters
if ($saveLast) {
$result = "Min: $b[1] Avg: $b[3] Max: $b[5]";
if ($a[5] == 1) { $result .= " (since: $b[7] )"; }
readingsBulkUpdate($hash, $readingName . "Last", $lastReading);
$a[1] = 1; $a[3] = $value; $a[5] = 0;
$b[1] = $value; $b[3] = $value; $b[5] = $value;
} else {
$a[1]++; # Count
$a[3] += $value; # Sum
if ($value < $b[1]) { $b[1]=$value; } # Min
$b[3] = sprintf "%.0f" , $a[3] / $a[1]; # Avg
if ($value > $b[5]) { $b[5]=$value; } # Max
}
# Store internal calculation values
$result = "Count: $a[1] Sum: $a[3] ShowDate: $a[5]";