Code:
esphome:
name: a32-pro
friendly_name: a32-Pro
platformio_options:
board_build.flash_mode: dio
esp32:
board: esp32-s3-devkitc-1
framework:
type: esp-idf
# Enable logging
logger:
hardware_uart: USB_SERIAL_JTAG
# Enable Home Assistant API
api:
# ota:
# password: "5f17bccba50c65f60200db69f1b1ebbe"
# wifi:
# ssid: KinCony
# password: a12345678
# # Enable fallback hotspot (captive portal) in case wifi connection fails
# ap:
# ssid: "A32-Pro Fallback Hotspot"
# password: "25JYfblp8QJP"
# captive_portal:
ethernet:
type: W5500
clk_pin: GPIO42
mosi_pin: GPIO44
miso_pin: GPIO40
cs_pin: GPIO39
interrupt_pin: GPIO41
reset_pin: GPIO43
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
uart:
- id: uart_1
baud_rate: 9600
debug:
direction: BOTH
dummy_receiver: true
after:
timeout: 10ms
tx_pin: 9
rx_pin: 8
- id: uart_tuya
baud_rate: 115200
debug:
direction: BOTH
dummy_receiver: true
after:
timeout: 10ms
tx_pin: 15
rx_pin: 16
- id: uart_sim7600
baud_rate: 115200
debug:
direction: BOTH
dummy_receiver: true
after:
timeout: 10ms
sequence:
- lambda: UARTDebug::log_string(direction, bytes);
tx_pin: 18
rx_pin: 17
switch:
- platform: gpio
pin: 45
name: "LED"
- platform: uart
uart_id: uart_1
name: "RS485 Button"
data: [0x11, 0x22, 0x33, 0x44, 0x55]
- platform: uart
uart_id: uart_sim7600
name: "UART 4G"
data: "AT+CGSN\r\n" # read 4G SIM7600 ID
# - platform: uart
# uart_id: uart_tuya
# name: "UART TUYA2"
# data: [0x55, 0xaa, 0x03, 0x00, 0x00, 0x01, 0x01, 0x04]
- platform: gpio
name: A32 Pro Switch01
pin:
xl9535: xl9535_hub_out1
number: 0
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch02
pin:
xl9535: xl9535_hub_out1
number: 1
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch03
pin:
xl9535: xl9535_hub_out1
number: 2
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch04
pin:
xl9535: xl9535_hub_out1
number: 3
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch05
pin:
xl9535: xl9535_hub_out1
number: 4
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch06
pin:
xl9535: xl9535_hub_out1
number: 5
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch07
pin:
xl9535: xl9535_hub_out1
number: 6
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch08
pin:
xl9535: xl9535_hub_out1
number: 7
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch09
pin:
xl9535: xl9535_hub_out1
number: 10
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch10
pin:
xl9535: xl9535_hub_out1
number: 11
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch11
pin:
xl9535: xl9535_hub_out1
number: 12
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch12
pin:
xl9535: xl9535_hub_out1
number: 13
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch13
pin:
xl9535: xl9535_hub_out1
number: 14
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch14
pin:
xl9535: xl9535_hub_out1
number: 15
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch15
pin:
xl9535: xl9535_hub_out1
number: 16
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch16
pin:
xl9535: xl9535_hub_out1
number: 17
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch17
pin:
xl9535: xl9535_hub_out2
number: 0
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch18
pin:
xl9535: xl9535_hub_out2
number: 1
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch19
pin:
xl9535: xl9535_hub_out2
number: 2
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch20
pin:
xl9535: xl9535_hub_out2
number: 3
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch21
pin:
xl9535: xl9535_hub_out2
number: 4
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch22
pin:
xl9535: xl9535_hub_out2
number: 5
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch23
pin:
xl9535: xl9535_hub_out2
number: 6
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch24
pin:
xl9535: xl9535_hub_out2
number: 7
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch25
pin:
xl9535: xl9535_hub_out2
number: 10
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch26
pin:
xl9535: xl9535_hub_out2
number: 11
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch27
pin:
xl9535: xl9535_hub_out2
number: 12
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch28
pin:
xl9535: xl9535_hub_out2
number: 13
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch29
pin:
xl9535: xl9535_hub_out2
number: 14
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch30
pin:
xl9535: xl9535_hub_out2
number: 15
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch31
pin:
xl9535: xl9535_hub_out2
number: 16
mode: OUTPUT
inverted: true
- platform: gpio
name: A32 Pro Switch32
pin:
xl9535: xl9535_hub_out2
number: 17
mode: OUTPUT
inverted: true
binary_sensor:
- platform: gpio
name: A32 Pro DI01
pin:
xl9535: xl9535_hub_in1
number: 0
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI02
pin:
xl9535: xl9535_hub_in1
number: 1
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI03
pin:
xl9535: xl9535_hub_in1
number: 2
mode: INPUT
inverted: true
- platform: gpio
name: A32 Pro DI04
pin:
xl9535: xl9535_hub_in1
number: 3
mode: INPUT
inverted: 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");