Übergabe komplexeres HOMEBRIDGEMAPPING an speechcontrol_gdt_and_mapping

Begonnen von mferstl, 24 April 2021, 17:29:44

Vorheriges Thema - Nächstes Thema

mferstl

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?

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

rudolfkoenig

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.

Beta-User

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?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files