From 613735e19e1e888e5c88d06f95e674c9c3351f03 Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Sun, 11 Jul 2021 11:11:07 +0000 Subject: [PATCH] fhem.pl: next round in the IODev prohibing code (Forum #120603) git-svn-id: https://svn.fhem.de/fhem/trunk@24724 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/fhem.pl | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/fhem/fhem.pl b/fhem/fhem.pl index 734e42d43..f0944f0f7 100755 --- a/fhem/fhem.pl +++ b/fhem/fhem.pl @@ -2504,8 +2504,8 @@ CommandSetReading($$) return "$sdev: bad reading name '$b1' (allowed chars: A-Za-z/\\d_\\.-)" if(!goodReadingName($b1)); - if($b1 eq "IODev") { + next if(!fhem_devSupportsAttr($sdev, "IODev")); my $ret = fhem_setIoDev($hash, $b[2]); push @rets, $ret if($ret); next; @@ -3203,6 +3203,7 @@ CommandSetstate($$) } if($sname eq "IODev") { + next if(!fhem_devSupportsAttr($sdev, "IODev")); my $ret = fhem_setIoDev($d, $sval); if($ret) { push @rets, $ret if($init_done); @@ -4692,6 +4693,14 @@ AttrNum($$$;$) return $val; } +sub +fhem_devSupportsAttr($$) +{ + my ($devName,$attrName) = @_; + my $attrList = getAllAttr($devName); + return (" $attrList " =~ m/ $attrName[ :;]/); +} + ################################################################ # Functions used by modules. sub @@ -4699,10 +4708,7 @@ setReadingsVal($$$$) { my ($hash,$rname,$val,$ts) = @_; - if($rname eq "IODev") { - my $attrList = getAllAttr($hash->{NAME}); # Forum #120603 - return if(" $attrList " !~ m/ IODev[ :;]/); - } + return if($rname eq "IODev" && !fhem_devSupportsAttr($hash->{NAME}, "IODev")); if($hash->{".or"} && grep($rname =~ m/^$_$/, @{$hash->{".or"}}) ) { if(defined($hash->{READINGS}{$rname}) &&