BOND Fan Control Unofficial API Docs

The BOND is the best way I’ve found to control my DC fans. Only problem is that the only supported ways to control the BOND is through their app, Alexa, or Google Assistant, no third-party integrations with any other home automation systems or public API docs. I’ve reached out to support a few times requesting API docs and was told that they plan on releasing a public API… eventually.

What better way to spend a Friday night than to reverse engineer the BOND API? Using the app and Charles, I documented how the API works and how to control your devices through the RESTful API.

https://github.com/danmandle/bond

I’m going to start writing an MQTT BOND relay Docker container to start with and eventually turn it into a HA platform, once I learn how to write Python.

4 Likes

A platform would be a nice addition. But an FYI, there is existing IFTTT support for bond. I am using this to integrate ceiling fans/lights with homeassistant. Working fairly well for me.

I am currently exploring options to integrate a “dumb” Emerson fan into the Home App or at least Home Assistant. I too came across this Bond product. I have not used IFTTT yet, but I am interested in learning about how to get this job done. Couldn’t believe that there aren’t better options!

Just picked up one myself. Could you share any of your IFTTT recipes? Or at least outline the flows you’ve successfully built?

Here’s my example. Two ceiling fans. Here I am controlling lights only.
First set up input_boolean for each in configuration.yaml:

input_boolean:
  ceiling_light:
    name: Living Room Ceiling Light
    initial: off
  bedroom_light:
    name: Bedroom Light
    initial: off

Second, follow the IFTTT documents and examples to setup webhooks for each of your bond functions, for example one of the webhooks created listens for ceiling_light_on and turns on the light in bond via IFTTT.

Third, setup automations.yaml

- id: ceiling_light_autoon
  alias: turn on when ceiling light on
  trigger:
  - platform: state
    entity_id: input_boolean.ceiling_light
    to: 'on'
  action:
  - service: ifttt.trigger
    data:
      event: ceiling_light_on
- id: ceiling_light_autooff
  alias: turn off when ceiling light off
  trigger:
  - platform: state
    entity_id: input_boolean.ceiling_light
    to: 'off'
  action:
  - service: ifttt.trigger
    data:
      event: ceiling_light_off
- id: bedromm_light_autoon
  alias: turn on when bedroom light on
  trigger:
  - platform: state
    entity_id: input_boolean.bedroom_light
    to: 'on'
  action:
  - service: ifttt.trigger
    data:
      event: bedroom_light_on
- id: bedroom_light_autooff
  alias: turn off when bedroom light off
  trigger:
  - platform: state
    entity_id: input_boolean.bedroom_light
    to: 'off'
  action:
  - service: ifttt.trigger
    data:
      event: bedroom_light_off
1 Like

Thanks for sharing your code.

Curious if you tested it first using the service function in dev tools. If so, could you provide a sample syntax you used?

The documentation on the IFTTT components page is not clear, e.g. " {"event": "EventName", "value1": "Hello World"}" doesn’t define what value 1 or Hello world are specifically. I believe all I should need is the webhook name I set up in IFTTT (e.g. “Ceiling_fan_light_on”) and it should work, however I haven’t fully figured it out yet. Unfortunately haven’t had as much time to test and troubleshoot as I’d like.

I just did it with event and event name only.

Good news! BOND is releasing official docs! http://docs-local.appbond.com/ Sign up for new firmware here: https://forum.bondhome.io/t/bond-local-api-beta-sign-up/250

1 Like

found this thread while researching connecting Bond to home assistant now - any further development with using the API bond has released?

Short version is no. The V2 firmware is still in beta and my fans are “cloud devices” and aren’t visible to the local API yet.

I have a Bond controller coming today. I plan to take a crack at writing a platform driver soon.

2 Likes

Testing this a bit today and I came across this:

http://docs-local.appbond.com/#tag/MQTT

So far its not working for me, but it looks like they already use MQTT under the hood, so we would just change it from their cloud system to our own MQTT server and it should work. I’ll get it all set up and do a write up if it works.

2 Likes

This is really good news!! Looking forward to hacking on this when things slow down at work!!

This is related. Sounds like Mqtt breaks whenever you locally try to control a fan.

They just added cloud devices for the most part. Just a few aren’t supported.

I don’t believe cloud devices are supported yet but that’s the next thing they’re working on: https://forum.bondhome.io/t/things-are-pretty-quiet-around-here/773/5?u=danmandle

All of mine were. They changed this recently. I’d suggest checking the latest beta threads/builds.

Hey guys! I’m working on a Bond Home component and corresponding Python library to control lights and fans. I just got turning the light on and off working tonight! Details are over in this thread: Bond Home Component - Light + Fan (soon!)

3 Likes