V3.1.0-beta for Bond Bridge Pro

We are releasing a V3 firmware beta tomorrow, April 5th, 2022. Currently for Bond Bridge Pro (BD-1750) only, with availability for Bond Bridge (BD-1000 2nd Gen) coming in a few weeks, and Smart by Bond following that. This update will not be available for BD-1000 1st Gen (aka “Snowbird”).

This is most interesting if you either:

  1. use Rollease Acmeda ARC shades
  2. use more than one Bridge and suffer from on-air collisions
  3. are an integration developer

New Features:

Groups

This V3 version introduces a major new feature: Groups. You can now group together your ceiling fans or shades and operate them with a single tap in the Bond Home app.

Rollease Shades move Synchronously

For most shades, they will not move at exactly the same time. You will see some staggering or “popcorn effect”. However, for Rollease Acmeda shades created in the app after this firmware update, up to 15 shades in the same location will move together when commanded as part of a Group. If you already have shades created, you can still group them, but they will not move at exactly the same time. If you want to take advantage of the new feature where Rollease shades can move together, you could create all new shade devices in the app and then carefully unpair and delete the old devices.

We achieve this feature by aggregating what would be many individual Rollease signals into a single group signal.

Multiple Bridges avoid RF collisions

Previously, users with more than one Bridge would need to be careful to avoid setting Schedules to run at the same time for Devices on different Bridges, because the Bridges would transmit at the same time and their signals would collide on the air, causing shades to sometimes miss the scheduled command.

We have solved this problem via a new mechanism we call BBCAP (Bond Bridge Collision Avoidance Protocol). Now, Bridges talk to each other to negotiate spectrum access, so that only one Bridge will transmit at once. Other Bridges will wait until the first Bridge is finished before using the RF spectrum.

This feature requires that:

  • all Bridges be updated to a firmware supporting BBCAP (v3.1.0 or higher).
  • all Bridges be connected to the same subnet. Connecting to the same Wi-Fi network is usually sufficient.

Works-with-Bond Improvements:

  • Add SetBrightness to ceiling fan template RCF94v2

API Changes

64-bit keys

Resource keys on the Bond Local API now use 64-bit rather than 32-bit identifiers. Existing resources with 32-bit identifiers will not change. Integrations which treat the resource keys as strings should not need any update. However, any integration which either assumes an 8-digit key or converts the 8 hexadecimal nibbles into a 32-bit integer will need to make adjustments for these 64-bit (16-nibble) keys.

This change was made to facilitate Groups across multiple Bridges and (in the future) SBB devices.

For more detail, see docs here: Bond Local API

Groups API

For details on using the new Groups API, and a tutorial on some of the new API concepts involved, see: Bond Local API

Duplicate POST now returns HTTP 409 CONFLICT

Bond now returns a 409 error if an API client attempts to create the same object twice via POST.

We needed this now that clients may specify an _id along with a POST request, as required for distributed Groups.

BOND-Flags Header

We now support an HTTP header BOND-Flags which allows setting some flags which were previously only available via the MQTT transport. Details: Bond Local API

Hashes Persist over Reboot

Previously, the endpoint hashes (_) changed after every reboot. This caused needless resyncing of data by the Bond Home app and other API clients who used the hashes to tell if data changed. Bond now bases these hashes on the underlying data, so this way these hashes do not change after a reboot of the unit. A few endpoints still will have a new random hash after every reboot, but the most numerous endpoints like devices/ and groups/ and their children now have persistent hashes.

Bug Fixes:

We fixed a few memory leaks which in some cases may have caused Bridges to reboot after a number of interactions with the app.

1 Like

Sounds awesome!
Will this only be leveraged when running Schedules, or is this always on, assuming all pre-reqs are met, including for any and all Commands / Actions that lead to an RF transmit?

The latter. TL;DR: this makes it safe to have several Bridges and say “Alexa, turn on all the fans” or run a Google Home routine that opens shades using your North Bridge and South Bridge, in addition to working for Schedules on and off platform.

Some detail: The Bond Bridges will simply refuse to transmit if they do not hold the transmit football. As soon as the current transmitting Bridge is done, it passes the football to the next waiting unit. If there’s only one Bridge, or if there’s a disruption in the network where Bridges become disconnected from each other, or if the Bridge holding the football was actually in your fireplace and immolated itself by turning on the gas—in any of these cases the waiting Bridges will just manifest a new football and carry on.

This scheme may take some tweaking, but so far in internal testing it has worked with 50 Bridges on one Wi-Fi network. Was fun to watch the transmit indicator bounce around between the units on a big table.

1 Like

Your explanation was gold :rofl:

I’m very excited about this update, thanks so much to the Bond developers! I purchased a Bond Bridge Pro bridge last year, specifically for slider control of my Somfy shades. It’s working very well with them.

With the new groups feature however, I am only seeing Open, Close, and Preset as button commands. Is there any way the groups can be allowed the same slider control that we have for the individual shades?

I’d also like to see the grouped shades appear in the Schedules tab. Right now all I see are the individual shades I initially programmed.

And while we’re on the subject, I’d love to see slider control available for schedules too, for individual as well as grouped shades. All I see now for scheduled commands, are the same three commands I had with the regular Bond bridge: Open, Close, and Preset. I’d like to be able to schedule certain shades to automatically, gradually open over the course of the day, and was hoping slider control in the Bond app would help get me there. Like, 25% at 10 AM, 35% at 12 noon, 50% at 2 PM, etc.

But it appears to not be possible yet. Which is a bummer because this is the sole reason I upgraded from the regular Bond bridge to the Bond Bridge Pro.

Any feedback appreciated. And keep up the great work!

Great to know that this is actually important to you. We were not so sure when launching the feature if anyone would care :slight_smile: — If anyone else is reading this and cares a lot about SetPosition for shades, please make some noise.

As of right now, we don’t have a UI in the app for this, but it is possible. Will be pretty easy for Rollease shades, harder for Somfy RTS because we’ve got to send multiple signals based on a little AI algo. It’s a fun but kinda complex math project to expand that to multiple shades at once and schedule the signals to not conflict… but, with your feedback that this matters for you, it can help us prioritize this.

As of right now, we are prioritizing making the shades start to move at the same time when using Open, Close, and Preset on a Group, rather than SetPosition support in Groups.

Me too. I don’t see why we cannot do this basically at the same time as adding SetPosition for Groups of shades. UI-wise this is easy, but right now without a sophisticated signal scheduling algorithm, making multiple shades trigger SetPosition at the same time would cause some unfortunate misalignments.


EDIT: I do aspire to “unbummer” this for you, @Fofer. I’ll get with the team here and see what can be done.

3 Likes

One question: For your Somfy RTS shades.Do all your shades in the same group have the same “course time”? In that kind of instance we could take a shortcut that would not require so much sophisticated timing on the Bridge side. If they are all different course times it becomes trickier (but still doable).

Are there any changes in regards to how local control works when it can’t connect to the cloud? Basically does the new v3.1.0 do this? Endy’s last comment. Bond

1 Like

Thanks so much for this reply! It made my day… I know this sort of thing is way more complicated than I most people assume. I’ll be patient but I’m excited to see what your team comes up with. I certainly appreciate it!

Personally I have four shades, two (longer) doors with two (shorter) windows on each side of them. So the shades in the “doors” group have the same course time. And the shades in the “windows” group have the same course time too. But the “right shades” and “left shades” groups do not, because the two shades in them don’t share the same length. Ideally I’ll be able to schedule automations with slider/percentage control but until then I am just playing around with groups to see what makes the most sense throughout each day. But if it works out that only shades of the same length can have the functionality I’ve requested, I’d be fine with that, too.

Thanks again for the consideration and hard work on this. After getting these Somfy blinds installed last year I’ve learned a lot and have tried the MyLink, Tahoma, and regular Bond bridge. I’m most happy with the Bond Pro though, and look forward to seeing it live up to its potential.

Making some noise for SetPosition logic - would be keen to see it roll out with my Somfy RTS blinds.

Will be downloading the beta tomorrow to have a play around with the virtual groups. Want to see if it works well to begin moving my blinds at once rather than the popcorn effect.

Especially the slider - really want to see that in the Homebridge app.

Cheers!

Just chiming in here.

Alot of my blinds have the same course time as there are usually two blinds covering a window.
Out of the 6 walls I have blinds on, only one of them (with 2 blinds) have different transit times. The other blinds have all the same course time but would just need to be virtually grouped.

will schedules be able to use groups? I can’t seem to figure out how to do this in the app.

It’s on the API, but not yet in the apps.