Track state changes when using remote

Hi, I recently got a BOND and am loving it so far for the most of it, however I very quickly ran into an issue. I added 4 ceiling fans which is all well and good, but if someone decides to pick up and use the RF remote for a fan, the state on the app isn’t tracked. So I have two questions. First, is it possible for the BOND to listen for RF signals transmitted by the remotes to update states on the app?.. Second, if this is not possible to enable or implement, can you add a “Fix Tracked State” button for the fan toggle, like there is for the light toggle? At least this way I can correct the status if I know a remote has been used or if a signal has been missed and the state has gone out of sync.
Thanks!

Welcome to the forums, @jas89 !

The BOND team has indicated it could be done, but would have a lot of caveats and limitations, so it is not currently a feature they have enabled, nor do I get the impression that it is actively on the roadmap.

As far as the “Tracked State” on the fan – here’s a thread asking similar questions where Chris Merck from the BOND team considers various options - but I don’t think I’ve seen any of those make it into the current implementation, or at least not with any devices I have.

Overall, both issues you mentioned above are why I’m such a big fan (haha) of always hiding the OEM remotes for BOND (or other controller) linked devices which are toggle-based. If they have a discrete ON and a discrete OFF command, I can grudgingly let them stay out.
But if you take away the OEM remote, you’re forced to use voice assistants or the BOND app only – that is, unless you’re open to using other physical things like switches and / or remotes. Unfortunately, most of those strategies will require a more robust central smart home controller.
As an example, though, I have an ISY controller from Universal Devices which I integrate with BOND Bridges, BOND Sidekick remotes, Insteon switches and remotes, Logitech Harmony remotes (and many other devices).
My home’s OEM fan remotes are all tucked away in drawers, and each room has a BOND Sidekick or Insteon (sometimes plus a Harmony) remote and/or Insteon or Z-Wave switch that issues the commands for speeds, lights, etc via BOND’s API integration – and thereby each fan-and-light-kit keeps in sync with BOND.

1 Like

Thanks for the detailed response! I would prefer not to go down the rabbit hole of swapping over switches etc… at least not yet anyway.
I don’t think my remotes have discreet ON and discreet OFF commands, the remotes never came up as a preconfigured option when I added them, I had to map each button manually. Unless there’s another way to find out??
I can understand the limitations for listening out for RF signals, but I’m hoping at the very least we can get a “Fix Tracked State” button for the fan power toggle.

No real way I know to identify which fans in the wild correspond to which Bond RF templates, sadly.

Also, I can agree with the fan power state belief being a nice feature to add, and then the button being added to “fix” it when necessary, but it seems the BOND team has mostly moved away from state belief tracking / trusting of any type, given the very finicky nature of it.
Curious to see if @merck or other BOND folks come through, what their latest thoughts are~

Have you figured out with your particular fan, if you only use the “fan power toggle” in the Bond app to turn OFF your fan, and you use only “fan speed 1/2/3/etc” (or “fan speed increase” / similar if you recorded it that way) if that will turn ON the fan every time?
Or if pressing those fan speeds / increases and the fan is off, does the fan not respond at all?

Final thought: you could make your own “set Bond’s belief state about fan power” toggles, but it depends on how geeky you want to get.
Examples of raw cURL commands below - but if you want to do via phone or voice assistant instead of a computer, it would require some exploration of what methods are available to you to make HTTP “PATCH” request shortcuts / scripts (with headers and data).

  • Example setting Bond’s fan power state to ON without sending an RF command:
    curl -H "BOND-Token: xxxxxxxxxxxxxxxx" -i -X PATCH http://192.168.nnn.nnn/v2/devices/????????/state -d "{\"power\":1}"
  • Example setting Bond’s fan power state to OFF without sending an RF command:
    curl -H "BOND-Token: xxxxxxxxxxxxxxxx" -i -X PATCH http://192.168.nnn.nnn/v2/devices/????????/state -d "{\"power\":0}"

NOTE: The examples above would require you to use your own BOND-Token (instead of the xxx…), your Bridge’s IP address (instead of 192.168.nnn.nnn) and the device ID (instead of the ???..).

I had a bit of a play around with it over the weekend using various voice commands and button presses through the app. It seemed to be a bit hit and miss. Most of the time I could use the power toggle to turn off the fan and just use a speed setting to turn on the fan, but on the odd occasion the power toggle would turn off, but the speed button would not register and the app would go out of sync. Not sure if this could be due to bad positioning of the Bond or something else? I have it right in the middle of my house and its not a big house.

I am pretty tech savvy and that cURL command worked a treat but I’m not always going to be at my computer to fix out of sync fans. I wonder if there could be a way to setup a shortcut to run those commands from my phone?

Clearly running such a simple command to fix state tracking of fan power is available, so not sure why they wouldn’t just add a button into the app to provide this?

Android or iPhone? I might have suggestions.

I have iPhone… It’s pretty much an Apple household :sweat_smile:

I believe Apple “Shortcuts” can be made to use PATCH actions?
See here.

Not 100% sure, as I am Android first, and only dabble in iOS enough to fake it haha.
Might have to use the -token in the body (bottom of this section) vs the header, if Shortcuts cannot handle headers fully / appropriately.

Thanks… Didnt know I could run commands like that from Shortcuts. Will have a play around with it when I get the chance.

Looks like I got it to work:

Then I duplicated, and changed the integer value to 0 for “OFF”, and added both as Home screen shortcuts:
image

The first time I ran it with the “play button” up top, iOS asked me to allow the IP address, but has not bothered me with that approval request since then. Tap either shortcut and the fan’s power state updates as far as Bond is concerned, without any signals being sent by the Bond Bridge.

That’s great! Thanks for that :smiley:
Being a local IP, this will only work while I am connected to my local network though. Any idea how I could reach this outside? Is there a port I can open to use my public IP instead?

I have something that works, but fair warning - I am not thinking it’s super secure.
By design, the Bond API is http based, not https – so technically issuing commands over the internet via just http is interceptable. Nefarious people could do … well, nefarious things to your Bond and/or network.

If you’re willing to accept that increased risk profile, if you have Dynamic DNS or similar, and if you have a router that can do port forwarding, it appears like you can do it, with port 80 what you want to target internally.

Now, my case is special because I have a few other things that also need port 80, so I used a random port (194) in the external-formatted Shortcut request, then use my router to redirect any 194 port calls to port 80 of the IP address for the Bond Bridge.

So this is the External Formatted IP version of a Shortcut for “Fan State ON” with a DynDNS address and external port 194:

Then in my router, I can forward external port 194 requests to the internal IP address of the Bond Bridge, with port 80 as the redirected target port:

Hmm… yeh that’s true… not sure if I am willing to risk that just for fan state correction :sweat_smile:
I might just have to stick with my dozen fan state buttons for local use only :joy:
Hopefully one day the Bond team can implement these into the app :roll_eyes:
Thanks again for all your help!

No problem, thanks for being part of the community on here. :slight_smile: