I recently added some in-ceiling speakers to our 3 season ( 4 season with a blanket!) porch. I'm using my Onkyo's zone 2 output and it's all working well enough but the remote is all but useless and the Onkyo mobile app UX just plain sucks. There's no way my wife or guests will ever figure out how to us it.
I'd love to be able to control zone 2 functionality using a dashboard. @mike.maxwell: any chance you'd be willing to add zone 2 support? Ideally:
- power on/off/toggle
- Input source
- Volume up/down/mute
@mike.maxwell: so that's a no?
no, its not a no, I intend to add zone support to all the ARV drivers, it's simple to do, unfortunately I can't tell you when...
It won't be next year when though...
With the nice weather upon us it sure would be nice to have zone 2 functionality so I can control music out on the deck (hint, hint)
I'm looking for this for my Onkyo as well.
I can trigger Zone 2 to turn on and change inputs cause I have a Harmony in that room.
However, when I stream Spotify to the app built into the receiver, the app doesnt know I'm using Zone2, so when I adjust volume, it adjusts the Zone 1 volume. Since my Zone 2 is outside I then have no real way to control the volume except for launching the harmony app on my phone, which takes a little bit of time. (and also guests would have no way to do this) ((not like there's been any guests with this stupid virus))
Anyway, Im hoping to just use a Pico Remote somehow to control the volume.
Right now my work around is that i have an amazon Echo hooked up to the "CD input" and I pretty much leave Zone 2 set to this input. This "kind of" allows me to control the volume, but it's by adjusting the output volume of the Echo, not the volume of the amp.
Yeah, the work-arounds are few and ugly. Tagging @mike.maxwell in hopes that he can shed some light on if/when Zone 2 support might happen.
Trying to use Harmony to do this right now. I made a separate device in Harmony for "Zone 2" and it works, but if I switch the Activity to use this, it shuts off the "Zone 1" functions currently going on.
So I can't use the "simple" Logitech integrations for this.
Looking now at the XMPP options, I just hate to have to run outside stuff (ie nodejs or docker) for something like this. Not like I can't but I dont like my home automation stuff to be "work".
I have a newer Onkyo that's supported by the Onkyo Controller app. The app itself is a dog but it does allow me to set the receiver to Zone 2 and adjust Zone 2 volume without screwing up Zone 1 if anyone happens watching/listening to anything. But the whole thing is a kludge and I'm the only one in the house that can use it. I also have a Harmony Hub and am using @ogiewon's excellent Harmony Hub driver. Unfortunately, I'm already at the 8 activity limit so adding a Zone 2 activity means ditching another more oft used activity just to get Zone 2 support.
By XMPP options I assume you mean maddox / harmony-api? That's been on my to-do list for a while but the current COVID madness has me busier than ever at work and there's no time and mental capacity left over for anything else.
The activity wouldnt help you anyway. If you change activities to one that uses Zone2, it will shut off whatever is happening on Zone 1.
So if you're in "Watch TV" activity and want to switch to activity "Zone 2 Outside Speakers" so that you can adjust the volume...the TV will shut off.
HOWEVER, I now see something in @ogiewon 's driver :
And in state variables, I have the list of devices in my harmony.
This would lead me to believe it's possible to send a device command? (ie. "Zone2 volume up") But I dont know if that's true, and I dont know how to get a list of commands.
OMG This totally works!!!
If I copy the DeviceID for my "Onkyo Zone 2" device in Harmony, and in command I make it "volumeUp" or "volumeDown", I can watch it change the volume of Zone2 on my reciever!!!
How do I access the "Device Command" from a rule?
You simply use a "Custom Action" in RM, which will allow you to select the Harmony Hub Parent Device, and then its custom "deviceCommand". Be sure to pass in both arguments as text strings.
Didnt realize you could do that. I was just in the process of copying your driver to hard-code the device ID as a temporary solution.
I havent made any drivers yet, so I dont know the specifics, but I am pondering the possibility of making an additional child-device driver for this purpose. A child device with VolumeUp/volumeDown exposed that just passes the deviceid parameters up to the parent.
Got this completely working now! Thanks for all your work @ogiewon
@SteveV let me know if you need any info to get this working. NO ACTIVITY REQUIRED! Was a little cumbersome but basically:
- Inside Harmony App add a Zone2-specific device if you dont already have one. (Add new device, enter your Onkyo model, and one of the choices should be "Onkyo <model #> (Zone 2)" )
- Look at your Harmony parent device from @ogiewon 's driver
- Under state variables, find the "Zone 2 device" you added and note the device ID
- Choose your preferred button to control volume (Pico remote, physical button, dashboard button etc)
- Create a rule for this button with
- Action type = "Set mode, Variables or File, Run Custom Action" | "Run custom action"
- Capability = "Switch" | Device = [parent harmony device]
- Select Custom Command = "deviceCommand"
- Add ParameterType = String | Value = "volumeUp" (I think you have to always add this one first)
- Add ParameterType = String | Value = [the device ID from your Harmony "Zone 2 device"]
- Repeat 5-10 for a "volumeDown" action
@ogiewon one more question. Is there any way to discover the commands that are sendable?
For instance if I wanted to send a "Set Input: NET" to my Onkyo Zone2 device, I assume there's some string for the sendmsg to do this, but I wouldnt know how to figure it out.
Well... yes, sort of...
Inside the Parent Driver, uncomment line 61 to allow the 'getConfig' command to be exposed as a button on the device details page. You'll use this to get a massive JSON configuration text string from your Harmony Hub.
Then, modify line 91 as follows:
state.description = description
Save these two edits, and then refresh the web page for the Device Details to expose the 'getConfig' command button. Click the button. Then refresh the web page again. You should now see a massive JSON string in section for State Variables. Copy that string into your clipboard, and then use whatever tool you'd like to view the JSON string. I use http://jsonviewer.stack.hu/
You should now be able to drill down into the JSON to find each device, and the commands that it supports, along with the specific strings.
Sweet! Didnt actually expect it to be this easy
LOL - I am glad you think it is easy! I was worried about whether or not those instructions would be clear enough!
Nope, easy as pie. Got everything I need already. This actually opens up so many possibilities. I can now do stuff like.
- All the fun Zone2 stuff
- integrate harmony functions into rules that I used to have to dedicate an activity to. Example:
Trigger my halloween projector IR functions without using an activity (which would have turned off my TV)
- Enhance harmony options on itself. For example:
Harmony Home Control button -> flip SmartThings switch --> Hub Connect --> Trigger rule with several things INCLUDING harmony functions.
- Who knows what else.
So happy right now. I now have a "Patio Pico Remote"
Up Arrow = Zone 2 - Volume Up
Down Arrow = Zone 2 - Volume Down
Middle Button = Zone 2 - Mute
Middle Button HELD = Cycle through the three Zone2 Inputs I use
Love this community.