Denon binding for new AVR models

For anyone interested in using the denon binding with the newer Denon models where the HTTP interface is “disabled” (read: giving 403 Forbidden responses) I created a fork which seems to work (tested with the Denon X4400H)

The thing is that the denon binding support receiving events via telnet but always sends command via http no matter what the update option is set to. I rewrote the “send command” part in such a way that telnet is used for sending commands, too.

Note that this is not supporting all the HEOS stuff (there is another binding which does and the too can and do work together).
I’m mainly still using the Denon binding because of a shortcoming of the HEOS implementation when it comes to AVRs with multiple zones: they can’t be switched on/off seperately and the volume of the zones is summed up (well, eeerr… yes) instead of being reported seperately. This can’t be came by by the HEOS binding, since it’s already messed up in the protocol (at least this is the way my AVR is behaving).

I stumbled upon a github PR for the “official” denon binding which does pretty much the same:

When will this fix be available in the snapshot release? I updated the firmware of my Denon AVR-X2200W, and I’m now confronted with the same issue.

I get a lot of these in my openhab.log:

2017-12-25 11:44:09.414 [WARN ] [inding.denon.internal.DenonConnector] - Error sending command
java.net.ConnectException: connection timed out: /192.168.X.XX:80 to http://192.168.X.XX:80/goform/formiPhoneAppDirect.xml?MUON
	at com.ning.http.client.providers.netty.NettyConnectListener.operationComplete(NettyConnectListener.java:103) [220:org.openhab.binding.denon:1.11.0]
	at org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:427) [220:org.openhab.binding.denon:1.11.0]
	at org.jboss.netty.channel.DefaultChannelFuture.notifyListeners(DefaultChannelFuture.java:418) [220:org.openhab.binding.denon:1.11.0]
	at org.jboss.netty.channel.DefaultChannelFuture.setFailure(DefaultChannelFuture.java:380) [220:org.openhab.binding.denon:1.11.0]
	at org.jboss.netty.channel.socket.nio.NioClientBoss.processConnectTimeout(NioClientBoss.java:140) [220:org.openhab.binding.denon:1.11.0]
	at org.jboss.netty.channel.socket.nio.NioClientBoss.process(NioClientBoss.java:83) [220:org.openhab.binding.denon:1.11.0]
	at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318) [220:org.openhab.binding.denon:1.11.0]
	at org.jboss.netty.channel.socket.nio.NioClientBoss.run(NioClientBoss.java:42) [220:org.openhab.binding.denon:1.11.0]
	at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) [220:org.openhab.binding.denon:1.11.0]
	at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) [220:org.openhab.binding.denon:1.11.0]
	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) [?:?]
Caused by: org.jboss.netty.channel.ConnectTimeoutException: connection timed out: /192.168.3.21:80
	at org.jboss.netty.channel.socket.nio.NioClientBoss.processConnectTimeout(NioClientBoss.java:137) ~[?:?]
	... 8 more

That change was published in the OH 2.2 release, so it’s in the current snapshot, too.

You could checkout the new 2.0 binding: Denon / Marantz 2.0 Binding
(If you are using OpenHAB2 that is…)

1 Like

How do you apply this binding? I’m brand new to this and not getting to far. Lot of bindings I try are broke however I did this:

Shows up and finds the Denon. Shows all kinds of stuff, but then it says to add “for example” this that and the other to your *.things and *.items, etc files and I do not have any of these even a shell. Can someone help walk me thru how to do this? I was hoping any binding that was installed thru the GUI would setup the basic stuff but not the case.

Thanks

JR