as I said, you have to solder a cable from RST to VCC, nothing more. Otherwise I have this esphome config
substitutions:
devicename: bedroom_aroma_diffuser
name: bedroom-aroma-diffuser
friendly_name: Bedroom Aroma Diffuser
device_description: Asakuki - ESP12F
esphome:
name: ${name}
friendly_name: ${friendly_name}
esp8266:
board: esp01_1m
restore_from_flash: true
# Enable logging
logger:
baud_rate: 0
api:
reboot_timeout: 1h
encryption:
key: ""
ota:
- platform: esphome
password: ""
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "Asakuki-Diffuser"
password: ""
captive_portal:
time:
- platform: sntp
timezone: Europe/Berlin
id: sntp_time
servers:
- 0.pool.ntp.org
- 1.pool.ntp.org
- 2.pool.ntp.org
uart:
baud_rate: 9600
tx_pin: GPIO1
rx_pin: GPIO3
tuya:
id: master_bedroom_aroma_diffuser
button:
- platform: restart
name: Restart
id: ${devicename}_reset
entity_category: diagnostic
- platform: factory_reset
name: Factory Reset
id: ${devicename}_fatory_reset
internal: true
entity_category: diagnostic
- platform: safe_mode
name: Safe Mode Boot
id: ${devicename}_safe_mode_boot
entity_category: diagnostic
text_sensor:
- platform: tuya
name: Selected Color
id: ${devicename}_selected_color
internal: true
sensor_datapoint: 108
on_value:
then:
- lambda: |-
if (x == "00000000000000") {
id(${devicename}_color).publish_state("None");
} else if (x == "ff00000000ffff") {
id(${devicename}_color).publish_state("Bright Red");
} else if (x == "8000000000ff80") {
id(${devicename}_color).publish_state("Dark Red");
} else if (x == "ffff00003cffff") {
id(${devicename}_color).publish_state("Bright Yellow");
} else if (x == "808000003cff80") {
id(${devicename}_color).publish_state("Dark Yellow");
} else if (x == "00ff000078ffff") {
id(${devicename}_color).publish_state("Bright Green");
} else if (x == "0080000078ff80") {
id(${devicename}_color).publish_state("Dark Green");
} else if (x == "00ffff00b4ffff") {
id(${devicename}_color).publish_state("Bright Cyan");
} else if (x == "00808000b4ff80") {
id(${devicename}_color).publish_state("Dark Cyan");
} else if (x == "0000ff00f0ffff") {
id(${devicename}_color).publish_state("Bright Blue");
} else if (x == "00008000f0ff80") {
id(${devicename}_color).publish_state("Dark Blue");
} else if (x == "ff00ff012cffff") {
id(${devicename}_color).publish_state("Bright Magenta");
} else if (x == "800080012cff80") {
id(${devicename}_color).publish_state("Dark Magenta");
}
fan:
- platform: tuya
name: "Diffuseur fan"
id: ${devicename}_diffuser_fan
switch_datapoint: 1
speed_datapoint: 103
speed_count: 2
binary_sensor:
# sense water alert. 1 = fine. 0 = Out of water
- platform: tuya
name: Out of water
id: ${devicename}_out_of_water
sensor_datapoint: 12
device_class: safety
filters:
- invert:
- platform: status
name: Status
switch:
- platform: tuya
name: Diffuser
id: ${devicename}_diffuser
switch_datapoint: 1
light:
- platform: tuya
name: LED
id: ${devicename}_led
switch_datapoint: 11
dimmer_datapoint: 111
color_type: RGBHSV
color_datapoint: 108
select:
- platform: tuya
name: Light Mode
id: ${devicename}_light_mode
enum_datapoint: 110
options:
0: RGB Cycle
1: Static Color
2: White
- platform: tuya
name: Mist Strength
id: ${devicename}_mist_strength
enum_datapoint: 103
options:
0: low
1: high
- platform: template
name: Color
id: ${devicename}_color
optimistic: true
options:
- None
- Bright Red
- Dark Red
- Bright Yellow
- Dark Yellow
- Bright Green
- Dark Green
- Bright Cyan
- Dark Cyan
- Bright Blue
- Dark Blue
- Bright Magenta
- Dark Magenta
initial_option: None
on_value:
then:
- if:
condition:
lambda: |-
return x != "None";
then:
- light.turn_on: ${devicename}_led
- lambda: |-
if (x == "Bright Red") {
id(master_bedroom_aroma_diffuser).set_string_datapoint_value(108, "ff00000000ffff");
} else if (x == "Dark Red") {
id(master_bedroom_aroma_diffuser).set_string_datapoint_value(108, "8000000000ff80");
} else if (x == "Bright Yellow") {
id(master_bedroom_aroma_diffuser).set_string_datapoint_value(108, "ffff00003cffff");
} else if (x == "Dark Yellow") {
id(master_bedroom_aroma_diffuser).set_string_datapoint_value(108, "808000003cff80");
} else if (x == "Bright Green") {
id(master_bedroom_aroma_diffuser).set_string_datapoint_value(108, "00ff000078ffff");
} else if (x == "Dark Green") {
id(master_bedroom_aroma_diffuser).set_string_datapoint_value(108, "0080000078ff80");
} else if (x == "Bright Cyan") {
id(master_bedroom_aroma_diffuser).set_string_datapoint_value(108, "00ffff00b4ffff");
} else if (x == "Dark Cyan") {
id(master_bedroom_aroma_diffuser).set_string_datapoint_value(108, "00808000b4ff80");
} else if (x == "Bright Blue") {
id(master_bedroom_aroma_diffuser).set_string_datapoint_value(108, "0000ff00f0ffff");
} else if (x == "Dark Blue") {
id(master_bedroom_aroma_diffuser).set_string_datapoint_value(108, "00008000f0ff80");
} else if (x == "Bright Magenta") {
id(master_bedroom_aroma_diffuser).set_string_datapoint_value(108, "ff00ff012cffff");
} else if (x == "Dark Magenta") {
id(master_bedroom_aroma_diffuser).set_string_datapoint_value(108, "800080012cff80");
}
else:
- lambda: |-
id(master_bedroom_aroma_diffuser).set_string_datapoint_value(108, "00000000000000");
- light.turn_off: ${devicename}_led
status_led:
pin:
number: GPIO4
inverted: true