From 4871ffb5c21b19f7ff1a7200d4850e8b5f82cf24 Mon Sep 17 00:00:00 2001 From: deespe Date: Fri, 25 Jan 2019 17:59:24 +0000 Subject: [PATCH] 22_HOMEMODE: v1.4.6 - fix zero devider in HOMEMODE_ContactOpenCheck, fix trigger alarm only if alarm triggers have changed git-svn-id: https://svn.fhem.de/fhem/trunk@18413 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/22_HOMEMODE.pm | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/fhem/FHEM/22_HOMEMODE.pm b/fhem/FHEM/22_HOMEMODE.pm index 60486bcce..a90335a86 100644 --- a/fhem/FHEM/22_HOMEMODE.pm +++ b/fhem/FHEM/22_HOMEMODE.pm @@ -16,7 +16,7 @@ use Time::HiRes qw(gettimeofday); use HttpUtils; use vars qw{%attr %defs %modules $FW_CSRF}; -my $HOMEMODE_version = "1.4.5"; +my $HOMEMODE_version = "1.4.6"; my $HOMEMODE_Daytimes = "05:00|morning 10:00|day 14:00|afternoon 18:00|evening 23:00|night"; my $HOMEMODE_Seasons = "03.01|spring 06.01|summer 09.01|autumn 12.01|winter"; my $HOMEMODE_UserModes = "gotosleep,awoken,asleep"; @@ -2677,6 +2677,7 @@ sub HOMEMODE_TriggerState($;$$$) my $contacts = $hash->{SENSORSCONTACT}; my $motions = $hash->{SENSORSMOTION}; my $tampered = ReadingsVal($name,"sensorsTampered",""); + my $alarm = ReadingsVal($name,"alarmTriggered",""); my @contactsOpen; my @sensorsTampered; my @doorsOOpen; @@ -2790,7 +2791,7 @@ sub HOMEMODE_TriggerState($;$$$) } } } - HOMEMODE_alarmTriggered($hash,@alarmSensors); + HOMEMODE_alarmTriggered($hash,@alarmSensors) if (join(",",@alarmSensors) ne $alarm); my $open = @contactsOpen ? join(",",@contactsOpen) : ""; my $opendo = @doorsOOpen ? join(",",@doorsOOpen) : ""; my $opendm = @doorsMOpen ? join(",",@doorsMOpen) : ""; @@ -2919,11 +2920,9 @@ sub HOMEMODE_ContactOpenCheck($$;$$) $divider = $divs[$count] if ($season eq $text); $count++; } - if ($divider) - { - $waittime = $waittime / $divider; - $waittime = sprintf("%.2f",$waittime) * 1; - } + return if ($divider == 0); + $waittime = $waittime / $divider; + $waittime = sprintf("%.2f",$waittime) * 1; } $waittime = $mintime if ($mintime && $waittime < $mintime); $retrigger++;