meinen DENON AVR X2000 Heimkino Receiver habe ich über das Denon/Marantz Binding eingebunden.
Das funktioniert auch Einwandfrei. Aber ich wollte noch einige Tasten der IR Remote über OpenHab laufen lassen.
Nach etwas Recherche bin ich zum einen auf die Denon Befehlsliste gestossen:
http://m.us.marantz.com/DocumentMaster/ ... otocol.xls
Und zum anderen auch auf den Http Aufruf:
https://blue-pc.net/2013/12/28/denon-av ... p-steuern/
Nämlich:
Code: Alles auswählen
http://<AV IP-Adresse>/goform/formiPhoneAppDirect.xml?MNCUP
Also habe ich mir zunächst ein Stringitem erstellt:
Code: Alles auswählen
String DenonCommand { http=">[*:POST:http://denonIP/goform/formiPhoneAppDirect.xml?%2$s]" }
Code: Alles auswählen
Switch item=DenonCommand label="Denon Remote" icon="movecontrol" mappings=['MNMEN ON'="SETUP ON",'MNMEN OFF'="SETUP OFF",MNENT="ENTER",MNRTN="BACK"]
Switch item=DenonCommand label="Denon Remote" icon="movecontrol" mappings=[MNCLT="⬅️",MNCUP="⬆️",MNCDN="⬇️",MNCRT="➡️"]
Switch item=DenonCommand label="Denon Remote" icon="movecontrol" mappings=[MNINF="INFO",MNOPT="OPTION",MNCHL="CH. Level"]
Um ins "Setup" Menü zu kommen muss der Befehl "MNEN ON" gesendet werden. Dieser Befehl beinhaltet ein Leerzeichen.
Das "schmeckt" dem Sitemap Parser so nicht.
Also habe ich diesen String in der Sitemap mit zwei Anführungszeichen "maskiert" (Danke an Winni und Udo aus einem anderen Post).
Wenn ich aber nun den Button in der Sitemap Betätige kommt folgendes im Log:
Code: Alles auswählen
2019-12-30 21:57:20.355 [ome.event.ItemCommandEvent] - Item 'DenonCommand' received command MNMEN ON
2019-12-30 21:57:20.365 [vent.ItemStateChangedEvent] - DenonCommand changed from MNRTN to MNMEN ON
==> /var/log/openhab2/openhab.log <==
2019-12-30 21:57:20.357 [WARN ] [org.apache.karaf.services.eventadmin] - EventAdmin: Exception during event dispatch [org.osgi.service.event.Event [topic=openhab/command/DenonCommand] {item=DenonCommand, bridgemarker=true, command=MNMEN ON, timestamp=1577739440355} | {org.osgi.service.cm.ManagedService, org.osgi.service.event.EventHandler}={service.id=409, service.bundleid=278, service.scope=bundle, event.topics=openhab/*, service.pid=org.openhab.http, component.name=org.openhab.binding.http, component.id=44} | Bundle(org.openhab.binding.http_1.13.0 [278])]
java.lang.IllegalArgumentException: Invalid uri 'http://192.168.2.115/goform/formiPhoneAppDirect.xml?MNMEN ON': Invalid query
at org.apache.commons.httpclient.HttpMethodBase.<init>(HttpMethodBase.java:222) ~[?:?]
at org.apache.commons.httpclient.methods.ExpectContinueMethod.<init>(ExpectContinueMethod.java:93) ~[?:?]
at org.apache.commons.httpclient.methods.EntityEnclosingMethod.<init>(EntityEnclosingMethod.java:119) ~[?:?]
at org.apache.commons.httpclient.methods.PostMethod.<init>(PostMethod.java:106) ~[?:?]
at org.openhab.io.net.http.HttpUtil.createHttpMethod(HttpUtil.java:318) ~[?:?]
at org.openhab.io.net.http.HttpUtil.executeUrl(HttpUtil.java:167) ~[?:?]
at org.openhab.io.net.http.HttpUtil.executeUrl(HttpUtil.java:130) ~[?:?]
at org.openhab.binding.http.internal.HttpBinding.formatAndExecute(HttpBinding.java:291) ~[?:?]
at org.openhab.binding.http.internal.HttpBinding.internalReceiveCommand(HttpBinding.java:130) ~[?:?]
at org.openhab.core.binding.AbstractBinding.receiveCommand(AbstractBinding.java:94) ~[?:?]
at org.openhab.core.events.AbstractEventSubscriber.handleEvent(AbstractEventSubscriber.java:45) ~[?:?]
at org.apache.felix.eventadmin.impl.handler.EventHandlerProxy.sendEvent(EventHandlerProxy.java:415) [3:org.apache.karaf.services.eventadmin:4.2.1]
at org.apache.felix.eventadmin.impl.tasks.HandlerTask.runWithoutBlacklistTiming(HandlerTask.java:82) [3:org.apache.karaf.services.eventadmin:4.2.1]
at org.apache.felix.eventadmin.impl.tasks.SyncDeliverTasks.execute(SyncDeliverTasks.java:104) [3:org.apache.karaf.services.eventadmin:4.2.1]
at org.apache.felix.eventadmin.impl.tasks.AsyncDeliverTasks$TaskExecuter.run(AsyncDeliverTasks.java:166) [3:org.apache.karaf.services.eventadmin:4.2.1]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
at java.lang.Thread.run(Thread.java:748) [?:?]
Des weiteren ist mir aufgefallen, wenn ich andere Befehle sende z.B. MNINF (hier ohne Leerzeichen)
funktioniert das Senden aber der Denon reagiert sehr verzögert auf den Befehl und im Log sehe ich das hier:
Code: Alles auswählen
2019-12-30 22:09:55.122 [ome.event.ItemCommandEvent] - Item 'DenonCommand' received command MNINF
2019-12-30 22:09:55.144 [vent.ItemStateChangedEvent] - DenonCommand changed from MNMEN ON to MNINF
2019-12-30 22:09:59.850 [vent.ItemStateChangedEvent] - CoolstreamTime changed from 22:08:59 to 22:09:59
==> /var/log/openhab2/openhab.log <==
2019-12-30 22:10:00.144 [ERROR] [org.openhab.io.net.http.HttpUtil ] - Fatal transport error: java.net.SocketTimeoutException: Read timed out
Vielen Dank
und #GUDE2020