Skip to content

Automate dumb ceiling fans using CC1101 RF transceiver, ESP32, and ESPHOME

License

Notifications You must be signed in to change notification settings

Daedilus/cc1101-esp32-esphome-fan-controller

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cc1101-esp32-esphome-fan-controller

I forked this from spetryjohnson but I wanted a non mqtt version that would work natively from ESPHome Builder in Home Assistant.

This project was created to automate a Home Decorators Collection Beckford 52in ceiling fan from Home Depot.

This fan uses a 303MHz RF signal, so my original approach of using a hacked Sonoff RF Bridge wasn't going to work.

I spent a bunch of time trying to figure out how to automate the 303MHz fan and came across a bunch of partially-working-but-partially-outdated forum posts, Github projects, etc.

This project combines everything I learned from those resources into a single project, specifically for the CC1101 version that is readily available in March 2025.

This project:

  • Will help you capture RF commands from your remote using ESPHome Builder and then create buttons for it use inside Home Assistant.

Software dependencies

EspHome Builder v12.0+ in Home Assistant

Materials

CC1101 RF transceiver

The CC1101 is a common RF transceiver that supports multiple frequencies including 303MHz and 433MHz.

There are multiple versions of this module and many of the resources I found were for an older one. This project was written and tested using the 8-pin "v2.0" module found on Amazon or AliExpress.

Image of CC1101 module

Ceiling fan w/ RF Remote

My fan uses this remote, which has the model number "UC7083T" stamped on the back.

Image of fan remote with power button, speed control button, light button, and light temp button

ESP32

Any ESP32 should work, but I'm using one of the WROOM 32 dev boards from Amazon.

Image of ESP32 board

Wiring

Wiring schematic

Pinout was found on this datasheet

Getting started

Step 1 - Figure out your frequency

If you don't know what frequency your fan uses you can try a web search search for the remote's FCC identifier, or you can use the Frequency Analyzer feature of a Flipper Zero.

Frequency Analyzer flipper zero

Step 2 - Capture your RF codes

Copy the yaml and update the frequency variable in the cc1101 part of the yaml.

Install the new script and monitor the output. Hit the buttons of the fan and collect the codes.

Screenshot of commands being captured

Step 3 - Update the yaml

Set the 'code' and the 'protocol' for each of the fan modes in the YAML under the buttons and install it again

Step 4 - Use your buttons

Go to Settings -> Devices & Services -> ESPHome -> whatever_you_named_it

Your buttons should be in the 'Controls' area and test out your new controls.

About

Automate dumb ceiling fans using CC1101 RF transceiver, ESP32, and ESPHOME

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published