I wanted to run a stress test on some relays, hence I configured an ESP with six GPIO outputs:
- platform: gpio
pin: 16
name: “T_1”
id: “T_OP_1”
restore_mode: RESTORE_DEFAULT_ON
inverted: true
Pins used were: 16,17,18,19,21
Then, from the HA end, made a quick automation that was meant to switch on all relays together, keep them on for 10 seconds, turn them off. Then repat the cycle every minute.
alias: Test Toggle Automation
description: “”
trigger:
- platform: time_pattern
minutes: /1- platform: state
entity_id:
- switch.t_1
from: “off”
to: “on”
for:
hours: 0
minutes: 0
seconds: 10
condition:- condition: state
entity_id: input_boolean.test_helper
state: “on”
action:- service: switch.toggle
data: {}
target:
device_id: 10e9a5f2f256cb56d89c4b74c136f294
mode: single
Unfortunately, this has not been working for me at all. The ESP functions as intended for the first few iterations, then many things happen:
Either the device becomes unavailable and the entity log on HA says:
Turned off triggered by automation Test Toggle Automation triggered by time pattern
11:24:04 - 17 minutes ago
as a result, when it comes back on, some of the GPIOs fall out of sync, turning on when they should be turning off.
I checked the automation and it seems to be triggering just fine, trouble seems to be on the ESP end.
I have tried multiple ESPs, they all act up. Doesn’t seem to be specific to an individual ESP.
On the ESP end, here’s what it looks like when it randomly resets:
[11:51:00][D][switch:013]: ‘T_1’ Turning ON.
[11:51:00][D][switch:037]: ‘T_1’: Sending state ON
[11:51:05][I][mqtt:216]: MQTT Connected!
[11:51:05][I][app:062]: setup() finished successfully!
[11:51:05][I][app:102]: ESPHome version 2022.9.4 compiled on Oct 18 2022, 19:30:42
It turns on one or some of the GPIOs, then goes into the reboot loops, the beginnings of which is shown above.
The expected cycle looks like this:
[11:55:00][D][switch:013]: ‘T_1’ Turning ON.
[11:55:00][D][switch:037]: ‘T_1’: Sending state ON
[11:55:00][D][switch:013]: ‘T_2’ Turning ON.
[11:55:00][D][switch:037]: ‘T_2’: Sending state ON
[11:55:00][D][switch:013]: ‘T_3’ Turning ON.
[11:55:00][D][switch:037]: ‘T_3’: Sending state ON
[11:55:00][D][switch:013]: ‘T_4’ Turning ON.
[11:55:00][D][switch:037]: ‘T_4’: Sending state ON
[11:55:00][D][switch:013]: ‘T_5’ Turning ON.
[11:55:00][D][switch:037]: ‘T_5’: Sending state ON
[11:55:00][D][switch:013]: ‘T_6’ Turning ON.
[11:55:00][D][switch:037]: ‘T_6’: Sending state ON
[11:55:10][D][switch:017]: ‘T_1’ Turning OFF.
[11:55:10][D][switch:037]: ‘T_1’: Sending state OFF
[11:55:10][D][switch:017]: ‘T_2’ Turning OFF.
[11:55:10][D][switch:037]: ‘T_2’: Sending state OFF
[11:55:10][D][switch:017]: ‘T_3’ Turning OFF.
[11:55:10][D][switch:037]: ‘T_3’: Sending state OFF
[11:55:10][D][switch:017]: ‘T_4’ Turning OFF.
[11:55:10][D][switch:037]: ‘T_4’: Sending state OFF
[11:55:10][D][switch:017]: ‘T_5’ Turning OFF.
[11:55:10][D][switch:037]: ‘T_5’: Sending state OFF
[11:55:10][D][switch:017]: ‘T_6’ Turning OFF.
[11:55:10][D][switch:037]: ‘T_6’: Sending state OFF
I’ll work on getting the verbose logs next