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.
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.
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!
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
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.
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.
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!)