Support for Bond hub

There is a recent thread discussing this exact issue.

This was in reference to the Built-In Bond Integration app that HE team developed. I recommend giving that a try as it does technically support 6 speed fans. As outlined in my message, you can only access speeds 2 thru 6 via Set Speed attribute in the UI or RM. They added speed 1 as “very-low” which you can access with a custom command in RM or using the increase / decrease speed attribute. See the above post for details.

I think this is related - I noticed that any shades added through the Custom Bond app (kindly created by dcmeglio who I think is no longer active?) do not show up in Sharptools. I went with this app because it adds a stop command that works to trigger the preset midpoint of my shades. For many of the rooms I have setup a virtual shade that represents all of the shades in the room and that works fine through the Sharptools connector.

But recently I wanted to add control of individual shades in a particular room. So I was wondering if there was a similar change that needed to be made to the driver to get the shades to show up by default? FYI @josh

The devices would either need to support one of the core authorizable capabilities to be selected in the main auth flow or at least support one of the generic capabilities to be authorized manually.

Im submitting the following code modifcations that add some features and fix some bugs I found with the App.

BOND_Home_Integration.groovy

Line 184

if (deviceid.key == "_" || deviceid.key == "__")

Prevents NPE in getDeviceById. My issue was caused by double underscores, so test for that too.

Line 279

def component = dev.getChildDevice(hubId + ":bond:" + deviceId)

The arg was missing hubId + and the :. Prevents DNI name collision by creating child devices that already exist.

Line 688

		if (deviceState.open == 1)
		{
			device.sendEvent(name: "switch", value: "on")
			device.sendEvent(name: "windowShade", value: "open")
            device.sendEvent(name: "position", value: 100)
		}
		else
		{
			device.sendEvent(name: "switch", value: "off")
			device.sendEvent(name: "windowShade", value: "closed")
            device.sendEvent(name: "position", value: 0)
		}

Adding the position event for open and close fixes HomeKit window shade state in the Home App. Without it, the icon always showed closed and tapping the shade button would only open a closed shade, not close an open one, as it assumed it was already closed.

A further neat UX enhancement would be to have it say "opening" and "closing" for a settable amount of time, like the virtual window shade driver does.

Line 1219

	4: ["high": 4, "medium-high": 3, "medium": 3, "medium-low": 2, "low": 1],
	3: ["high": 3, "medium-high": 2, "medium": 2, "medium-low": 2, "low": 1],
	2: ["high": 2, "medium-high": 2, "medium": 1, "medium-low": 1, "low": 1]

Map medium-high and medium-low also for 4, 3 and 2 speed fans as HomeKit (or the HE-HK integration mapping) sends these "speed" names at certain settings of the fan slider, I guess it isnt aware of max_speeds. Without this, I was getting executeAction(...SetSpeed, null) and the resultant bad argument 400 error.

Hope these edits help someone out and might be considered for inclusion in a future update. (is it even still being maintained?)

Or is a git pull request the preferred method of submitting issues like this?

Dominic (dman) is no longer an active member of the Community, so you will not likely see the changes applied to his custom app / driver, but, depending on the licensing setup, you may be able to fork the repository, or request these changes be included in the built-in version available on the HE hub.