Bond Home Component - Light + Fan

Just wanted to pop out to this thread and say…

STELLAR JOB!

From reading the thread I was skeptical about the actual fan controls. However, I installed the custom_component from the GitHub repo, and the fan works (on/off, no speeds yet, but that’s fine by me!)

I also wanted to let everyone know, in case they do not, that I just got the Bond Home Bridge, upgraded it via their app to 2.9.5, and right on the “Settings” screen it shows the “Local Token”, I put that in the configuration.yaml along with the IP address (found under “Network Info” on the Settings screen) and everything worked as advertised. Even set it up with my configured display name.

I saw that your GitHub commit comment was “added support for HACS” but I didn’t see the component out in the store yet, please post here when you have it operational if you don’t mind.

-Rob

I think you can just add the repo in HACS under Settings > Add Custom Repository. Just paste the repo github link there and will show up.

I like that you guys are popping in here?

Any word on how you plan to support this integration now that the Open API is available?

I’m a HA user my self. So what I can say is that I really want an official integration, but it’s not on our roadmap for now.

1 Like

I was able to control the speed of the fan with Node-Red

replace with data value between <specified data place holder>

Here I get a list of devices on the Bond:

[
{"id":"ce2ef05c.858b2","type":"inject","z":"70822ef9.6e872","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":"","x":140,"y":120,"wires":[["b01e6159.0f5be"]]},
{"id":"d26f2234.0646","type":"http request","z":"70822ef9.6e872","name":"Get Device Information","method":"GET","ret":"txt","paytoqs":false,"url":"http://<bond bridge ip address goes here>/v2/devices","tls":"","persist":false,"proxy":"","authType":"","x":560,"y":120,"wires":[["6b900614.5758c8"]]},
{"id":"b01e6159.0f5be","type":"function","z":"70822ef9.6e872","name":"set payload and headers","func":"msg.payload = \"data to post\";\nmsg.headers = {};\nmsg.headers['BOND-Token'] = '<bond bridge token goes here>';\n\nreturn msg;","outputs":1,"noerr":0,"x":330,"y":120,"wires":[["d26f2234.0646"]]},
{"id":"6b900614.5758c8","type":"debug","z":"70822ef9.6e872","name":"","active":true,"console":"false","complete":"false","x":770,"y":120,"wires":[]}
]

Here I get info on a specific devices on the Bond:

[
{"id":"37925abe.abe9a6","type":"inject","z":"70822ef9.6e872","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":"","x":140,"y":240,"wires":[["2588de47.e99372"]]},
{"id":"319d09d9.fff896","type":"http request","z":"70822ef9.6e872","name":"Get Family Room Fan Information","method":"GET","ret":"txt","paytoqs":false,"url":"http://<bond bridge ip address goes here>/v2/devices/<device id goes here>","tls":"","persist":false,"proxy":"","authType":"","x":600,"y":240,"wires":[["f78925c7.426788"]]},
{"id":"2588de47.e99372","type":"function","z":"70822ef9.6e872","name":"set payload and headers","func":"msg.payload = \"data to post\";\nmsg.headers = {};\nmsg.headers['BOND-Token'] = '<bond bridge token goes here>';\n\nreturn msg;","outputs":1,"noerr":0,"x":330,"y":240,"wires":[["319d09d9.fff896"]]},
{"id":"f78925c7.426788","type":"debug","z":"70822ef9.6e872","name":"","active":true,"console":"false","complete":"false","x":850,"y":240,"wires":[]}
]

Here I am able to set the speed of the fan:

[
{"id":"1ffd56db.594db9","type":"inject","z":"70822ef9.6e872","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":"","x":100,"y":360,"wires":[["6f18900d.5faf4"]]},
{"id":"7682919a.a7572","type":"http request","z":"70822ef9.6e872","name":"PUT - Family Room Fan Speed","method":"PUT","ret":"txt","paytoqs":false,"url":"http://<bond bridge ip address goes here>/v2/devices/<device id goes here>/actions/SetSpeed","tls":"","persist":false,"proxy":"","authType":"","x":650,"y":360,"wires":[["20d0c073.74c9a"]]},
{"id":"6f18900d.5faf4","type":"function","z":"70822ef9.6e872","name":"Set Payload -speed 2- and Headers","func":"msg.payload = \"data to post\";\nmsg.payload = {\"argument\": <fan speed 1, 2 or 3 here>};\nmsg.headers = {};\nmsg.headers['BOND-Token'] = '<bond bridge token goes here>';\n\nreturn msg;","outputs":1,"noerr":0,"x":340,"y":360,"wires":[["7682919a.a7572"]]},
{"id":"20d0c073.74c9a","type":"debug","z":"70822ef9.6e872","name":"","active":true,"tosidebar":true,"console":false,"complete":"false","x":870,"y":360,"wires":[]}
]

Here I am able to turn off the fan:

[
{"id":"4a666c57.9819b4","type":"inject","z":"70822ef9.6e872","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":"","x":100,"y":460,"wires":[["1a69f8f7.759807"]]},
{"id":"2b47a53d.b54bca","type":"http request","z":"70822ef9.6e872","name":"PUT - Family Room Fan Off","method":"PUT","ret":"txt","paytoqs":false,"url":"http://<bond bridge ip address goes here>/v2/devices/<device id goes here>/actions/TurnOff","tls":"","persist":false,"proxy":"","authType":"","x":640,"y":460,"wires":[["34e1a40c.6ae0fc"]]},
{"id":"1a69f8f7.759807","type":"function","z":"70822ef9.6e872","name":"Set Headers","func":"msg.payload = \"data to post\";\nmsg.payload = {};\nmsg.headers = {};\nmsg.headers['BOND-Token'] = '<bond bridge token goes here>';\n\nreturn msg;","outputs":1,"noerr":0,"x":270,"y":460,"wires":[["2b47a53d.b54bca"]]},
{"id":"34e1a40c.6ae0fc","type":"debug","z":"70822ef9.6e872","name":"","active":true,"tosidebar":true,"console":false,"complete":"false","x":870,"y":460,"wires":[]}
]

I’m glad this has been helpful to so many people! Just wanted to give a quick update: I am still working on fan speed, but we just had a baby recently so life is a little busier than normal for me right now.

Fan speed support is in the Python library already and works. I was just having a little trouble getting it to actually call it from HA. If anyone else wants to help contribute, PRs are more than welcome!

5 Likes

Not sure if link posing is allowed, but looks like there is a deal on the bond right now if anyone is interested:

I’m having the same issue here. Error on startup saying I may want to disable the component, but no new entities showing up.

I have the same issue. There is a message on start up about the component but no errors. No new entities show up. I am running Home Assistant 0.102.3.

What error are you getting on startup?

I actually do not get any errors but I get a message that says ‘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.’. When I search for the new entities I don’t have any new ones.

Okay, that warning message is expected when you’re using custom components.

Are you able to make requests manually to the Bond Hub with your Bond token using curl or postman?

There was an issue with the Bond API. When using cURL I was able to tell that my fans were somehow not associated with the hub even though they are on the app and worked. I removed both fans and re-added them and now it works. THANKS! For anyone else with this issue, in the app when you click on your bond bridge you should see “Associated Devices” at the bottom. It should have the number you expect. Mine said 0 but after re-adding my two fans it now says 2.

1 Like

Ah yes. This is an issue with the way fans used to be added to the Bond app. Apparently the fan configuration used to only be server-side. When they released the local API, now the configuration can reside on the hub itself I think. But last I checked, they don’t automatically migrate a “server” device to become a “local” device when you upgrade the firmware, so if you want local control you’ll have to remove and re-add the fan.

Glad you figured it out! Let me know if you run into any other issues.

There are a few PRs open for fan speed and a few more features. Hoping to get those merged in real soon.

That’s what we call “Cloud Devices”. We are migrating the device definitions to be stored on the Bond itself. I think we have something like 90% migrated.

@PythonNube you did the right thing. Right now the only way to migrate a Cloud Device to a Local Device, is deleting it and re-recording it!

1 Like

Thanks for this. I do see that 0 devices are associated. I will re-add the devices when I get home and report back.

edit: Everything is working after removing and re-adding. Fan switch and light switch work great!

1 Like

Great to see this exists now, it will certainly push me closer to actually buying a Bond hub and ceiling fan in the near future. Thanks!

1 Like

Glad to see someone figured it out and let everyone else know. I gave up on it. I may or may not try it when I get home from the office. Bond updated their app to support Siri Shortcuts, so this may not even be necessary for me anymore. I appreciate the work that was put into this though.

Thanks for this. With Bond removing IFTTT at the end of the month. This worked out well for me.

They’re removing IFTTT? Other than Nodered, is there any way to control the speed?