[RELEASE] HubConnect - Share Devices across Multiple Hubs (no longer SmartThings!)

No apologies needed. I'm confused, which means I'm very likely at fault.

I did this a while back, but totally forgot how I did it. No offense to anyone but the instructions could use some love. Maybe I can donate my time to that if anyone is interested.

It sounds like that's where my issue is.

How do I add multiple attributes when creating custom driver? Sorry, I feel very stupid right now. Steven went over this me (or someone did) already and I cannot find the conversation. Even made me a custom driver for my HEM, and cannot find that either :confounded:

"Add Input", rinse, repeat :slight_smile:

Add as many as you need. Then Save Driver...

1 Like

Got it. Thanks. A lot of confusion. I'm pretty good at writing instructions. Let me know if can offer help with new documentation for 2.0

1 Like

Steve may have started "Camping 2020 (with COVID-19 adventure)"

If so, I don't have access to his Document Repository.

I can add to "hubconnect.HubitatCommunity.com" if you'd like and then mark it for Steve to import it to the repo.


@csteele Got any ideas on this? Trying to add my HEM, which is now shared to hub number 3 where I have @thomas.c.howard 's brilliant new app HubiGraph installed. Under HE Link to Hub, it shared as a Power Meter, but then uses the Omnisensor driver. The HubiGraph child app couldn't see it with only capability.sensor, so I changed that to capability.powerMeter and it worked. With Hub Connect, I'm not seeing it at all. Tried changing the child app to have capability.energyMeter, but that still doesn't expose the device for selection.

Should I re-share the device as Power Meter, instead of Energy Meter?
As far as HubConnect goes, it is working and I'm able to see all the current states of the HEM.

Screen Shot 2020-05-02 at 4.35.02 PM

[Edit] Figured it out. Just changed capability in my custom HubConnect driver for the HEM to Sensor instead of EnergyMeter

Steve may have started "Camping 2020 (with COVID-19 adventure)"

I think last year he returned in October.

I remember..
... vividly. :slight_smile:


Trying to do Homebridge HubConnect on 2.0RC1. I also have HubConnect proxy setup on the same device I'm running Homebridge on. I never seem to get the final step when adding the device - the step where you change the name of your device - it shows up, but there isn't a save/install button.

[04/05/2020, 12:34:14] [Hubitat hhh:0.3.9] attempt connection to ws://
[04/05/2020, 12:34:14] [Hubitat hhh:0.3.9] homebridge-hubitat-hubconnect server listening on 20010
[04/05/2020, 12:34:14] [Hubitat hhh:0.3.9] connection to ws:// established
[04/05/2020, 12:34:14] [Hubitat hhh:0.3.9] HE websocket sending keepalive ping
[04/05/2020, 12:34:14] [Hubitat hhh:0.3.9] HE got pong
[04/05/2020, 12:34:14] [Hubitat hhh:0.3.9] Successfully connected to HubConnect

When I click Verify:

Looks like it's wanting me to click install somewhere. There is no install button on this page to finish the install process. The device now exists - called Null with the correct DNI, but I don't see another HubConnect instance listed - just my secondary hub and SmartThings.

I do see this in the logs, but I think it's unrelated as it does this after I enter the IP but before I select the type as homebridge.

def checkIP(String ipAddress)
    def child = getChildApps().each{}.find{it?.getPref("clientIP") == ipAddress && it.getPref("remoteType") != "homebridge"}
    return [name: child.label, id: child.id] ?: (location?.hubs[0]?.data?.localIP == ipAddress) ? [name: "Server Hub", id: 0] : null

NOTE: @csteele is actively working on a fix for this.


@srwhite would it be possible to add pressure to the Omnipurpose sensors ?

I don't think I understand, because

  • You can create your own driver using the Omni as your base. It's a one-off solution, but it's FAST :slight_smile:
  • You can create a Custom Driver.

But there's a lot of 'sensors' that are not included in the Omni.. because the Omni is most closely aligned to the Aeon Multisensor 6. Beyond 'pressure', what about 'acceleration', 'contact', 'presence', 'shock', 'sleep', 'smoke', 'sound', 'step', 'touch' and 'water'? I don't think the word 'omni' was meant to imply 'every'. :slight_smile:

Can I better understand your need, please?

I have a few Aqara Temperature Humidity sensor. It reports temp/humidity/pressure/battery.

I edited the app and the omni driver to support the pressure and it does work so It's just adding that to that omni sensor.

Can a GV Connector be used in HubConnect without creating a custom device? The UI suggests it can. It even says, "GV Connector" on the Select Devices screen (see screen shot below). But then when I click into the Sensors screen, there is no drop box than contains any of my GV Connectors. What am I doing wrong?

Screen Shot 2020-05-08 at 10.35.26 AM

Are you using v2.0RC1?? There's a Quick Select at the top of the Selection menu and "RM Global Variable Connector" is found within the dropdown. That's the new name, in v2.0, and the driver's been updated and moved, since it's Hubitat only, it's no longer found in the Universal Driver bucket. :slight_smile:

Guess that's my answer, duh. I'm still on v1.7, or whatever the prior version was. Do I have to adopt the new NodeJS Server stuff in order to jump to v2.0? Not sure I'm ready to digest that change.

No, no, no.. the NodeJS proxy Server is an Option. It's for people that have both multiple hubs and devices that are concentrated on a subset of the Hubs. It reduces the load, but if there's not much load to begin with, there's not much to be reduced either.

The EventSocket interface that is (what I assume to be) the most used interconnect between hubs has ALL the device data on it. A Connected Hub has to listen to ALL and filter down to what's selected. IF you're getting 10 devices worth of traffic and you've selected 8+ of them to be mirrored, there's not much left to filter and therefore the NodeJS proxy Server won't gain you much.

In my situation, I have a HubConnect Server Hub that listens to 3 other Hubs that have Devices. Dashboard is running on my Server hub and so I want to "see" just about every device. Thus the Server Hub is hearing about every event all across my 3 connected hubs. That's OK because there's almost nothing to filter. I want the server hub to hear about everything... and use it.. either to the Dashboard or sending it to Alexia, and Homebridge.

But the other direction is kinda scary.. the Remote Client hubs, have a portion of the devices split across them, but listening to the Server hub, they get 100% of everything too. They may only need 5% They are 'drinking from a firehose' and those are, in my case, the exact hubs I want to be really close to idle, so they react instantly to any motion or contact sensor. For me, running that through the NodeJS proxy Server saves 95% of the traffic to the connected hub.

Your architecture, your quantity of devices and your need for filtering may be substantially different from me and the NodeJS proxy Server is something you can ignore. :smiley:


Thanks for that thorough explanation Makes total sense. I upgraded to v2, which went smoothly (gratitude!!). Then, when I plugged in the RM variable connector, I realized it may not work for me because I’m using it as a pure number variable (like rule machine global variables), whereas it looks like the driver is set up to expect some fixed attributes like illuminance, CO2, acceleration, motion, humidity, etc.

Don’t suppose there’s any way to bridge this gap?

I'm wanting to us Echo Speaks via HubConnect and do my cloud integrations on SmartThings. Echo speaks has lots of Echo features, but the speech synthesis universal driver on Hubconnect is speech only. Is there a better way to get the Echo Speaks features on HE? I can get it to speak, but other features are not there.
How are others doing Echo features from HE? Am I on the right track?


I did a very quick test.. it's not a comprehensive test, just what I try first to see what "size" the problem might be...

I have a couple of GV Connectors on one Remote Client Hub:

Screen Shot 2020-05-08 at 9.28.14 PM

Which is mirrored to my Server:

Screen Shot 2020-05-08 at 9.29.04 PM

I set the variable on the Remote Client to 56 (it was 100 before I started this test) and sure enough it showed up on the Server end:

As mentioned, this just the test I could squeeze in tonight and isn't conclusive... the fact it does anything is promising. :slight_smile:

You'll need a custom driver, there's one posted by someone on the Echo Speaks post if you search on that post to someone's github link for the driver that works great. I had my own for the longest time but I'm using that one now since it's far better than the one I had.