FHEM Forum

FHEM - Hausautomations-Systeme => MQTT => Thema gestartet von: mferstl am 24 April 2021, 17:29:44

Titel: Übergabe komplexeres HOMEBRIDGEMAPPING an speechcontrol_gdt_and_mapping
Beitrag von: mferstl am 24 April 2021, 17:29:44
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?
Titel: Antw:Übergabe komplexeres HOMEBRIDGEMAPPING an speechcontrol_gdt_and_mapping
Beitrag von: Otto123 am 24 April 2021, 22:15:34
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
Titel: Antw:Übergabe komplexeres HOMEBRIDGEMAPPING an speechcontrol_gdt_and_mapping
Beitrag von: rudolfkoenig am 25 April 2021, 08:50:34
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.
Titel: Antw:Übergabe komplexeres HOMEBRIDGEMAPPING an speechcontrol_gdt_and_mapping
Beitrag von: Beta-User am 05 Mai 2021, 15:27:10
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?