diff --git a/fhem/CHANGED b/fhem/CHANGED index ebaccb6b5..efc1ba751 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -1,5 +1,6 @@ # Add changes at the top of the list. Keep it in ASCII, and 80-char wide. # Do not insert empty lines here, update check depends on it. + - feature: 98_structure.pm: add evaluateSetResult attribute (Forum #73113) - feature: ESPEasy: improved defineFn if bridge port is missing, docu update - feature: 37_Spotify: resume on target - feature: 93_DbRep: V5.1.0, create dumps of MySQL on client- or serverside, diff --git a/fhem/FHEM/98_structure.pm b/fhem/FHEM/98_structure.pm index f89196708..fd1d071fe 100755 --- a/fhem/FHEM/98_structure.pm +++ b/fhem/FHEM/98_structure.pm @@ -43,7 +43,8 @@ structure_Initialize($) $hash->{AttrFn} = "structure_Attr"; $hash->{AttrList} = "async_delay clientstate_priority ". "clientstate_behavior:relative,relativeKnown,absolute,last ". - "disable disabledForIntervals $readingFnAttributes"; + "disable disabledForIntervals evaluateSetResult:1,0 ". + $readingFnAttributes; my %ahash = ( Fn=>"CommandAddStruct", Hlp=>" ,add to " ); @@ -185,7 +186,7 @@ structure_Notify($$) my @structPrio = attrSplit($attr{$me}{clientstate_priority}) if($attr{$me}{clientstate_priority}); - return "" if($hash->{INSET}); # Do not trigger for our own set + return "" if($hash->{INSET} && !AttrVal($me, "evaluateSetResult", 0)); return "" if(@{$hash->{".asyncQueue"}}); # Do not trigger during async set if($hash->{INNTFY}) { @@ -667,6 +668,14 @@ structure_Attr($@) + +
  • evaluateSetResult
    + if a set command sets the state of the structure members to something + different from the set command (like set statusRequest), then you have to + set this attribute to 1 in order to enable the structure instance to + compute the new status. +
  • +
  • structexclude
    exclude the device from set/notify or attribute operations. For the set @@ -858,6 +867,15 @@ structure_Attr($@)
  • + +
  • evaluateSetResult
    + Falls ein set Befehl den Status der Struktur-Mitglieder auf was + unterschiedliches setzt (wie z.Bsp. beim set statusRequest), dann muss + dieses Attribut auf 1 gesetzt werden, wenn die Struktur Instanz diesen + neuen Status auswerten soll. +
  • + +
  • structexclude
    Bei gesetztem Attribut wird set, attr/deleteattr ignoriert. Dies trifft ebenfalls auf die Weitergabe des Devicestatus an die Struktur zu.