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

Thanks, adding this to your Thermostat driver appears to have worked. Thanks!

def resumeProgram() {
     parent.sendDeviceEvent(device.deviceNetworkId, "resumeProgram")
}

Personally, I wouldn't modify the standard driver. You can make your own copy and manually change the virtual driver. I'm thinking about the future when, during an upgrade, v2.1 v2.2, etc., you accidentally replace the Thermostat driver with the one in the repo.

:slight_smile:

2 Likes

What firmware version are you running on the Hubitat hub? Just wondering what the differences could be?

Latest
v2.2.0

I've been getting the following error in my log - any idea what it means, or how I can debug?

app:112020-04-27 14:19:27.117 errorasynchttpGet() request failed with error 500

Same version here.

mode changes are not even happening from ST to HE. I enabled a scene in ST and HC is not even trying to send the change to the server hub, even though it is enabled in the remote client.

Is there no way to debug the java error being generated by the mode change?

Everyone remember this drawing from a couple months ago??

The 'stack' on the left is ONE Hub. It's the Server Hub. There are 3 modules with 2 parent/child relationships.. one App Parent (Server) to each Server Instance (child) Plus there's a parent child relationship between the Server Instance App and it's driver. On a connected hub (stack on the right), again, there's the App to driver parent child relationship.

Updates of devices (on/off, dim, open/close, etc.) are using that entire path. Any loss of parent/child will result in one direction working and the other not working.

So far, I've only ever seen App to Driver broken relationships. I've never seen a Server to Server Instance break. Therefore the standard advice is to delete the virtualized device, and rebuilt the connection. For the Remote Hub Device driver, you'll re-exchange the Key to rebuild the relationship.

For Universal Drivers (not shown in this drawing), you'll delete the virtual device (Not the 'real device') and then pretend to select the device again and Done all the way out.

Observe the "in use by" details of a driver to be ready to restore them after rebuilding parent/child relationships.

1 Like

I have another Drawing I'm working on too.. intended to help with 'visualizing' the values needed for a HubConnect NodeJS server config.json.

With it's central position, the data it needs is minimal because some info is 'hard coded' -- Listening to Hubitat Hub's EventSocket is always on it's specific port.. so there's no need to enter that value.

On the other hand, it needs to know the IP address of a Hubitat hub and (I think this is the confusing part...) the port you want to use on the NodeJS server for that specific connection. So in other words, of the 3 pieces of info needed:

{
  "name": "Server Hub",
  "ip": "192.168.7.64",
  "port": 22000
},

IP is the address of one of (at least) two Hubitat Hubs. Yet the port is from you assigning a port ON the NodeJS server, for that connection.

Then on the Server Hub, in each Instance, you'll tell it the IP of the NodeJS server and then the TWO ports you've assigned.

I'm not liking the crisscrossing of red lines and arrows, but maybe it's helpful as is. :slight_smile:

2 Likes

Any ideas on this error code?
errorgroovy.lang.MissingMethodException: No signature of method: user_driver_shackrat_HubConnect_Thermostat_633.logsOff() is applicable for argument types: () values: [] Possible solutions: off(), notify() (logsOff)

This is the driver code line 249. Don't know what I should change. Any Ideas?

Your Line 249 and mine don't align.

I think you need a 'newer' version of the driver, maybe? I looked at 3 versions of HubConnect... v1.6.4, v2.0RC1 and a newer.. and all three have the same Thermostat driver with your line 249 being line 262.

Send me the link to your driver. Maybe I'm looking in the wrong place, because I just updated the driver before I posted. I would appreciate it and thanks for letting me know!

Here's a link to the latest HubConnect Thermostat Universal Driver (for HubConnect 1.6.4):

https://raw.githubusercontent.com/HubitatCommunity/HubConnect/master/UniversalDrivers/HubConnect-Thermostat.groovy

1 Like

I copied and pasted this driver and saved and I'm getting the same lines as my first screenshot. Why would the lines not match? I'm missing something here.

Yep.. it's me.. I looked at v1.6.4 and wasn't looking in the right spot. As @aaiyar said, that's the right driver for v1.6.4. Sorry for the mistake. :frowning:

I typed "github" and the browser offered me a path and I took it without really checking.

1 Like

Great and thank you! I'm still trying to diagnose the error code. Just don't know what it means. :frowning:

It's bothering me because the method clearly says it's there for Google Home, and you're not running Google Home..

Something is calling it... which is why my initial thought was mismatch driver. :frowning:

Well think on this we can try again tomorrow or so. I'm attaching some more screen shots. You can see the error code is happening frequently and it's taking me to this Hubconnect device which is my ecobee.

Replace line 249 with:

String tm = device.currentValue("thermostatOperatingState") ?: "" + device.currentValue("thermostatMode") ?: ""

I figured out what was causing the issue with my HOOBS set up. I had installed Rebooter in Hubitat. When Hubitat reboots at 4am, that when the connection problem starts. Although I can still control everything with Siri, it doesn’t update the Home app anymore for some reason until I restart the services on my HOOBS as well.

1 Like