Yamahareceiver zone discovery not working with RX-V3900


I’ve been using yamahareceiver binding with OH2.1 and RX-V3900 for some time now and it is working very well. Now before upgrading to 2.2 I made a test install from scratch. The receiver is discovered just fine, but after adding to Things it does not go to Online status but stays in status OFFLINE - CONFIGURATION_PENDING Waiting for data.

The reason seems to be missing zone information from receiver side as said in menu_error:
Zone information not provided: <YAMAHA_AV rsp=“GET” RC=“0”><Model_Name>RX-V3900</Model_Name><System_ID>0CE4E483</System_ID> Y.0125.0205V119</YAMAHA_AV>

Is there a way to configure zone information manually and/or would it be possible to install main_zone as default when zone information is not provided by the receiver?


Some initial conversation was covered on the 3034 issue.

It looks that the RX-V3900 has a number of differences form the other models that the addon does not account for. Based on the provided files/requests you shared with me, I can immediately see these:

  • Missing Feature_Existence on the system config discovery - this is effectively causing the zones not to work for you.
  • Vol instead of Volume
  • Surround element is also handled a bit differently

There might be more…

I am working on bunch of other changes/fixes for the addon for the 2.3.0-snapshot version. When I am done with these, I could look into making the addon compatible with the RX-V3900. This would require you to:

  • Upgrade OH to unstable 2.3.0-snapshot
  • Test the custom build addon on your setup
  • Patience :slight_smile:

Thanks! It would great if support for RX-V3900 could be added.

I can certainly test when needed. While researching yesterday I came across original Yamaha specs for the RX-V9300/Z7 ethernet interface. Links below just in case they would useful for this or something else.

PR has be submitted: https://github.com/openhab/openhab2-addons/pull/3264

Using the jar found here (https://openhab.jfrog.io/openhab/libs-pullrequest-local/org/openhab/binding/org.openhab.binding.yamahareceiver/2.3.0-SNAPSHOT/org.openhab.binding.yamahareceiver-2.3.0-SNAPSHOT.jar) the binding still won’t work with my RX-V3900.

Building the jar from your source however does work.

I extracted the JAR from the link you provided. It does not have any changes from my PR, and specifically the V3900 changes.

Are you sure this is the right URL to get builds of the pending PR from?

Well you’ve linked to it in your PR

The build JAR should be available here if anyone is interested in further testing:

Yes, and I was mislead by the PR description template :slight_smile:

Either way I asked the maintainers where to get these binaries from, and it sounds like one PR build overrides the other PR build JARs.

As of now, this artifact seems to have the changes. Please grab while it still lasts :slight_smile:

Sadly, your PR doesn’t fix the Surround Channel selection for the RX-V3900.
The Binding sends this request:

<YAMAHA_AV cmd="PUT"><Main_Zone><Surround><Program_Sel><Current><Sound_Program>7ch Stereo</Sound_Program></Current></Program_Sel></Surround></Main_Zone></YAMAHA_AV>

which can’t be parsed by the receiver.

Looking at the Chrome Dev console of the HTTP Interface of the AVR I found out that the correct request looks like this:

<YAMAHA_AV cmd="PUT"><Main_Zone><Surr><Pgm_Sel><Straight>Off</Straight><Pgm>7ch Stereo</Pgm></Pgm_Sel></Surr></Main_Zone></YAMAHA_AV>

Also, using a setpoint widget to control the volume instantly sets it back up again but I’m not entirely sure if thats related to this PR or just another bug in the yamaha binding.

14:07:48.756 [DEBUG] [.internal.protocol.xml.ZoneControlXML] - Zone Main_Zone state - power: true, mute: false, volumeDB: -52.0, input: TV, surroundProgram:
14:07:48.765 [INFO ] [smarthome.event.ItemStateChangedEvent] - LR_AVR_Yamaha_RXV3900_Zone1_Zone_channels_Volume changed from 29.5 to 30
14:07:53.343 [INFO ] [smarthome.event.ItemCommandEvent ] - Item ‘LR_AVR_Yamaha_RXV3900_Zone1_Zone_channels_Volume’ received command 29.5
14:07:53.349 [INFO ] [smarthome.event.ItemStateChangedEvent] - LR_AVR_Yamaha_RXV3900_Zone1_Zone_channels_Volume changed from 30 to 29.5
14:07:53.490 [TRACE] [r.internal.protocol.xml.XMLConnection] - The charset UTF-8 will be used to parse the response
14:07:53.503 [DEBUG] [.internal.protocol.xml.ZoneControlXML] - Zone Main_Zone state - power: true, mute: false, volumeDB: -52.0, input: TV, surroundProgram:
14:07:53.512 [INFO ] [smarthome.event.ItemStateChangedEvent] - LR_AVR_Yamaha_RXV3900_Zone1_Zone_channels_Volume changed from 29.5 to 30

Setpoint item=LR_AVR_Yamaha_RXV3900_Zone1_Zone_channels_Volume minValue=0 maxValue=50 step=0.5

Interestingly for RX-V3900 few users were involved in testing (here, here), but none of them reported the surround issue. My PR is already closed, I suggest to file a bug/feature request and I will include this for my next PR. Ideally, if you could make yourself available for testing this once I have the fixed version. Beyond the surround, is there anything else still not working for this model?

Regarding the Setpoint, it should work if you set the step to 1.0 or higher. At this point only integer values are supported. I remember this used to work like this 2.2.0. I also noticed this, and in my PR I tried to enable 0.5 dB increments which the AVR supports, but gave up as I was running into rounding issues when converting volume % and volume dB.

Hi Yamaha RX-V3900 users (@Hypfer, @mikkov1) I have a new version that should fix the surround program compatibility on RX-V3900. Are you able to test this on your AVR please?

Here is the addon. Just remove the stock addon and add this one to the addons folder.

This will be submitted with my next PR.

I can’t control it at all anymore using that jar :frowning:

I ought to mention that after the upgrade you also need to adjust your thing settings because they are are now stored under a different name (see more info here). Because of that you need to set the IP/host address of your Yamaha on the Yamaha thing and assign the zone setting on each of the zone things.

If you configued via PaperUI go to > Configuration > Things > Yamaha Receiver > edit (pencil) > Address, and also Configuration > Things > Yamaha Main Zone > edit > Zone (set to ‘Main_Zone’). If you configured via the .thing file see the updated documentation here - note the host and zone are now all lower case.

In case you still have issues enable detailed logging and get back to me please.

I will have time for testing during weekend.

1 Like

I had to delete and recreate those items but other than that everything seems to be working now.

Apparently you also fixed the volume issues. Thanks

Glad to hear that. Please play with it for some time, and let me know in case you would notice anything odd.
I am also awaiting feedback from others for new features I’ve added. When this is tested I will file another PR which should be faster this time.


I did some testing, in general everything seems to work. Some notes:

  • PaperUI does not autodiscover yamaha bridge, adding manually from UI works just fine
  • after adding the bridge, zones are autodiscovered
    Zone controls:
  • Dialogue level and Scene channels are not supported on V3900, but they are presented in available channels from zones. Not sure if this is correct or incorrect. Adding and using the channels don’t “do” anything and logs just say function is not available in your model as it should, so it does not break anything
  • surround mode works as it should, however there are many modes available for selection that V3900 does not support (The roxy theather, Neo:6 and PLII(x) modes). Should these come from receiver or are they hardcoded? I didn’t check if something is missing, can do that later if needed.
  • Surround mode STRAIGHT has small glitch, changing to STRAIGHT works but paperui channels is then left blank.

I will test Navigation and playback controls later.

Thanks for taking the time to test this. Few comments:
Re 1) Discovery - This is how it should work.
Re 2) Dialogue level, Scene channels - You will see them available always on the zone thing. For models that don’t support them (RX-V3900) the command will not have any effect and during addon init it will say in logs that these channel are not supported on your model. I just pushed a new JAR, that will not even send a single commands for these. Similar for the party channels just added.
Re 3) Surround option - The list you see in paper UI is greater than what your model supports. The expectation is that in your .sitemap, you would put options that work for your model.
Re 4) Straight in paperUI - This should now be fixed (with the new JAR I just pushed).

Regarding the navigation there was no change on them, frankly I never used them. Please check the playback.

I checked the playback and they don’t work. To my understanding playback controls are valid for Net_radio and USB inputs and they both work with same controls. Currently this is the standard status query:

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

and it is otherwise fine, but


should be replaced with


I don’t think all the function available in new receivers will work (like album cover), but this should make basic playback controls work.

And I can confirm that bug with STRAIGHT surround mode is fixed.