DenonMarantz Binding broken after update to OH3.1

Hi Guys,

I saw a post in the OH3.1 thread about problems with the DenonMarantz binding. I have the same problem which is:

  • The items are not updated with the status of the receiver > Change volume on the receiver and the item ‘denonVolume’ doesn’t update.

The other way around works, so when I send 40 to the denonVolume item, the receiver sets the volume to 40.

Hope someone has a solution!

Restarting the binding doesn’t solve the problem but gives an error in the log, maybe due to the java update which i did when i upgraded to OH3.1?

my java version

~ $ java --version
openjdk 11.0.11 2021-04-20 LTS
OpenJDK Runtime Environment Zulu11.48+21-CA (build 11.0.11+9-LTS)
OpenJDK Client VM Zulu11.48+21-CA (build 11.0.11+9-LTS, mixed mode)

the error in the logfile

2021-07-05 18:46:39.871 [INFO ] [openhab.event.ThingStatusInfoChangedEvent] - Thing 'denonmarantz:avr:x1000' changed from UNKNOWN to OFFLINE (COMMUNICATION_ERROR): IO error while connecting to AVR: java.lang.InterruptedException

2021-07-05 18:46:40.749 [INFO ] [openhab.event.ThingStatusInfoChangedEvent] - Thing 'denonmarantz:avr:x1000' changed from OFFLINE (COMMUNICATION_ERROR): IO error while connecting to AVR: java.lang.InterruptedException to UNKNOWN

here is the debug log:

2021-07-05 18:41:29.948 [TRACE] [arantz.internal.connector.http.DenonMarantzHttpConnector] - Refreshing Denon status

2021-07-05 18:41:29.950 [TRACE] [arantz.internal.connector.http.DenonMarantzHttpConnector] - Refreshing URL: http://192.168.0.112:80/goform/formMainZone_MainZoneXml.xml

2021-07-05 18:41:29.970 [TRACE] [arantz.internal.connector.http.DenonMarantzHttpConnector] - result of getDocument for uri 'http://192.168.0.112:80/goform/formMainZone_MainZoneXml.xml':

<?xml version="1.0" encoding="utf-8" ?>

<item>

<FriendlyName><value>Denon AVR-X1000</value></FriendlyName>

<Power><value>ON</value></Power>

<ZonePower><value>ON</value></ZonePower>

<RenameZone><value>MAIN ZONE</value></RenameZone>

<TopMenuLink><value>ON</value></TopMenuLink>

<VideoSelectDisp><value>OFF</value></VideoSelectDisp>

<VideoSelect><value></value></VideoSelect>

<VideoSelectOnOff><value>OFF</value></VideoSelectOnOff>

<VideoSelectLists>

<value index='ON'  table='On' param=''/>

<value index='OFF'  table='Off' param=''/>

<value index='SAT/CBL'  table='CBL/SAT' param=''/>

<value index='DVD'  table='DVD' param=''/>

<value index='BD'  table='Blu-ray' param=''/>

<value index='GAME'  table='GAME' param=''/>

<value index='AUX1'  table='AUX' param=''/>

<value index='MPLAY'  table='MEDIA PLAYER' param=''/>

<value index='TV'  table='TV AUDIO ' param=''/>

</VideoSelectLists>

<ModelId><value>2</value></ModelId>

<BrandId><value>DENON_MODEL</value></BrandId>

<SalesArea><value>1</value></SalesArea>

<InputFuncSelect><value>AUX</value></InputFuncSelect>

<NetFuncSelect><value>FLICKR</value></NetFuncSelect>

<selectSurround><value>DTS NEO:6 cinema               </value></selectSurround>

<VolumeDisplay><value>Absolute</value></VolumeDisplay>

<MasterVolume><value>-45.0</value></MasterVolume>

<Mute><value>off</value></Mute>

<RemoteMaintenance><value></value></RemoteMaintenance>

<SubwooferDisplay><value>FALSE</value></SubwooferDisplay>

<Zone2VolDisp><value>TRUE</value></Zone2VolDisp>

</item>

2021-07-05 18:41:29.977 [DEBUG] [arantz.internal.connector.http.DenonMarantzHttpConnector] - Failed to unmarshal xml document: null

2021-07-05 18:41:29.978 [TRACE] [arantz.internal.connector.http.DenonMarantzHttpConnector] - Refreshing URL: http://192.168.0.112:80/goform/formMainZone_MainZoneXmlStatus.xml

2021-07-05 18:41:30.002 [TRACE] [arantz.internal.connector.http.DenonMarantzHttpConnector] - result of getDocument for uri 'http://192.168.0.112:80/goform/formMainZone_MainZoneXmlStatus.xml':

<?xml version="1.0" encoding="utf-8" ?>

<item>

<Zone><value></value></Zone>

<Power><value>ON</value></Power>

<InputFuncList>

<value>TUNER</value>

<value>NETWORK</value>

<value>DVD</value>

<value>Blu-ray</value>

<value>TV AUDIO</value>

<value>CBL/SAT</value>

<value>GAME</value>

<value>AUX</value>

<value>iPod/USB</value>

</InputFuncList>

<RenameSource>

<value><value>TUNER</value></value>

<value><value>NETWORK</value></value>

<value><value>IP TV       </value></value>

<value><value>Mediacenter </value></value>

<value><value>Wii U       </value></value>

<value><value>TV Kijken   </value></value>

<value><value>Playstation4</value></value>

<value><value>AUX         </value></value>

<value><value>iPod/USB</value></value>

</RenameSource>

<SourceDelete>

<value>USE</value>

<value></value>

<value>USE</value>

<value>USE</value>

<value>USE</value>

<value>USE</value>

<value>USE</value>

<value>USE</value>

<value>USE</value>

</SourceDelete>

<InputFuncSelect><value>AUX1</value></InputFuncSelect>

<VolumeDisplay><value>Absolute</value></VolumeDisplay>

<RestorerMode><value>----</value></RestorerMode>

<SurrMode><value>DTS NEO:6 cinema               </value></SurrMode>

<MasterVolume><value>-45.0</value></MasterVolume>

<Mute><value>off</value></Mute>

<Model><value>Unknown</value></Model>

</item>

2021-07-05 18:41:30.009 [DEBUG] [arantz.internal.connector.http.DenonMarantzHttpConnector] - Failed to unmarshal xml document: null

2021-07-05 18:41:30.010 [TRACE] [arantz.internal.connector.http.DenonMarantzHttpConnector] - Refreshing URL: http://192.168.0.112:80/goform/AppCommand.xml

no issues here with the denonmarantz binding. on the sama java version. please post the bindings you are using.

These are my bindings, I don’t use any ‘external’ bindings / .jar files:

binding = astro, ntp, hue, denonmarantz, exec, kodi, zwave, systeminfo, samsungtv, telegram, coronastats, mpd, gpstracker, mqtt, chromecast, openweathermap, harmonyhub, remoteopenhab, network, shelly, plugwiseha

i don‘t use the following bindings. try to disable them and check if one of them has an impact to the denonmarantz:
hue
kodi
samsungtv
coronastats
mpd
gpstracker
chromecast
remoteopenhab
shelly
plugwiseha

@HaKuNa
I have recognized the same issues like @djpsycho82 and don’t use any of the bindings you mentioned above.

2 Likes

I tried several things but i can’t get any values from the receiver. The receiver responds to every command i use fortunately.

This is how i configured the thing:

Thing   denonmarantz:avr:x1000          "Versterker"                @ "Woonkamer"       [ host="192.168.0.112"]

I tried this:

Thing   denonmarantz:avr:x1000          "Versterker"                @ "Woonkamer"       [ host="192.168.0.112" , zoneCount=1, telnetEnabled=true, telnetPort=23, httpPort=80, httpPollingInterval=5 ]

but that didn’t work, the telnet session couldn’t be made:

Error connecting to the telnet port. Consider disabling telnet in this Thing's configuration to use HTTP polling instead.

So there is something going wrong with the api, but not sure what. There was a bugfix in the binding i read in the bugfix post but it’s regarding telnet session.

[denonmarantz] Run the Telnet socket in a dedicated thread#9511

@HaKuNa Do you have telnet enabled / working for your receiver or do you use HTTP?

I created the thing via GUI (as all things, except mqtt, because it makes live easier) and the items are text based.
Telnet is enabled in the thing definition.

Yeah this fixes it. I said before Telnet wasn’t working. That was correct because you can only login once into the receiver. I was testing it with secureCRT so that was the reason of the error, the port 23 was busy.

So I changed my thing from:

  • [ host=“192.168.0.112” ]
    to
  • [ host=“192.168.0.112”, zoneCount=1, telnetEnabled=true, telnetPort=23, httpPort=80, httpPollingInterval=5 ]

And this works, so the binding doesn’t use HTTP anymore but telnet. I think we can remove the httpPort and httpPollingInterval in the thing, but it doesn’t harm anything :).

Glad it’s working now! Thanks for helping @HaKuNa

2 Likes

I also can confirm that using Telnet solves the issue with my avr4520ci. but in my opinion this is a terrible option as it only allows for a single connection and has limited functionality compared to http. I’ve been using 3.x since December 2020 and everyday I find another reason to go back to 2.5.x. I may just setup remote OpenHAB to continue to use the denon 2.5.x binding. This very discouraging if this a design choice and not a bug.

With new versions comes new challenges unfortunately. I see your point but I think the guys do a marvelous job with OH3. The new possibilities UI, languages, bindings, remote, etc. Etc. (which most of them I still don’t use at this moment)

This binding problem is a bug, not a change. I’m sure. I don’t know who’s able to fix it but I hope they will

I’m lucky that it doesn’t change anything in my setup whether I use telnet or http. I only check ON/OFF status and change volume. But I can image it’s pain when you’re more dependent on the receiver in your setup.

Great job!
Thanks a lot.
I will try this with telnet then.
However, I would prefer to stay with http, but don’t want to sound impatient :wink:

And:
I totally agree, that the maintainers did a marvelous job on OH3 and I’m really thankful for all the effort which is put into it and this awesome community!
:+1:t2:

1 Like

I have the same issue after upgrading to OH3.1 (from OH3.0)
I have these bindings:

  • Denon / Marantz Binding
  • IHC / ELKO Binding
  • LG webOS Binding
  • Netatmo Binding

I hope this helps in the debugging as I will not switch to telnet

1 Like

I doubt that is any help. Maybe you could offer some DEBUG info, like the first post.
Has anyone bothered recording an issue for this binding on github yet?

I tried to remove this thing, by deleting the “denon.things” file from the “conf/things” folder.
Then I refreshed openhab to see it gone and then I copied the exact same file there again.
When I refreshed openhab, it seems fine (no connection issue).
If the problem reappears, I will post debug logs.

I am having similar issues with items updating. I checked Denon Web Control by entering the IP of my receiver in a browser(s). It appears to be broken, as the page is there, but no menu items.

I also remember a Denon update in the past few weeks. Not sure if any of this is related, but seems like it could be.

A few points to note:

I am certain that a Denon firmware update is not the root cause of this issue as my AVR has not been updated in well over a year if not longer. Further I can use my OH 2.5.x and everything works just fine.

I do not have a denon.things file as I did not manually create a thing for my AVR, but rather used the binding auto discovery, but I did delete the AVR.thing and was able to rediscover it using the binding, but there was no change in behavior. Telnet works for Volume,Power, Mute and Input Select but does not provide updates for streaming Album,Artist and Track and of course is limited to a single connection. If I use HTTP (not Telnet) then Album,Artist,Track and INPUT are updated in real time but nothing else is updated if switched from another remote or at the AVR. However I can still control AVR Power,Volume,Mute and Input through OpenHAB3. It is just that communication is not bi-directional.

I will submit a ticket on Git to document this issue and in the mean time I have reverted to OH 2.5 which has been rock solid for more than 2 years.

I also didn’t update my receiver for a very long time. as a matter of fact, i tried updating after i ‘solved’ my problem and update doesn;t work anymore for my model avr-x1000.

But good thinking :slight_smile: could have been a coincidence ofcourse.

I had a receiver update but the binding is still not working as before. Looks like telnet isn’t as reliable as http. Sometimes the status from the receiver becomes ON after power off and my lighting and part of day is dependant on it, that’s te reason I notice pretty soon when this happens.

I wanted to bring this issue to forefront again as it seems to remain unresolved. Back on July 8, 2021 I noted the following issue in this thread.

Telnet works for Volume,Power, Mute and Input Select but does not provide updates for streaming Album,Artist and Track and of course is limited to a single connection. If I use HTTP (not Telnet) then Album,Artist,Track and INPUT are updated in real time but nothing else is updated if switched from another remote or at the AVR. However I can still control AVR Power,Volume,Mute and Input through OpenHAB3. It is just that communication is not bi-directional.

It was similarly observed by others.

I also submitted a ticket on Git (DenonMarantz HTTP Broken in OH3.1 #10962) referencing this thread and calling out this issue. It seems that with the release of OH 3.1 Milestone 1 a change was made to improve Telnet networking for DenonMarantz binding, but in the process it broke HTTP networking, or at least portions, and persisted into the final release of OH3.1. I’m not sure who owns this binding, but I @J-N-K seems to have initiated the changes in OH 3.1 Milestone 1. As a result of this issue and a few others I reverted back to OH 2.5 in July.

We are now approaching the release 3.2, so I thought it a good time to revisit OH 3.x and test 3.2 Milestone 3. I am happy to say that many of the other issues that I encountered in 3.1 seemed to have been resolved, however the DenonMarantz HTTP issue persists in 3.2M3 and as far as i can see on Git it has not even been reviewed. My hope is that by elevating this issue once again here and on Git, that it may be finally be resolved before OH 3.2 is released in December.

4 Likes

Looking at the Git site for OH, it appears that the DenonMarantz HTML control/feedback bug has been addressed and with a bit of luck the fix should make it into the final release of OH3.2. A pull request was made here:
https://github.com/openhab/openhab-addons/pull/11766

Special thanks go to @Lolodomo and @pieterb for getting this moved forward and completed.

Thanks guys. Much appreciated. Looking forward to being fully migrated from OH2.5 to OH3.2

1 Like