I’m running the ESPHome Device Builder add-on on my Home Assistant server and was able to build and install a config over Wi-Fi to my ESP32 S3 board. The device shows up in Home Assistant and seems to be working.
However for some reason, while it reports the device as “online” in Device Builder it throws an error (below) when I try to upload a updated device configuration. If I restart the device I am usually able to upload a new configuration. This is not a big deal with one device, but I can see where it’s going to get old fast if this trend continues.
INFO Successfully compiled program.
ERROR Error resolving IP address of ['esphome-web-c9c344.local']. Is it connected to WiFi?
ERROR (If this error persists, please set a static IP address: https://esphome.io/components/wifi.html#manual-ips)
ERROR Timeout resolving IP address: Timeout while resolving IP address for ['esphome-web-c9c344.local']
WARNING Failed to upload to ['esphome-web-c9c344.local']
The device has a DHCP reservation and a local host name defined on my router. I can ping it by hostname from other systems.
I’m running ESPHome 2025.11.2 on Home Assistant OS. Version numbers are currently:
- Core 2025.11.3
- Supervisor 2025.11.5
- Operating System 16.3
- Frontend 20251105.1
- ESPHome Device Builder 2025.11.2
The device is an M5 AtomS3 Lite with the NS4618 speaker board module atttached. It’s configuration YAML is:
esphome:
name: esphome-web-c9c344
friendly_name: ESPHome Web c9c344
min_version: 2025.9.0
name_add_mac_suffix: false
esp32:
variant: esp32s3
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
# Allow Over-The-Air updates
ota:
- platform: esphome
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
captive_portal:
i2s_audio:
- id: i2s_audio_bus
i2s_lrclk_pin: GPIO39
i2s_bclk_pin: GPIO05
media_player:
- platform: i2s_audio
id: media_out
name: None
dac_type: external
i2s_dout_pin: GPIO38
mode: mono
binary_sensor:
- platform: gpio
pin:
number: GPIO41
inverted: true
id: top_button
name: Button
on_click:
- media_player.toggle:
id: media_out
light:
- platform: esp32_rmt_led_strip
id: led
name: AtomS3 lite Light
pin: GPIO35
chipset: ws2812
num_leds: 1
rgb_order: grb
button:
- platform: safe_mode
id: button_safe_mode
name: Safe Mode Boot
- platform: factory_reset
id: factory_reset_btn
name: Factory reset
sensor:
- platform: uptime
type: seconds
name: Uptime Sensor