I’m the customer that is working with alexbk66 on the Homeseer integration.
I want to first say that I appreciate Olibra for making this Bond device and Alex for developing a Homeseer plugin for it. At this point the Homeseer beta plugin (AK Bond) is working reliably on my Homeseer Zee S2 Raspberry Pi based platform and needs a few minor changes before it is released. However, the Android Bond App and Bond API have some issues that need addressing.
I am currently running Bond firmware 2.10.8, but I have also tried the beta 2.10.17.
First, I want to discuss the “Trust State” option in the Bond. I understand the issues with controlling devices that only have a toggle command. However, the option of turning off the “Trust State” only leads to the physical device getting out of sync with the Bond state. So, at the very least, “Trust State” ON should be the default. Harmony has the same issue with controlling entertainment equipment that only has a toggle command for power. However, they don’t have any option to NOT trust their own state. They do, like Bond, have an option to correct the state if it is out of sync. From my experience, having the “Trust State” OFF by default on Bond was confusing and made me think that the Bond did not work right and was not ready for prime time. For instance, with the “Trust State” OFF, if I told Google Assistant to turn of a fan light OFF that was already OFF, Bond would turn it ON and as I remember the Bond state was then out of sync with the physical light. This is very confusing. With “Trust State” ON, Google Assistant worked correctly. Since you have a way in the Bond app to correct the state, it seems having this “Trust State” option is not needed or at least the “Trust State” should be defaulted ON.
API issue with devices that have an up & down light (Template A1a). The up and down light work correctly in the Bond App with the “Trust State” ON, but even with “Trust State” ON they get out of sync with API commands. I eventually gave up and deleted the up light in the Bond App and restarted the AK Bond plugin on Homeseer and then there was only one light enumerated and it worked correctly if the “Trust State” was ON.
If I remember correctly, the issue had to do with having both lights on and then turning one of the lights (Up.Light or Down.Light) off. If I used the “Light” control to control both lights that worked correctly as I remember but I may not remember exactly what did not work correctly. It is also confusing to turn the “Light” off and still see the “Up.Light” and/or “Down.Light” show that it is ON. I assume these indicators are showing the last state of those lights, but until you understand that it is very confusing. It would be much better if there were just two devices (Up.Light and Down.light). This would be consistent with the way the Bond App works and how the remote works.
API issue with the A3 template. I just installed a Minka-aire 6-speed fan with a down light. When pairing it with the Bond App the only template I could use was the A3 template that has both an up light and down light. I deleted the up light in the Bond App, but, unlike with the A1a template, the API still enumerates the “uplight” and the “light” devices. This is confusing to say the least. However, if I use only the “light” or “down light” device through the API (AK Bond) things seem to work correctly if the “Trust State” is ON.
I tried the beta 2.10.17 firmware which did not help the enumeration of deleted devices issue, but did break the dimming function in both the Bond App and API. If start the dimming process (in 2.10.17) and then stop it, the physical light and the Bond state where usually out of sync. To make matters worse, if I tried to fix the state in the Bond App settings menu, the fix state showed the device in sync, so it could not be used to correct the state. I reverted back to 2.10.8, but had to clear the Bond App data and cache before the dimmer function would work correctly again.
In my opinion the concept of creating three devices (up light, down light, and light) for two physical devices is confusing at best and trying to keep track of the state of the three devices with the complication of the trust state option is very complicated and is probably the reason the logic in the firmware does not work correctly.
I am a big believer in the KISS principle. Making things more complicated without bringing some significant improvement to the user experience is a bad idea. In this case, the remote has an up light button and a down light button. This is mirrored in the Bond App with the same idea. There aren’t three light devices in the Bond App for fans with an up light and down light. I suppose your position could be that it is up to the integration developer to make their app more consistent with the way the remote and Bond App work by inserting a bunch of logic to translate the three devices back down to two devices, but why add all that complexity to something that should be very simple? There are only two physical devices (up and down lights). Neither the remote or the Bond App have three devices. Just enumerate and keep track of those two devices in the firmware and everyone’s logic would be very simple.
In the case of the AK Bond devices in Homeseer, the AK Bond plugin creates a icon (device) for every device (and action on that device) as enumerated by the API. This results in a huge mess of devices and action icons that clutter the screen and make the user go searching for the action icon they want to click. This is exactly the opposite of the KISS principle. A typical user simply wants to turn the up/down light off or on and set the fan speed to off or to whatever speeds the fan supports. There is no need for a toggle actions (icons) in the API. I know this could be taken care of by Alex’s Homeseer plugin, but I don’t think these extra actions and especially the third pseudo light device brings anything to the table except user confusion.