From 8973f7cd814b539d0f1093b6450d28599ba87f03 Mon Sep 17 00:00:00 2001 From: jpawlowski Date: Sat, 13 Feb 2016 08:59:18 +0000 Subject: [PATCH] RESIDENTStk wakeuptimer: add lastAwake as 2nd indicator for wakeupWaitPeriod git-svn-id: https://svn.fhem.de/fhem/trunk@10807 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/RESIDENTStk.pm | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/fhem/FHEM/RESIDENTStk.pm b/fhem/FHEM/RESIDENTStk.pm index aab63a9c0..03ab05b1f 100644 --- a/fhem/FHEM/RESIDENTStk.pm +++ b/fhem/FHEM/RESIDENTStk.pm @@ -1079,7 +1079,7 @@ sub RESIDENTStk_wakeupRun($;$) { # general conditions to trigger program fulfilled else { - my $expLastRun = time_str2num( + my $expLastWakeup = time_str2num( ReadingsTimestamp( $wakeupUserdevice, "lastWakeup", "1970-01-01 00:00:00" ) @@ -1087,6 +1087,13 @@ sub RESIDENTStk_wakeupRun($;$) { $wakeupOffset * 60 + $wakeupWaitPeriod * 60; + my $expLastAwake = time_str2num( + ReadingsTimestamp( + $wakeupUserdevice, "lastAwake", "1970-01-01 00:00:00" + ) + ) - 1 + + $wakeupWaitPeriod * 60; + if ( !$wakeupMacro ) { return "$NAME: missing attribute wakeupMacro"; } @@ -1101,9 +1108,13 @@ sub RESIDENTStk_wakeupRun($;$) { Log3 $NAME, 3, "RESIDENTStk $NAME: Another wake-up program is already being executed for device $wakeupUserdevice, won't trigger $wakeupMacro"; } - elsif ( $expLastRun > $nowRunSec && !$forceRun ) { - Log3 $NAME, 4, -"RESIDENTStk $NAME: won't trigger wake-up program due to non-expired wakeupWaitPeriod threshold since lastWakeup (expLastRun=$expLastRun > nowRunSec=$nowRunSec)"; + elsif ( $expLastWakeup > $nowRunSec && !$forceRun ) { + Log3 $NAME, 3, +"RESIDENTStk $NAME: won't trigger wake-up program due to non-expired wakeupWaitPeriod threshold since lastWakeup (expLastWakeup=$expLastWakeup > nowRunSec=$nowRunSec)"; + } + elsif ( $expLastAwake > $nowRunSec && !$forceRun ) { + Log3 $NAME, 3, +"RESIDENTStk $NAME: won't trigger wake-up program due to non-expired wakeupWaitPeriod threshold since lastAwake (expLastAwake=$expLastAwake > nowRunSec=$nowRunSec)"; } else { # conditional enforced wake-up: