I have an ESP32S3 with the latest ESPHome firmware on it. It connects to 2 I2C devices (platforms bme68x_i2c and ens160_i2c) and an RG-15 via UART. The WiFI AP reports a signal strength of about -61dBm as does the device.
(There are a number of other ESPHome nodes that also connect to HA using a combination of ESP32S3 and ESP32C3 and this is the only one that is reporting trouble.)
The log (set to ‘Info’ level) is as follows:
INFO ESPHome 2026.8.2
INFO Loaded validated config cache for weather-outside.yaml, skipping validation.
INFO Starting log output from 10.1.1.99 using esphome API
INFO Successfully resolved weather-outside @ 10.1.1.99 in 0.000s
INFO Successfully connected to weather-outside @ 10.1.1.99 in 0.012s
INFO Successful handshake with weather-outside @ 10.1.1.99 in 0.132s
INFO Processing expected disconnect from ESPHome API for weather-outside @ 10.1.1.99
ERROR weather-outside @ 10.1.1.99: disconnect request failed
Traceback (most recent call last):
File "/usr/local/lib/python3.14/asyncio/selector_events.py", line 1012, in _read_ready__data_received
data = self._sock.recv(self.max_size)
ConnectionResetError: [Errno 104] Connection reset by peer
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "aioesphomeapi/connection.py", line 1321, in aioesphomeapi.connection.APIConnection.disconnect
File "aioesphomeapi/connection.py", line 1050, in send_message_await_response
[response] = await self.send_messages_await_response_complex(
File "aioesphomeapi/connection.py", line 1033, in aioesphomeapi.connection.APIConnection.send_messages_await_response_complex
await fut
aioesphomeapi.core.ReadFailedAPIError: [Errno 104] Connection reset by peer
WARNING Disconnected from API
INFO Successfully resolved weather-outside @ 10.1.1.99 in 0.000s
INFO Successfully connected to weather-outside @ 10.1.1.99 in 0.077s
INFO Successful handshake with weather-outside @ 10.1.1.99 in 0.096s
INFO Processing expected disconnect from ESPHome API for weather-outside @ 10.1.1.99
ERROR weather-outside @ 10.1.1.99: disconnect request failed
This repeats about every minute or so until it settles down when it reports the data about every 2 to 3 seconds until it stops randomly (anywhere from a few minutes to a number of hours).
Any idea what is going wrong and what I need to do about it?
The ‘power_save_mode’ and ‘fast_connect’ in the ‘wifi’ section were my early attempts to solve this. Adding them has made no difference.
@lordwizzard - I’me using my own PCB (and I’ve done the same thing with other devices that do not have any problems) and the Seeed Xiao ESP32S3 board (again used in other devices).
I’ve also noticed that the ‘ESPHome’ dashboard shows the device as ‘online’ (presumably because the WiFi connection seems to be solid) but no data is being logged - all the values as ‘unavailable’. Do my guess (and it is only that) is that something has crashed in the ESPHome software that is being restarted (???by a watchdog???).
This is the log I made just now:
INFO ESPHome 2026.8.2
INFO Loaded validated config cache for weather-outside.yaml, skipping validation.
INFO Starting log output from 10.1.1.99 using esphome API
INFO Successfully resolved weather-outside @ 10.1.1.99 in 0.000s
INFO Successfully connected to weather-outside @ 10.1.1.99 in 0.066s
INFO Successful handshake with weather-outside @ 10.1.1.99 in 0.123s
[08:13:22.810][I][app:151]: ESPHome version 2026.8.2 compiled on 2026-09-06 13:49:05 +1000
INFO Processing expected disconnect from ESPHome API for weather-outside @ 10.1.1.99
ERROR weather-outside @ 10.1.1.99: disconnect request failed
Traceback (most recent call last):
File "/usr/local/lib/python3.14/asyncio/selector_events.py", line 1012, in _read_ready__data_received
data = self._sock.recv(self.max_size)
ConnectionResetError: [Errno 104] Connection reset by peer
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "aioesphomeapi/connection.py", line 1321, in aioesphomeapi.connection.APIConnection.disconnect
File "aioesphomeapi/connection.py", line 1050, in send_message_await_response
[response] = await self.send_messages_await_response_complex(
File "aioesphomeapi/connection.py", line 1033, in aioesphomeapi.connection.APIConnection.send_messages_await_response_complex
await fut
aioesphomeapi.core.ReadFailedAPIError: [Errno 104] Connection reset by peer
WARNING Disconnected from API
INFO Successfully resolved weather-outside @ 10.1.1.99 in 0.000s
INFO Successfully connected to weather-outside @ 10.1.1.99 in 1.033s
INFO Successful handshake with weather-outside @ 10.1.1.99 in 0.200s
As I have a very exciting life, I monitored the log for a few minutes and the error seems to occur regularly about every 1 minute and 6 seconds - restart by a watchdog???
I looked that up. Looking for ratings of only type:
Seems issues when using either BLE or WiFi under high load leading to high heat. Other manufacturers had issue with the on board WiFi antenna (design) that resolved with going to a external antenna. Since this says weather outside could this be a heat issue? Or a WiFi signal due to location (distance, signal coming back from device having to pass through some walls)
That is the remote log. It is typically less than useful when the issue is a connection issue. You need to get the log from the serial port. I generally use a laptop with a terminal emulator on the USB port to collect that.
The log says the disconnect failed due to the connection being reset by the peer. That is frequently a Wi-Fi issue.
As I said in the original post, both the ESP32S3 and the WiFi AP report something like a -61dBm signal strength so I doubt if that directly is an issue. Also as I said in my previous comment, the ESPHome dashboard shows the device as ‘online’ all the time. What I didn’t say is that the AP also lists the device as being connected continuously for a number of days.
I certainly could be wrong, but I doubt if this is a WiFi issue. This is further evidenced by the fact that the connection occurs in a few hundredths of a second - if the WiFi signal was poor then I would imagine that this would take multiple seconds (or longer).
I realise that this is a remote log but as the device is outside (and does not appear to have signal strength issues - see above comment) making a serial connection is not practical. Again I could be wrong but I was under the impression that the logging is the same whether via the network or via a serial connector.
As for the antenna and heat issues mentioned: it already uses an external antenna and we are just in the first week of spring here and the outside temperature is about 13C.
fair enough, but it is a connection problem from the log that you can see. The side you can see says the connection was reset unexpectedly. What does the other side of the connection say? Best way to find out is to get the log from it.
You can look where the light is better, but you probably won’t find the answer there.