Affiliate link - I may earn a commission at no extra cost to you. As an Amazon Associate I earn from qualifying purchases; some links go to other retailers with the same arrangement.
Quick verdict
The Treatlife DS03 is a budget favorite for smart ceiling fan control. Out of the box it uses Tuya cloud, but it can be flashed to Tasmota for fully local operation. Check your hardware version before buying - most current units use a Tuya WB3S (Beken) module that needs a serial flash, and Tuya-Convert OTA only worked on early ESP8266 stock.
Standout: Budget single-gang fan and light switch that can be flashed to local firmware (Tasmota/ESPHome) for cloud-free smart home control.
Notes last checked May 31, 2026.
Compatibility snapshot
Home AssistantgoodReliable local integration with minor caveats (a hub, manual config, or polling). Core function works locally.
Apple HomenoneNo official support on this platform.
Google HomegoodWell supported, with only minor gaps.
independent fan speed and light dimmer in a single gang form factor
flashable to local firmware like Tasmota (most current units need a serial flash; early ESP8266 stock could use Tuya-Convert OTA)
widely available and budget-friendly
Reasons to hesitate
stock firmware is fully cloud-dependent via Tuya
most current units use a Tuya WB3S (Beken) module, so Tuya-Convert OTA no longer works - serial flashing required
only exposes 4 fan-speed levels, and the lowest two behave the same on many fans
Best for
budget-minded users who want smart fan and light control and are willing to flash firmware
anyone already using Tuya or LocalTuya in their Home Assistant setup
Avoid if
you want reliable local control out of the box without flashing
you need more than 4 fan speed levels
Privacy and local-control notes
Stock Tuya firmware is cloud-dependent. It can be flashed to Tasmota/ESPHome for fully local control - most current units use a Tuya WB3S (Beken) module that needs a serial flash, while early ESP8266 stock could use Tuya-Convert OTA. LocalTuya also gives local control without flashing.