2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-28 17:12:32 +00:00

33_readingsProxy.pm: avoid endless loops for self referencing readingsProxys

git-svn-id: https://svn.fhem.de/fhem/trunk@7650 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
justme-1968 2015-01-21 10:35:30 +00:00
parent c1f1368725
commit 350a949839

View File

@ -228,10 +228,16 @@ readingsProxy_Set($@)
readingsSingleUpdate($hash, "lastCmd", $a[0], 0); readingsSingleUpdate($hash, "lastCmd", $a[0], 0);
} }
Log3 $name, 4, "$name: set hash->{DEVICE} $v"; if( $hash->{INSET} ) {
return CommandSet(undef,"$hash->{DEVICE} ".$v); Log3 $name, 2, "$name: ERROR: endless loop detected";
return "ERROR: endless loop detected for $hash->{NAME}";
}
return undef; Log3 $name, 4, "$name: set hash->{DEVICE} $v";
$hash->{INSET} = 1;
my $ret = CommandSet(undef,"$hash->{DEVICE} ".$v);
delete($hash->{INSET});
return $ret;
} }
sub sub
@ -268,10 +274,16 @@ readingsProxy_Get($@)
$v = $get_fn if( $get_fn ); $v = $get_fn if( $get_fn );
} }
Log3 $name, 4, "$name: get hash->{DEVICE} $v"; if( $hash->{INGET} ) {
return CommandGet(undef,"$hash->{DEVICE} ".$v); Log3 $name, 2, "$name: ERROR: endless loop detected";
return "ERROR: endless loop detected for $hash->{NAME}";
}
return undef; Log3 $name, 4, "$name: get hash->{DEVICE} $v";
$hash->{INSET} = 1;
my$ret = CommandGet(undef,"$hash->{DEVICE} ".$v);
delete($hash->{INSET});
return $ret;
} }
1; 1;