Code:
esphome:
name: a32-pro-arduino
friendly_name: a32-Pro-arduino
platformio_options:
board_build.extra_flags:
# WIFI_CONTROL_SELF_MODE = 0
# WIFI_CONTROL_SELF_MODE = 1
- "-DWIFI_CONTROL_SELF_MODE=0"
external_components:
- source:
type: git
url: https://github.com/hzkincony/esphome-tuya-wifi-mcu
ref: v1.1.0
esp32:
board: esp32-s3-devkitc-1
framework:
type: arduino
# Enable logging
# logger:
# Enable Home Assistant API
api:
encryption:
key: "fBpihEYPVlfKaE4ZIcY0uRcJ134u7DBKzzskk994+Lw="
ethernet:
type: W5500
clk_pin: GPIO42
mosi_pin: GPIO44
miso_pin: GPIO40
cs_pin: GPIO39
interrupt_pin: GPIO41
reset_pin: GPIO43
uart:
tx_pin: 15
rx_pin: 16
id: tuya_mcu_uart
baud_rate: 9600
tuya_wifi_mcu:
# tuya mcu product id
product_id: fwy7fk4mzay3kern
uart_id: tuya_mcu_uart
wifi_reset_pin: 21
wifi_led_pin: 45
i2c:
- id: bus_a
sda: 11
scl: 10
scan: true
frequency: 400kHz
xl9535:
- id: xl9535_hub_out1 # for output channel 1-16
address: 0x21
- id: xl9535_hub_out2 # for output channel 17-32
address: 0x22
- id: xl9535_hub_in1 # for input channel 1-16
address: 0x24
- id: xl9535_hub_in2 # for input channel 17-32
address: 0x25
pcf8574:
- id: 'pcf8574_in_3' # for input channel 33-40
address: 0x23
switch:
- platform: gpio
pin: 45
name: "LED"
- platform: gpio
name: A32 Pro Switch01
id: "a32_pro_switch01"
pin:
xl9535: xl9535_hub_out1
number: 0
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch01 Tuya
dp_id: 101
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch01"
- platform: gpio
name: A32 Pro Switch02
id: "a32_pro_switch02"
pin:
xl9535: xl9535_hub_out1
number: 1
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch02 Tuya
dp_id: 102
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch02"
- platform: gpio
name: A32 Pro Switch03
id: "a32_pro_switch03"
pin:
xl9535: xl9535_hub_out1
number: 2
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch03 Tuya
dp_id: 103
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch03"
- platform: gpio
name: A32 Pro Switch04
id: "a32_pro_switch04"
pin:
xl9535: xl9535_hub_out1
number: 3
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch04 Tuya
dp_id: 104
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch04"
- platform: gpio
name: A32 Pro Switch05
id: "a32_pro_switch05"
pin:
xl9535: xl9535_hub_out1
number: 4
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch05 Tuya
dp_id: 105
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch05"
- platform: gpio
name: A32 Pro Switch06
id: "a32_pro_switch06"
pin:
xl9535: xl9535_hub_out1
number: 5
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch06 Tuya
dp_id: 106
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch06"
- platform: gpio
name: A32 Pro Switch07
id: "a32_pro_switch07"
pin:
xl9535: xl9535_hub_out1
number: 6
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch07 Tuya
dp_id: 107
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch07"
- platform: gpio
name: A32 Pro Switch08
id: "a32_pro_switch08"
pin:
xl9535: xl9535_hub_out1
number: 7
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch08 Tuya
dp_id: 108
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch08"
- platform: gpio
name: A32 Pro Switch09
id: "a32_pro_switch09"
pin:
xl9535: xl9535_hub_out1
number: 10
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch09 Tuya
dp_id: 109
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch09"
- platform: gpio
name: A32 Pro Switch10
id: "a32_pro_switch10"
pin:
xl9535: xl9535_hub_out1
number: 11
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch10 Tuya
dp_id: 110
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch10"
- platform: gpio
name: A32 Pro Switch11
id: "a32_pro_switch11"
pin:
xl9535: xl9535_hub_out1
number: 12
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch11 Tuya
dp_id: 111
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch11"
- platform: gpio
name: A32 Pro Switch12
id: "a32_pro_switch12"
pin:
xl9535: xl9535_hub_out1
number: 13
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch12 Tuya
dp_id: 112
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch12"
- platform: gpio
name: A32 Pro Switch13
id: "a32_pro_switch13"
pin:
xl9535: xl9535_hub_out1
number: 14
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch13 Tuya
dp_id: 113
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch13"
- platform: gpio
name: A32 Pro Switch14
id: "a32_pro_switch14"
pin:
xl9535: xl9535_hub_out1
number: 15
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch14 Tuya
dp_id: 114
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch14"
- platform: gpio
name: A32 Pro Switch15
id: "a32_pro_switch15"
pin:
xl9535: xl9535_hub_out1
number: 16
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch15 Tuya
dp_id: 115
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch15"
- platform: gpio
name: A32 Pro Switch16
id: "a32_pro_switch16"
pin:
xl9535: xl9535_hub_out1
number: 17
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch16 Tuya
dp_id: 116
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch16"
- platform: gpio
name: A32 Pro Switch17
id: "a32_pro_switch17"
pin:
xl9535: xl9535_hub_out2
number: 0
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch17 Tuya
dp_id: 117
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch17"
- platform: gpio
name: A32 Pro Switch18
id: "a32_pro_switch18"
pin:
xl9535: xl9535_hub_out2
number: 1
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch18 Tuya
dp_id: 118
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch18"
- platform: gpio
name: A32 Pro Switch19
id: "a32_pro_switch19"
pin:
xl9535: xl9535_hub_out2
number: 2
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch19 Tuya
dp_id: 119
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch19"
- platform: gpio
name: A32 Pro Switch20
id: "a32_pro_switch20"
pin:
xl9535: xl9535_hub_out2
number: 3
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch20 Tuya
dp_id: 120
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch20"
- platform: gpio
name: A32 Pro Switch21
id: "a32_pro_switch21"
pin:
xl9535: xl9535_hub_out2
number: 4
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch21 Tuya
dp_id: 121
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch21"
- platform: gpio
name: A32 Pro Switch22
id: "a32_pro_switch22"
pin:
xl9535: xl9535_hub_out2
number: 5
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch22 Tuya
dp_id: 122
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch22"
- platform: gpio
name: A32 Pro Switch23
id: "a32_pro_switch23"
pin:
xl9535: xl9535_hub_out2
number: 6
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch23 Tuya
dp_id: 123
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch23"
- platform: gpio
name: A32 Pro Switch24
id: "a32_pro_switch24"
pin:
xl9535: xl9535_hub_out2
number: 7
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch24 Tuya
dp_id: 124
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch24"
- platform: gpio
name: A32 Pro Switch25
id: "a32_pro_switch25"
pin:
xl9535: xl9535_hub_out2
number: 10
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch25 Tuya
dp_id: 125
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch25"
- platform: gpio
name: A32 Pro Switch26
id: "a32_pro_switch26"
pin:
xl9535: xl9535_hub_out2
number: 11
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch26 Tuya
dp_id: 126
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch26"
- platform: gpio
name: A32 Pro Switch27
id: "a32_pro_switch27"
pin:
xl9535: xl9535_hub_out2
number: 12
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch27 Tuya
dp_id: 127
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch27"
- platform: gpio
name: A32 Pro Switch28
id: "a32_pro_switch28"
pin:
xl9535: xl9535_hub_out2
number: 13
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch28 Tuya
dp_id: 128
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch28"
- platform: gpio
name: A32 Pro Switch29
id: "a32_pro_switch29"
pin:
xl9535: xl9535_hub_out2
number: 14
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch29 Tuya
dp_id: 129
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch29"
- platform: gpio
name: A32 Pro Switch30
id: "a32_pro_switch30"
pin:
xl9535: xl9535_hub_out2
number: 15
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch30 Tuya
dp_id: 130
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch30"
- platform: gpio
name: A32 Pro Switch31
id: "a32_pro_switch31"
pin:
xl9535: xl9535_hub_out2
number: 16
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch31 Tuya
dp_id: 131
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch31"
- platform: gpio
name: A32 Pro Switch32
id: "a32_pro_switch32"
pin:
xl9535: xl9535_hub_out2
number: 17
mode: OUTPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro Switch32 Tuya
dp_id: 132
# hide from homeassistant ui
internal: true
# bind other switch, sync state
bind_switch_id: "a32_pro_switch32"
binary_sensor:
- platform: gpio
name: A32 Pro DI01
id: "a32_pro_di01"
pin:
xl9535: xl9535_hub_in1
number: 0
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro DI01 Tuya
dp_id: 133
bind_binary_sensor_id: a32_pro_di01
internal: true
- platform: gpio
name: A32 Pro DI02
id: "a32_pro_di02"
pin:
xl9535: xl9535_hub_in1
number: 1
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro DI02 Tuya
dp_id: 134
bind_binary_sensor_id: a32_pro_di02
internal: true
- platform: gpio
name: A32 Pro DI03
id: "a32_pro_di03"
pin:
xl9535: xl9535_hub_in1
number: 2
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro DI03 Tuya
dp_id: 135
bind_binary_sensor_id: a32_pro_di03
internal: true
- platform: gpio
name: A32 Pro DI04
id: "a32_pro_di04"
pin:
xl9535: xl9535_hub_in1
number: 3
mode: INPUT
inverted: true
- platform: tuya_wifi_mcu
name: A32 Pro DI04 Tuya
dp_id: 136
bind_binary_sensor_id: a32_pro_di04
internal: true
- platform: gpio
name: A32 Pro DI05
pin:
xl9535: xl9535_hub_in1
number: 4
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI06
pin:
xl9535: xl9535_hub_in1
number: 5
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI07
pin:
xl9535: xl9535_hub_in1
number: 6
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI08
pin:
xl9535: xl9535_hub_in1
number: 7
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI09
pin:
xl9535: xl9535_hub_in1
number: 10
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI10
pin:
xl9535: xl9535_hub_in1
number: 11
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI11
pin:
xl9535: xl9535_hub_in1
number: 12
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI12
pin:
xl9535: xl9535_hub_in1
number: 13
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI13
pin:
xl9535: xl9535_hub_in1
number: 14
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI14
pin:
xl9535: xl9535_hub_in1
number: 15
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI15
pin:
xl9535: xl9535_hub_in1
number: 16
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI16
pin:
xl9535: xl9535_hub_in1
number: 17
mode: INPUT
inverted: true
- platform: gpio
name: "A32 Pro TMP1"
pin:
number: 1
inverted: true
- platform: gpio
name: "A32 Pro TMP2"
pin:
number: 2
inverted: true
- platform: gpio
name: "A32 Pro DL"
pin:
number: 0
inverted: true
- platform: gpio
name: "A32 Pro DTUYA"
pin:
number: 21
inverted: true
- platform: gpio
name: A32 Pro DI17
pin:
xl9535: xl9535_hub_in2
number: 0
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI18
pin:
xl9535: xl9535_hub_in2
number: 1
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI19
pin:
xl9535: xl9535_hub_in2
number: 2
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI20
pin:
xl9535: xl9535_hub_in2
number: 3
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI21
pin:
xl9535: xl9535_hub_in2
number: 4
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI22
pin:
xl9535: xl9535_hub_in2
number: 5
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI23
pin:
xl9535: xl9535_hub_in2
number: 6
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI24
pin:
xl9535: xl9535_hub_in2
number: 7
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI25
pin:
xl9535: xl9535_hub_in2
number: 10
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI26
pin:
xl9535: xl9535_hub_in2
number: 11
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI27
pin:
xl9535: xl9535_hub_in2
number: 12
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI28
pin:
xl9535: xl9535_hub_in2
number: 13
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI29
pin:
xl9535: xl9535_hub_in2
number: 14
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI30
pin:
xl9535: xl9535_hub_in2
number: 15
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI31
pin:
xl9535: xl9535_hub_in2
number: 16
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI32
pin:
xl9535: xl9535_hub_in2
number: 17
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI33
pin:
pcf8574: pcf8574_in_3
number: 0
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI34
pin:
pcf8574: pcf8574_in_3
number: 1
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI35
pin:
pcf8574: pcf8574_in_3
number: 2
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI36
pin:
pcf8574: pcf8574_in_3
number: 3
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI37
pin:
pcf8574: pcf8574_in_3
number: 4
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI38
pin:
pcf8574: pcf8574_in_3
number: 5
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI39
pin:
pcf8574: pcf8574_in_3
number: 6
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI40
pin:
pcf8574: pcf8574_in_3
number: 7
mode: INPUT
inverted: true
gp8403:
id: my_gp8403
voltage: 10V
output:
- platform: gp8403
id: gp8403_output_1
gp8403_id: my_gp8403
channel: 0
- platform: gp8403
id: gp8403_output_2
gp8403_id: my_gp8403
channel: 1
light:
- platform: monochromatic
name: "A32 Pro-DAC-0"
output: gp8403_output_1
- platform: monochromatic
name: "A32 Pro-DAC-1"
output: gp8403_output_2
sensor:
- platform: adc
pin: 7
name: "A32 Pro A1 Voltage"
update_interval: 5s
attenuation: 11db
filters:
- lambda:
if (x >= 3.11) {
return x * 1.60256;
} else if (x <= 0.15) {
return 0;
} else {
return x * 1.51;
}
- platform: adc
pin: 6
name: "A32 Pro A2 Voltage"
update_interval: 5s
attenuation: 11db
filters:
# - multiply: 1.51515
- lambda:
if (x >= 3.11) {
return x * 1.60256;
} else if (x <= 0.15) {
return 0;
} else {
return x * 1.51;
}
- platform: adc
pin: 5
name: "A32 Pro A3 Current"
update_interval: 5s
unit_of_measurement: mA
attenuation: 11db
filters:
- multiply: 6.66666666
- platform: adc
pin: 4
name: "A32 Pro A4 Current"
update_interval: 5s
unit_of_measurement: mA
attenuation: 11db
filters:
- multiply: 6.66666666
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), "A32 Pro");