How to tell if a fan is already on?

My RF controlled fan (I have a Bond controller) has one power button. Pressing the button once turns it on and pressing it again turns the fan off. So if I have a routine that would change the fan speed, it would need to know if the fan is on or not first. If I set the routine to turn the fan on first and then set the speed to medium, if the fan is already on, the routine would turn it off since there is just one button for power. Conversely, if the fan is off and I don’t add the step to turn the fan on first and only have the action to set the fan to medium, nothing would happen because the fan is not on.

Any ideas on figuring out how to get SmartThings to check if the fan is on or off and then execute the action to turn it on if it is off (or skip the power button step if the fan is already on) before setting the speed?

Current state of the device is stored within Bond, and should be reflected back into Smartthings. That status is only accurate when strictly only using Bond to adjust the fan. If you manually adjust it using the remote or physical buttons then you lose sync.

There isn’t a way to build in the type of conditional logic you want using the Automations/Routines in the ST app. I’m wondering if the logic in Bond itself is smart enough to know if the fan is already on (assuming you haven’t manually adjusted it, and the status is correctly sync’d), and not send the on command.

Are you using the Bond Bridge driver provided by @blueyetisoftware?

1 Like

Unfortunately this is pretty common with IR blaster solutions where the device is out of sync with the smart controller. One approach is to add some kind of device in the junction box that can measure power draw. Another solution is simple and complicated at the same time: remove any means of manually controlling the fan. Put the IR remote the fan came with in a drawer and use a smart remote instead, lock out the wall switch with a cover, etc.


You can measure something that changes in the environment, but that requires an additional device.

You could measure current draw.

You could use a vibration or motion sensor mounted on the ceiling to catch physical events when the fan is on.

The downside to this approach is just the cost of the second device. Most are pretty easy to set up and quite reliable. :thinking:

I have previously mentioned a solution we had at work years ago, where we wanted to create some integration between two separate systems. We had one turn on a mini fan and the other detect the fan coming on with a motion sensor. Both devices inside a box together so they wouldn’t be triggered by anything else. It was hacky, but it worked. :sunglasses:


I figured it out. For some reason, if I set it to medium and the fan is off, it will not turn the fan on. But if I create a scene to set the fan to low, and then set the speed to medium, it works just fine. If the fan is already on or not, as long as I tell it to set the fan to low first and then change the speed to medium, it functions properly. I can do the same with setting first to high and then change it to medium. But if I have the scene just set to medium, then it cannot properly turn the fan on. Strange. But it works now.

I am just using the standard bond software. I will check out blueyetis.


Just realized something else. In the bond app there is no medium setting. Only a min and max and then a button to increase or decrease the speed. So since there is no medium button in Bond, I guess that is why I have that issue but controlling it by starting with high or low and then going to medium works.


I’ve found it to be much better. It’s local, meaning it communicates directly with your Bond rather than via the internet.

1 Like

Have you tried “Edit commands” for the fan in the Bond app to see if you can add the Medium command or perhaps even the off command (probably not possible but you can try).

Unfortunately, no. The receiver and remote that came with this Hunter fan don’t have am medium option, only min, max and speed up and speed down. So technically to get to medium you need to be on low and hit speed up or be on high and hit speed down. ST interprets these into low, medium and high, but as I learned, still needs to be on high or low first than I can hit medium. Annoying, but just an extra step.

1 Like

If you go down the road of using my driver, it utilizes the commands in the Bond app to figure out the capabilities in the ST app. Since the fan control isn’t really configurable, the speeds are scaled to match what is in Bond. ST allows up to 4 speeds, but Bond can have up to 7. The driver chooses the closest matching speed if the Bond allows more than 4.

The fan will turn on automatically if choosing any speed. Think of it more like you are telling the fan you want to run at low speed. You don’t need to tell it how to get there. It will turn on if needed.

If your remote only has 2 buttons (min/max), the controller inside the fan may not support a signal for medium. If it does, you may be able to expose it by editing the commands in the Bond app and trying to manually add a medium button.


Thanks! I’ll check out your software.

My fan remote basically has a power button and speed up and speed down buttons. Pretty lame. In the bond add it as Min, Max, and Speed Up and Speed Down. When it powers on, it turns on to whatever speed it was set to previously. SmartThings shows Low, Med and High. If I create a scene to set the fan to a particular speed, both Low and High will start the fan if it is turned off and set it to that speed. If I create the scene with the medium setting (which does not exist in Bond) and the fan is off, it will not start. The scene I am creating would have it set to medium, so I realized I can have it set the fan to low first and then set it to medium. Annoying but just an extra step and it works.