Fan TogglePower without any discrete TurnOn/TurnOff signals

Hi @jacob @merck I am bringing over the discussion from the Hubitat forum about fan’s that TogglePower and don’t actually TurnOn/TurnOff.

Merck’s response to the issue was the following:

In general, there are a few models of fans that have a ridiculous protocol where there’s just one signal for “TogglePower” without any discrete TurnOn/TurnOff signals. That means that Bond is forced to emulate TurnOn/TurnOff using TogglePower and state tracking, similar to the ToggleLight scenario. — Alas the joys of retrofitting these fans that were never intended to be used this way!

That said, I can’t speak to the specific case without looking into the account (effected user could DM me or Jacob on the Bond Forums if you want to dive in).

Anyways I’d like to dive into this to see if we can get it sorted or some sort of workaround put in place. The fan’s in question are:

We have two possible behaviors configurable for such a device, and we’ve chosen to present this as whether or not the device’s state should be “trusted”.

If the device’s state is “trusted”, and the Bond thinks the fan is on, telling the fan to turn on does nothing. This behavior is preferable if you’re a heavy user of the app and integrations, and rarely use the physical remote.

If the device’s state is not “trusted”, and the Bond thinks the fan is on, when a user tells the fan to turn on, the Bond will assume its belief about the state is incorrect: the fan must be off right now! It’ll send the toggle signal, and believe the fan is now on. This sort of behavior is preferable if you rarely use integrations but use the physical remote often.

There’s no real great solution I can think of for a user that frequently uses both the physical remote and integrations, other than listening for the physical remote. Working on it…

Whether or not the fan’s state is “trusted” can be adjusted in the device settings.

Documentation for this configuration can be found here.

(This all also applies to devices with toggling lights, directions, etc.)


@jchurch: You could experiment with the remote control + fan, to see if theres a sequence of signals which can guarantee the On or Off motor state. Specifically:

Proposed sequence for TurnOn. Try the below with both On and Off starting states:

  • press any speed button
  • does the fan turn On?

Proposed sequence for TurnOff. Again, try with both starting states:

  • press the Speed 1 button (this should ensure the fan goes On)
  • press the Power Toggle button
  • does the fan always turn Off?

Downside is, when sending TurnOff, the fan may spin up for half a second. But this shouldn’t be noticeable. Hopefully you have the version of the fan that doesn’t beep when receiving a command!

If that works, we could possibly support this through a custom device definition. Not something (easily) done through raw recording UI.

[EDIT: better yet, we might even be able to automagically apply these sequences for raw-recorded remotes where there is only TogglePower + SetSpeed(n) commands added.]

1 Like

Thanks for your input guys. I will take another look at this after work and come back to you.

Btw, my wife and I don’t use the physical remotes they are locked away in a drawer as the bond app and Hubitat via dashboards is more than enough for us.

With the fan off I press the speed button and the fan immediately comes on. With the fan on I press the speed button and nothing changes e.g. it keeps running.

I press the speed button and the fan goes on. I then press the power toggle button and the fan goes off every time.

Nope they beep each time. I don’t mind it though as you know something is happening, the deck fan is dead silent so I don’t always know if something has occurred LOL

@merck are you able to automagically offer a fix based on the above?

This does look like something we can do in a future firmware version. But unclear whether it could make it into a v2.11 release. @jacob can comment as to where it is on his roadmap.


Thank you very much @merck and @jacob. I look forward to when it’s released.

1 Like

@jacob I just wanted to follow-up on this to see if it will make it into the 2.11 release or a very near future release.

You should be able to get this working with current firmware

  1. record your device button-by-button
  2. make sure its in-app state aligns with reality (using the remote itself is the easiest way)
  3. open the device’s settings and enable “trust state”

All should be good to go at this point, you can lock your remote away again.

Telling the device to “Turn On” will first check whether the device is already on, and it’ll only send a toggle signal if it’s off. And similarly for “Turn Off”. The behavior of your speed buttons is also consistent with the Bridge’s default speed behavior, so no problem there.

Thanks for responding @jacob I have actually tried this before with no luck, I just tried it again anyways and yeah same result e.g. I can still turn off a fan that is already off but it will turn it on. Also once it’s on it’s state is shown both in bond and Hubitat as off yet it’s still running.

This means I cannot have a rule in Hubitat to turn my fans off when my house turns to away mode because all my runs that were running turn off and all the ones off turn on :frowning:

Okay, could you PM me the name of that device and the Bond ID? Sounds like the “trust state” feature is not intercepting your action.

1 Like