Hallo,
ich verwende in diversen DOIFs die eckigen Klammern, um auf Readings zuzugreifen.
Laut Referenz kann der Status eines Objekts "Switch1" z.B. so verwendet werden
define di_Modul DOIF ([Switch1] eq "on" and [Switch2] eq "on")
Bei der Abfrage von [sc_kueche_fenster]
bekomme ich als Ergebnis von msg push TEST [sc_kueche_fenster:state]
(über SIGNAL) die Ausgabe "TEST [sc_kueche_fenster]" ==> FALSCH.
Bei der Abfrage von [sc_kueche_fenster]
bekomme ich als Ergebnis von msg push TEST [sc_kueche_fenster:state]
(über SIGNAL) die Ausgabe "TEST closed" ==> KORREKT.
D.h., wenn ich direkt auf das Reading ":state" gehe, bekomme ich den erwarteten Wert.
Meine FHEM-Version ist "Latest Revision: 23534".
Ich weiß aktuell nicht, wo ich nach der Ursache suchen soll; ansonsten würde ich alle entsprechenden [...] Verwendungen mit ":state" ergänzen (nicht so schön)...
Vielen Dank im Voraus für eure Hinweise,
Carsten
Zitat von: Carsten K. am 28 September 2021, 13:29:49
Bei der Abfrage von [sc_kueche_fenster]
Das sollte bei der zweiten vermutlich so heißen:
[sc_kueche_fenster:state]
Den Denkfehler habe ich auch gemacht.
[sc_kueche_fenster] fragt ein Ereignis ab.
[sc_kueche_fenster:state] fragt den Zustand ab.
siehe auch hier: https://forum.fhem.de/index.php/topic,122611.0.html (https://forum.fhem.de/index.php/topic,122611.0.html)
Edit:
Bitte noch in das richtige Unterforum verschieben.
Da es um DOIF geht, also "Automatisierung/DOIF"
@Nobbynews, Vielen Dank für die schnelle Antwort :D
Innerhalb eines DOIFs (auch im Ausführungsteil) sollten beide Optionen funktionieren.
Außerhalb von DOIF (set magic) funktioniert es nicht ohne Readingangabe (state) - das gilt aber nur für set und setreading, was msg macht weiß ich nicht.
In der Bedingung reagiert DOIF bei state-Angabe nur auf Events vom State, sonst auf alle Events - das kostet mehr Performance.
Zitat von: Nobbynews am 28 September 2021, 13:40:47
[sc_kueche_fenster] fragt ein Ereignis ab.
[sc_kueche_fenster:state] fragt den Zustand ab.
Das ist falsch.
Beides sind Zustandsabfragen mit Trigger. Beim ersten triggern alle Events von sc_kueche_fenster das DOIF (hier wird mit Value der Zustand von STATE abgefragt), beim zweiten triggern nur Änderungen (Events) vom Status, abgefragt wird das Reading "state".
Zitat von: Damian am 28 September 2021, 13:53:26
Das ist falsch.
Stimmt. Ich habe nicht beachtet, dass es sich nicht um Bedingungen sondern um Befehle im Sinne von DOIF handelt.