diff --git a/fhem/FHEM/23_LUXTRONIK2.pm b/fhem/FHEM/23_LUXTRONIK2.pm index ab46612b4..4beb5d64b 100644 --- a/fhem/FHEM/23_LUXTRONIK2.pm +++ b/fhem/FHEM/23_LUXTRONIK2.pm @@ -1450,7 +1450,7 @@ LUXTRONIK2_doStatisticMinMax ($$$) $yearLast += 1900; $monthLast ++; } - ($dummy, $dummy, $dummy, $dayNow, $monthNow, $yearNow) = localtime; + ($dummy, $dummy, $dummy, $dayNow, $monthNow, $yearNow) = localtime ( gettimeofday() + $hash->{INTERVAL}); $yearNow += 1900; $monthNow ++; @@ -1568,7 +1568,7 @@ LUXTRONIK2_doStatisticDelta ($$$$$) $previousTariff = 0; $showDate = 6; } - ($dummy, $dummy, $dummy, $dayNow, $monthNow, $yearNow) = localtime; + ($dummy, $dummy, $dummy, $dayNow, $monthNow, $yearNow) = localtime (gettimeofday() + $hash->{INTERVAL}); if ($yearNow != $yearLast) { $periodSwitch = 3; } elsif ($monthNow != $monthLast) { $periodSwitch = 2; } elsif ($dayNow != $dayLast) { $periodSwitch = 1; } diff --git a/fhem/FHEM/70_JSONMETER.pm b/fhem/FHEM/70_JSONMETER.pm index d28e34586..1a73dedf1 100644 --- a/fhem/FHEM/70_JSONMETER.pm +++ b/fhem/FHEM/70_JSONMETER.pm @@ -660,7 +660,7 @@ JSONMETER_doStatisticMinMax ($$$) $yearLast += 1900; $monthLast ++; } - ($dummy, $dummy, $dummy, $dayNow, $monthNow, $yearNow) = localtime; + ($dummy, $dummy, $dummy, $dayNow, $monthNow, $yearNow) = localtime ( gettimeofday() + $hash->{INTERVAL}); $yearNow += 1900; $monthNow ++; @@ -756,7 +756,7 @@ JSONMETER_doStatisticDelta ($$$$$) $previousTariff = 0; $showDate = 8; } - ($dummy, $dummy, $hourNow, $dayNow, $monthNow, $yearNow) = localtime; + ($dummy, $dummy, $hourNow, $dayNow, $monthNow, $yearNow) = localtime ( gettimeofday() + $hash->{INTERVAL}); if ($yearNow != $yearLast) { $periodSwitch = 4; } elsif ($monthNow != $monthLast) { $periodSwitch = 3; } diff --git a/fhem/FHEM/98_statistics.pm b/fhem/FHEM/98_statistics.pm index 48408b4e0..0be874b76 100644 --- a/fhem/FHEM/98_statistics.pm +++ b/fhem/FHEM/98_statistics.pm @@ -689,7 +689,6 @@ statistics_doStatisticSpecialPeriod ($$$$$) { my ($hash, $dev, $readingName, $decPlaces, $value) = @_; my $name = $hash->{NAME}; - my $result; my $specialPeriod = AttrVal($name, "specialDeltaPeriodHours", 0); @@ -697,7 +696,9 @@ statistics_doStatisticSpecialPeriod ($$$$$) my $statReadingName = $hash->{PREFIX} . ucfirst($readingName) . "SpecialPeriod"; my $hiddenReadingName = ".".$dev->{NAME} . ":" . $readingName . "SpecialPeriod"; - my @hidden = split / /, ($value . " " . $hash->{READINGS}{$hiddenReadingName}{VAL}); # Internal values + my $result = $value; + if (exists ($hash->{READINGS}{$hiddenReadingName}{VAL})) { $result .= " " . $hash->{READINGS}{$hiddenReadingName}{VAL}; } + my @hidden = split / /, $result; # Internal values if ( exists($hidden[$specialPeriod]) ) { delete $hidden[$specialPeriod]; } foreach my $val (@hidden) { $result += $val; }