Onkyo Receiver Custom Driver

I would love Zone 2 support also.

2 Likes

Im also looking for Zone 2 support...

You can have Zone2 support if you own a Harmony.

This is a decent workaround (and I'm currently using it!) but I'm trying to move away from any IR Blasters as they just seem to add too much hassle. That and in my new house I don't want to have to buy 2-3 just because all of my media devices aren't in the same cabinet anymore.

Part of the attraction to building a robust Hubitat infrastructure is to no longer be beholden to, say, Logitech for continued support. I do systems integration for my day job, and I can tell you that building a Rube Goldberg ITTT-kind of automation never ends up working as well as point-to-point, with the added bonus of closing the loop with my AVR so I can get statuses back to the hub directly.

And FWIW, I have 2 different AVRs (Onkyo and Deneon) both wired with Zone 2s, so this isn't even a vendor specific request. I'd just like to be able to control my Deck and my Bedroom from my Deck and my Bedroom without having to open the Vendor's specific apps - my wife doesn't understand why I can't just make another magic button on the dashboard for it.

My wife asked for a button to make the babies stop crying/screaming.

I'll see if I can find an open source driver for this and poke around and see if I can figure it out since it's been requested so much, but for as long as this has been out I'd imagine it's not possible to send a telnet command over EISCP protocol to change zone 2 since this is how the driver talks.

I came across a possible work around that might interest you though:

My wife asked for a button to make the babies stop crying/screaming.

Ha.

I am subscribed to that thread, as it was how I was making Hubitat control Harmony to control Zone 2 on the Onkyo, but now I'm worried I misunderstood that approach. Is that using Hubitat to send the commands directly to the AVR? Or do you send a command to the Harmony to the AVR.

but for as long as this has been out I'd imagine it's not possible to send a telnet command over EISCP protocol to change zone 2 since this is how the driver talks.

I'm new here, but I'm assuming that if I set up a packetsniffer on my network to see what commands the Onkyo app is sending, I should be able to pick it apart. Unless it's encrypted.

We'll see if I'm bored enough this weekend to trap some TCP/IP.

I don't have a Harmony at the moment to test and not enough coffee to dig through tons of posts to figure it out. I'd guess the harmony is sending the commands though.

It sends the command to Harmony, which executes the command on the Onkyo receiver. Not perfect, but it is something.

Its such a same the no one makes a single product that is "open". Sonos is great for music, and offers flexible controls, but it's not a 7.1 home theatre system. (and would be grossly overpriced if it was)

AVR's still rely on IR for the most part. Friggin HBOMax and Peacock still arent available on Roku. You'd think in 2020 all these problems would have been solved.

2 Likes

This would provide the key bit of info needed to incorporate it into a driver. I've been meaning to do this myself but with everything else going on it's been a low priority.

Hey i found these for you. Is this helpful?

Is it as simple as using these commands (assume they work) as a new def at the top of your driver?

Hmmm looking further it gives command name, but no contextual info on executing those commands against Zone2.

Scroll to the bottom. Also if you go back to the folder of that link there are all the other zone 2 commands.

Yea but if you look at the Zone3 commands, they are all the same. So there must be some kind of prefix or something that I'm not getting.

Zone2 is the prefix

I accept that you are right, but where do you get that from?

If i get some free time soon I will play with this.

The zone X and control have to be sent in the same command or your going to cause zone one to turn off otherwise as seen in the other post as I think you pointed out for the harmony commands. But since Harmony can do it without triggering zone one to turn off it's gotta be possible somehow. If I get some time later I'll take a look at @ogiewon driver and see if I can make some sense of everything. Looks like all the commands are sent in hex though.

I suspect if I could just see the code for the Built-in Onkyo AVR driver, this would be trivial to add.

Yea, you couldn't make it public if they did give it to you though.

Here's another yaml with a ton of settings also.

Relevant extract:
zone2:
ZPW:
name: power
description: Zone2 Power Command
values:
'00':
name: standby
description: sets Zone2 Standby
models: set7
'01':
name: 'on'
description: sets Zone2 On
models: set7
QSTN:
name: query
description: gets the Zone2 Power Status
models: set7
ZPA:
name: zone-2-a
description: Zone 2 A Command
values:
'00':
name: ['off']
description: sets Zone 2 A Off
models: set7
'01':
name: ['on']
description: sets Zone 2 A On
models: set7
QSTN:
name: query
description: gets the Speaker State
models: set7
ZPB:
name: zone-2-b
description: Zone 2 B Command
values:
'00':
name: ['off']
description: sets Zone 2 B Off
models: set7
'01':
name: ['on']
description: sets Zone 2 B On
models: set7
QSTN:
name: query
description: gets the Speaker State
models: set7
ZMT:
name: muting
description: Zone2 Muting Command
values:
'00':
name: 'off'
description: sets Zone2 Muting Off
models: set7
'01':
name: 'on'
description: sets Zone2 Muting On
models: set7
TG:
name: toggle
description: sets Zone2 Muting Wrap-Around
models: set7
QSTN:
name: query
description: gets the Zone2 Muting Status
models: set7
ZVL:
name: volume
description: Zone2 Volume Command
values:
? - 0
- 200
: description: "Volume Level 0.0 \u2013 100.0 ( In hexadecimal representation)"
models: set7
? - 0
- 100
: name: vol-0-100
description: "Volume Level 0 \u2013 100 ( In hexadecimal representation)"
models: set7
? - 0
- 80
: description: "Volume Level 0 \u2013 80 ( In hexadecimal representation)"
models: set7
UP:
name: level-up
description: sets Volume Level Up
models: set7
DOWN:
name: level-down
description: sets Volume Level Down
models: set7
UP1:
name: level-up-1db-step
description: sets Volume Level Up 1dB Step
models: set7
DOWN1:
name: level-down-1db-step
description: sets Volume Level Down 1dB Step
models: set7
QSTN:
name: query
description: gets the Volume Level
models: set7
ZTN:
name: tone
description: Zone2 Tone Command
values:
B{xx}:
name: bass-xx-is-a-00-a-10-0-10-1-step
description: sets Zone2 Bass (xx is "-A"..."00"..."+A"[-10...0...+10 1 step]
models: set7
T{xx}:
name: treble-xx-is-a-00-a-10-0-10-1-step
description: sets Zone2 Treble (xx is "-A"..."00"..."+A"[-10...0...+10 1 step]
models: set7
BUP:
name: bass-up
description: sets Bass Up (1 Step)
models: set7
BDOWN:
name: bass-down
description: sets Bass Down (1 Step)
models: set7
TUP:
name: treble-up
description: sets Treble Up (1 Step)
models: set7
TDOWN:
name: treble-down
description: sets Treble Down (1 Step)
models: set7
QSTN:
name: query
description: gets Zone2 Tone ("BxxTxx")
models: set7
ZBL:
name: balance
description: Zone2 Balance Command
values:
'{xx}':
name: xx-is-a-00-a-l-10-0-r-10-1-step
description: sets Zone2 Balance (xx is "-A"..."00"..."+A"[L+10...0...R+10
1 step]
models: set7
UP:
name: up
description: sets Balance Up (to R 1 Step)
models: set7
DOWN:
name: down
description: sets Balance Down (to L 1 Step)
models: set7
QSTN:
name: query
description: gets Zone2 Balance
models: set7
SLZ:
name: selector
description: ZONE2 Selector Command
values:
'00':
name: [video1, vcr, dvr, stb, dvr]
description: sets VIDEO1, VCR/DVR, STB/DVR
models: set7
'01':
name: [video2, cbl, sat]
description: sets VIDEO2, CBL/SAT
models: set7
'02':
name: [video3, game/tv, game, game1]
description: sets VIDEO3, GAME/TV, GAME, GAME1
models: set7
'03':
name: [video4, aux1]
description: sets VIDEO4, AUX1(AUX)
models: set7
'04':
name: [video5, aux2, game2]
description: sets VIDEO5, AUX2, GAME2
models: set7
'05':
name: [video6, pc]
description: sets VIDEO6, PC
models: set7
'06':
name: video7
description: sets VIDEO7
models: set7
'07':
name: [hidden1, extra1]
description: sets Hidden1, EXTRA1
models: set7
08:
name: [hidden2, extra2]
description: sets Hidden2, EXTRA2
models: set7
09:
name: [hidden3, extra3]
description: sets Hidden3, EXTRA3
models: set7
'10':
name: [dvd, bd, dvd]
description: sets DVD, BD/DVD
models: set7
'11':
name: strm-box
description: sets STRM BOX
models: set7
'12':
name: tv
description: sets TV
models: set7
'20':
name: tape
description: sets TAPE(1)
models: set7
'21':
name: tape2
description: sets TAPE2
models: set7
'22':
name: phono
description: sets PHONO
models: set7
'23':
name: [cd, tv/cd]
description: sets CD, TV/CD
models: set7
'24':
name: fm
description: sets FM
models: set7
'25':
name: am
description: sets AM
models: set7
'26':
name: tuner
description: sets TUNER
models: set7
'27':
name: [music-server, p4s, dlna]
description: sets MUSIC SERVER, P4S, DLNA
models: set7
'28':
name: [internet-radio, iradio-favorite]
description: sets INTERNET RADIO, iRadio Favorite
models: set7
'29':
name: [usb, usb]
description: sets USB/USB(Front)
models: set7
2A:
name: usb
description: sets USB(Rear)
models: set7
2B:
name: [network, net]
description: sets NETWORK, NET
models: set7
2C:
name: usb
description: sets USB(toggle)
models: set7
2D:
name: airplay
description: sets Airplay
models: set7
2E:
name: bluetooth
description: sets Bluetooth
models: set7
'40':
name: universal-port
description: sets Universal PORT
models: set7
'30':
name: multi-ch
description: sets MULTI CH
models: set7
'31':
name: xm
description: sets XM
models: set7
'32':
name: sirius
description: sets SIRIUS
models: set7
'33':
name: dab
description: 'sets DAB '
models: set7
'55':
name: hdmi-5
description: sets HDMI 5
models: set7
'56':
name: hdmi-6
description: sets HDMI 6
models: set7
'57':
name: hdmi-7
description: sets HDMI 7
models: set7
7F:
name: 'off'
description: sets OFF
models: set7
'80':
name: source
description: sets SOURCE
models: set7
UP:
name: up
description: sets Selector Position Wrap-Around Up
models: set7
DOWN:
name: down
description: sets Selector Position Wrap-Around Down
models: set7
QSTN:
name: query
description: gets The Selector Position
models: set7

Here's the yaml they use to build the commands.