Hallo,
für meine Morgenroutine konnte ich im Ausführungsteil eines DOIFs meine Sonos_Lautsprecher wie folgt gruppieren:
((set Sonos Groups ({(chr(91))}Sonos_Bad_oben,Sonos_Esszimmer{(chr(93))})))
Weil es jetzt etwas komplexer werden soll habe ich mich entschieden ein DOIF im Perl-Modus zu verwenden. Da klappt aber das gruppieren der Lautsprecher nicht mit
fhem_set(("Sonos Groups ({(chr(91))}[$SELF:sonos_bad],[$SELF:sonos_bad_oben],[$SELF:sonos_esszimmer],[$SELF:sonos_wohnzimmer]{(chr(93))})"));;
In den Readings $SELF:Sonos.* stehen die Namen der Lautsprecher weil man die über FTUI3 an- bzw. abwählen können soll.
Die Syntax um Sonos Lautsprecher zu gruppieren lautet
set Sonos Groups ([Player1,Player2,Player3])
Beste Grüße,
Christian
Im Perlmodus befindet man sich in Perl, daher
{fhem_set("Sonos Groups (".chr(91).[?$SELF:sonos_bad].",".[?$SELF:sonos_bad_oben].",".[?$SELF:sonos_esszimmer].",".[?$SELF:sonos_wohnzimmer].chr(93).")")}
besser ist es aber mit der Perlfunktion get_Reading zu arbeiten, da die Readings ohnehin keine Trigger darstellen sollen:
{fhem_set("Sonos Groups (".chr(91).get_Reading("sonos_bad").",".get_Reading("sonos_bad_oben").",".get_Reading("sonos_esszimmer").",".get_Reading("sonos_wohnzimmer").chr(93).")")}
Ok, das funktioniert prima. Danke für die Hilfestellung!
Um ehrlich zu sein verstehe ich es aber nicht so recht. Was passiert da zwischen den zwei Punkten?
Beste Grüße,
Christian
Zitat von: chrisse111179 am 12 September 2024, 15:03:07Ok, das funktioniert prima. Danke für die Hilfestellung!
Um ehrlich zu sein verstehe ich es aber nicht so recht. Was passiert da zwischen den zwei Punkten?
Beste Grüße,
Christian
Die Punkte verbinden Zeichenketten.
"bla"."bla"="blabla"
"1".zwei()."3"="123", wenn die Funktion zwei "2" liefert