Anfängerfrage zu DOIF - Wildcard im Devicenamen mit Prüfung eines Readings

Begonnen von seayak, 13 Januar 2026, 14:57:47

Vorheriges Thema - Nächstes Thema

seayak

Hallo liebe Experten,

leider hänge ich mal wieder etwas in der Luft. Meine 11 Shelly Rauchmelder fangen alle mit "Rauchmelder" im Namen an, z.B. "Rauchmelder_Wohnzimmer". Diese besitzen auch ein Reading, welches "params_smoke_0_alarm" heißt und im Normalfall "false" und im Alarmfall "true" ist. Jetzt möchte ich im Alarmfall Aktionen auslösen und habe dazu ein DOIF generiert:

define di_Rauchmelder_Ausloesung_alle_Rollos_hoch DOIF (["^Rauchmelder:params_smoke_0_alarm"] eq "true") (set EG.OG.ZF.Rollo.auf.ab up)
Die Ausführung des zweiten DOIF Teils klappt, aber ich bekomme mit " setreading Rauchmelder_Wohnzimmer params_smoke_0_alarm true " in der Kommandozeile einfach keine Auslösung. Im ersten Teil der DOIF Definition liegt als mein Fehler, aber wo, oder ich habe ein generelles Verständnisproblim mit event und reading-Inhalt als Trigger?

Vielen Dank und viele Grüße!

Peter

Damian

Es muss heißen:

DOIF (["^Rauchmelder:params_smoke_0_alarm"]) (set EG.OG.ZF.Rollo.auf.ab up)
Du hast es mit einem String "true" verglichen, das Ergebnis ist aber ein Boolean-Wert true, den muss man nicht angeben.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

seayak

Hallo Damian,

vielen Dank für Deine Hilfe. Das DOIF wird jetzt ausgeführt, wenn ich auf der Kommandozeile zum Testen für den Rauchmelder das Reading auf "true" setze. Setze ich per
setreading Rauchmelder_Wohnzimmer params_smoke_0_alarm falseaber wieder zurück, läuft das DOIF auch wieder an und führt das Kommando nochmals aus (im konkreten Fall  nutze ich auch SIP zur telefonischen Alarmierung, da verwirrt das dann). Gibt es da noch einen Trick, die DOIF-Automation zu perfektionieren?

Viele Grüße!

Peter