From 9600cd637a325d2dda2cc621cf26905815c2a27c Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Sat, 25 Mar 2017 14:22:15 +0000 Subject: [PATCH] fhem.pl: fix some IODev assignment (Forum #69591) git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@13796 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem.pl | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/fhem.pl b/fhem.pl index 933e50cfe..d1ed8e61c 100755 --- a/fhem.pl +++ b/fhem.pl @@ -567,7 +567,12 @@ $lastDefChange = 1; foreach my $d (keys %defs) { if($defs{$d}{IODevMissing}) { - Log 3, "No I/O device found for $defs{$d}{NAME}"; + if($defs{$d}{IODevName} && $defs{$defs{$d}{IODevName}}) { + $defs{$d}{IODev} = $defs{$defs{$d}{IODevName}}; + delete $defs{$d}{IODevName}; + } else { + Log 3, "No I/O device found for $defs{$d}{NAME}"; + } delete $defs{$d}{IODevMissing}; } } @@ -2638,11 +2643,6 @@ CommandAttr($$) $hash->{'.userReadings'}= \@userReadings; } - if($attrName eq "IODev" && (!$a[2] || !defined($defs{$a[2]}))) { - push @rets,"$sdev: unknown IODev $a[2] specified"; - next; - } - if($attrName eq "eventMap") { delete $hash->{".eventMapHash"}; delete $hash->{".eventMapCmd"}; @@ -2673,6 +2673,16 @@ CommandAttr($$) $attr{$sdev}{$attrName} = $val; if($attrName eq "IODev") { + if(!$a[2] || !defined($defs{$a[2]})) { + if($init_done) { + push @rets,"$sdev: unknown IODev $a[2] specified"; + } else { + $hash->{IODevMissing} = 1; + $hash->{IODevName} = $a[2]; + } + next; + } + my $ioname = $a[2]; $hash->{IODev} = $defs{$ioname}; delete($defs{$ioname}{".clientArray"}); # Force a recompute