Qiachip 110V/220V Light and Fan Controller (FLC-220V/FLC-110V)
Qiachip 110V/220V Light and

Available from:


Install method:
Replace module

GPIO #Component
GPIO00 None
GPIO01 Tuya Tx
GPIO02 None
GPIO03 Tuya Rx
GPIO04 None
GPIO05 None
GPIO09 None
GPIO10 None
GPIO12 None
GPIO13 None
GPIO14 None
GPIO15 None
GPIO16 None
GPIO17 None
{"NAME":"Qiachip FLC","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54,"CMND":"TuyaMCU 11,1 | TuyaMCU 12,9 | TuyaMCU 81,7"}
This device uses WB2S module which needs to be replaced with ESP-02S, WT-01N or WT32C3-01N. Besides the module, this process will require a heat gun, soldering tools and moderate soldering skill.

Before and after


Remote will continue to function with the new module and Tasmota.

Please read TuyaMCU article to understand the terminology and configuration process.

  • dpid1 - fan on/off
  • dpid3 - fan speed (0 = low, 1 = med, 2 = hi)
  • dpid6 - self timer (0 = off, 1 = 1hr, 2 = 2hr, 4 = 4hr, 8 = 8hr)
  • dpid9 - light on/off
  • dpid7 - timer remaining
  • dpid17 - beep on/off

Home Assistant

Set a rule

Backlog Rule1 on tuyareceived#dptype4id3 do publish stat/%topic%/speed %value% endon; Rule1 1

Run a rule for manual discovery of the fan

Rule2 on system#boot do publish2 homeassistant/fan/%macaddr%/%topic%/config {"name":"%topic% Fan","state_topic":"stat/%topic%/RESULT","state_value_template":"{{ value_json.POWER1 }}","command_topic":"cmnd/%topic%/POWER1","payload_on":"ON","payload_off":"OFF","percentage_state_topic":"stat/%topic%/speed","percentage_command_topic":"cmnd/%topic%/tuyasend4","percentage_command_template":"3,{{ value }}","speed_range_max":2,"availability_topic":"tele/%topic%/LWT","payload_available":"Online","payload_not_available":"Offline","unique_id":"%deviceid%_%topic%","device":{"cns":[["mac","%macaddr%"]]}} endon

Enable rule with Rule2 1

Alternatively add to Home Assistant configuration fan: section, replace %topic% with your device topic:

- platform: mqtt
    name: "%topic% Fan"
    state_topic: "stat/%topic%/RESULT"
    state_value_template: "{{ value_json.POWER1 }}"
    command_topic: "cmnd/%topic%/POWER1"
    payload_on: "ON"
    payload_off: "OFF"
    percentage_state_topic: "stat/%topic%/speed"
    percentage_command_topic: "cmnd/%topic%/tuyasend4"
    percentage_command_template: "3,{{ value }}"
    speed_range_max: 2
    availability_topic: "tele/%topic%/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"