eventMap und Sonderzeichen

Begonnen von siggi85, 06 Juli 2014, 17:54:59

Vorheriges Thema - Nächstes Thema

siggi85

Hallo,
ich möchte über eine eventMap einen JSON Befehl in einem XBMC Device absenden. In meiner manuellen Fassung des XBMC Moduls ist dies über das Set-Kommando "jsonraw" möglich. Da ein JSON Befehl jedoch viele Sonderzeichen beinhaltet, kommt es daher wahrscheinlich wegen den Doppelpunkten zu Schwierigkeiten in der Syntax. Auch ein paar Abwandlungen mit Single Quotes haben nicht funktioniert:
attr sz_xbmc eventMap /jsonraw {"jsonrpc":"2.0","method":"Addons.ExecuteAddon","params":{"addonid":"script.json-cec","params":{"command":"standby"}},"id":1}:cecoff/

Sobald ich den Befehl "cecoff" absenden will, kommt eine Meldung, dass dieser Befehl nicht existiert. Wenn ich für cecoff ein anderes Kommando in die eventMap packe funktioniert das. Ebenso der reine JSON Befehl:
set sz_xbmc jsonraw {"jsonrpc":"2.0","method":"Addons.ExecuteAddon","params":{"addonid":"script.json-cec","params":{"command":"standby"}},"id":1}

Wie bekomme ich ich diesen Befehl in eine eventMap gepackt? Jemand eine Idee?

siggi85

Das Problem ist anscheinend wiedermal etwas spezieller. Kann das jemand bitte wieder in Sonstiges verschieben? :)

siggi85

Ist mein Vorhaben denn nicht möglich? Ein "nein" wäre zwar schade, aber wenigstens irgend eine Antwort.   ;D
Hat einer unserer FHEM Gurus vielleicht eine Antwort auf diese Frage?! :)

Puschel74

Hallo,

ich bin zwar keiner der FHEM-Gurus aber ich würde das mit einem notify versuchen zu lösen.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

siggi85

Zitat von: Puschel74 am 10 Juli 2014, 15:15:27
ich bin zwar keiner der FHEM-Gurus aber ich würde das mit einem notify versuchen zu lösen.

In einem Notify funktioniert der Aufruf, aber da ich solche JSON Requests in mehreren Notifys verwenden möchte, würde ich diese gerne als kurze Kommandos nutzen, um die Übersichtlichkeit zu wahren.
Vielleicht ist dies mit der momentanen Konfiguration von eventMap nicht möglich und ein Entwickler passt das an. Und da vielleicht später mehrere Leute diese Art von eventMaps nutzen möchten (gerade falls meine Version von 70_XBMC.pm demnächst ins SVN wandert), dachte ich poste ich diesen Missstand gleich hier. Vielleicht bin ich auch einfach nur unfähig die bereits funktionierende Lösung zu finden.  ;D
Trotzdem danke für den Tipp!

peterk_de

#5
Also in fhem.pl (bin bei Version 6080), Zeile 3195 wird das einzelne eventMapping mittels


split(":", $rv, 3);


zerlegt. Also werden nur die ersten 2 Doppelpunkte in deinem String verwendet (Limit = 3). Das was du versuchst kann also nicht funktionieren, die Doppelpunkte kannst du auch nicht escapen o.Ä. ... der Weg des geringsten Widerstandes wäre wohl bei der jsonraw-Methode anzusetzen und der beizubringen, irgendetwas anderes anstatt des Doppelpunktes zu akzeptieren ...

Sinn von dem Vorhaben ist für mich aber irgendwie fragwürdig, ich möchte im eventMap und damit im Frontend eigentlich nicht mit etwas so sperrigem wie kompletten JSON-RPC-Calls umgehen müssen - zumal du dabei den Standard verbiegst (jeder deiner Requests bekommt so die gleiche ID!) - das müsste eher das Modul Kapseln ... d.h. ich würde im eventMap eher sowas eintragen wollen:


attr sz_xbmc eventMap /raw-rpc Addons.ExecuteAddon(addonid=script.json-cec(command=standby)):cecoff/
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

siggi85

Die jsonraw Methode war gedacht für Tests und noch nicht implementiert Funktionen. Die Möglichkeiten der JSON Api von XBMC sind ja schon sehr vielseitig.
Allerdings ist dein Vorschlag die JSON Parameter in einem definierten Format anzugeben interessant. Ich habe im Moment leider nicht viel Zeit um mir das XBMC Modul noch mal vorzunehmen (unabhängig dass ich kein richtiger Programmierer bin). Mal schauen ob ich demnächst mal dazu komme ggf. die jsonraw Methode umzubauen oder eine zusätzliche json Methode dieser Art zu implementieren... Falls jemand anderes sich daran versuchen möchte, "meine" Version vom XBMC Modul befindet sich im XBMC Thread.

siggi85

Ich habe mir nun eine Lösung gebaut. Ich habe im XBMC Modul eine neue Funktion eingebaut um Addons anzusteuern. Damit sollte ich nun eventMaps bauen können, da keine Doppelpunkte oder andere Sonderzeichen für den Aufruf benötigt werden. :)
XBMC Modul FHEM Forum