[gelöst] Fehlverhalten von Readings-Syntax?

Begonnen von Carsten K., 28 September 2021, 13:29:49

Vorheriges Thema - Nächstes Thema

Carsten K.

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
NUC FHEM on Debian, CC1101-USB-Lite 868MHz;
HM_HM_CC_RT_DN, HM-LC-SW1-PL2, HM_HM_TC_IT_WM_W_EU, HM-SEC-SC-2, HM-ES-TX-WM
FRITZ!DECT 200
Philips TV (Android), VuDuo2, VU Ultimo4k

Nobbynews

#1
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

Edit:
Bitte noch in das richtige Unterforum verschieben.
Da es um DOIF geht, also "Automatisierung/DOIF"

Carsten K.

@Nobbynews, Vielen Dank für die schnelle Antwort  :D
NUC FHEM on Debian, CC1101-USB-Lite 868MHz;
HM_HM_CC_RT_DN, HM-LC-SW1-PL2, HM_HM_TC_IT_WM_W_EU, HM-SEC-SC-2, HM-ES-TX-WM
FRITZ!DECT 200
Philips TV (Android), VuDuo2, VU Ultimo4k

Damian

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.




Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

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".
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Nobbynews

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.