diff --git a/fhem/FHEM/98_structure.pm b/fhem/FHEM/98_structure.pm index 87e6b44b7..2da4e8277 100644 --- a/fhem/FHEM/98_structure.pm +++ b/fhem/FHEM/98_structure.pm @@ -46,10 +46,11 @@ structure_Initialize($) async_delay clientstate_behavior:relative,relativeKnown,absolute,last clientstate_priority + considerDisabledMembers disable disabledForIntervals - considerDisabledMembers evaluateSetResult:1,0 + filterEvents:1,0 propagateAttr setStateIndirectly:1,0 setStructType:0,1 @@ -211,6 +212,21 @@ structure_Notify($$) return "" if (! exists $hash->{".memberHash"}->{$devName}); + if(AttrVal($me, "filterEvents", 0) && + AttrVal($devName, $devmap, 0)) { #131841 + my %re; + map { + my @val = split(":",$_); + $re{$val[0]} = 1 if(@val==1 || @val==3); + } attrSplit($attr{$devName}{$devmap}); + my @re = keys %re; + my $fnd; + map { + my $e = $_; map { $fnd = 1 if($e =~ m/^$_:/) } @re; + } @{deviceEvents($dev, 0)}; + return "" if(!$fnd); + } + my $behavior = AttrVal($me, "clientstate_behavior", "absolute"); my %clientstate; @@ -768,6 +784,14 @@ structure_Attr($@) compute the new status. + +