[RELEASE] Onkyo Multi-Zone AVR Driver

[UPDATE v0.9.210324.0 OnkyoMultiZoneAVRChild.groovy]
Fix: Lower case or single digit volume level command values cause ZZZN/A response (where ZZZ represents the zone command prefix).

[UPDATE v0.9.210320.1]
Fix: text logging settings being ignored

I'm happy to announce the release of the Onkyo Multi-Zone AVR Driver. The driver supports up to 4 zones (Main and Zones 2-4) by creating a separate child device for each selected zone.

Each installed child/zone supports the following functions:

  • Zone Power: On/Off
  • Zone Volume Level
  • Zone Muting: Muted/Unmuted/Toggle
  • Input Source: selection by index number
  • Input Source Naming: allows attaching a name to the input index
  • Input Source: by raw 2 character hex value (see Onkyo eISCP Protocol document for model-specific input code values)
  • The ability to send a raw eISCP command which should allow you additional control above the core functions listed above (see the Onkyo eISCP Protocol Documents in the Docs folder for this driver for additional information regarding available commands)

Please refer to read me for installation instructions.


I'll take it for a spin and see how it goes. Thanks for this! I know Zone 2 has been asked for a lot.

Happen to have a link to the document for this setting?


Edit: I just played around with the setting until the volume matched.

Glad you were able to find the right setting. In case anyone else is looking, there are four ISCP protocol docs in my repo covering models released between 2011-2017. Each Excel doc includes a tab sheet for each zone that defines which codes and value ranges are applicable along with a matrix of the AVR models that were supported at the time the protocol doc was published.

I'll be trying this out, too. Thanks.

Worked like a charm. For whatever reason, Samsung TVs don't play well with Onkyo's so one of my AVR basically went unused. With this, I'll be able to automate everything just like HDMI-CEC should. Thanks so much for breathing some life into my living room.

1 Like

I just pushed out a release for the Child driver (OnkyoMultiZoneAVRChild .groovy) that fixes an issue that causes some volume settings via a dashboard tile to be ignored--see first post.

Hoping for some help getting this working. I tried out the native Onkyo AVR device from the Hubitat list and it worked fine; however, looking for Zone 2 controls I came here. I followed the instructions for install; however, the commands do not do anything. The status on the parent device doesnt refresh, the commands from the main don't work. I have an TX-NR656... not sure where to start to fix?

I think the native driver supports zone 2 now.

I'm sure you've already done most of this so I apologize for the basics but I want to make sure we're on the same page.

First, make sure you have the Hubitat log open on a separate browser tab.

Next, open the Onkyo AVR Parent driver page in another browser tab.

On the AVR parent settings page, enable debug logging, verify that the Onkyo IP and port settings are correct for your receiver, and select all of the zones you want to control.

Next, turn on "descriptive text logging" and "debug logging" and click the "Save Preferences" button, then click the "Initialize" button.

Look at the logs--if there any errors related to the the Onkyo parent or the child "Zone" devices grab a screen clip and post them here.

Assuming there aren't any errors continue below...

You should have a separate child "Zone" device for each zone you selected above. Open the main zone in a separate browser tab.

Next, turn on "descriptive text logging" and "debug logging" and click the "Save Preferences" button, then click the "Initialize" button.

Click the "On" and "Off" buttons on the child device page and check if the receiver responds.

Repeat this process for the remaining "Zone" devices.

Lastly, post the log output for the parent and child devices.

EDIT: For completeness, here's what my "Main Zone" device settings look like:

I have not done logging before, thank you for your patience and explanation. I can confirm the ip address and port appear to be correct, the same ip and port are used on the native hubitat driver and it does operate the receiver.
Parent logging is unremarkable to me - I can't tell / interpret if the receiver is responding. Images from that at the bottom.
The only thing I see to note is that, clicking the initialization button on either Main Zone or Zone-2 causes a simple single line in the log with "warn".

Clicking the On/Off buttons do not produce log entries, nor do they operate the receiver.

Log Screen Shot from clicking Initialize on the Parent.

Unfortunately native driver does not. It’s been requested since late 2018 :disappointed_relieved:

The log output isn't showing any errors but there's no response from the AVR. The "warn" log entry is fine--the "warn" logging level is to ensure a log entry is added if "descriptive text logging" and "debug logging" are both turned off.

A couple of things you can try:

Although the AVR shouldn't have an issue with multiple telnet connections, it's possible that the TX-NR656 only supports a single connection and the native Onkyo driver is preventing the multi-zone driver from connecting. Try temporarily setting the native driver's telnet IP address to a bogus unused IP address and repeating the steps in my first response. Note that you'll need to click the "Save Preferences" button on the native Onkyo device settings to save the new IP address. I'd also click the "Initialize" button on that page as well.

If that fails to produce any results you may want to try the other eISCP termination options:

onkyo parent 2

Remember that you'll need to click the "Save Preferences" and "Initialize" buttons with each change.

1 Like

Thank you for taking time out to walk me through logging and such. The problem was as you suspected, the second connection attempt was being ignored because the first device had not disconnected. While I had suspected this and tried to remove it early on, the Hubitat hub needed a reboot before it reset everything.
So, long story short, there can be only one device family setup, and if you've played around with two different drivers and devices, you'll should delete one and reboot and try then.

1 Like

Great--glad to hear you were able to get it working.

FYI if anyone has issues with this, mine wouldn’t connect until I rebooted the Hubitat. Works great since.

Thanks to all those involved with the coding!!

Download the Hubitat app