devices.esphome.io
TreatLife DS02F Ceiling Fan Controller
TreatLife DS02F Ceiling Fan Controller
Device Type: switchElectrical Standard: usBoard: bk72xx
Treatlife DS02F Switch
Notes
The Treatlife DS02F is similar to the DS03, but lacking the control for the light. This device comes with a Tuya WB3S chip and there are now two methods to make this device compatible with ESPHome:
- Use Cloudcutter to flash the device.
- Swap out the chip with a compatible one.
Using Cloudcutter
Cloudcutter is a tool designed to simplify the process of flashing Tuya-based devices. It allows you to bypass the need for physically opening the device and swapping out chips. By leveraging the cloud APIs, Cloudcutter enables you to flash the firmware remotely, making it a convenient and less intrusive option. Follow the instructions on the Cloudcutter GitHub repository to use this method for flashing your DS02F device.
Swap chip
The main board has the appropriate footprint for an ESP-12F. Further instructions can be found here. When desoldering the WB3S chip, take care if you use a heat gun near the black foam light guards around the speed LEDs and main switch LED. When overheated, the foam shrinks to less than half its original size. With a little patience, it is instead possible to peel the foam and adhesive off the PCB, set them to the side, and replace them after swapping out the WB3S.
Like the Treatlife DS03, the Tuya MCU UART runs at a baud rate of 115200. You may see a warning like Invalid baud_rate: Integration requested baud_rate 9600 but you have 115200!
logged, but it is safe to ignore.
GPIO Pinout
ESP-Based Pinout
Pin | Function |
---|---|
GPIO1 | Tuya Tx |
GPIO3 | Tuya Rx |
BK72XX-Based Pinout
Pin | Function |
---|---|
RX1 | Tuya Rx |
TX1 | Tuya Tx |
ESP32-C3F Pinout
Pin | Function |
---|---|
GPIO20 | Tuya Rx |
GPIO21 | Tuya Tx |
Basic Configuration
esphome: name: ds02f
# ESP-Based Board#esp8266:# board: esp01_1m
# BK72XX-Based Boardbk72xx: board: wb3s
# Enable logginglogger:
# Enable Home Assistant APIapi:
ota:
wifi: ssid: "ssid" password: "PASSWORD"
# Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "DS02F Fallback Hotspot" password: "ul57sDUAqbcl"
captive_portal:
uart: rx_pin: RX1 tx_pin: TX1 baud_rate: 115200
tuya: id: tuyamcu on_datapoint_update: - sensor_datapoint: 101 datapoint_type: int then: - lambda: |- id(inverted_light_mode).publish_state(x == 1);
fan: - platform: "tuya" name: Treatlife DS02F Speed switch_datapoint: 1 speed_datapoint: 3 speed_count: 4
# The "Light Mode" controls the white status led ring on the button.# Normal Mode (0): Led ON when fan power OFF, Led OFF when fan power ON# Inverted Mode (1): Led OFF when fan power OFF, Led ON when fan power ONswitch: - platform: template id: inverted_light_mode name: Inverted Light Mode turn_on_action: - lambda: |- id(tuyamcu).set_integer_datapoint_value(101,1); turn_off_action: - lambda: |- id(tuyamcu).set_integer_datapoint_value(101,0);