[Release] Logitech Harmony Hub Driver v0.1.20230311

They were still named the old names on webCoRE... That's why I was being a stickler about it.

If you change the LABEL on a device in Hubitat, webCoRE doesn't pick up that change?

Correct, at least it didn't for me.

Hi folks, first of all I love this integration :smiley:

Benn using it for a long time I just have one concern, in my Google Home app and in Home Assistant my parent device shows up as a light device. Is there a way to change it so it just shows up as a switch or even better a media device? Se we can adjust volume and whatnot.

Thanks!

Why not simply use the direct Logitech to Google integration? It is sure to provide the best possible integration with Google Home.

To answer your question... I am not sure if there is anyway to achieve your goals. Remember that a Logitech Harmony Hub does not really control the absolute volume level of a device. It simply can increase and decrease the volume of a device.

It will work with this integration.

I don't typically use the Harmony activities, the only one i have is for my basement receiver. I expose the harmony hub as a switch to google home and then add switch, volume, and brightness traits. From the home app I can turn the receiver on/off and adjust volume up/down with the brightness adjuster. With Voice control and google smart displays you can turn on/off, adjust volume up/down, and mute/unmute.

You could also expose it to google as a media device but then you can't use the brightness trait to adjust the volume.

Do you have to use a SmartThings device for the home control buttons? I was able to configure the buttons to send a random command just to see if I could get traffic in the logs. I'm seeing a message when I do a short press and a long press, but I don't see a Device ID.

Unhandled data from Harmony Hub. json = {"type":"control.button?pressType","data":{"type":"short"}} debug[type:control.button?pressType, data:[type:short]] debugparsed: {"type":"control.button?pressType","data":{"type":"short"}} infoUnhandled data from Harmony Hub. json = {"type":"control.button?pressType","data":{"type":"long"}} [type:control.button?pressType, data:[type:long]]

Not sure... You may be able to use the official Lutron integration or Philips Hue integration as well...however these don't allow the use of virtual devices like ST does.

What did you configure these buttons to do?

If you cannot discern each button somehow uniquely (i.e. without a unique device ID in the data), then I don't think it'll work.

Does anyone have issues with the connection breaking sometimes?

I don't use the home buttons on my harmony remote often but once every week or 2, they won't work.
I go into the harmony app, hub setup, and refresh the smartthing devices (which is just 4 virtual buttons)
after i do the refresh, everything works again.

No issue here. I am using the exact same setup. 4 ST Virtual Buttons mapped to the home control buttons. It has been working very reliably for me.

I gave that a shot. I get things like
"data":{"hueScene-GQtceXXS83SszmW":{"status":0,"on":true}
In the logs. I tried putting "hueScene-GQtceXXS83SszmW" as the DeviceID, but I'm not getting any action in the logs when I now press the buttons.

I could try SmartThings. Can I use that without a SmartThings Hub?

Yes, no hub required any longer to have a ST account.

Wow! This is super awesome. Haven't checked the page in a while and just saw the notifications so decided to check. It works beautifully and is soooo much faster than having to go through HubConnect and ST to use these buttons. You guys @ogiewon and @abuttino are awesome! Thanks so much fo this!

Time to finally retire my ST hub and HubConnect

1 Like

If I assign the home control button to a Hue device (direct Logitech + Philips Hue integration), can I still capture the button in HE? In the logs, I see the below. However, putting "hue-00:17:88:01:02:4d:00:cc-0b" in "Home Control Light 1" doesn't seem to capture the button:

Unhandled data from Harmony Hub. json = {"type":"automation.state?notify","data":{"hue-00:17:88:01:02:4d:00:cc-0b":{"color":{"mode":"ct","xy":{"y":0.41,"x":0.4573},"temp":366,"hueSat":{"hue":8418,"sat":140}},"brightness":2,"on":false,"status":0}}}

Thanks!

Try modifying the line 196

From

else if ((json?.type == "automation.state?notify")  && (description.contains('"status":1'))) {

To

else if ((json?.type == "automation.state?notify")) {

And see if if works. Let me know what you find.

That worked! Thank you sir!

1 Like

Thanks for verifying that change resolves the issue. I will update my GitHub repo.

@yototogblo, I noticed an issue with removing the && portion of the above IF statement. Removing it results in double events being generated. Instead of 1 pushed or held event, I get 2 events. Thus, I am trying to change the criteria so that it will work with both SmartThings and Philips Hue. Can you please try replacing the IF statement with the following code and run another test?

    else if (((json?.type == "automation.state?notify")  && (description.contains('"status":1'))) ||
             ((json?.type == "automation.state?notify")  && (description.contains('"hue-')))) {

Please check and see if you're receiving multiple 'pushed' and 'held' events for each press/hold of the button on the remote. Thanks.

Ah, you're right... I actually get ton of events (not just 2). So I hold button 3 and button 1 and 2 also report getting held. It's weird but I did see that when looking in the logs previously also.

Testing the code change although I suspect it'd result in pseudo events for buttons that have hue tied to them.

Okay, so I think I understand what's happening...

I have button 1 and 2 assigned to hue directly in Logitech. Button 3 and 4 are assigned to the ST virtual switches.

In HE, Button 3 turns on the same hue bulbs that button 1 and 2 control in addition to some extra switches in the room. Now when I push button 3, it turns on all the hue bulbs and switches. However, the Harmony Elite also sends an event for the hue bulbs getting turned on which send HE events for button 1 and 2. Oh, and button 3 is still getting duplicated.

So by pushing button 3, I get 2 button 3 pushed events, a button 1 pushed event and a button 2 pushed event. Same story with holding button 3.

The logs are below... I'd also look into the logs to see if I can figure out a way to fix it. Thanks!

[dev:52](http://192.168.1.222/logs#dev52)2020-11-06 11:58:49.146 pm [debug](http://192.168.1.222/device/edit/52)Socket Button 1 was 'pushed'

[dev:52](http://192.168.1.222/logs#dev52)2020-11-06 11:58:49.144 pm [debug](http://192.168.1.222/device/edit/52)[type:automation.state?notify, data:[0a667f1a-11f7-4ed8-8134-2afc150ba4b2:[status:0, brightness:256.56565656566, on:true]]]

[dev:52](http://192.168.1.222/logs#dev52)2020-11-06 11:58:49.141 pm [debug](http://192.168.1.222/device/edit/52)parsed: {"type":"automation.state?notify","data":{"0a667f1a-11f7-4ed8-8134-2afc150ba4b2":{"status":0,"brightness":256.56565656566,"on":true}}}

[dev:52](http://192.168.1.222/logs#dev52)2020-11-06 11:58:46.194 pm [debug](http://192.168.1.222/device/edit/52)Bulb Button 1 was 'pushed'

[dev:52](http://192.168.1.222/logs#dev52)2020-11-06 11:58:46.188 pm [debug](http://192.168.1.222/device/edit/52)[type:automation.state?notify, data:[hue-00:17:88:01:02:4c:d6:80-0b:[color:[mode:hs, xy:[y:0.4109, x:0.4562], temp:362, hueSat:[hue:8520, sat:140]], brightness:254, on:true, status:0]]]

[dev:52](http://192.168.1.222/logs#dev52)2020-11-06 11:58:46.185 pm [debug](http://192.168.1.222/device/edit/52)parsed: {"type":"automation.state?notify","data":{"hue-00:17:88:01:02:4c:d6:80-0b":{"color":{"mode":"hs","xy":{"y":0.4109,"x":0.4562},"temp":362,"hueSat":{"hue":8520,"sat":140}},"brightness":254,"on":true,"status":0}}}

[dev:52](http://192.168.1.222/logs#dev52)2020-11-06 11:58:46.162 pm [debug](http://192.168.1.222/device/edit/52)Bulb Button 2 was 'pushed'

[dev:52](http://192.168.1.222/logs#dev52)2020-11-06 11:58:46.159 pm [debug](http://192.168.1.222/device/edit/52)[type:automation.state?notify, data:[hue-00:17:88:01:02:4d:00:cc-0b:[color:[mode:ct, xy:[y:0.41, x:0.4573], temp:366, hueSat:[hue:8418, sat:140]], brightness:152, on:true, status:0]]]

[dev:52](http://192.168.1.222/logs#dev52)2020-11-06 11:58:46.156 pm [debug](http://192.168.1.222/device/edit/52)parsed: {"type":"automation.state?notify","data":{"hue-00:17:88:01:02:4d:00:cc-0b":{"color":{"mode":"ct","xy":{"y":0.41,"x":0.4573},"temp":366,"hueSat":{"hue":8418,"sat":140}},"brightness":152,"on":true,"status":0}}}

[dev:52](http://192.168.1.222/logs#dev52)2020-11-06 11:58:38.768 pm [debug](http://192.168.1.222/device/edit/52)Socket Button 1 was 'pushed'

[dev:52](http://192.168.1.222/logs#dev52)2020-11-06 11:58:38.765 pm [debug](http://192.168.1.222/device/edit/52)[type:automation.state?notify, data:[0a667f1a-11f7-4ed8-8134-2afc150ba4b2:[status:1, brightness:256.56565656566, on:true]]]

[dev:52](http://192.168.1.222/logs#dev52)2020-11-06 11:58:38.762 pm [debug](http://192.168.1.222/device/edit/52)parsed: {"type":"automation.state?notify","data":{"0a667f1a-11f7-4ed8-8134-2afc150ba4b2":{"status":1,"brightness":256.56565656566,"on":true}}}

[dev:52](http://192.168.1.222/logs#dev52)2020-11-06 11:58:38.099 pm [info](http://192.168.1.222/device/edit/52)Unhandled data from Harmony Hub. json = {"type":"control.button?pressType","data":{"type":"short"}}

[dev:52](http://192.168.1.222/logs#dev52)2020-11-06 11:58:38.097 pm [debug](http://192.168.1.222/device/edit/52)[type:control.button?pressType, data:[type:short]]

[dev:52](http://192.168.1.222/logs#dev52)2020-11-06 11:58:38.094 pm [debug](http://192.168.1.222/device/edit/52)parsed: {"type":"control.button?pressType","data":{"type":"short"}}