From 6adf8f5e0fc2eb8ae2ec94b436a12b2a6fc01d9e Mon Sep 17 00:00:00 2001 From: damian-s Date: Wed, 18 Feb 2015 17:49:10 +0000 Subject: [PATCH] =?UTF-8?q?98:DOIF.pm=20kein=20Eval=20im=20Ausf=C3=BChrung?= =?UTF-8?q?steil=20bei=20Definition=20eines=20Moduls,=20no=20Timer=20wird?= =?UTF-8?q?=20jetzt=20korrekt=20gesetzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.fhem.de/fhem/trunk@8031 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/98_DOIF.pm | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/fhem/FHEM/98_DOIF.pm b/fhem/FHEM/98_DOIF.pm index d66c78ab4..121645127 100644 --- a/fhem/FHEM/98_DOIF.pm +++ b/fhem/FHEM/98_DOIF.pm @@ -127,9 +127,10 @@ sub ReadingValDoIf($$$) { my ($name,$reading,$regExp)=@_; - my $r=""; + my $r; my $element; $r=$defs{$name}{READINGS}{$reading}{VAL}; + $r="" if (!defined($r)); if ($regExp) { $element = ($r =~ /$regExp/) ? $1 : ""; } else { @@ -307,8 +308,10 @@ ParseCommandsDoIf($$$) if ($currentBlock ne "") { ($currentBlock,$err)=ReplaceAllReadingsDoIf($hash,$currentBlock,-1,$eval); return ($currentBlock,$err) if ($err); - ($currentBlock,$err)=EvalAllDoIf($currentBlock); - return ($currentBlock,$err) if ($err); + if ($eval) { + ($currentBlock,$err)=EvalAllDoIf($currentBlock); + return ($currentBlock,$err) if ($err); + } } $currentBlock="{".$currentBlock."}"; } elsif ($tailBlock =~ /^\s*IF/) { @@ -341,8 +344,10 @@ ParseCommandsDoIf($$$) if ($currentBlock ne "") { ($currentBlock,$err)=ReplaceAllReadingsDoIf($hash,$currentBlock,-1,$eval); return ($currentBlock,$err) if ($err); - ($currentBlock,$err)=EvalAllDoIf($currentBlock); - return ($currentBlock,$err) if ($err); + if ($eval) { + ($currentBlock,$err)=EvalAllDoIf($currentBlock); + return ($currentBlock,$err) if ($err); + } } } if ($eval) { @@ -825,11 +830,10 @@ DOIF_SleepTrigger ($) { my ($hash)=@_; $hash->{helper}{sleeptimer}=-1; + readingsSingleUpdate ($hash, "wait_timer", "no timer",1); if (!AttrVal($hash->{NAME},"disable","")) { DOIF_Trigger($hash,$hash->{helper}{sleepdevice},-2); } - #delete ($defs{$hash->{NAME}}{READINGS}{wait_timer}); - readingsSingleUpdate ($hash, "wait_timer", "no timer",1); return undef; }