From d92246ce7852463b389926a591a4ab4eaaa200dc Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Wed, 21 Jan 2015 19:27:54 +0000 Subject: [PATCH] 98_structure.pm: even more checks for undefined devices (Forum #32493) git-svn-id: https://svn.fhem.de/fhem/trunk@7655 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/98_structure.pm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/fhem/FHEM/98_structure.pm b/fhem/FHEM/98_structure.pm index 4202db648..4d5626cec 100755 --- a/fhem/FHEM/98_structure.pm +++ b/fhem/FHEM/98_structure.pm @@ -59,9 +59,10 @@ sub structAdd($$) { my ($d, $attrList) = @_; + return if(!$defs{$d}); $defs{$d}{INstructAdd} = 1; foreach my $c (keys %{$defs{$d}{CONTENT}}) { - if($defs{$c}{INstructAdd}) { + if($defs{$c} && $defs{$c}{INstructAdd}) { Log 1, "recursive structure definition" } else { @@ -69,7 +70,7 @@ structAdd($$) structAdd($c, $attrList) if($defs{$c} && $defs{$c}{TYPE} eq "structure"); } } - delete $defs{$d}{INstructAdd}; + delete $defs{$d}{INstructAdd} if($defs{$d}); } ############################# @@ -93,10 +94,8 @@ structure_Define($$) foreach my $a (@a) { foreach my $d (devspec2array($a)) { $list{$d} = 1; - if($init_done) { - addToDevAttrList($d, $aList); - structAdd($d, $aList) if($defs{$d} && $defs{$d}{TYPE} eq "structure"); - } + addToDevAttrList($d, $aList); + structAdd($d, $aList) if($defs{$d} && $defs{$d}{TYPE} eq "structure"); } } $hash->{CONTENT} = \%list;