Open
Description
The problem
i just got the esphome update for 4.0 i updated all but 2 out of 3 of my speaker modules will not update to esphome 4.0 firmware they are stuck on 3.3 even though they upload... the 3rd the module is still
esp32:
board: esp32dev
framework:
type: arduino
Which version of ESPHome has the issue?
2025.4.0
What type of installation are you using?
Home Assistant Add-on
Which version of Home Assistant has the issue?
2025.4.2
What platform are you using?
ESP32
Board
esp32
Component causing the issue
No response
YAML Config
so this will complie upload but yet states its still firmware 3.3 from april 2nd. so its not uploading or its not fixing the firmware date
##############
### Bedroom ###
##############
esphome:
name: speaker-1
friendly_name: "Speaker #1"
esp32:
board: esp32dev
framework:
type: esp-idf
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "NojvwCefQii8YN3rIz/vBGtcth0xMBB4KFvt8/nfaM4="
ota:
platform: esphome
password: "00b8433143fa1e2b21ddaf8da034f8a4"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Speaker-1 Fallback Hotspot"
password: "BHlK4SVkN5Cn"
captive_portal:
web_server:
i2s_audio:
i2s_lrclk_pin: GPIO16
i2s_bclk_pin: GPIO21
speaker:
- platform: i2s_audio
id: output_speaker
i2s_dout_pin: GPIO17
dac_type: external
bits_per_sample: 32bit
channel: right
buffer_duration: 60ms
media_player:
- platform: speaker
name: "ESPHome I2S Media Player"
id: media_out
announcement_pipeline:
speaker: output_speaker
format: WAV
codec_support_enabled: false
buffer_size: 6000
on_pause:
- logger.log: "Playback paused!"
on_idle:
- logger.log: "Playback finished!"
switch:
#####################
### Reboot Switch ###
#####################
- platform: restart
name: "Restart"
binary_sensor:
- platform: status
name: "Status"
text_sensor:
######################################################
### Uptime Sesnor Template To Show In Hour Min Sec ###
######################################################
- platform: template
name: "Uptime"
id: uptime_human
icon: mdi:clock-start
sensor:
- platform: uptime
name: Uptime Sensor
id: uptime_sensor_speaker_1
update_interval: 60s
on_raw_value:
then:
- text_sensor.template.publish:
id: uptime_human
state: !lambda |-
int seconds = round(id(uptime_sensor_speaker_1).raw_state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
return (
(days ? to_string(days) + "d " : "") +
(hours ? to_string(hours) + "h " : "") +
(minutes ? to_string(minutes) + "m " : "") +
(to_string(seconds) + "s")
).c_str();
this version works version works least firmware is uploaded it says.. i havent tested if the audio is working right
esphome:
name: speaker-3
friendly_name: "Speaker #3"
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "JeAZ016MhMculWo1bzF32suAzbpcl6aSsZ8zdvdC1KU="
ota:
platform: esphome
password: "4cc9c6235242a1a67872c5e95f8a0e14"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Speaker-3 Fallback Hotspot"
password: "0SakfjrJc3Pa"
captive_portal:
web_server:
i2s_audio:
i2s_lrclk_pin: GPIO16
i2s_bclk_pin: GPIO21
media_player:
- platform: i2s_audio
name: ESPHome I2S Media Player
dac_type: external
i2s_dout_pin: GPIO17
mode: mono
switch:
#####################
### Reboot Switch ###
#####################
- platform: restart
name: "Restart"
binary_sensor:
- platform: status
name: "Status"
text_sensor:
######################################################
### Uptime Sesnor Template To Show In Hour Min Sec ###
######################################################
- platform: template
name: "Uptime"
id: uptime_human
icon: mdi:clock-start
sensor:
- platform: uptime
name: Uptime Sensor
id: uptime_sensor_speaker_3
update_interval: 60s
on_raw_value:
then:
- text_sensor.template.publish:
id: uptime_human
state: !lambda |-
int seconds = round(id(uptime_sensor_speaker_3).raw_state);
int days = seconds / (24 * 3600);
seconds = seconds % (24 * 3600);
int hours = seconds / 3600;
seconds = seconds % 3600;
int minutes = seconds / 60;
seconds = seconds % 60;
return (
(days ? to_string(days) + "d " : "") +
(hours ? to_string(hours) + "h " : "") +
(minutes ? to_string(minutes) + "m " : "") +
(to_string(seconds) + "s")
).c_str();
Anything in the logs that might be useful for us?
Speakers #1 here is the logs it wont go past 3.3
INFO ESPHome 2025.4.0
INFO Reading configuration /config/esphome/speaker-1.yaml...
INFO Generating C++ source...
INFO Updating https://github.com/espressif/esp-protocols.git@mdns-v1.8.2
INFO Compiling app...
Processing speaker-1 (board: esp32dev; framework: espidf; platform: https://github.com/pioarduino/platform-espressif32.git#51.03.07)
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
- framework-espidf @ 3.50105.0 (5.1.5)
- tool-cmake @ 3.21.3
- tool-esptoolpy @ 4.8.1
- tool-mklittlefs @ 3.2.0
- tool-ninja @ 1.7.1
- tool-riscv32-esp-elf-gdb @ 12.1.0+20221002
- tool-xtensa-esp-elf-gdb @ 12.1.0+20221002
- toolchain-esp32ulp @ 2.35.0-20220830
- toolchain-xtensa-esp32 @ 12.2.0+20230208
Reading CMake configuration...
Dependency Graph
|-- noise-c @ 0.1.6
|-- ArduinoJson @ 6.18.5
|-- esp-audio-libs @ 1.1.3
Compiling .pioenvs/speaker-1/src/main.cpp.o
In file included from /data/cache/platformio/packages/framework-espidf/components/driver/deprecated/driver/i2s.h:23,
from src/esphome/components/i2s_audio/i2s_audio.h:5,
from src/esphome.h:28,
from src/main.cpp:3:
/data/cache/platformio/packages/framework-espidf/components/driver/deprecated/driver/adc.h:19:2: warning: #warning "legacy adc driver is deprecated, please migrate to use esp_adc/adc_oneshot.h and esp_adc/adc_continuous.h for oneshot mode and continuous mode drivers respectively" [-Wcpp]
19 | #warning "legacy adc driver is deprecated, please migrate to use esp_adc/adc_oneshot.h and esp_adc/adc_continuous.h for oneshot mode and continuous mode drivers respectively"
| ^~~~~~~
/data/cache/platformio/packages/framework-espidf/components/driver/deprecated/driver/i2s.h:27:2: warning: #warning "This set of I2S APIs has been deprecated, please include 'driver/i2s_std.h', 'driver/i2s_pdm.h' or 'driver/i2s_tdm.h' instead. if you want to keep using the old APIs and ignore this warning, you can enable 'Suppress leagcy driver deprecated warning' option under 'I2S Configuration' menu in Kconfig" [-Wcpp]
27 | #warning "This set of I2S APIs has been deprecated, \
| ^~~~~~~
Linking .pioenvs/speaker-1/firmware.elf
RAM: [= ] 10.7% (used 35068 bytes from 327680 bytes)
Flash: [======= ] 65.3% (used 1197849 bytes from 1835008 bytes)
Building .pioenvs/speaker-1/firmware.bin
Creating esp32 image...
Successfully created esp32 image.
esp32_create_combined_bin([".pioenvs/speaker-1/firmware.bin"], [".pioenvs/speaker-1/firmware.elf"])
SHA digest in image updated
Wrote 0x1360d0 bytes to file /data/build/speaker-1/.pioenvs/speaker-1/firmware.factory.bin, ready to flash to offset 0x0
esp32_copy_ota_bin([".pioenvs/speaker-1/firmware.bin"], [".pioenvs/speaker-1/firmware.elf"])
========================= [SUCCESS] Took 8.20 seconds =========================
INFO Successfully compiled program.
INFO Connecting to 192.168.20.184 port 3232...
INFO Connected to 192.168.20.184
INFO Uploading /data/build/speaker-1/.pioenvs/speaker-1/firmware.bin (1204432 bytes)
Uploading: [============================================================] 100% Done...
INFO Upload took 11.56 seconds, waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 192.168.20.184 using esphome API
INFO Successfully connected to speaker-1 @ 192.168.20.184 in 11.281s
WARNING speaker-1 @ 192.168.20.184: Connection error occurred: speaker-1 @ 192.168.20.184: The connection dropped immediately after encrypted hello; Try enabling encryption on the device or turning off encryption on the client (ESPHome Logs 2025.4.0)
WARNING Can't connect to ESPHome API for speaker-1 @ 192.168.20.184: speaker-1 @ 192.168.20.184: The connection dropped immediately after encrypted hello; Try enabling encryption on the device or turning off encryption on the client (ESPHome Logs 2025.4.0) (EncryptionHelloAPIError)
INFO Trying to connect to speaker-1 @ 192.168.20.184 in the background
INFO Successfully connected to speaker-1 @ 192.168.20.184 in 0.007s
WARNING speaker-1 @ 192.168.20.184: Connection error occurred: speaker-1 @ 192.168.20.184: The connection dropped immediately after encrypted hello; Try enabling encryption on the device or turning off encryption on the client (ESPHome Logs 2025.4.0)
INFO Successfully connected to speaker-1 @ 192.168.20.184 in 0.023s
WARNING speaker-1 @ 192.168.20.184: Connection error occurred: speaker-1 @ 192.168.20.184: The connection dropped immediately after encrypted hello; Try enabling encryption on the device or turning off encryption on the client (ESPHome Logs 2025.4.0)
INFO Successfully connected to speaker-1 @ 192.168.20.184 in 0.129s
WARNING speaker-1 @ 192.168.20.184: Connection error occurred: speaker-1 @ 192.168.20.184: The connection dropped immediately after encrypted hello; Try enabling encryption on the device or turning off encryption on the client (ESPHome Logs 2025.4.0)
Speaker #2
INFO ESPHome 2025.4.0
INFO Reading configuration /config/esphome/speaker-2.yaml...
INFO Generating C++ source...
INFO Updating https://github.com/espressif/esp-protocols.git@mdns-v1.8.2
INFO Compiling app...
Processing speaker-2 (board: esp32dev; framework: espidf; platform: https://github.com/pioarduino/platform-espressif32.git#51.03.07)
--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
- framework-espidf @ 3.50105.0 (5.1.5)
- tool-cmake @ 3.21.3
- tool-esptoolpy @ 4.8.1
- tool-mklittlefs @ 3.2.0
- tool-ninja @ 1.7.1
- tool-riscv32-esp-elf-gdb @ 12.1.0+20221002
- tool-xtensa-esp-elf-gdb @ 12.1.0+20221002
- toolchain-esp32ulp @ 2.35.0-20220830
- toolchain-xtensa-esp32 @ 12.2.0+20230208
Reading CMake configuration...
Dependency Graph
|-- noise-c @ 0.1.6
|-- ArduinoJson @ 6.18.5
|-- esp-audio-libs @ 1.1.3
Compiling .pioenvs/speaker-2/src/main.cpp.o
In file included from /data/cache/platformio/packages/framework-espidf/components/driver/deprecated/driver/i2s.h:23,
from src/esphome/components/i2s_audio/i2s_audio.h:5,
from src/esphome.h:28,
from src/main.cpp:3:
/data/cache/platformio/packages/framework-espidf/components/driver/deprecated/driver/adc.h:19:2: warning: #warning "legacy adc driver is deprecated, please migrate to use esp_adc/adc_oneshot.h and esp_adc/adc_continuous.h for oneshot mode and continuous mode drivers respectively" [-Wcpp]
19 | #warning "legacy adc driver is deprecated, please migrate to use esp_adc/adc_oneshot.h and esp_adc/adc_continuous.h for oneshot mode and continuous mode drivers respectively"
| ^~~~~~~
/data/cache/platformio/packages/framework-espidf/components/driver/deprecated/driver/i2s.h:27:2: warning: #warning "This set of I2S APIs has been deprecated, please include 'driver/i2s_std.h', 'driver/i2s_pdm.h' or 'driver/i2s_tdm.h' instead. if you want to keep using the old APIs and ignore this warning, you can enable 'Suppress leagcy driver deprecated warning' option under 'I2S Configuration' menu in Kconfig" [-Wcpp]
27 | #warning "This set of I2S APIs has been deprecated, \
| ^~~~~~~
Linking .pioenvs/speaker-2/firmware.elf
RAM: [= ] 10.7% (used 35068 bytes from 327680 bytes)
Flash: [======= ] 65.3% (used 1197849 bytes from 1835008 bytes)
Building .pioenvs/speaker-2/firmware.bin
Creating esp32 image...
Successfully created esp32 image.
esp32_create_combined_bin([".pioenvs/speaker-2/firmware.bin"], [".pioenvs/speaker-2/firmware.elf"])
SHA digest in image updated
Wrote 0x1360d0 bytes to file /data/build/speaker-2/.pioenvs/speaker-2/firmware.factory.bin, ready to flash to offset 0x0
esp32_copy_ota_bin([".pioenvs/speaker-2/firmware.bin"], [".pioenvs/speaker-2/firmware.elf"])
========================= [SUCCESS] Took 8.29 seconds =========================
INFO Successfully compiled program.
INFO Connecting to 192.168.20.194 port 3232...
INFO Connected to 192.168.20.194
INFO Uploading /data/build/speaker-2/.pioenvs/speaker-2/firmware.bin (1204432 bytes)
Uploading: [============================================================] 100% Done...
INFO Upload took 11.31 seconds, waiting for result...
INFO OTA successful
INFO Successfully uploaded program.
INFO Starting log output from 192.168.20.194 using esphome API
INFO Successfully connected to speaker-2 @ 192.168.20.194 in 11.306s
INFO Successful handshake with speaker-2 @ 192.168.20.194 in 0.078s
[11:13:59][I][app:100]: ESPHome version 2025.3.3 compiled on Apr 2 2025, 10:24:18
[11:13:59][C][wifi:600]: WiFi:
[11:13:59][C][wifi:428]: Local MAC: D4:8A:FC:9D:E8:18
[11:13:59][C][wifi:433]: SSID: [redacted]
[11:13:59][C][wifi:436]: IP Address: 192.168.20.194
[11:13:59][C][wifi:440]: BSSID: [redacted]
[11:13:59][C][wifi:441]: Hostname: 'speaker-2'
[11:13:59][C][wifi:443]: Signal strength: -54 dB ▂▄▆█
[11:13:59][C][wifi:447]: Channel: 1
[11:13:59][C][wifi:448]: Subnet: 255.255.255.0
[11:13:59][C][wifi:449]: Gateway: 192.168.20.1
[11:13:59][C][wifi:450]: DNS1: 192.168.20.1
[11:13:59][C][wifi:451]: DNS2: 0.0.0.0
[11:13:59][C][logger:177]: Logger:
[11:13:59][C][logger:178]: Max Level: DEBUG
[11:13:59][C][logger:179]: Initial Level: DEBUG
[11:13:59][C][logger:181]: Log Baud Rate: 115200
[11:13:59][C][logger:182]: Hardware UART: UART0
[11:13:59][C][template.text_sensor:020]: Template Sensor 'Uptime'
[11:13:59][C][template.text_sensor:020]: Icon: 'mdi:clock-start'
[11:13:59][C][uptime.sensor:033]: Uptime Sensor 'Uptime Sensor'
[11:13:59][C][uptime.sensor:033]: Device Class: 'duration'
[11:13:59][C][uptime.sensor:033]: State Class: 'total_increasing'
[11:13:59][C][uptime.sensor:033]: Unit of Measurement: 's'
[11:13:59][C][uptime.sensor:033]: Accuracy Decimals: 0
[11:13:59][C][uptime.sensor:033]: Icon: 'mdi:timer-outline'
[11:13:59][C][uptime.sensor:034]: Type: Seconds
[11:13:59][C][restart:068]: Restart Switch 'Restart'
[11:13:59][C][restart:070]: Icon: 'mdi:restart'
[11:13:59][C][restart:091]: Restore Mode: always OFF
[11:13:59][C][status:034]: Status Binary Sensor 'Status'
[11:13:59][C][status:034]: Device Class: 'connectivity'
[11:13:59][C][captive_portal:089]: Captive Portal:
[11:13:59][C][web_server:285]: Web Server:
[11:13:59][C][web_server:286]: Address: speaker-2.local:80
[11:13:59][C][mdns:116]: mDNS:
[11:13:59][C][mdns:117]: Hostname: speaker-2
[11:13:59][C][esphome.ota:073]: Over-The-Air updates:
[11:13:59][C][esphome.ota:074]: Address: speaker-2.local:3232
[11:13:59][C][esphome.ota:075]: Version: 2
[11:13:59][C][esphome.ota:078]: Password configured
[11:13:59][C][safe_mode:018]: Safe Mode:
[11:13:59][C][safe_mode:020]: Boot considered successful after 60 seconds
[11:13:59][C][safe_mode:021]: Invoke after 10 boot attempts
[11:13:59][C][safe_mode:023]: Remain in safe mode for 300 seconds
[11:13:59][C][api:140]: API Server:
[11:13:59][C][api:141]: Address: speaker-2.local:6053
[11:13:59][C][api:143]: Using noise encryption: YES
[11:13:59][C][audio:225]: Audio:
[11:13:59][C][audio:247]: External DAC channels: 1
[11:13:59][C][audio:248]: I2S DOUT Pin: 17
Working Speaker #3 here is its logs
INFO ESPHome 2025.4.0
INFO Reading configuration /config/esphome/speaker-3.yaml...
INFO Starting log output from 192.168.20.182 using esphome API
INFO Successfully connected to speaker-3 @ 192.168.20.182 in 0.029s
INFO Successful handshake with speaker-3 @ 192.168.20.182 in 0.102s
[11:00:15][I][app:100]: ESPHome version 2025.4.0 compiled on Apr 17 2025, 10:15:25
[11:00:15][C][wifi:600]: WiFi:
[11:00:15][C][wifi:428]: Local MAC: D4:8A:FC:9D:DC:64
[11:00:15][C][wifi:433]: SSID: [redacted]
[11:00:15][C][wifi:436]: IP Address: 192.168.20.182
[11:00:15][C][wifi:440]: BSSID: [redacted]
[11:00:15][C][wifi:441]: Hostname: 'speaker-3'
[11:00:15][C][wifi:443]: Signal strength: -71 dB ▂▄▆█
[11:00:15][C][wifi:447]: Channel: 11
[11:00:15][C][wifi:448]: Subnet: 255.255.255.0
[11:00:15][C][wifi:449]: Gateway: 192.168.20.1
[11:00:15][C][wifi:450]: DNS1: 192.168.20.1
[11:00:15][C][wifi:451]: DNS2: 0.0.0.0
[11:00:15][C][logger:177]: Logger:
[11:00:15][C][logger:178]: Max Level: DEBUG
[11:00:15][C][logger:179]: Initial Level: DEBUG
[11:00:15][C][logger:181]: Log Baud Rate: 115200
[11:00:15][C][logger:182]: Hardware UART: UART0
[11:00:15][C][template.text_sensor:020]: Template Sensor 'Uptime'
[11:00:15][C][template.text_sensor:020]: Icon: 'mdi:clock-start'
[11:00:15][C][uptime.sensor:033]: Uptime Sensor 'Uptime Sensor'
[11:00:15][C][uptime.sensor:033]: Device Class: 'duration'
[11:00:15][C][uptime.sensor:033]: State Class: 'total_increasing'
[11:00:15][C][uptime.sensor:033]: Unit of Measurement: 's'
[11:00:15][C][uptime.sensor:033]: Accuracy Decimals: 0
[11:00:15][C][uptime.sensor:033]: Icon: 'mdi:timer-outline'
[11:00:15][C][uptime.sensor:034]: Type: Seconds
[11:00:15][C][restart:068]: Restart Switch 'Restart'
[11:00:15][C][restart:070]: Icon: 'mdi:restart'
[11:00:15][C][restart:091]: Restore Mode: always OFF
[11:00:15][C][status:034]: Status Binary Sensor 'Status'
[11:00:15][C][status:034]: Device Class: 'connectivity'
[11:00:15][C][captive_portal:089]: Captive Portal:
[11:00:15][C][web_server:285]: Web Server:
[11:00:15][C][web_server:286]: Address: speaker-3.local:80
[11:00:15][C][mdns:116]: mDNS:
[11:00:15][C][mdns:117]: Hostname: speaker-3
[11:00:15][C][esphome.ota:073]: Over-The-Air updates:
[11:00:15][C][esphome.ota:074]: Address: speaker-3.local:3232
[11:00:15][C][esphome.ota:075]: Version: 2
[11:00:15][C][esphome.ota:078]: Password configured
[11:00:15][C][safe_mode:018]: Safe Mode:
[11:00:15][C][safe_mode:020]: Boot considered successful after 60 seconds
[11:00:15][C][safe_mode:021]: Invoke after 10 boot attempts
[11:00:15][C][safe_mode:023]: Remain in safe mode for 300 seconds
[11:00:15][C][api:140]: API Server:
[11:00:15][C][api:141]: Address: speaker-3.local:6053
[11:00:15][C][api:143]: Using noise encryption: YES
[11:00:15][C][audio:225]: Audio:
[11:00:15][C][audio:247]: External DAC channels: 1
[11:00:15][C][audio:248]: I2S DOUT Pin: 17
[11:00:16][D][text_sensor:064]: 'Uptime': Sending state '44m 17s'
[11:00:17][D][sensor:094]: 'Uptime Sensor': Sending state 2657.42603 s with 0 decimals of accuracy
Additional information
speaker one is throwing that encryption error.. but it gets that warning and number 2 is the same as 1.. so you can see the firmware... sometimes i can get the speaker #1 log to show ill add it when it comes back
Metadata
Metadata
Assignees
Labels
No labels