What's the status of Smart By Bond integration?

I found a solution to my own questions...

I originally cloned the app because I had some minor tweaks to the code that I wanted to preserve. I decided to take a different approach:

  • export the modified app code to my computer
  • edit the downloaded file to change the name of the app
  • delete the (non-working) cloned instance of the app
  • in the Apps code menu, add a new app
    • click the Add User App button
    • copy/paste the downloaded code (with a new name)
    • complete the process
  • in the Apps menu, add an instance of the modified app
  • run the app and add the IP and local token
  • complete the configuration process

I then went to the Devices menu, and the new fan and light are there. Both the fan and the light are working as expected.

Hi! I'm looking to add my 5 minka SBB fans. Could you help me? I'm curious about what tweaks you made to the app and if you'd be willing to share? Thank you!

I now have 8 Minka Aire (smart by bond) fans installed; happy to help in any way that I can. Some were originally added via the community app, but all are now migrated over to the native HE Bond integration.

I don't understand the question about tweaks. I just followed the instructions linked above to add fan & light devices within Hubitat. Let us know what you are trying to do, what you have done, and current status.

1 Like

Hi, thank you for the input. I was actually looking at the last responder who mentions - 'originally cloned the app because I had some minor tweaks to the code that I wanted to preserve'

That was for the tweaks.

I'm getting my fans installed over the next week and I'll be going thru the native integration to try it out. I'll be back to ask questions for sure if I'm flailing!

I believe that the published code has a bug in function findComponentDevice() (which starts at approximately line 268). The original code is:

def findComponentDevice(dev, deviceId) {
	def hubId = getHubId()
	def component = dev.getChildDevice("bond:" + deviceId)
	if (component != null)
		return component

	return component?.getChildDevice(hubId + ":bond:" + deviceId) ?: null
}

But by the time it gets to the last return statement, component is known to be null. (If it wasn't null, we would have returned already in the previous if().)

My version refers to dev instead of component:

def findComponentDevice(dev, deviceId) {
	def hubId = getHubId()

    def component = dev.getChildDevice("bond:" + deviceId)
	if (component != null)
		return component

    return dev?.getChildDevice(hubId + ":bond:" + deviceId) ?: null
}

Making this change allowed the driver to update the status of the device in Hubitat if the fan or light status was changed with the remote control.

The other important consideration is that this driver will handle 1 device only. If you have 5 fans, you will need 5 instances of the driver code installed. As you install each version, modify the name of the driver in the opening definition{} at line 24 to include the location. For example:

name: "BOND Home Integration - LR",
1 Like

That is very nice of you to share! Thank you for your help.