Ich entwickle ein attrTemplate für einen Roon Server als MQTT2_DEVICE.
Ich brauche für die Sprachsteuerung ein komplexes homeBridgeMapping aus mehreren Zeichenketten, z.B:
On:cmdOn=Play,cmdOff=Stop PlaybackController:playback,values=Play;Pause;Stop;Previous;Next
Wie kann ich das z.B. an das attrTemplate speechcontrol_gdt_and_mapping übergeben?
Egal wie ich versuche das zu quoten, z.B. mit
set DEVICE attrTemplate speechcontrol_gdt_and_mapping GENERICDEVTYPE=media HOMEBRIDGEMAPPING="On:cmdOn=play,cmdOff=stop PlaybackController:playback,values=play;pause;stop;previous;next"
es wird nur der Wert bis zum ersten Leerzeichen "On:cmdOn=play,cmdOff=stop übernommen.
Wahrscheinlich muss ich das homeBridgeMapping dich selber setzen und kann es nicht an das andere Template übergeben.
Hat jemand eine Idee?
Ja.
https://fhem.de/commandref_DE.html#perl
In der Kommandozeile musst Du ; generell verdoppeln ;; damit sie als ein ; übernommen werden. Ansonsten wird ; als Befehlstrenner gewertet.
Ob das als Übergabe ins attrTemplate geht kann ich allerdings nicht sagen.
Gruß Otto
Das attrTemplate set ist ein FHEM set der alten Schule, da hilft weder " noch anderweitiges Wunschdenken.
Mir faellt z.Zt. nur cmdAlias ein:
defmod ca_stopPC cmdalias set (.*) stopPlaybackController AS set $EVTPART0 stop PlaybackController
Ohne Homebridge Erfahrung bin ich aber nicht sicher, ob es funktoniert.
Habe mir jetzt mal den Code von AttrTemplate (ab Zeile 244) nochmal angesehen.
@Rudi: Wäre es nicht (hoffentlich) nebenwirkungsfrei möglich, an der Stelle erst wieder alle "split"-Elemente wieder mit "join ' '" zusammenzukleben und dann ein parseParams drüberlaufen zu lassen? Im Anschluss müsste es doch dann möglich sein zu schauen, ob es $named->{param} gibt, oder übersehe ich was?