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

1.63

I had removed my v1.6 instances of HubConnect.. but I took a Development hub and soft reset it back to Empty. I then installed HubConnect Server and Server Instance as well as HubConnect Remote Hub driver.

My SmartThing hub was already connected to my Production HubConnect, so I cleared that connection via:

Screen Shot 2020-06-06 at 11.15.33 AM

I then installed the v1.6.4 SmartThings Remote Client. I installed HubConnect on Hubitat and created a new Remote. I copied the Key to SmartThings and it said Connected right away.

I then created a Virtual Switch and a Virtual Dimmer on Hubitat and selected them to be sent to SmartThings. They were created on SmartThings and I was able to turn the switch on and off from either end. Same with the dimmer.

I did this mostly to re-familiarize myself with v1.6.4 and I must admit it did go quite easily. However, I've probably installed HubConnect 50 times over the past year... maybe it's just afraid of me :smiley:

So, what should I take away from this then? I am choosing to send physical dimmers and switch to ST - that should be fine I presume...

I'm saying.. the hints you gave about the problem led me to do... what I wrote above. (Install v1.6.4 to test it out.) Only you know how well that works to match your scenario. If not, and that's what I believe, then you'll have to give me more directions about how to duplicate the problem. I believe you have a problem with the install, but from here, I can't tell what. Since I haven't used v1.6.4 in many months, I reminded myself of the process.

@alan564923 sorry bud, I have no experience with this.

I don't think I'm going to be much help either... I don't know what "Follow Me" is.. or how to use it. Although clearly you have built up something... :slight_smile:

I tried to duplicate what you explain. I installed the HubConnect Driver, on a connected hub I installed the original FollowMe driver. I created a Virtual device to use it and then mirrored it back to the first hub. All that seemed to go well...

app:105 2020-06-07 08:47:06.112 pm info  Received event from ZeeFourth/pseudoFollowMe: [speakerStatus3, No longer used null]
app:105 2020-06-07 08:47:06.013 pm info  Received event from ZeeFourth/pseudoFollowMe: [speakerStatus1, No longer used null]
app:105 2020-06-07 08:47:05.923 pm info  Received event from ZeeFourth/pseudoFollowMe: [whatDidISay, No longer used null]
app:105 2020-06-07 08:47:05.850 pm info  Received event from ZeeFourth/pseudoFollowMe: [speakerStatus2, No longer used null]
app:105 2020-06-07 08:46:37.276 pm trace Received ping from ZeeFourth.
app:105 2020-06-07 08:45:59.900 pm info  Sending refresh command to HubConnect Server.
app:105 2020-06-07 08:45:58.475 pm trace Creating Device HubConnect zFollow Me - pseudoFollowMe... 192.168.7.65:316...

No "error groovy" at any rate :smiley:

But what to do with it is unknown.. like a dog, I chased after a car, caught it and now don't know what to do with it. :smiley:

On the Hub with the "Real Driver" logs show:

dev:316 2020-06-07 08:47:04.725 pm info Follow Me Driver has been Updated
app:193 2020-06-07 08:45:59.293 pm info Skipping event subscriptions...  Using event socket to send events to server.
app:193 2020-06-07 08:45:59.162 pm warn The device [pseudoFollowMe] does not support the command refresh.
app:193 2020-06-07 08:45:59.146 pm info Received command from server: ["pseudoFollowMe": refresh]
app:193 2020-06-07 08:45:57.353 pm info Sending custom devices to remote: FollowMe - [[id:316, label:pseudoFollowMe, attr:[[name:latestMessage, value:null, unit:], [name:latestMessageDateTime, value:null, unit:]]]]

I was really hoping someone that recognized "Follow Me" would have jumped in. @bptworld

In the "real device/driver" info page, I saw a Set Volume button and I know what to do with that !! LOL So I put in 25 and clicked the button.

On the mirrored device, there's a message and the Log shows:

app:105 2020-06-07 08:58:49.538 pm info Received event from ZeeFourth/pseudoFollowMe: [latestMessage, {"method":"setVolume","message":"","priority":"X:X","speakLevel":25,"returnLevel":null,"title":null} null]

Which seems like good news to me.

With out searching for an hour... What is it that your trying to do? The only reason I can see to create a driver for HubConnect is to get the Dashboard tiles to move across hubs?

Edit: The one thing I have done from day one is add the following to the HubConnect SpeechSynthesis driver.

Put this up top:
capability "Notification"

And this down below:

/*
	deviceNotification
    
	send a command.
*/
def deviceNotification(value)
{
	parent.sendDeviceEvent(device.deviceNetworkId, "deviceNotification", [value])
}

I've mentioned it here before but was shot down.

1 Like

Not sure why you would even need to do that. If all your devices are mirrored, Follow Me should run on the HubConenct 'server' with rules aimed at the virtual devices there.

I use FM via HC and it's fine. All my rules and Apps run on the HC 'server' and all devices are on another hub. Follow on my dashes works great!

Brain asks the best question, What are you trying to do? It sounds to me like your making life hard on yourself.

2 Likes

My bad. I saw the "Developer" tag and just assumed. Went back and tagged the right person!

1 Like

@bptword @csteele:

Between the 2 of you I found "my" error (not surprising). As noted in @csteele post, the "Set Volume" worked fine so unlike me, you tested another function and found it worked so that identified the issue as "deviceNotification".

So to @bptworld's post, he state to make sure I had the "deviceNotification" capability and code. Turned out I didn't have the "deviceNotification", but did have the code. So the remote code didn't know what to do.

I also added the "Refresh" capability to get rid of that error.

You assistance was invaluable.

Alan

1 Like

I hate to be like this but... ???

The entire driver doesn't seem correct?? :smiley: can ya narrow it down just a little bit ?? :slight_smile:

Thanks.

2 Likes

Unable to Duplicate.

Perhaps you must Done all the way out after 3?

If you look at the the "HubConnect RM Global Variable Connector" for 2.0RC1 it has lots of capabilities and command that just don't seem to make sense (to me). If can explain the background on this, maybe you can get through my thick head!

Capabilities & Commands
capability "Sensor"
	capability "AccelerationSensor"
	capability "CarbonDioxideMeasurement"
	capability "CarbonMonoxideDetector"
	capability "ContactSensor"
	capability "IlluminanceMeasurement"
	capability "MotionSensor"
	capability "PresenceSensor"
	capability "RelativeHumidityMeasurement"
	capability "SmokeDetector"
	capability "TemperatureMeasurement"
	capability "WaterSensor"
	capability "Actuator"
	capability "Refresh"

	attribute "version", "string"
	attribute "variable", "string"

	command "accelerationActive"
	command "accelerationInactive"
	command "arrived"
	command "close"
	command "COClear"
	command "CODetected"
	command "departed"
	command "dry"
	command "motionActive"
	command "motionInactive"
	command "open"
	command "setCarbonDioxide",    [[type: "NUMBER"]]
	command "setIlluminance",      [[type: "NUMBER"]]
	command "setRelativeHumidity", [[type: "NUMBER"]]
	command "setTemperature",      [[type: "NUMBER"]]
	command "setVariable",         [[type: "string"]]
	command "smokeClear"
	command "smokeDetected"
	command "wet"
	command "sync"

Appreciate your help.
Alan

Nope, I still have the same issue. I can't import any custom drivers. Option doesn't exist anymore.

The space issue was easily fixed once found. The only hint I can give on recreating is it was a new driver that I cut and past the name. It may have even been a non-printable character that I just backspaced over to fix.

Again thanks for your help.
Great product
Alan

HubConnect...

It's at the end of the chain. It doesn't know what RM Global you've built... til the Event hits. Can't config a driver on the fly so it has "everything" in it.. Probably you'll use just one Capability. Maybe even just one Attribute. The point is, a HubConnect stub driver (universal) will want to be useful for more than ONE physical device... like a Motion Sensor.. some have 6 sensors in one package, others have 3, but not all of them with 3 have the same set of 3... so we can make a driver that has 4 or 5 and let the idle attributes just be idle. The reason we don't make just ONE driver is for the very question you ask.. the device is cluttered with capabilities for which just ONE is used.

The less technical answer is: Yea? So? Is there a shortage of Device Info Space on the page? LOL (facetious, right?) :smiley:

1 Like

Just seemed overkill for a RM Variable, but I understand the idea.

Thanks again,
Alan

Import Issue: Gone! I haven't tried to import any yet to see if I can reproduced. I've updated versions and that reset the page.

Thanks again
Alan

I just got my ST hub connected, going to leave a few automations and devices on it for now. I set the switch in the app to Send mode changes to remote hub. The same thing I did for my remote HE hub and that works great, but the mode changes on my HE hub do not get passed to my ST hub..

The mode names are the same, I carried over the same scheme I used from ST to HE, is there something else I need to do for ST?

{edit]Ok I think it does not do that, so I have implemented mode changes via simulated switches. A little more work, but not too bad. If this is not the case please let me know.

A quick question.
I am using the HubConnect -> Homebridge interface, which seems to be working fine.
However, when I try and send across the following group name:


It comes across with the name "Switch".
Is there a way I can change that?
(This is not a big deal, I can always edit the accessory name on an IPad, but when you have a few of these it becomes tedious.)

When selecting (and therefore sending) devices to Homebridge, you can see logs on Homebridge similar to:

--> Server Hub SENDING: [deviceId: 18, displayName: GarageDoor Opener (Linear), name: contact, value: open]
--> Server Hub SENDING: [deviceId: 18, displayName: GarageDoor Opener (Linear), name: door, value: open]

I believe the "name:" field is used to pick an Apple device. It may be that "group" (or whatever it actually sends) is not a supported Apple device and some translation is needed.

@dan.t will have valuable advice, I'm certain. :slight_smile: