07-31-2025, 06:51 AM
Code:
esphome:
name: b24
friendly_name: b24
platformio_options:
board_build.extra_flags:
# WIFI_CONTROL_SELF_MODE = 0
# WIFI_CONTROL_SELF_MODE = 1
- "-DWIFI_CONTROL_SELF_MODE=1"
esp32:
board: esp32-s3-devkitc-1
framework:
type: arduino
external_components:
- source:
type: git
url: https://github.com/hzkincony/esphome-tuya-wifi-mcu
ref: v1.1.0
# Enable logging
#logger:
# Enable Home Assistant API
api:
ethernet:
type: W5500
clk_pin: GPIO1
mosi_pin: GPIO2
miso_pin: GPIO41
cs_pin: GPIO42
interrupt_pin: GPIO43
reset_pin: GPIO44
uart:
- id: uart_1 #RS485
baud_rate: 9600
debug:
direction: BOTH
dummy_receiver: true
after:
timeout: 10ms
tx_pin: 39
rx_pin: 38
- id: tuya_mcu_uart
tx_pin: GPIO16
rx_pin: GPIO17
baud_rate: 9600
i2c:
- id: bus_a
sda: 8
scl: 18
scan: true
frequency: 400kHz
pcf8574:
- id: 'pcf8574_hub_in_1' # for input channel 1-16
i2c_id: bus_a
address: 0x22
pcf8575: true
- id: 'pcf8574_hub_in_out_1' # for digital input channel 17-24 & ouptut 1-8
i2c_id: bus_a
address: 0x25
pcf8575: true
- id: 'pcf8574_hub_out_1' # for output channel 9-24
i2c_id: bus_a
address: 0x24
pcf8575: true
tuya_wifi_mcu:
# tuya mcu product id
product_id: vyznobv3bahs2pwl
uart_id: tuya_mcu_uart
wifi_reset_pin: 28
wifi_led_pin: 16
binary_sensor:
- platform: gpio
name: "b24-input01"
id: "b24_input01"
pin:
pcf8574: pcf8574_hub_in_1
number: 8
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-input1-tuya
dp_id: 125
bind_binary_sensor_id: b24_input01
internal: true
- platform: gpio
name: "b24-input02"
id: "b24_input02"
pin:
pcf8574: pcf8574_hub_in_1
number: 9
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-input2-tuya
dp_id: 126
bind_binary_sensor_id: b24_input02
internal: true
- platform: gpio
name: "b24-input03"
id: "b24_input03"
pin:
pcf8574: pcf8574_hub_in_1
number: 10
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-input3-tuya
dp_id: 127
bind_binary_sensor_id: b24_input03
internal: true
- platform: gpio
name: "b24-input04"
id: "b24_input04"
pin:
pcf8574: pcf8574_hub_in_1
number: 11
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-input4-tuya
dp_id: 128
bind_binary_sensor_id: b24_input04
internal: true
- platform: gpio
name: "b24-input05"
id: "b24_input05"
pin:
pcf8574: pcf8574_hub_in_1
number: 12
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-input5-tuya
dp_id: 129
bind_binary_sensor_id: b24_input05
internal: true
- platform: gpio
name: "b24-input06"
id: "b24_input06"
pin:
pcf8574: pcf8574_hub_in_1
number: 13
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-input6-tuya
dp_id: 130
bind_binary_sensor_id: b24_input06
internal: true
- platform: gpio
name: "b24-input07"
id: "b24_input07"
pin:
pcf8574: pcf8574_hub_in_1
number: 14
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-input7-tuya
dp_id: 131
bind_binary_sensor_id: b24_input07
internal: true
- platform: gpio
name: "b24-input08"
id: "b24_input08"
pin:
pcf8574: pcf8574_hub_in_1
number: 15
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-input8-tuya
dp_id: 132
bind_binary_sensor_id: b24_input08
internal: true
- platform: gpio
name: "b24-input09"
id: "b24_input09"
pin:
pcf8574: pcf8574_hub_in_1
number: 0
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-input9-tuya
dp_id: 133
bind_binary_sensor_id: b24_input09
internal: true
- platform: gpio
name: "b24-input10"
id: "b24_input10"
pin:
pcf8574: pcf8574_hub_in_1
number: 1
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-input10-tuya
dp_id: 134
bind_binary_sensor_id: b24_input10
internal: true
- platform: gpio
name: "b24-input11"
id: "b24_input11"
pin:
pcf8574: pcf8574_hub_in_1
number: 2
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-input11-tuya
dp_id: 135
bind_binary_sensor_id: b24_input11
internal: true
- platform: gpio
name: "b24-input12"
id: "b24_input12"
pin:
pcf8574: pcf8574_hub_in_1
number: 3
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-input12-tuya
dp_id: 136
bind_binary_sensor_id: b24_input12
internal: true
- platform: gpio
name: "b24-input13"
id: "b24_input13"
pin:
pcf8574: pcf8574_hub_in_1
number: 4
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-input13-tuya
dp_id: 137
bind_binary_sensor_id: b24_input13
internal: true
- platform: gpio
name: "b24-input14"
id: "b24_input14"
pin:
pcf8574: pcf8574_hub_in_1
number: 5
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-input14-tuya
dp_id: 138
bind_binary_sensor_id: b24_input14
internal: true
- platform: gpio
name: "b24-input15"
id: "b24_input15"
pin:
pcf8574: pcf8574_hub_in_1
number: 6
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-input15-tuya
dp_id: 139
bind_binary_sensor_id: b24_input15
internal: true
- platform: gpio
name: "b24-input16"
id: "b24_input16"
pin:
pcf8574: pcf8574_hub_in_1
number: 7
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-input16-tuya
dp_id: 140
bind_binary_sensor_id: b24_input16
internal: true
- platform: gpio
name: "b24-input17"
id: "b24_input17"
pin:
pcf8574: pcf8574_hub_in_out_1
number: 0
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-input17-tuya
dp_id: 141
bind_binary_sensor_id: b24_input17
internal: true
- platform: gpio
name: "b24-input18"
id: "b24_input18"
pin:
pcf8574: pcf8574_hub_in_out_1
number: 1
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-input18-tuya
dp_id: 142
bind_binary_sensor_id: b24_input18
internal: true
- platform: gpio
name: "b24-input19"
id: "b24_input19"
pin:
pcf8574: pcf8574_hub_in_out_1
number: 2
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-input19-tuya
dp_id: 143
bind_binary_sensor_id: b24_input19
internal: true
- platform: gpio
name: "b24-input20"
id: "b24_input20"
pin:
pcf8574: pcf8574_hub_in_out_1
number: 3
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-input20-tuya
dp_id: 144
bind_binary_sensor_id: b24_input20
internal: true
- platform: gpio
name: "b24-input21"
id: "b24_input21"
pin:
pcf8574: pcf8574_hub_in_out_1
number: 4
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-input21-tuya
dp_id: 145
bind_binary_sensor_id: b24_input21
internal: true
- platform: gpio
name: "b24-input22"
id: "b24_input22"
pin:
pcf8574: pcf8574_hub_in_out_1
number: 5
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-input22-tuya
dp_id: 146
bind_binary_sensor_id: b24_input22
internal: true
- platform: gpio
name: "b24-input23"
id: "b24_input23"
pin:
pcf8574: pcf8574_hub_in_out_1
number: 6
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-input23-tuya
dp_id: 147
bind_binary_sensor_id: b24_input23
internal: true
- platform: gpio
name: "b24-input24"
id: "b24_input24"
pin:
pcf8574: pcf8574_hub_in_out_1
number: 7
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-input24-tuya
dp_id: 148
bind_binary_sensor_id: b24_input24
internal: true
##pull-up resistance on PCB
- platform: gpio
name: "b24-W1-io48"
pin:
number: 48
inverted: true
- platform: gpio
name: "b24-W1-io47"
pin:
number: 47
inverted: true
- platform: gpio
name: "b24-W1-io40"
pin:
number: 40
inverted: true
- platform: gpio
name: "b24-W1-io7"
pin:
number: 7
inverted: true
## without resistance on PCB
- platform: gpio
name: "b24-W1-io13"
pin:
number: 13
inverted: false
- platform: gpio
name: "b24-W1-io14"
pin:
number: 14
inverted: false
- platform: gpio
name: "b24-W1-io21"
pin:
number: 21
inverted: false
- platform: gpio
name: "b24-W1-io0"
pin:
number: 0
inverted: false
switch:
- platform: gpio
name: "b24-output01"
id: "b24_output01"
pin:
pcf8574: pcf8574_hub_in_out_1
number: 8
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-output1-tuya
dp_id: 101
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "b24_output01"
- platform: gpio
name: "b24-output02"
id: "b24_output02"
pin:
pcf8574: pcf8574_hub_in_out_1
number: 9
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-output2-tuya
dp_id: 102
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "b24_output02"
- platform: gpio
name: "b24-output03"
id: "b24_output03"
pin:
pcf8574: pcf8574_hub_in_out_1
number: 10
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-output3-tuya
dp_id: 103
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "b24_output03"
- platform: gpio
name: "b24-output04"
id: "b24_output04"
pin:
pcf8574: pcf8574_hub_in_out_1
number: 11
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-output4-tuya
dp_id: 104
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "b24_output04"
- platform: gpio
name: "b24-output05"
id: "b24_output05"
pin:
pcf8574: pcf8574_hub_in_out_1
number: 12
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-output5-tuya
dp_id: 105
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "b24_output05"
- platform: gpio
name: "b24-output06"
id: "b24_output06"
pin:
pcf8574: pcf8574_hub_in_out_1
number: 13
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-output6-tuya
dp_id: 106
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "b24_output06"
- platform: gpio
name: "b24-output07"
id: "b24_output07"
pin:
pcf8574: pcf8574_hub_in_out_1
number: 14
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-output7-tuya
dp_id: 107
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "b24_output07"
- platform: gpio
name: "b24-output08"
id: "b24_output08"
pin:
pcf8574: pcf8574_hub_in_out_1
number: 15
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-output8-tuya
dp_id: 108
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "b24_output08"
- platform: gpio
name: "b24-output09"
id: b24_output09
pin:
pcf8574: pcf8574_hub_out_1
number: 0
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-output9-tuya
dp_id: 109
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "b24_output09"
- platform: gpio
name: "b24-output10"
id: b24_output10
pin:
pcf8574: pcf8574_hub_out_1
number: 1
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-output10-tuya
dp_id: 110
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "b24_output10"
- platform: gpio
name: "b24-output11"
id: b24_output11
pin:
pcf8574: pcf8574_hub_out_1
number: 2
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-output11-tuya
dp_id: 111
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "b24_output11"
- platform: gpio
name: "b24-output12"
id: b24_output12
pin:
pcf8574: pcf8574_hub_out_1
number: 3
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-output12-tuya
dp_id: 112
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "b24_output12"
- platform: gpio
name: "b24-output13"
id: b24_output13
pin:
pcf8574: pcf8574_hub_out_1
number: 4
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-output13-tuya
dp_id: 113
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "b24_output13"
- platform: gpio
name: "b24-output14"
id: b24_output14
pin:
pcf8574: pcf8574_hub_out_1
number: 5
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-output14-tuya
dp_id: 114
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "b24_output14"
- platform: gpio
name: "b24-output15"
id: b24_output15
pin:
pcf8574: pcf8574_hub_out_1
number: 6
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-output15-tuya
dp_id: 115
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "b24_output15"
- platform: gpio
name: "b24-output16"
id: b24_output16
pin:
pcf8574: pcf8574_hub_out_1
number: 7
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-output16-tuya
dp_id: 116
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "b24_output16"
- platform: gpio
name: "b24-output17"
id: b24_output17
pin:
pcf8574: pcf8574_hub_out_1
number: 8
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-output17-tuya
dp_id: 117
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "b24_output17"
- platform: gpio
name: "b24-output18"
id: b24_output18
pin:
pcf8574: pcf8574_hub_out_1
number: 9
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-output18-tuya
dp_id: 118
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "b24_output18"
- platform: gpio
name: "b24-output19"
id: b24_output19
pin:
pcf8574: pcf8574_hub_out_1
number: 10
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-output19-tuya
dp_id: 119
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "b24_output19"
- platform: gpio
name: "b24-output20"
id: b24_output20
pin:
pcf8574: pcf8574_hub_out_1
number: 11
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-output20-tuya
dp_id: 120
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "b24_output20"
- platform: gpio
name: "b24-output21"
id: b24_output21
pin:
pcf8574: pcf8574_hub_out_1
number: 12
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-output21-tuya
dp_id: 121
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "b24_output21"
- platform: gpio
name: "b24-output22"
id: b24_output22
pin:
pcf8574: pcf8574_hub_out_1
number: 13
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-output22-tuya
dp_id: 122
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "b24_output22"
- platform: gpio
name: "b24-output23"
id: b24_output23
pin:
pcf8574: pcf8574_hub_out_1
number: 14
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-output23-tuya
dp_id: 123
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "b24_output23"
- platform: gpio
name: "b24-output24"
id: b24_output24
pin:
pcf8574: pcf8574_hub_out_1
number: 15
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: b24-output24-tuya
dp_id: 124
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "b24_output24"
- platform: uart
uart_id: uart_1
name: "RS485 Button"
data: [0x11, 0x22, 0x33, 0x44, 0x55]
ads1115:
- address: 0x48
sensor:
- platform: ads1115
multiplexer: 'A0_GND'
gain: 6.144
resolution: 16_BITS
name: "ADS1115 Channel A0-GND"
update_interval: 5s
- platform: ads1115
multiplexer: 'A1_GND'
gain: 6.144
name: "ADS1115 Channel A1-GND"
update_interval: 5s
- platform: ads1115
multiplexer: 'A2_GND'
gain: 6.144
name: "ADS1115 Channel A2-GND"
update_interval: 5s
- platform: ads1115
multiplexer: 'A3_GND'
gain: 6.144
name: "ADS1115 Channel A3-GND"
update_interval: 5s
web_server:
port: 80
font:
- file: "gfonts://Roboto"
id: roboto
size: 20
display:
- platform: ssd1306_i2c
i2c_id: bus_a
model: "SSD1306 128x64"
address: 0x3C
lambda: |-
it.printf(0, 0, id(roboto), "KinCony B24");
B24-HA-with-Tuya.txt (Size: 19.26 KB / Downloads: 102)
YouTube: https://www.youtube.com/c/KinCony
Online Store: https://shop.kincony.com
Alibaba Store: https://kincony.en.alibaba.com/
Online Store: https://shop.kincony.com
Alibaba Store: https://kincony.en.alibaba.com/

