logo elektroda
logo elektroda
X
logo elektroda

Tuya 5 Speed Fan Controller by TEQOOZ - Home Assistant

marioalmeida  Cool? (+7)
TEQOOZ® Smart Fan Regulator Wi-Fi + Bluetooth Touch Switch (White) | Capacitor Based – No Humming Sound | Tuya & Smart Life App Control | Compatible with Alexa, Google Home, Apple Siri | Glass Finish
This Fan controller is suitable for Indian homes with Roma fitting

Product information
MOBILE APP CONTROL: Apart from physical touch, this switch can also be used from anywhere in the world using “Smart Life” App. Live status of the Fan can also be checked on the App. This switch gives 5 speed options and can operate any type of Fan.
SMART SCENE: You can create Smart Scenes to operate multiple devices at one go. Just add the devices in one group and operate them together. E.g. “Welcome Home” scene to Turn on the Fan & Turn on the Lights, etc.
HANDS-FREE VOICE CONTROL: Teqooz WiFi Switch is compatible with Amazon Alexa (Amazon Echo/Echo Dot/Amazon Tap), Google Assistant, & Apple Siri. So you can control your devices through voice and enjoy hands-free experience.
GLASS FINISH: GREAT LOOKS & Stylish Aesthetics add Glamour to the Décor of the room.
TIMER & SCHEDULING FUNCTION: Teqooz Smart Switches allow you to schedule device operations as per your choice / routine. E.g. Set Fan Speed to Maximum at 4 am. Turn off the Office Fans at 7 pm everyday, etc.


Images of User Manual


Unboxing Images



Smart Life App Images


Technical Specs
Controller MCU: WB3S
TuyaMCU: Unknown
Darlington Transistor Array: ULN2003A

Teardown Images
[img-14]

Preparing to Flash
Download the firmware bin file from here https://github.com/openshwprojects/OpenBK7231T_App, min version 1.11.1
WB3S TX and RX is connected to the TuyaMCU which interfaces during the upload process so need to isolate it. I cut the 3.3v power trace of WB3S and soldered a wire directly to the 3.3V pin of WB3S, Please check the below image


Create a file call autoexec.bat with below content

// start MCU driver
startDriver TuyaMCU

// fan on/off channel
setChannelType 1 toggle

//fan speed channel
setChannelType 3 OffLowestLowMidHighHighest

// child Lock channel
setChannelType 14 toggle

// countdown channel
setChannelType 22 TextField

// remaining timer channel
setChannelType 23 TextField

// link output 1 to channel 1
linkTuyaMCUOutputToChannel 1 1 1

// link output 3 to channel 3
linkTuyaMCUOutputToChannel 3 2 3

// link output 14 to channel 14
linkTuyaMCUOutputToChannel 14 1 14

// link output 22 to channel 22
linkTuyaMCUOutputToChannel 22 2 22

// link output 23 to channel 23
linkTuyaMCUOutputToChannel 23 2 23


Home Assistant Configuration

mqtt:
  fan:
    - name: "obk-livingroom-2 Ceiling Fan"
      unique_id: "1216C29E_1"
      icon: mdi:ceiling-fan
      availability:
        - topic: "obk-livingroom-2/connected"
      state_topic: "obk-livingroom-2/1/get"
      command_topic: "obk-livingroom-2/1/set"
      payload_on: 1
      payload_off: 0
      percentage_state_topic: "obk-livingroom-2/3/get"
      percentage_value_template: >-
        {% if value == '0' %}
        0
        {% elif value == '1' %}
        10
        {% elif value == '2' %}
        30
        {% elif value == '3' %}
        50
        {% elif value == '4' %}
        70
        {% else %}
        100
        {% endif %}
      percentage_command_topic: "obk-livingroom-2/3/set"
      percentage_command_template: >-
        {% if value <= 1 %}
        0
        {% elif value > 1 and value < 20 %}
        1
        {% elif value >= 20 and value < 40 %}
        2
        {% elif value >= 40 and value < 60 %}
        3
        {% elif value >= 60 and value < 80 %}
        4
        {% else %}
        5
        {% endif %}
      qos: 1
      retain: true
  number:
    - name: "obk-livingroom-2 Ceiling Fan Countdown"
      unique_id: "1216C29E_22"
      icon: mdi:cog-counterclockwise
      availability:
        - topic: "obk-livingroom-2/connected"
      state_topic: "obk-livingroom-2/22/get"
      command_topic: "obk-livingroom-2/22/set"
      qos: 1

  switch:
    - name: "obk-livingroom-2 Ceiling Fan Child Lock"
      unique_id: "1216C29E_14"
      icon: mdi:toggle-switch
      availability:
        - topic: "obk-livingroom-2/connected"
      state_topic: "obk-livingroom-2/14/get"
      state_on: 1
      state_off: 0
      command_topic: "obk-livingroom-2/14/set"
      payload_on: 1
      payload_off: 0
      qos: 1
      retain: true

  sensor:
    - name: "obk-livingroom-2 IP"
      unique_id: "1216C29E_IP"
      icon: mdi:ip-network
      availability:
        - topic: "obk-livingroom-2/connected"
      state_topic: "obk-livingroom-2/IP/get"
      qos: 1

switch:
  - platform: template
  switches:
    living_room_ceiling_fan_speed_lowest:
      friendly_name: Lowest
      unique_id: "living_room_ceiling_fan_speed_1"
      icon_template: >-
        mdi:fan-speed-1
      value_template: "{{ is_state('input_number.living_room_ceiling_fan_speed', '1.0') and is_state('fan.obk_livingroom_2_ceiling_fan', 'on') }}"
      turn_on:
        - service: fan.turn_on
          target:
            entity_id: fan.obk_livingroom_2_ceiling_fan
        - service: fan.set_percentage
          data:
            percentage: 10
          target:
            entity_id: fan.obk_livingroom_2_ceiling_fan
      turn_off:
        - service: fan.turn_off
          target:
            entity_id: fan.obk_livingroom_2_ceiling_fan

    living_room_ceiling_fan_speed_low:
      friendly_name: Low
      unique_id: "living_room_ceiling_fan_speed_2"
      icon_template: >-
        mdi:fan-speed-2
      value_template: "{{ is_state('input_number.living_room_ceiling_fan_speed', '2.0') and is_state('fan.obk_livingroom_2_ceiling_fan', 'on') }}"
      turn_on:
        - service: fan.turn_on
          target:
            entity_id: fan.obk_livingroom_2_ceiling_fan
        - service: fan.set_percentage
          data:
            percentage: 30
          target:
            entity_id: fan.obk_livingroom_2_ceiling_fan
      turn_off:
        - service: fan.turn_off
          target:
            entity_id: fan.obk_livingroom_2_ceiling_fan

    living_room_ceiling_fan_speed_med:
      friendly_name: Medium
      unique_id: "living_room_ceiling_fan_speed_3"
      icon_template: >-
        mdi:fan-speed-3
      value_template: "{{ is_state('input_number.living_room_ceiling_fan_speed', '3.0') and is_state('fan.obk_livingroom_2_ceiling_fan', 'on') }}"
      turn_on:
        - service: fan.turn_on
          target:
            entity_id: fan.obk_livingroom_2_ceiling_fan
        - service: fan.set_percentage
          data:
            percentage: 50
          target:
            entity_id: fan.obk_livingroom_2_ceiling_fan
      turn_off:
        - service: fan.turn_off
          target:
            entity_id: fan.obk_livingroom_2_ceiling_fan

    living_room_ceiling_fan_speed_high:
      friendly_name: High
      unique_id: "living_room_ceiling_fan_speed_4"
      icon_template: >-
        mdi:fan
      value_template: "{{ is_state('input_number.living_room_ceiling_fan_speed', '4.0') and is_state('fan.obk_livingroom_2_ceiling_fan', 'on') }}"
      turn_on:
        - service: fan.turn_on
          target:
            entity_id: fan.obk_livingroom_2_ceiling_fan
        - service: fan.set_percentage
          data:
            percentage: 70
          target:
            entity_id: fan.obk_livingroom_2_ceiling_fan
      turn_off:
        - service: fan.turn_off
          target:
            entity_id: fan.obk_livingroom_2_ceiling_fan

    living_room_ceiling_fan_speed_highest:
      friendly_name: Highest
      icon_template: >-
        mdi:fan
      unique_id: "living_room_ceiling_fan_speed_5"
      value_template: "{{ is_state('input_number.living_room_ceiling_fan_speed', '5.0') and is_state('fan.obk_livingroom_2_ceiling_fan', 'on') }}"
      turn_on:
        - service: fan.turn_on
          target:
            entity_id: fan.obk_livingroom_2_ceiling_fan
        - service: fan.set_percentage
          data:
            percentage: 90
          target:
            entity_id: fan.obk_livingroom_2_ceiling_fan
      turn_off:
        - service: fan.turn_off
          target:
            entity_id: fan.obk_livingroom_2_ceiling_fan



Home Assistant Automation

alias: 'Living Room : Capture Ceiling Fan Speed'
description: ''
trigger:
  - platform: mqtt
    topic: obk-livingroom-2/3/get
condition:
  - condition: template
    value_template: '{{ trigger.payload | int > -1 }}'
action:
  - service: input_number.set_value
    data:
      value: '{{ trigger.payload | int }}'
    target:
      entity_id: input_number.living_room_ceiling_fan_speed
mode: restart

Home Assistant Dashboard

About Author
marioalmeida wrote 47 posts with rating 23 . Been with us since 2022 year.

Comments

gemiel 27 Jul 2022 09:58

Try to interpret it and translate it into Polish reality. [Read more]

gulson 27 Jul 2022 12:57

The friend is from India. Thanks for the presentations, good job. [Read more]

tomus2k 27 Jul 2022 13:46

This is a controller intended to control ceiling fans, not bathroom fans (in Polish reality ;-) ) https://obrazki.elektroda.pl/3167439000_1658922105_thumb.jpg [Read more]

ferbulous 29 Jul 2022 04:06

Thanks for this @marioalmeida Does it fit for standard uk switch and how thick is the back plate? Also, does this come with 433mhz remote? Added after 2 [minutes]: I tried that tuya fan controller... [Read more]

p.kaczmarek2 29 Jul 2022 11:07

As far as I know, the QIACHIP Universal WIFI Ceiling Fan Light Remote Control Kit (model: KLCW-110v/220v) recently reviewed by Jennifer has RF remote https://www.elektroda.com/rtvforum/topic3895301.ht... [Read more]

marioalmeida 29 Jul 2022 13:36

No, you would need this kind of fitting which is very common in Indian homes https://obrazki.elektroda.pl/1504783800_1659094476_thumb.jpg No remote [Read more]

ferbulous 04 Aug 2022 10:36

It's just rare to find wifi fan controller with five speed, mostly it's 3 speed like with the sonoff & qiachip [Read more]

DCG 04 Sep 2023 23:01

hey can u help me with pin settings for this device, I just ordered one and will flash Openbeken [Read more]

p.kaczmarek2 05 Sep 2023 08:26

Hello @deepakbluru , for this device you need to create autoexec.bat, do you know how? [Read more]

naveentech907 03 Apr 2024 21:14

how did you come up with the autoexec.bat file [Read more]

p.kaczmarek2 04 Apr 2024 08:00

The procedure of autoexec.bat file scripting for TuyaMCU devices is described in detail here: TuyaMCU flashing, setup and configuration guide - configure dpIDs for Home Assistant [Read more]

gavashkarraju 07 Dec 2024 09:35

Home Assistant Error Configuration warnings Invalid config for 'mqtt' at configuration.yaml, line 14: 'mqtt' is an invalid option for 'mqtt', check: mqtt->0->mqtt [Read more]

p.kaczmarek2 07 Dec 2024 11:23

Didn't they change YAML syntax a bit since the first post was made? [Read more]

gavashkarraju 10 Dec 2024 07:15

i am alter many time still same error https://obrazki.elektroda.pl/3863848300_1733811192_thumb.jpg Added after 1 [minutes]: This is my config OpenBeken Firmware working very well but HA Mqtt... [Read more]

gavashkarraju 21 Dec 2024 20:44

am mqtt code simply way and working very well . Home Assistant Mushroom Fan card use 100%. no error for mqtt yaml check my all screen shots. Once again thankyou for all Openbeken Firmware Team, elektroda,... [Read more]

%}