[Release] Logitech Harmony Hub Driver v0.1.20230311

My goal has always been to simply map the Harmony Hub's features as standard Hubitat Capabilities, nothing more. The problem is that there are a vast number of devices supported by Harmony, each with unique lists of features/commands available. This makes it very challenging to try and find a single solution that fits well for Harmony 'Devices'. Thus, the focus has been on the Harmony 'Activities' which are much simpler. I personally cannot understand why anyone would want to use a smart phone or tablet to interact manually with a Harmony Hub. It just is not an intuitive interface. They can simply use the Harmony app if they are so inclined. I personally use the physical Harmony Remote control for 99% of my interaction with my home theater system. I do have Hubitat start and stop Activities based on things like "Good Morning" and "Good Night" routines that I have implemented.

Not sure how these would be exposed via MakerAPI, as detailed JSON data does not fit into the Hubitat standard capabilities model. Perhaps your application might be better off simply connecting directly to the Harmony Hub on the local network? There are plenty of Open Source code examples that you could use in Android to directly connect to a Harmony Hub. Just a thought... :thinking:

@ogiewon

I must be dense. In the command controller how do you set a device command properly for the harmony device?

This is a pretty solid integration. I agree you should not replicate your remote in your dashboard. My use case is I have a infrared space heater I would like control. Logitech harmony can control anything!

@Brian2000, here is an example of a Button Controller instance that makes a custom command call to the Parent Harmony device.

The deviceId and command parameters are around the other way aren't they?

1 Like

Yep, I fixed the image in my post above. Thx!

1 Like

Thanks for the reply - and I personally also only use this driver for a couple of simple voice actions "turn TV on/off" or a simple dashboard tile that does the same thing.

But, while working on my dashboard app I realized there's a lot of people using dashboards for a lot of things I wouldn't have previously thought of. So, I just try to make the app as flexible as possible.

Anyway, yeah, trying to add every command would probably be overkill for any dashboard. I was originally just thinking of supporting many of the commands that are part of the parent device driver - which includes the navigation arrows. Then I realized these commands all require a device ID which isn't listed anywhere (at least exposed via Maker API). So I was really just looking for the possible device ID's to start (and the device name).

Of course, that leads to thinking about other possible things that could be done and that's where the deviceCommand options came from. I had also thought it could be nice to allow the user to switch activities and I realized there wasn't a way to do this via the parent driver (I know I could use each child driver for this but for me personally having it all on a single dashboard tile would be easier)..

I was hoping some of these request would just be easy on your end but no biggie if not either

Yep - this is what I was thinking... not building a remote control UI in the dashboard but a UI where a user can select a device and command from a list and have a tile or button on a tile call that command. I can prompt the user to enter the device ID and command name too - and accomplish the same thing. But, having the ability to just select from a list - esp on a mobile device is always a plus

Thanks for the help. I am a total newbie. The problem with Rule machine is I can see what you did, but not the steps to do it (no copy paste). I had to go through all options to figure it out.

Anyway attached shows in the button controller wizard what things to poke to get what you need.

Also, I found someone created a virtual button switch for Alexa (https://github.com/mikee385/hubitat-mikee385/blob/master/drivers/virtual-alexa-button.groovy)

So, you can have one virtual device do both (creates a switch that is momentary as well). I am still a newbie though!

2 Likes

I am so close to getting this integrated. But I may be confused about its capabilities. Does this not make it possible to trigger automations when buttons are pressed on the remote? For example, if I press the Play button on the remote, can I have it dim my lights? It appears that after I've added the driver, it allows me to send commands from the Hubitat interface to the harmony hub, but button presses on the remote can not kick off a trigger in Hubitat. Am I correct in that understanding?

I see that I can trigger automations when an "activity" is selected on the remote; like "Watch Netflix"; which is one of the Child Switches that were discovered. Those activities appear to be behaving like light switches in hubitat.

Also, I've gone all the way through the setup process, including the Smart Things integration portion so that I can use the light bulb and socket buttons on the remote. But I'm really only using the light bulb buttons. I've identified the Device ID's for the buttons on the remote and placed them in the "Home Control Light 1" and "Home Control Light 2" fields on the harmony hub parent device. How do I specify which lights should turn on when those buttons are pressed? Essentially, I've followed the instructions perfectly right up until it starts talking about "Webcore". That's where I get lost. It doesn't mention how to specify which physical dimmers to change when I press those buttons on the remote. What am I missing here?

Correct. The Harmony Hub does not send any data for normal remote control “button presses”. The Harmony Activities do send data, which is what this integration is primarily focused on.

Exactly!

At this point, you can simply treat the Harmony Hub Parent as a normal Hubitat “Button Controller” device. Thus, use any of the normal Hubitat built-in apps that can use a button pushed or held event as a trigger for an automation. Basic Rules, Notifications, Rule Machine, etc…. There is no need for webCoRE.

THANK YOU, very much, ogiewon. That was incredibly easy to install. I look forward to doing some further integrations with this.

1 Like

Migrated recently from Smarthings.. having some issues with this seeing my Harmony Hubs (2 on the network) any troubleshooting tips? ASUS router. IP is configured correctly, doesn’t seem to populate the child devices.

Error in log for both hubs is the same
dev:7422022-03-10 04:48:34.712errorjava.net.NoRouteToHostException: No route to host (Host unreachable) on line 417 (method updated)

Hubs are on 4.15.290

Are they on some different network setup compared to the HE hub? E.g. different subnet, etc

1 Like

Resolved this by back tracking through this thread.

Its an ASUS mesh network with 4 nodes.
I used the “bind” option to bind the 2 harmony hubs to the node that the Hubitat hub is connected to.

For future reference for others, for ASUS routers navigate to “AI Mesh 2.0” then click each node to locate the harmony hub(s). Click the little link icon and select your node to bind to (this should be the same node your Hubitat Hub is on) To locate the IP of your hub(s) go to the Harmony app and select about/versions.

This resolved the issue for me and the child devices immediately populated.

2 Likes

So, did ST disappear as a Home Control option for anyone else? I was able to get 1 of my hubs setup and working to control HE devices this morning. I went in to do another hub, and it kept telling me “no compatible devices found” when I’d try to add stuff. Thought I’d let it sit for awhile and work out the problem, now ST is gone as an option to add.

Good riddance lol

1 Like

I wonder if the current ST - Logitech integration only supports 1 Harmony Hub? Just a guess.

You set up a second instance of the harmony hub driver in habitat for a second harmony hub..i.have two.

Yes, of course…. But that wasn’t the question as the issue is on the SmartThings side. :wink:

I’m not sure what the deal is, I got this all working via HubConnect a week or so ago. I was able to get back into it, ST was already added, so it wouldn’t add it when I went to add device, but it had no devices, so it didn’t show up in that list. I was able to get to it from Harmony Setup>Add Edit Devices>Devices>ST

But when I re long in or refresh, it just says this. Maybe the system is down right now. Probably a ST thing.