 
  
    
  Available from:
      
      
    Amazon.com
    
    Aliexpress.com
    
    
    
    
    
    
    
    
    
    
    
    
    
| 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":"GD-30W","GPIO":[0,2272,0,2304,0,0,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":54}Please read TuyaMCU article to understand the terminology and configuration process.
This configuration should work on most other diffusers using same dpId structure.
This device is identified in TuyaMCU as MCU Product ID: uwP5ueRSh5k5Ccuw1.0.0
Functions
dpID 1 device power: 0 = off / 1 = on  
dpID 11 light power: 0 = off / 1 = on  
dpID 12 error notification: 0 = ok / 1 = error
dpID 13 countdown mode options: 0 = off / 1 = 1hr / 2 = 3hr not needed in Tasmota, use Timer feature instead  
dpID 14 countdown status: reports value of 0…360 minutes not needed with Tasmota, use Timer feature instead  
dpID 103 mist strength: 0 = low / 1 = high  
dpID 108 light color: 14 char value in hex (set with TuyaRGB 3)  
dpID 110 light mode: 0 = rgb_cycle / 1 = color / 2 = white  
dpID 111 light dimmer works in color and white mode only it is important to define ‘DimmerRange 1,255’
Configuration
After applying the template and configuring Wi-Fi and MQTT issue
Backlog TuyaMCU 11,1; TuyaMCU 12,11; TuyaMCU 21,111; TuyaMCU 24,108; TuyaMCU 61,103; TuyaMCU 62,110
After a restart issue the rest of configurations:
Backlog TuyaRGB 3; DimmerRange 0,255; TuyaEnumList 1,1; TuyaEnumList 2,2; Rule0 1
Rules used to prevent the device going into countdown mode (f.e. using on device controls) and complete MCU status update on restart. Second rule turns on RGB cycle mode instead of using Tasmota light schemes which don’t work with this device.
Rule1 on tuyareceived#dptype4id13!=0 do tuyasend4 13,0 endon on scheme#data!=0 do backlog0 scheme 0; tuyaenum2 0 endon
Label webUI buttons and set friendly names for power outputs:
Backlog WebButton1 Diffuser; WebButton2 Light; FriendlyName1 Diffuser Fan; FriendlyName2 Diffuser Light 
What you get
- Power1turns the diffuser on or off in stored mist strength mode as device power status
- Power2controls the light as an RGB Light.
- TuyaEnum1is for mist strength status and control:- 0for low /- 1for high
- TuyaEnum2is for light mode status and control:- 0for RGB cycle /- 1for solid color /- 2for solid white
Long press on device’s power button initiates Tasmota’s Wi-Fi config
Home Assistant configuration
Use blueprint import button then create an automation from the blueprint which will send MQTT discovery payloads to Home Assistant. New entities should appear under the same Device Card in Tasmota integration.
First we need to create a ruleset to send data to specific topics used in HA configurations (NOTE: verify that dpId2 is used for error reporting and id103 for mist strenght. If not change to the right number) :
Rule2 on tuyareceived#dptype5id12 do publish stat/%topic%/error %value% endon on tuyareceived#dptype4id103==1 do publish stat/%topic%/fanmode high endon on tuyareceived#dptype4id103==0 do publish stat/%topic%/fanmode low endon
Editing configuration.yaml
fan:
  - platform: mqtt
    name: "Diffuser"
    state_topic: "stat/%topic%/RESULT"
    state_value_template: "{% if value_json.POWER1 is defined %}{{ value_json.POWER1 }}{% endif%}"
    command_topic: "cmnd/%topic%/POWER1"
    preset_modes:
    -  "high"
    -  "low"
    preset_mode_state_topic: "stat/%topic%/fanmode"
    preset_mode_command_topic: "cmnd/%topic%/tuyaenum1"
    preset_mode_command_template: '{{ 1 if value == "high" else 0 }}'
    availability_topic: "tele/%topic%/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
binary_sensor:
  - platform: mqtt
    name: "Difuser Error"
    state_topic: "stat/%topic%/error"
    value_template: "{{ 'ON' if value != '0X00' else 'OFF' }}"
    device_class: problem
    availability_topic: "tele/%topic%/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
PCB

