From 919b7f144e79f0167ad823d4712d1fdca12196e9 Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Thu, 20 Jun 2013 07:31:37 +0000 Subject: [PATCH] Fixing event-on-change-reading when using set (e.g. for dummy) git-svn-id: svn://svn.code.sf.net/p/fhem/code/trunk@3308 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/fhem.pl | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/fhem/fhem.pl b/fhem/fhem.pl index 1d9c1931a..d3d282913 100755 --- a/fhem/fhem.pl +++ b/fhem/fhem.pl @@ -186,7 +186,7 @@ my $intAtCnt=0; my %duplicate; # Pool of received msg for multi-fhz/cul setups my $duplidx=0; # helper for the above pool my $readingsUpdateDelayTrigger; # needed internally -my $doTriggerCalled; # needed internally +my $readingsUpdateUsed; # needed internally my $cvsid = '$Id$'; my $namedef = "where is either:\n" . @@ -1188,13 +1188,13 @@ DoSet(@) return CallFn($dev, "SetFn", $hash, @a) if($a[1] && $a[1] eq "?"); @a = ReplaceEventMap($dev, \@a, 0) if($attr{$dev}{eventMap}); - $doTriggerCalled = 0; + $readingsUpdateUsed = 0; my ($ret, $skipTrigger) = CallFn($dev, "SetFn", $hash, @a); return $ret if($ret); return undef if($skipTrigger); # Backward compatibility. Use readingsUpdate in SetFn now - if(!$doTriggerCalled) { + if(!$readingsUpdateUsed) { shift @a; # set arg if the module did not triggered events my $arg = join(" ", @a) if(!$hash->{CHANGED} || !int(@{$hash->{CHANGED}})); @@ -2359,7 +2359,6 @@ DoTrigger($$@) my $max = int(@{$hash->{CHANGED}}); Log 5, "Triggering $dev ($max changes)"; - $doTriggerCalled = 1; return "" if(defined($attr{$dev}) && defined($attr{$dev}{do_not_notify})); ################ @@ -3136,6 +3135,8 @@ readingsEndUpdate($$) my ($hash,$dotrigger)= @_; my $name = $hash->{NAME}; + $readingsUpdateUsed = 1; + # process user readings if(defined($hash->{'.userReadings'})) { my %userReadings= %{$hash->{'.userReadings'}};