Yamaha RX-V2065 / OFFLINE - COMMUNICATION_ERROR

Hello,
I have added my receiver in openbab and i get the below
OFFLINE - COMMUNICATION_ERROR Could not handle response

Yamaha RX-V2065

Any ideas?

I use exactly the same Receiver and get exactly the same message. This is the trace log leading to that error:

2017-11-05 03:46:00.880 [TRACE] [receiver.handler.YamahaBridgeHandler] - updateAllZoneInformation
2017-11-05 03:46:00.977 [DEBUG] [receiver.handler.YamahaBridgeHandler] - Parse error!
org.openhab.binding.yamahareceiver.internal.protocol.ReceivedMessageParseException: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 44; The processing instruction target matching "[xX][mM][lL]" is not allowed.
	at org.openhab.binding.yamahareceiver.internal.protocol.xml.XMLUtils.xml(XMLUtils.java:125) ~[?:?]
	at org.openhab.binding.yamahareceiver.internal.protocol.xml.DeviceInformationXML.update(DeviceInformationXML.java:78) ~[?:?]
	at org.openhab.binding.yamahareceiver.handler.YamahaBridgeHandler.updateAllZoneInformation(YamahaBridgeHandler.java:163) ~[?:?]
	at org.openhab.binding.yamahareceiver.handler.YamahaBridgeHandler.lambda$0(YamahaBridgeHandler.java:151) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:?]
	at java.lang.Thread.run(Thread.java:745) [?:?]
Caused by: org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed.
	at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:257) ~[?:?]
	at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339) ~[?:?]
	at org.openhab.binding.yamahareceiver.internal.protocol.xml.XMLUtils.xml(XMLUtils.java:123) ~[?:?]
	... 10 more

I am running the current snapshot build.

It looks like the yamaha binding does not support model RX-V2065.

I tried with HTTP binding and at least i can power off/on the receiver for now.

Yes, currently the snapshot binding seems to have a bug.

The Yamaha Binding used to support the RXV-2065 before.

Maybe @David_Graeff has an idea? :wink:

I tried this also on openhab 2.1 stable with the same issue.

Sent using OWA for iPhone

@ganesh.ingle

Your thoughts are nice in an ideal world, but don’t work in the real world. :wink:
It would be great, if the OpenHAB community were something relevant to Yamaha or any other large company, but that is not the case. Not even close. :wink:

OpenHAB compatibility was never an advertised feature of this Receiver, it works perfectly with the Yamaha Android App. The YamahaReceiver binding worked with the 2065 before the zone-concept of the binding was introduced.

Newer receivers are probably controlled via the newer protocol within the official apps. We need to catch up in this regard. One “bug” in our implementation is still present though: recognising if the AVR in question expects underscores or not for input names.

All other unexpected behaviour like volume problems etc is very likely because Yamaha doesn’t really support or test the old protocol anymore.

Cheers David

@David_Graeff, thanks for looking at it. The RXV-2065 is from about 2010, at least i bought it around that time. So it’s not really a newer Receiver. My newer RXV-475 (2014?) works completely fine with the new binding.

As I said, the RXV-2065 worked previously with the older binding.

Can i do anything to help to trace down the problem?

Yes. Switch the bindings debug level to trace, it is somewhere documented how to change debug levels. The binding will automatically start to log all communication to a file in your Openhab installation user folder. This file might help a lot.

Cheers David

I already did a few days ago, a yamaha_trace.log already exists.

But i use two receiver, an rxv-475 which works fine and the rxv-2065 with which the problem occurs.

I can see no reference to the receiver in the trace-log. Should i better disable the 475 to create just the problematic trace?

I haven’t thought about multiple decides when I created the trace code. Multiple files would make sense. For now: yes please ensure a clean file with only the problematic avr.

Please also check the AVR local webpage, if there are options for remote controlling.

Is this a standard location? I never used the webpage. :wink:

I will check the manual tonight.

I also found mine just my accident. Use the IP address in your browser. The web page is hosted on port 80

2017-11-07 20:41:09.139 [DEBUG] [receiver.handler.YamahaBridgeHandler] - Parse error!
org.openhab.binding.yamahareceiver.internal.protocol.ReceivedMessageParseException: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 44; The processing instruction target matching “[xX][mM][lL]” is not allowed.
at org.openhab.binding.yamahareceiver.internal.protocol.xml.XMLUtils.xml(XMLUtils.java:125) ~[?:?]
at org.openhab.binding.yamahareceiver.internal.protocol.xml.DeviceInformationXML.update(DeviceInformationXML.java:78) ~[?:?]
at org.openhab.binding.yamahareceiver.handler.YamahaBridgeHandler.updateAllZoneInformation(YamahaBridgeHandler.java:163) ~[?:?]
at org.openhab.binding.yamahareceiver.handler.YamahaBridgeHandler.lambda$0(YamahaBridgeHandler.java:151) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:?]
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.xml.sax.SAXParseException: The processing instruction target matching “[xX][mM][lL]” is not allowed.
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:257) ~[?:?]
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339) ~[?:?]
at org.openhab.binding.yamahareceiver.internal.protocol.xml.XMLUtils.xml(XMLUtils.java:123) ~[?:?]
… 10 more

Also i have tried the below with HTTP Binding and i was able to power_on/power_off

i send the below commands
var power_on = “<YAMAHA_AV cmd=“PUT”><Power_Control>On</Power_Control></YAMAHA_AV>”;
var power_off = “<YAMAHA_AV cmd=“PUT”><Power_Control>Standby</Power_Control></YAMAHA_AV>”;

on item
http=">[*:POST:http://192.168.210.70/YamahaRemoteControl/ctrl:JS(yamaha.js)]"

Here is the yamaha_trace.log

It’s not much information. :frowning:

<?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="GET"><System><Config>GetParam</Config></System></YAMAHA_AV>

<?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="GET"><System><Config>GetParam</Config></System></YAMAHA_AV>

<?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="GET"><System><Config>GetParam</Config></System></YAMAHA_AV>

<?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="GET"><System><Config>GetParam</Config></System></YAMAHA_AV>

<?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="GET"><System><Config>GetParam</Config></System></YAMAHA_AV>

<?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="GET"><System><Config>GetParam</Config></System></YAMAHA_AV>

I found something. This Receiver doesn’t respond to the usual service description.

But this url gives the result:

http://<ip>/YamahaRemoteControl/UnitDesc.xml

Here is the resulting xml:
UnitDescription.xml (65.4 KB)

I hope that helps.

If that’s true, then it’s not the new binding version that causes trouble. Yamaha may have updated the firmware. My next project on the binding is implementing the json protocol, so can’t help you here with this dialect of the old protocol :confused:

The parsing problem need to be solved though.

Cheers david

Does the debug output not include the text that it’s trying to parse before it throws the parse error? That would be problematic.