DOIF: [$DEVICE:Internal] erlaubt?

Begonnen von Fridtjof, 04 Februar 2017, 13:23:19

Vorheriges Thema - Nächstes Thema

Fridtjof

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?

Damian

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

Fridtjof

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ß!