FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Fridtjof am 04 Februar 2017, 13:23:19

Titel: DOIF: [$DEVICE:Internal] erlaubt?
Beitrag von: Fridtjof am 04 Februar 2017, 13:23:19
Hallo Liebes Form,

nachdem ich mich bereits Stunden mit dem Problem beschäftigt habe, würde ich mich nun gerne an Euch wenden:

Ich habe in meinem Haus 2 Wohnungsparteien, und nur bei EINER DER BEIDEN Parteien (RESIDENTS) möchte ich eine Text2Speech-Durchsage machen, wenn sich der Status von dem ROOMMATE ändert.

Hierfür habe ich folgende DOIF gebastelt:
( ["^rr_"] and [$DEVICE] eq "home" and [$DEVICE:RESIDENTGROUPS] =~ "rgr_Residents" )
( set MyTTS tts Hallo {(substr("$DEVICE", 3))}!) 
DOELSEIF (  ["^rr_"] and [$DEVICE] eq "absent"  and [$DEVICE:RESIDENTGROUPS] =~ "rgr_Residents" )
( set MyTTS tts Auf Wiedersehen {(substr("$DEVICE", 3))}! )
DOELSEIF (  ["^rr_"] and [$DEVICE] eq "asleep"  and [$DEVICE:RESIDENTGROUPS] =~ "rgr_Residents" )
( set MyTTS tts Gute Nacht {(substr("$DEVICE", 3))}! )


Leider ergibt [$DEVICE:RESIDENTGROUPS] aber nicht das erhoffte "rgr_Residents", sondern "0". Es wird daher nie eine Ansage gespielt.

Ich habe Ideen von anderen Wegen, die aber mit Perl und Codeverdopplung verbunden sind. Hatte hier auf die Eleganz von DOIF gehofft... Mache ich etwas falsch? Kann mir jemand helfen?
Titel: Antw:DOIF: [$DEVICE:Internal] erlaubt?
Beitrag von: Damian am 04 Februar 2017, 14:13:40
Wenn RESIDENTGROUPS ein Internal ist, dann musst du das so angeben wie es in der Commandref zu DOIF steht:

Auszug aus der Kurzreferenz:

ZitatInternals [<Device>:&<Internal>⟨,<Default>⟩]


Das Stichwort ist hier das kaufmännische &.
Titel: Antw:DOIF: [$DEVICE:Internal] erlaubt?
Beitrag von: Fridtjof am 04 Februar 2017, 16:59:24
Ach, richtig! Klasse! Hatte etwas mit "i:" in Erinnerung und in der Dokumentation für DOIF nichts entsprechendes gefunden.

Nach dem wichtigen Stichwort habe ich es jetzt aber auch gefunden,  ein unglücklicher Zeilenwechsel hat vorher das Überlesen verschuldet: Das & war in der Zeile vorher und der Variablenname in der nächsten Zeile..

Jetzt klappt's! Vielen Dank für die schnelle Hilfe! FHEM macht richtig Spaß!