Bond Home (bondhome.io)

@SRGDamiano, I am looking to test out the Bond binding but it looks like the link to the JAR files are no longer working. Have you moved the file?

Thanks!

I’ve made a few updates, mostly improving online/offline detection.

Here’s the latest version: https://drive.google.com/file/d/1RWL-NIZX-hxmbcCpjPFIkakxF1GrZw28/view?usp=sharing

I’d love any improvements you’ve made! You can PR to my fork on GitHub: https://github.com/SRGDamia1/openhab2-addons/tree/bondhome

I haven’t read up much on the differences between the bridge and the Smart by Bond protocols. The thing that would probably help the most if you try and find the binding isn’t working is to set the logging to trace and post the results.

log4j2.logger.org_openhab_binding_bondhome.level = TRACE
log4j2.logger.org_openhab_binding_bondhome.name = org.openhab.binding.bondhome

LOL!

I’d looked for a Bond binding back last year sometime and with a COVID layoff, I figured it was time to just buckle down and write one. I had it through Bridge discovery and the channel for updating the blue indicator light needs a PATCH, and I came here looking for answers, only to find that I’m behind the curve!

I only have one kind of ceiling fan (4 of them) but am happy to test and review if you’d like.

@mjensen2k - download the jar and test away!

@SRGDamiano Just FYI I had to change ‘addr’ type from int to long in order to get your binding working. bundles/org.openhab.binding.bondhome/src/main/java/org/openhab/binding/bondhome/internal/api/BondDeviceProperties.java
This was my BondHome device properties : {“addr”:“1101101110010100”,“freq”:433960,“zero_gap”:29,“bps”:3004,“max_speed”:6,“trust_state”:false,"_":“dfdd4dc9”}

I second this @kgailey, I submitted a change to the file on @SRGDamiano project, thanks for the update, saved me a ton of time troubleshooting.

Just FYI I had to change ‘addr’ type from int to long in order to get your binding working. bundles/org.openhab.binding.bondhome/src/main/java/org/openhab/binding/bondhome/internal/api/BondDeviceProperties.java
This was my BondHome device properties : {“addr”:“1101101110010100”,“freq”:433960,“zero_gap”:29,“bps”:3004,“max_speed”:6,“trust_state”:false,“_”:“dfdd4dc9”}

I updated my Bond Hub to the latest firmware, I have the version 1 which hasn’t been updated in a while, but after update the fans still worked, but the hub was marked offline and the fans were unknown status. I was able to remove them via the Habmin interface, then re-add them, and they came back online.

At first I tried just removing and re-adding the bond hub thing, but the fan things didn’t come back online after a while, so I removed the fans (PaperUI got stuck “Removing”, but Habmin removed right away). Maybe I didn’t give the fans enough time to re-sync with the hub, but in the end removing and re-adding worked. All info including IP were unchanged on the Bond Hub, so that wasn’t the issue.

@EddieTx - are you still on OH2.x or are you on OH3?

I’ve updated for OH3, and switched the type for the address from int to long.

Here’s the newest jar: Release Update to OH3 · SRGDamia1/openhab2-addons · GitHub

@EddieTx - are you still on OH2.x or are you on OH3?

I am still on OH 2.5 (Openhabian) still, haven’t updated to 3.0 yet, want to take a full backup because any time I update my OH zwave network stops working. Well, now that I say that, I go and check the status of my Bond Hub in OH and and my zwave network is down, lol. I ran a batch apt full-upgrade on all my linux nodes yesterday, and forgot to exclude my OH node… Guess I’ll be spending tonight trying to get it back up :frowning:

Just found time to fix my OpenHab after update to 3.0 by accident, and needed the OH3 jar, works perfectly. The old version wasn’t working, errored saying it needed the eclipse smarthome core component which wasn’t there for 3.0, so tried this jar and all good. Thanks again @SRGDamiano .

I believe I have run into a bug. Still have not looked through the code but I believe there is an issue with adding a Fireplace item.

openHAB Version: 3.0.1
Bond Binding Version: 3.1.0.202101020201

I have been using this setup for a while now with just some patio fans. Today I decided to add my fireplace. The device added in the Bond and works properly as a “Fireplace” with just an on/off control. The Bond Binding discovered the Fireplace device and the Thing showed up in the Inbox. When I try to add the Thing from the UI, the UI shows a “conflict” error in the lower-left corner, and the Thing is not added.

From the log with TRACE turn on:

2021-02-03 10:25:54.060 [INFO ] [openhab.event.InboxAddedEvent       ] - Discovery Result with UID bondhome:bondFireplace:ZZBL45269:6da81a06' has been added.
==> /var/log/openhab/openhab.log <==
2021-02-03 10:27:10.482 [ERROR] [nhab.core.thing.binding.ThingFactory] - Thing factory (class org.openhab.binding.bondhome.internal.BondHomeHandlerFactory) returned null on create thing when it reports to support the thing type (bondhome:bondFireplace).
2021-02-03 10:27:10.484 [WARN ] [g.discovery.internal.PersistentInbox] - Cannot create thing. No binding found that supports creating a thing of type bondhome:bondFireplace.

I deleted the Fireplace item in the Bond App and re-added it as a Generic Remote with just on/off controls. The Bond Binding discovered and I was able to add the Thing through the UI. The GenericItem works fine.

I am not sure if something is not getting set correctly during the discovery, or if something is missing while including the Thing.

EDIT: fixed code fence. again.

@SRGDamiano Thank you for your work on this binding! The Bond Home bridge has put me one step closer to controlling my Proflame 2 based fireplace controller. I was able to get basic functions working with the bridge using the Bond app.

The binding seems to set up the Bond bridge correctly but my fireplace device shows up as uninitialized. I tried setting the device as a generic device but the device then shows up as “unknown” and still is not controllable by the binding (simple on/off).

Any ideas what I should try next?

Just tried this out. I have BD-100 with firmware 2.28.0 (latest I can update via the bond app). When I connect to through open have I get “Unable get Bond bridge version via API”… Here are the logs (X’d out my serial):

2022-01-30 13:02:09.844 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing ‘bondhome:bondBridge:XXXXX’ changed from INITIALIZING to UNKNOWN
2022-01-30 13:02:13.111 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing ‘bondhome:bondBridge:XXXXX’ changed from UNKNOWN to OFFLINE (COMMUNICATION_ERROR): Unable to access Bond local API through bridge
2022-01-30 13:02:13.112 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing ‘bondhome:bondBridge:XXXXX’ changed from OFFLINE (COMMUNICATION_ERROR): Unable to access Bond local API through bridge to OFFLINE (COMMUNICATION_ERROR): Unable get Bond bridge version via API

Any ideas?

Got it to connect! However, getting a strange error, when I added my Fan thing. Logs present a number, but cant convert it to long…

2022-01-30 13:18:56.654 [WARN ] [mmon.WrappedScheduledExecutorService] - Scheduled runnable ended with an exception:
com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: Expected a long but was 1110100000001011011110000000100111001111100 at line 1 column 54 path $.addr
at com.google.gson.internal.bind.TypeAdapters$11.read(TypeAdapters.java:306) ~[?:?]
at com.google.gson.internal.bind.TypeAdapters$11.read(TypeAdapters.java:296) ~[?:?]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:131) ~[?:?]
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:222) ~[?:?]
at com.google.gson.Gson.fromJson(Gson.java:932) ~[?:?]
at com.google.gson.Gson.fromJson(Gson.java:897) ~[?:?]
at com.google.gson.Gson.fromJson(Gson.java:846) ~[?:?]
at com.google.gson.Gson.fromJson(Gson.java:817) ~[?:?]
at org.openhab.binding.bondhome.internal.api.BondHttpApi.getDeviceProperties(BondHttpApi.java:133) ~[?:?]
at org.openhab.binding.bondhome.internal.handler.BondDeviceHandler.initializeThing(BondDeviceHandler.java:496) ~[?:?]
at org.openhab.binding.bondhome.internal.handler.BondDeviceHandler.lambda$6(BondDeviceHandler.java:466) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.lang.NumberFormatException: Expected a long but was 1110100000001011011110000000100111001111100 at line 1 column 54 path $.addr
at com.google.gson.stream.JsonReader.nextLong(JsonReader.java:968) ~[?:?]
at com.google.gson.internal.bind.TypeAdapters$11.read(TypeAdapters.java:304) ~[?:?]
… 16 more

I am not a developer (or even pretend to be one) but it seems the issue I am seeing with the binding is it does not recognize the “fireplace” type device. I poked around in the code and found a couple of typos related to the fireplace device. I spent my day figuring out how to set up my machine and create a jar file and I am pleased to say I figured it out! Here is the path to a working version of bondhome binding. @SRGDamiano thank you for doing all the work!

openhab-addons/org.openhab.binding.bondhome-3.3.0-SNAPSHOT.jar at bondhome · swamiller/openhab-addons (github.com)

I’m updating for the first time in a while. Do you still have a working link for your improvements?

Sorry about that, I didn’t know it wasn’t working.

Try this: openhab-addons-bondhome/org.openhab.binding.bondhome-3.3.0-SNAPSHOT.jar at main · swamiller/openhab-addons-bondhome · GitHub

1 Like