From da4532dbc02ef635d73e75ba9e73ac636706ec94 Mon Sep 17 00:00:00 2001 From: jamesgo Date: Tue, 26 May 2020 08:02:37 +0000 Subject: [PATCH] 94_PWM.pm : fix division by zero in line 454 git-svn-id: https://svn.fhem.de/fhem/trunk@22034 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/94_PWM.pm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/fhem/FHEM/94_PWM.pm b/fhem/FHEM/94_PWM.pm index 15f81331b..b94ba938a 100644 --- a/fhem/FHEM/94_PWM.pm +++ b/fhem/FHEM/94_PWM.pm @@ -35,6 +35,7 @@ # 19.11.18 GA add support for attribute maxOffTime # 05.03.19 GA fix reading maxOffTimeCalculation was set but not used # 30.12.19 GA fix access to ReadingsVal via $name (reported by stromer-12) +# 26.05.20 GA fix division by zero if minRoomsOn is >0 and roomsCounted is zero ############################################## # $Id$ @@ -437,8 +438,9 @@ PWM_Calculate($) if ($minRoomsOn > 0) { - my $roomsCounted = 0; - my $pulseSum = 0; + my $roomsCounted = 0; + my $pulseSum = 0; + my $avgPulse = 0; foreach my $room (sort { $RoomsPulses{$b} <=> $RoomsPulses{$a} } keys %RoomsPulses) { @@ -451,13 +453,15 @@ PWM_Calculate($) } $minRoomsOnList =~ s/,$//; - if ($roomsActive == 0 or $hash->{NoRoomsToStayOnThreshold} == 0 or $pulseSum/$roomsCounted < $hash->{NoRoomsToStayOnThreshold}) { + $avgPulse = $pulseSum/$roomsCounted if ($roomsCounted > 0); + + if ($roomsActive == 0 or $hash->{NoRoomsToStayOnThreshold} == 0 or $avgPulse < $hash->{NoRoomsToStayOnThreshold}) { $minRoomsOn = 0; $minRoomsOnList = ""; } #Log3 ($hash, 3, "PWM_Calculate: newpulseSum $newpulseSum avg ".$newpulseSum/$roomsActive." minRoomsOn(".$minRoomsOn.")") if ($roomsActive > 0); - Log3 ($hash, 3, "PWM_Calculate: pulseSum $pulseSum avg ".$pulseSum/$roomsCounted." minRoomsOn(".$minRoomsOn.")") if ($roomsActive > 0); + Log3 ($hash, 3, "PWM_Calculate: pulseSum $pulseSum avg ".$avgPulse." minRoomsOn(".$minRoomsOn.")") if ($roomsActive > 0); }