98_DOIF.pm fixed: error: Reading/Internal does not exist at zero

git-svn-id: svn://svn.code.sf.net/p/fhem/code/trunk@7147 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
damian-s
2014-12-06 15:48:42 +00:00
parent 51869ed9ff
commit 80b3de88d2

View File

@@ -215,8 +215,8 @@ sub ReplaceAllReadingsDoIf($$$$)
($block,$err,$device,$reading,$internal)=ReplaceReadingDoIf($block); ($block,$err,$device,$reading,$internal)=ReplaceReadingDoIf($block);
return ($block,$err) if ($err); return ($block,$err) if ($err);
if ($eval) { if ($eval) {
return ($block,"reading does not exist: [$device:$reading]") if (defined ($reading) and !$defs{$device}{READINGS}{$reading}); return ($block,"reading does not exist: [$device:$reading]") if (defined ($reading) and !defined($defs{$device}{READINGS}{$reading}));
return ($block,"internal does not exist: [$device:$internal]") if (defined ($internal) and !$defs{$device}{$internal}); return ($block,"internal does not exist: [$device:$internal]") if (defined ($internal) and !defined($defs{$device}{$internal}));
my $ret = eval $block; my $ret = eval $block;
return($block." ",$@) if ($@); return($block." ",$@) if ($@);
$block=$ret; $block=$ret;
@@ -487,13 +487,13 @@ DOIF_CheckCond($$)
if (defined ($hash->{readings}{$condition})) { if (defined ($hash->{readings}{$condition})) {
foreach my $devReading (split(/ /,$hash->{readings}{$condition})) { foreach my $devReading (split(/ /,$hash->{readings}{$condition})) {
($device,$reading)=(split(":",$devReading)); ($device,$reading)=(split(":",$devReading));
return (0,"reading does not exist: [$device:$reading]") if ($devReading and !$defs{$device}{READINGS}{$reading}); return (0,"reading does not exist: [$device:$reading]") if ($devReading and !defined($defs{$device}{READINGS}{$reading}));
} }
} }
if (defined ($hash->{internals}{$condition})) { if (defined ($hash->{internals}{$condition})) {
foreach my $devInternal (split(/ /,$hash->{internals}{$condition})) { foreach my $devInternal (split(/ /,$hash->{internals}{$condition})) {
($device,$internal)=(split(":",$devInternal)); ($device,$internal)=(split(":",$devInternal));
return (0,"internal does not exist: [$device:$internal]") if ($devInternal and !$defs{$device}{$internal}); return (0,"internal does not exist: [$device:$internal]") if ($devInternal and !defined($defs{$device}{$internal}));
} }
} }
my $ret = eval $hash->{condition}{$condition}; my $ret = eval $hash->{condition}{$condition};