I did the same thinking as you, and although I physically liked the power strip with a display, I changed the program. Now I use an ESP32 to control the six relays (everything works perfectly), while the ESP32-S3 I use separately from the power strip, with a case I printed myself, and it reads me the on/off values of the six relays. In addition, (in future) it reads me the temperature of the room where the aquarium is located, the temperature of the water, and the PH value.
So I have a small monitor where I can read all the information I need.
Finally, I would like to connect six touch switches to the ESP32-S3 so that I can turn the six power strip sockets on/off while being away from the PC.
Is it possible to control with an ESP32-S3 board the six relays physically connected to other ESP32 board?
I attach below the script with which I read the status of the six relays, hopefully can you help me enter the code part to connect the touch switches and control the six relays
captive_portal:
time:
platform: homeassistant
id: homeassistant_time
timezone: Europe/Rome
spi:
clk_pin: GPIO4
mosi_pin: GPIO5
id: lcd
# MISO non è usato per il display ST7735S
color:
- id: my_red
red: 100%
green: 3%
blue: 5%
- id: my_blu
red: 5%
green: 3%
blue: 100%
- id: my_green
red: 5%
green: 100%
blue: 3%
- id: my_yellow
hex: ffff00
- id: my_fucsia
hex: f400a1
- id: my_orange
hex: FF8000
display:
- platform: ili9xxx
model: ST7796
spi_id: lcd
cs_pin: GPIO15
dc_pin: GPIO7
reset_pin: GPIO6
invert_colors: false
dimensions: 320x480 #320x480 not possible because of memory limitations
rotation: 90
color_palette: 8BIT
#data_rate: 40MHz
lambda: |-
it.strftime(3, 3, id(my_font), "%d %b %Y", id(homeassistant_time).now());
it.strftime(3, 27, id(my_font), "%H:%M:%S", id(homeassistant_time).now());
it.print(140, 0, id(my_font1), id(my_fucsia), "ACQUARIO:");
it.print(10, 60, id(my_font), id(my_blu), "FILTRO:");
if (id(relay_6_status).state) {
it.print(115, 60, id(my_font), id(my_green), "ON");
} else {
it.print(115, 60, id(my_font), id(my_red), "OFF");
}
it.print(12, 85, id(my_font), id(my_blu), "ARIA:");
if (id(relay_1_status).state) {
it.print(115, 85, id(my_font), id(my_green), "ON");
} else {
it.print(115, 85, id(my_font), id(my_red), "OFF");
}
it.print(12, 110, id(my_font), id(my_blu), "RISCALD.:");
if (id(relay_4_status).state) {
it.print(115, 110, id(my_font), id(my_green), "ON");
} else {
it.print(115, 110, id(my_font), id(my_red), "OFF");
}
it.print(12, 135, id(my_font), id(my_blu), "LUCI:");
if (id(relay_5_status).state) {
it.print(115, 135, id(my_font), id(my_green), "ON");
} else {
it.print(115, 135, id(my_font), id(my_red), "OFF");
}
it.print(12, 160, id(my_font), id(my_blu), "REFRIG.:");
if (id(relay_3_status).state) {
it.print(115, 160, id(my_font), id(my_green), "ON");
} else {
it.print(115, 160, id(my_font), id(my_red), "OFF");
}
it.print(12, 185, id(my_font), id(my_blu), "AUX:");
if (id(relay_2_status).state) {
it.print(115, 185, id(my_font), id(my_green), "ON");
} else {
it.print(115, 185, id(my_font), id(my_red), "OFF");
}
it.rectangle (5, 55, 160, 160, id(my_green));
font:
- file: "fonts/arial.ttf"
id: my_font
size: 20
- file: "fonts/arial.ttf"
id: my_font1
size: 40
# Collegamento via API agli switch remoti
switch:
- platform: template
name: "Relay 1 Remote"
id: relay_1_status
optimistic: true
lambda: |-
return id(relay_1_remote).state;
- platform: template
name: "Relay 2 Remote"
id: relay_2_status
optimistic: true
lambda: |-
return id(relay_2_remote).state;
- platform: template
name: "Relay 3 Remote"
id: relay_3_status
optimistic: true
lambda: |-
return id(relay_3_remote).state;
- platform: template
name: "Relay 4 Remote"
id: relay_4_status
optimistic: true
lambda: |-
return id(relay_4_remote).state;
- platform: template
name: "Relay 5 Remote"
id: relay_5_status
optimistic: true
lambda: |-
return id(relay_5_remote).state;
- platform: template
name: "Relay 6 Remote"
id: relay_6_status
optimistic: true
lambda: |-
return id(relay_6_remote).state;
# Componenti remote
binary_sensor:
- platform: homeassistant
id: relay_1_remote
entity_id: switch.prova_rele_aria
- platform: homeassistant
id: relay_2_remote
entity_id: switch.prova_rele_aux
- platform: homeassistant
id: relay_3_remote
entity_id: switch.prova_rele_refrigerazione
- platform: homeassistant
id: relay_4_remote
entity_id: switch.prova_rele_riscaldatore
- platform: homeassistant
id: relay_5_remote
entity_id: switch.prova_rele_luci
- platform: homeassistant
id: relay_6_remote
entity_id: switch.prova_rele_filtro
Thanks and ciao