Bond Home Component - Light + Fan

Hi all! I have had a couple of RF ceiling fans for a while that I’ve really wanted to integrate into Home Assistant. Since no components to control my fans existed, I created my own. It uses a Bond Home Hub (https://bondhome.io/), and a Python library I wrote to talk to the hub.

I literally just got the light turning on and off tonight, so it’s rough, and doesn’t have many features. I’ve seen folks posting here about wanting Bond integration though, so I thought I would share where I’m at and perhaps others can help improve the codebase. I’m still really really new to HA development, and I’m by no means a Python expert.

It uses the Bond Local API so if you’re running a v2 firmware that has the local API, and want to try it out, head over to https://github.com/nguyer/homeassistant-bond-home for instructions on setting up the component. Feedback and PRs are most welcome!

11 Likes

I just pushed an update that adds the fan platform, so you should be able to turn fans on and off now. Setting the speed is not supported yet. That, and light brightness are coming next, but they’re a tad more complicated (especially the brightness).

Can this be added via HACS? Ifso would it be integration or plugin?

1 Like

I will definitely look into getting it added to HACS. In fact, someone just made a PR to make the folder structure compatible with HACS. I am not very familiar with it yet so I’m not sure whether it would be and integration or a plugin.

I may also look into getting the component added to the home assistant code base, so it would just be built in. It needs a lot of work before it’s ready for that though.

@nguyer, I am really interested in this project going forward. Currently I am controlling my Bond attached Fans leveraging RESTful commands and a script, which works very well but is very complicated to configure. Adding additional devices is a little challenging. Your project could greatly simplify the configuration and discovery process going forward.

I am especially excited that you are considering making it available through HACS. Thanks for taking this on!

So I have added the bond folder to my custom components folder and then have added the following to my configuration.yaml file:

light:

  • platform: bond
    host: local_ip
    token: local_token_from_ios_app

but every time I go to restart the server I get the following errors:

Invalid config for [light.bond]: [host] is an invalid option for [light.bond]. Check: light.bond->host. (See ?, line ?). Please check the docs at Bond - Home Assistant

1:23 PM components/hassio/init.py (ERROR)

You are using a custom integration for bond which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.

1:23 PM loader.py (WARNING)

I’m sure I am just being dumb and doing something incorrectly, but I cannot figure out what. Do you have any suggestions?

Ah try taking the light part off. Sorry I forgot to update the readme after making the change to support multiple platforms. I’ll do that.

So your config should just look like this, in the root level of your configuration.yaml:

bond:
  host: <your_hub_ip>
  token: <your_bond_token>

Thank you! I look forward to trying this out and following development.

This is great work, I was able to get this working in about 15 minutes. Really slick!

For anybody else trying to get this setup, the only tricky thing for me was getting the beta firmware on my old Bond device. I guess if your Bond device has a serial number starting with ZZ this won’t matter, but mine was older. After some digging I found a “Bond Home (Early Access)” app on the Play Store, and after installing it I was prompted to update my firmware again - this is the beta firmware that provides the local API. Without this, trying to get the token simply returned “empty reply from server”. After I got the beta firmware installed, everything else was very straight forward.

1 Like

Just popped in to say keep up the good work! I’m still using Hacky Bond Integration (Bond Fan Controller) as it can control the speed, and it is working well, however getting a cleaner configuration.yaml is a never ending goal of mine so this integration would be ideal. Let me know if you need any bug testing as I love breaking stuff!

Thanks! I’m working on fan speed now. It’s almost done but not quite working yet. Life is a little busier for me right now but I might have some cycles to work on it this weekend. I’ll post back here when there’s an update.

4 Likes

I just wanted to thank you for this. Up until this point I was using webhooks. This is pretty slick!

@nguyer Thank you for this custom module. I too will be eagerly awaiting functionality for greater integration of Bond with Home Assistant (e.g. fan speed control and light dimming level). Let me know if you need tester.

Hi. I’ve been waiting for someone to add Bond for a long time! I’m so happy to see this. I just added the bond files as instructed and updated my config file. Performed a reboot of the server and I see the following warning:

WARNING (MainThread) [homeassistant.loader] You are using a custom integration for bond which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.

I believe this is a standard warning regarding custom components and doesn’t necessarily mean anything is actually wrong. I don’t see any other mention of bond in the logs, so I don’t see any mention of an actual problem. But, I don’t see anything else. There’s no Bond device on the overview page or anything. Am I missing something? How do I access the device and control it?

I also tried to install it using HACS, but it could not find it. Just not sure how to control my fan or lights now.

Me too. I just added it and got the same warning (and I think that’s normal). However, I don’t see how to configure anything. I was assuming I’d see my Bond with some new Entities in the Registry, but I don’t see anything.

I’m definitely using the new api and firmware, I’m currently controlling things with REST commands so I know my IP and token are correct.

@Jestered and @majorsl
The fan and light from the Bond integration isn’t listed in the Configuration:Entity Registry page nor do I see anything indicating the integration of Bond on the Configuration:Integration page.

However they are listed in the Developer Tools:States page. It will be in a format something like this:
fan.<name of fan> e.g. fan.family_room_ceiling_fan
light.<name of fan>_light e.g. light.family_room_ceiling_fan_light

I was then able to add them (entity) to the Overview page and also control the on/off functionality of those entities.

Hope that helps.

Thanks @laichiufamily, but unfortunately that doesn’t help me. I checked the Developer Tools -> States page again and there are no entities related to the Bond device or either of my fans/lights that are controlled by Bond. After spending the majority of the day trying to get this to work, I’m still stuck unfortunately.

1 Like

@laichiufamily That did the trick for me. Thanks!

@Jestered are you sure you’re running the latest firmware for your Bond that supports the api?

Yep.

Installed it, works great so far. Much quicker than my IFTT webhooks.