top of page

Automating an Outdoor Ceiling Fan

This weekend I automated my outdoor ceiling fan and here’s how I did it. I have almost every fan in my home automated, most of them are set to low speed and never changed, by way of a simple relay switch either at the wall or at the fan. In the past I’ve done my bathroom exhaust fan, den ceiling fan, bedroom ceiling fan, chicken coop fan, and now the one out on our pergola. Next will be my range hood fan, look out for this one soon.

For our Pergola I thought I’d like to have all three fan speeds and my initial thought was how a small table fan is wired (Wire 1 = Low, Wire 2 = Med , 1 & 2 combined = high), and I had figured this a prefect project for the Shelly 2.5 Wi-Fi double relay, right up until I noticed a capacitor in the fan shroud. SO, drop back and regroup a bit. After brief study I figured which positions on the switch were which speeds, and then decided who really needs low. I mean it’s outside, hot as blue blazes during the summer, is low even necessary. Based upon that fine logic, I connected the lead that would be MED to O1 of my Shelly 2.5 and the lead that would be HIGH to O2 of the Shelly 2.5. I pulled my line voltage from the switch, and neutral from the light kit bundle (it was just too easy). Plugged her in, programmed to the Shelly app and voila, another automated fan. In the Shelly app I named channel 1 = “Fan Med” and then Channel 2 = “Fan High”.

Now, this project is not without its pitfalls. First of which is you are working with a capacitor, they hold a charge and will ZAP you if you’re not careful. Second, you CANNOT power both channels of the relay at the same time, it won’t end well. So it’s up to you to figure out how to make this part work. For me I added the relay into Hubitat (both speeds won’t go on a dashboard) and then wrote a quick fan control piston in WebCore. The WebCore piston takes the outside temp and applies a range of temps to power channel1, then anything above that range powers channel2. My actions to turn each channel on have an off command for the opposite channel and 10 second delay (wait) just for added safety. They are also not added to any voice integration to avoid powering both on at the same time. The fan is then cut off overnight and polls again the next morning within a set time window.

I very easily could have done this with a simple relay in line to the fan and then used the pull cord to control the speeds, but the pull switch was going bad and this seemed much more fun. Open to your comments and thoughts. Also, the Shelly relays I used are available at

Thanks for taking the time to read up on this project. Feel free to share with your friends. #homeautomation #smarthome #Shelly #Hubitat #smartfan #webcore

105 views0 comments


bottom of page