Plugin: Harmony Hub Control

OK in the MyHarmony software I removed my custom command called “PowerToggler”

I then taught it a new custom command called “Toggle” using the PowerToggle button on the Denon amps original remote control handset.

The “Toggle” command does not appear in the list of available commands on the activity child device in Vera.

So then back in the MyHarmony software under “Buttons” for this ChromeCast Audio activity, I assigned the Red button on the remote to the custom command “Toggle”, synced the remote etc and reloaded / refreshed Vera.

Looking in the list of available commands on the activity child device in Vera, I do not see the “Red” button as an available command.

This leans back to my previous posts about where is this commands list coming from? As what I am seeing in Vera and what I see in the MyHarmony software for commands don’t match up.

I then repeated this whole process and created a new custom command in the MyHarmony software but this time called it “ReceiverO”.

However in the activity child device in Vera in the commands drop down list, I do not see a command called “ReceiverO”.

So back to the MyHarmony software under “Buttons” for this ChromeCast Audio activity I assigned another spare button “Guide” to the “ReceiverO” custom command.

However again in the activity child device in Vera in the commands drop down menu I do NOT see a command called “Guide”.

Something is not right here. The Harmony plug-in on my Vera Plus says its version 4.4.

Toggle is another one of those hidden commands. Have you synced your hub with the cloud? Have you hit the update config in the vera plugin?

http://192.168.1.100/port_3480/data_request?id=lr_Harmony214&cmd=list_devices

The Denon amp is ID: 70564644

{ "status": "OK", "msg": "OK", "data": { "devices": [ { "Device": "E.ON TV PowerDown", "Manufacturer": "E.ON", "ID": "52170733", "Model": "TVA106EON" }, { "Device": "TV", "Manufacturer": "Sony", "ID": "64379453", "Model": "KDL-32EX403" }, { "Device": "Amplifier", "Manufacturer": "Cambridge Audio", "ID": "52170735", "Model": "AZUR-350A" }, { "Device": "Denon Mini System", "Manufacturer": "Denon", "ID": "70564644", "Model": "UDM31" }, { "Device": "Media Center PC", "Manufacturer": "Microsoft", "ID": "52170734", "Model": "Windows Media Center SE" } ] }, "code": 200 }`

This http command lists all the commands on the Denon amp device.

http://192.168.1.100/port_3480/data_request?id=lr_Harmony214&cmd=list_device_commands&cmdp1=70564644

This is the output, you can see my “Toggle” and “ReceiverO” custom commands are listed.

{ "status": "OK", "msg": "OK", "data": { "ID": "70564644", "Device": "Denon Mini System", "Functions": [ { "Function": "Power", "Commands": [ { "Action": "PowerToggle", "Name": "PowerToggle", "Label": "Power Toggle" } ] }, { "Function": "ProgramBasic", "Commands": [ { "Action": "Call", "Name": "Call", "Label": "Call" } ] }, { "Function": "NumericExtended", "Commands": [ { "Action": "Greater10", "Name": "Greater10", "Label": "Greater 10" } ] }, { "Function": "NumericBasic", "Commands": [ { "Action": "1", "Name": "Number1", "Label": "1" }, { "Action": "2", "Name": "Number2", "Label": "2" }, { "Action": "3", "Name": "Number3", "Label": "3" }, { "Action": "4", "Name": "Number4", "Label": "4" }, { "Action": "5", "Name": "Number5", "Label": "5" }, { "Action": "6", "Name": "Number6", "Label": "6" }, { "Action": "7", "Name": "Number7", "Label": "7" }, { "Action": "8", "Name": "Number8", "Label": "8" }, { "Action": "9", "Name": "Number9", "Label": "9" }, { "Action": "10", "Name": "Number10", "Label": "10" }, { "Action": "Clear", "Name": "Clear", "Label": "Clear" } ] }, { "Function": "Volume", "Commands": [ { "Action": "VolumeDown", "Name": "VolumeDown", "Label": "Volume Down" }, { "Action": "VolumeUp", "Name": "VolumeUp", "Label": "Volume Up" } ] }, { "Function": "NavigationDVD", "Commands": [ { "Action": "Title", "Name": "TopMenu", "Label": "Top Menu" } ] }, { "Function": "PlayMode", "Commands": [ { "Action": "Repeat", "Name": "Repeat", "Label": "Repeat" }, { "Action": "Random", "Name": "Shuffle", "Label": "Shuffle" } ] }, { "Function": "Program", "Commands": [ { "Action": "Program", "Name": "Program", "Label": "Program" } ] }, { "Function": "RadioTuner", "Commands": [ { "Action": "PresetPrev", "Name": "PrevPreset", "Label": "Prev Preset" }, { "Action": "TuneDown", "Name": "ScanDown", "Label": "Scan Down" }, { "Action": "TuneUp", "Name": "ScanUp", "Label": "Scan Up" }, { "Action": "PresetNext", "Name": "NextPreset", "Label": "Next Preset" } ] }, { "Function": "TransportBasicDisc", "Commands": [ { "Action": "CDFastForward", "Name": "DiscFastForward", "Label": "(Disc) Fast Forward" }, { "Action": "CDPause", "Name": "DiscPause", "Label": "(Disc) Pause" }, { "Action": "CDPlay", "Name": "DiscPlay", "Label": "(Disc) Play" }, { "Action": "CDRewind", "Name": "DiscRewind", "Label": "(Disc) Rewind" }, { "Action": "CDStop", "Name": "DiscStop", "Label": "(Disc) Stop" } ] }, { "Function": "Setup", "Commands": [ { "Action": "Sleep", "Name": "Sleep", "Label": "Sleep" } ] }, { "Function": "DisplayMode", "Commands": [ { "Action": "Display", "Name": "Display", "Label": "Display" } ] }, { "Function": "Miscellaneous", "Commands": [ { "Action": "Band", "Name": "Band", "Label": "Band" }, { "Action": "CDNextTrack", "Name": "CDNextTrack", "Label": "CDNextTrack" }, { "Action": "CDPreviousTrack", "Name": "CDPreviousTrack", "Label": "CDPreviousTrack" }, { "Action": "DiskSkip", "Name": "DiskSkip", "Label": "DiskSkip" }, { "Action": "Edit", "Name": "Edit", "Label": "Edit" }, { "Action": "InputNext", "Name": "InputNext", "Label": "InputNext" }, { "Action": "InputTuner", "Name": "InputTuner", "Label": "InputTuner" }, { "Action": "Memo", "Name": "Memo", "Label": "Memo" }, { "Action": "ReceiverO", "Name": "ReceiverO", "Label": "ReceiverO" }, { "Action": "Time", "Name": "Time", "Label": "Time" }, { "Action": "Toggle", "Name": "Toggle", "Label": "Toggle" }, { "Action": "Tone/SDB", "Name": "Tone/SDB", "Label": "Tone/SDB" } ] } ] }, "code": 200 }

However the activity child device in Vera doesn’t seem to be pulling in commands from the device.

So I am assuming its pulling in the commands from the activity instead?

These are the commands I see in the drop down list in Vera.

image image

But when I assign new buttons in the activity in the MyHarmony software, these commands then do not appear in Vera on the activity child device.

Something wonky here or my brain isn’t working properly today.

I wasn’t doing that, however if I press that button now, the “new” commands still do not appear in the activity child device in Vera on its drop down list.

I have been using the Harmony Android app and going in to Harmony Setup and then Syncing via there.

I’ve assigned the “Guide” button to my custom command called “ReceiverO”

So why can’t I see “Guide” in the list of commands in Vera ?

Hmm this is odd, I can’t check right now but my custom commands show up in my child devices just fine. They show up with the custom name I gave them not the button they’re assigned too. This does seem to be a plugin sync issue, since you’re able to assign the custom command to a button. Maybe @reneboer can chime in. Maybe in the mean time try re-creating the child device if it won’t require too much reconfig?

FYI this is how the child device gets device commands

To do this, if I go to the parent device in Vera, the Harmony Hub device in my bedroom.

If I go to the “Activities” tab and change the “ChromeCast Audio” “Activity Child Device” from Yes back to No, then the child device is removed.

Vera reloads etc and the child device is now gone.

If I then set “Activity Child Device” back to Yes the child device is created again and comes back again.

However under its list of commands in Vera, I still cannot see the custom command in the list I created earlier. I cannot see either “ReceiverO” or “Guide” listed in the drop down box.

So for some reason its not picking up newly assigned button commands from the Harmony activity.

Hi @cw-kid,

No idea why commands would be missing. In the child device there is a variable called DeviceCommands. That are all the commands for the device or activity child that it pulled form the Harmony Hub. Can you find the custom ones there? Also make sure the DeviceID variable is indeed 70564644.

When adding new commands to a device on the Hub you should click the Update button on the main Harmony plugin device. This should refresh all command settings.

Cheers Rene

Here are the commands from the DeviceCommands variable:

{ "ID": "46103348", "Device": "ChromeCast Audio", "Functions": [ { "Function": "NumericBasic", "Commands": [ { "DeviceID": "70564644", "Name": "Number1", "Action": "1" }, { "DeviceID": "70564644", "Name": "Number2", "Action": "2" }, { "DeviceID": "70564644", "Name": "Number3", "Action": "3" }, { "DeviceID": "70564644", "Name": "Number4", "Action": "4" }, { "DeviceID": "70564644", "Name": "Number5", "Action": "5" }, { "DeviceID": "70564644", "Name": "Number6", "Action": "6" }, { "DeviceID": "70564644", "Name": "Number7", "Action": "7" }, { "DeviceID": "70564644", "Name": "Number8", "Action": "8" }, { "DeviceID": "70564644", "Name": "Number9", "Action": "9" }, { "Action": "Clear", "DeviceID": "70564644" } ] }, { "Function": "Volume", "Commands": [ { "DeviceID": "70564644", "Action": "VolumeDown", "Label": "Volume Down" }, { "DeviceID": "70564644", "Action": "VolumeUp", "Label": "Volume Up" } ] }, { "Function": "NavigationDVD", "Commands": [ { "DeviceID": "70564644", "Name": "TopMenu", "Action": "Title", "Label": "Top Menu" } ] }, { "Function": "RadioTuner", "Commands": [ { "DeviceID": "70564644", "Name": "PrevPreset", "Action": "PresetPrev", "Label": "Prev Preset" }, { "DeviceID": "70564644", "Name": "ScanDown", "Action": "TuneDown", "Label": "Scan Down" }, { "DeviceID": "70564644", "Name": "ScanUp", "Action": "TuneUp", "Label": "Scan Up" }, { "DeviceID": "70564644", "Name": "NextPreset", "Action": "PresetNext", "Label": "Next Preset" } ] }, { "Function": "TransportBasicDisc", "Commands": [ { "DeviceID": "70564644", "Name": "DiscFastForward", "Action": "CDFastForward", "Label": "(Disc) Fast Forward" }, { "DeviceID": "70564644", "Name": "DiscPause", "Action": "CDPause", "Label": "(Disc) Pause" }, { "DeviceID": "70564644", "Name": "DiscPlay", "Action": "CDPlay", "Label": "(Disc) Play" }, { "DeviceID": "70564644", "Name": "DiscRewind", "Action": "CDRewind", "Label": "(Disc) Rewind" }, { "DeviceID": "70564644", "Name": "DiscStop", "Action": "CDStop", "Label": "(Disc) Stop" } ] }, { "Function": "PlayMode", "Commands": [ { "Action": "Repeat", "DeviceID": "70564644" }, { "DeviceID": "70564644", "Name": "Shuffle", "Action": "Random", "Label": "Shuffle" } ] }, { "Function": "Program", "Commands": [ { "Action": "Program", "DeviceID": "70564644" } ] }, { "Function": "Setup", "Commands": [ { "Action": "Sleep", "DeviceID": "70564644" } ] } ] }

“ReceiverO” or “Guide” are not listed no.

DeviceID variable looks incorrect ! It is not 70564644

It is showing as 46103348 instead. I’m not sure what device ID 46103348 is ?

Its not a device that is listed on this bedroom Harmony Hub. Could it be an activity ID ?

Could it be from one of my other Harmony hubs? I will have to check.

{ “ID”: “46103348”, “Activity”: “ChromeCast Audio” }

Is the correct Activity ID.

70564644 is the device ID of the Denon amp device.

I’m confused LOL.

My custom command “ReceiverO” is listed under the Denon amp (70564644) devices command list.

But my custom command is not listed under the “ChromeCast Audio” activity (46103348) and therefore not listed in the plugin’s child device. Even if I assign my custom command to the “Guide” button of this activity in the MyHarmony desktop software.

“Guide” is not listed under the activity child device in Vera.

So to confirm when the plugin creates an activity child device, where does it pull the commands from ?

Just the commands that are assigned to buttons in that activity in the MyHarmony software presumably.

Or should it also pull in all commands from all devices that are part of that activity as well ?

Cheers

Hey @cw-kid I checked to see if I can see my custom device commands in the child devices and they indeed do. This seems to be an issue with the Vera plugin syncing with the harmony hub.

I think forcing an update of the device commands is the way to fix this, maybe try changing the hubs IP address in the plugin, reloading, putting in the correct IP again and reloading may help. I know you mentioned re-creating the child device didn’t help but maybe doing that a few times again may do the trick.

I am sure Rene has better suggestions but in the mean time try these! :slight_smile:

Hi @cw-kid,

If you create the child device by selecting it from the Device settings, Devices to Control it will create it with for the Denon Amp with all commands it supports. That should create it for device ID 70564644. I have not seen situations where that fails.

Cheers Rene

I see now !

You can either create an Activity child device via the Harmony plugins Activities tab OR you can create a child device from the Devices tab instead.

image

I deleted my custom taught commands on the Denon device last night in the MyHarmony software, so may have to add them again.

However on the child device I just added now via the Devices tab of the plugin, I can now see more commands including the standard “PowerToggle” command, which is the command I was wanting to use.

Here is the “Device” child device.

image

These types of devices created by the Harmony plugin don’t appear to be supported in the Vera mobile or Imperihome apps however. :sleepy:

However I’ve had to rethink this ChromeCast Audio setup for my bathroom as yesterday I had created a new Harmony activity called “ChromeCast Audio” that simply turned on the Denon amp and set it to the AUX input for the ChromeCast Audio.

However I then later thought about it more and remembered I cannot run two Harmony activities at the same time, so if my daughter is in my bedroom watching something on the TV in another Harmony activity, then I cannot be in the bathroom listening to music with that new ChromeCast Audio activity.

So I have deleted the ChromeCast Audio activity from the Harmony hub.

Instead now I have created a virtual on / off switch in Vera and used some PLEG logic actions to send the PowerToggle and Input command to the Denon amp via the Harmony plugin for Vera.

image

So now I can tell the Google Home Mini in the bathroom via a voice command to “turn on the ceiling speaker” and it will turn on the virtual switch in Vera, which will then turn on the Denon amp etc and it won’t have any affect on any Harmony activity currently active in the bedroom.

This also then enabled me to have a widget in Imperihome app in my bathroom room for the Denon amp on / off buttons.

I also added two widgets in Imperihome for Vol Up / Vol Down, they send a HTTP call to the Harmony plugins HTTP API to control the volume of the Denon amp etc.

So now the two rooms are independent, but the one Harmony Hub can turn on / off the Denon amp for the bathroom ceiling speaker and also do its normal duties of controlling the TV in the bedroom and the Kodi HTPC and the other ChromeCast Video dongle.

Thanks.

Hi @cw-kid,

Glad you got that working. BTW, if you install the Harmony plugin on a PI and then install my imperihome cgi for openLuup (GitHub - reneboer/openLuup-ImperiHome: A simple LUA CGI file to make openLuup talk ImperiHome ISS) you do get the Harmony controls.

Cheers Rene

2 Likes

I have a couple of virtual scenes executing commands (volume and channels) linked to custom Alexa routines. I just execute some functions called via http, but scenes would work OK.
I have one to turn ON the TV in the morning, setting the volume and switching to Sky News, another one for Music, Netflix, etc. I’m not a fan of activities and I primarly use the harmony to control my Sky Box from other rooms, since I have a system to distibute the signal via DVB-T inside the house.