Ceiling fan control

Hi all,

I have a 3 speed ceiling fan with light, it only has one switch, so currently I control it with the attached strings.

Anyone has any recommended hardware to turn it smart? I looked at this GE switch, but the switch is in a triple frame with narrow stile switches. Something like this Hunter controller would work, put not a fan ( :smiley: ) of having to add another controller.

I would prefer Z-wave or WIFI. Alternatively something that would work with my Xiaomi gateway.

1 Like

I use this controller:

I know it works with wink and smartthings. It may work with Xiaomi as it is a zigbee device, but I am not positive.


I, myself, have been waiting to see more successful implemenation of tasmota on this:


I just found this, ordered a couple of them to try it out.

1 Like

Please, when you receive the controllers, let us know your findings. I too am interested in this. My ceiling fans also have light + 3-speed fan and I only have a single wall switch, so that’s always on and I control them through the attached strings. Would love to be able to control this through HomeAssistant.



Will do :slight_smile:

All right. Took me a couple of days, but got it to work. Things to keep in mind:

  1. You need to power the unit with mains voltage to flash it
  2. Button is not GPIO0, you need to solder a wire to that pin. (be careful, supposedly, the pad is not very good.

After finally flashing it (I used a rPi0). It is all up and working.

I used the following code, adapted from here:

#Office Sonoff
- platform: mqtt 
  name: "Ceiling Fan"  
  state_topic: "home/office/fan/RESULT"
  speed_state_topic: "home/office/fan/RESULT"
  state_value_template: "{% if value_json.FanSpeed == 0 -%}0{%- elif value_json.FanSpeed > 0 -%}2{%- endif %}" 
  speed_value_template: "{{ value_json.FanSpeed }}"
  speed_command_topic: "home/office/fan/cmnd/FanSpeed"
  payload_low_speed: "1"
  payload_medium_speed: "2"
  payload_high_speed: "3"
  command_topic: "home/office/fan/cmnd/FanSpeed"
  payload_off: "0"
  payload_on: "2"
    - low
    - medium
    - high

And another for the light:

#Sonoff Switches  
- platform: mqtt
  name: "Office Fan"
  state_topic: "home/office/fan/RESULT"
  value_template: '{{ value_json["POWER1"] }}'
  command_topic: "home/office/fan/cmnd/POWER1"
  payload_on: "ON"
  payload_off: "OFF"
  optimistic: false
  qos: 0
  retain: true

I just received one of these, flashed Tasmota and installed it. FWIW, I did have to solder a wire for GPIO0 but I DID NOT have to power it to flash it. I was able to flash it just like any other ESP8266 device…directly from a cheap USB to Serial adapter with no other power applied. I’m using the same code you’ve posted and it works great.


Can this be done with a fan/lights that are on two switches? I have my light already on a zwave dimmer but I would like to use the fan as well.

The only thing I can think of would be FanLinc although it uses Insteon technology, so you will need a hub or PLM to control both the light and fan.


Sorry I cannot be of help as I’m not familiar with Xiaomi devices except for smartphones.

I am looking at the Sonoff IFan02. Questions is, when you flash it, do you lose the RF remote functionality? Fairly new to sonoff. Only flashed a SV and a Basic so far they work like I want, and I have them in HA with no challenges as of yet. My wife is a fan of the remote, and I want to link my google aiy voice control to send a mqtt message to HA to turn on fan or light. She wants the remote. Go figure. IS this the best option?

Thanks in advance.

NO. I’ve got it working with tasmotta and rf also works fine.

Thanks Good to know

Yeah works great here.

I flashed the sonoff ifan02 controllers with tasmota. I got them to work with HA, but the speeds on the ifan02 aren’t commensurate with what I’m use to. The low setting is sloooow, like maybe 30rpm. The middle speed is more like low and high is really fast. I’ve read the only way to correct that is to switch out the relays soldered to the board.

I’m going to try the hampton bay units linked above. These aren’t critical components, so I’m ok with using a cloud service.

Yeah forgot to mention the low-medium-high thing doesn’t really work that well with those 3 speed fans. I really have no use for it other than high, so I just programmed it as on-off in my home assistant. If I need a lower speed, I can yank the chain :slight_smile:

Can someone post how they installed the iFan02 in a fan that has the strings to turn on the light and switching to the speeds??

Hi @bphillips921, just curious. Did you try the Hampton fan controllers? If so how did they work? And did you connect it directly to HA or through wink? Thanks for the feedback! I’m looking to add fan control as well.

@techoguy I did not try the hampton fan control. I started researching it but had trouble finding anything showing how well it would work (admittedly, I didn’t search too long). It’s on my list to try, but I haven’t yet.

I just got an email from Lutron Caseta. They will be introducing a fan control in March. I already have Lutron integrated with HA for some lights, so I will likely wait for this to come out and give it a try. It looks like it will cost between $60-$80. They sure are proud of their products.