Ich habe dieses Problem bei meinen Strukturen jetzt auch wieder. Laut https://forum.fhem.de/index.php?topic=62394.0 (https://forum.fhem.de/index.php?topic=62394.0) bin ich vermutlich auch nicht der einzige. Das Problem gab es ja ursprünglich wohl auch schon mal hier: https://forum.fhem.de/index.php?topic=35382.0 (https://forum.fhem.de/index.php?topic=35382.0)
Wenn ich eine übergeordnete Struktur mit set <structure> [FILTER=STATE!=off] off schalte, erhalten bei mir untergeordnete Strukturen in denen keine Verbraucher aktiv waren den State "[FILTER=STATE!=off] off". Das macht entsprechende Abfragen auf den State wieder schwierig, wenn man nicht entsprechend komplexe regex Ausdrücke bauen möchte oder diese nicht einsetzen kann.
Vielleicht kann hier noch mal geschaut werden, warum das so ist?
Hab einen Fix eingebaut, bin auf Nebenwirkungen gespannt.
Hallo,
ich muss mal das Thema nach oben bringen.
In einer DOIF schalte ich die Rolladen je nach Sonne oder Regen.
Beispiel hier Regenberechnung:
(([WettersensorPro_Garten_H_1:1.RAINING] ==1 and [Regenberechnung:RegenStatus] eq "inaktiv"))
(set Erdgeschoss [FILTER=rainAutomatic=on:FILTER=rainMode=off] rainMode on)
(set Obergeschoss [FILTER=rainAutomatic=on:FILTER=rainMode=off] rainMode on)
(setreading Regenberechnung RegenStatus aktiv)
(setreading Erdgeschoss RegenStatus aktiv)
(setreading Obergeschoss RegenStatus aktiv)
DOELSEIF([WettersensorPro_Garten_H_1:1.RAINING] ==0 and [Regenberechnung:RegenStatus] eq "aktiv")
(set Erdgeschoss [FILTER=rainAutomatic=on:FILTER=rainMode=on] rainMode off)
(set Obergeschoss [FILTER=rainAutomatic=on:FILTER=rainMode=on] rainMode off)
(setreading Regenberechnung RegenStatus inaktiv)
(setreading Erdgeschoss RegenStatus inaktiv)
(setreading Obergeschoss RegenStatus inaktiv)
Zur Zeit habe ich auf den Strukturen mit den einzelnen Rolladenmotoren, die "rainAutomatic=0ff" heißt kein Rolladen bewegt sich.
Nun habe ich aber dann das Problem, dass im State der Struktur folgendes steht:
In Internals:
STATE [FILTER=rainAutomatic=on:FILTER=rainMode=off] rainMode on
In Readings:
state [FILTER=rainAutomatic=on:FILTER=rainMode=off] rainMode on
2018-06-12 12:04:31
In den Attributen:
Siehe Screenshot.
Ich wollte allerdings, das noch der alte Wert drinsteht, da sich kein Rolladen verändert hat. Der alte Wert war "Geöffnet".
Ist das möglich? Kann mir da jemand helfen?
Danke und Gruß,
Shrek
ZitatIch wollte allerdings, das noch der alte Wert drinsteht, da sich kein Rolladen verändert hat.
Der Status wird bei structure zuerst auf dem set-Parameter gesetzt. Wenn die Mitglieder eine Statusaenderung melden, dann wird der Structure-Status neu berechnet und gesetzt. In deinem Fall aendert sich kein Geraet, deswegen bleibt der Status auf dem set-Parameter.
Ich habe ein neues Attribut eingefuehrt (setStateIndirectly), falls gesetzt (d.h. Wert ist 1), dann wird der Status nur aus der Statusaenderung der Mitglieder berechnet. Die Voreinstellung ist 0, sollte vermutlich irgendwann auf 1 geaendert werden.