ESPHome 2026.10 — what changed for you
Plain-text firmware updates now have an end date. A light may boot differently, ESP8266 builds take longer once, and a few niche configs need a one-line edit.
Updated 22 October 2026 esphometroubleshootingsecurity
ESPHome 2026.10 is mostly faster builds and smaller updates, which need nothing from you. Four things are worth knowing before you update a device, and one of them has a deadline.
Plain-text firmware updates end in 2027.3
ESPHome 2026.9 added encrypted firmware updates (see
ESPHome 2026.9 — what changed for you). Until
now a device without it simply carried on updating in plain text. From
ESPHome 2027.3.0 that fallback is removed, so a device whose config has no
OTA encryption: will stop taking updates over the network.
The fix is the same two lines as before, on any device that already has an
api: encryption key:
ota:
- platform: esphome
encryption:
Do it while you are on 2026.10 and nothing else changes. If you leave it until after 2027.3, the update that switches encryption on has to go out in plain text one last time, and you will need a temporary helper for that one install:
ota:
- platform: esphome
encryption:
allow_plaintext_upload: true
The uploader tells you when the device is encrypting; remove
allow_plaintext_upload then. encryption: cannot be combined with an old
OTA password:, so remove that at the same time.
A light that now boots on
If a light has initial_state: set to on and no restore_mode:, it used
to be quietly forced off at boot anyway. In 2026.10 it really does boot on.
If you had come to rely on it starting dark, add the behaviour you want
explicitly.
restore_mode: itself still works. It is deprecated in favour of a new
restore_state: option, and validation warns when the old key would throw
away an initial_state you set. If you see that warning, check the light's
boot state is what you expect.
ESP8266: the first build after updating is slow
ESP8266 devices now build with ESPHome's own toolchain instead of PlatformIO. The first build after updating downloads it and rebuilds the device from scratch, so expect a few minutes; builds after that are quick again.
Three setups still need the old toolchain: a custom framework source:, a
framework version other than 3.1.2, or a board ESPHome does not list. For
those, add:
esp8266:
board: d1_mini # your board
toolchain: platformio
That option is deprecated and goes away in 2027.4.0, so treat it as a stopgap.
Configs that stop validating
These only affect a few component types. Each one fails at validation, so you see the error before anything is flashed.
- IR/RF receivers on ESP8266, RP2040, LibreTiny, ESP32-C2 and ESP32-C61.
buffer_size:now counts bytes, not entries. If you set it yourself, multiply the number by 4 to keep the same capacity. If you never set it, do nothing. - Speaker media player.
codec_support_enabledhas been removed. Use the pipeline'sformat:setting instead;format: NONEreplaces the oldall. Volume and mute are also separate now, soon_muteandon_unmuteno longer fire when the volume changes. - Sendspin. It now needs the ESP-IDF framework, and Music Assistant
2.10.7 (or 2.11.0b4) or newer, because every connection is encrypted. A
Sendspin switch needs
type: enabled.
Smaller updates, nothing to do
Firmware updates to ESP32, RP2040 and LibreTiny devices are now compressed, about a third smaller on the network. It switches on by itself once a device is running 2026.10. Devices on older firmware update exactly as before.
Let Claude check for you
If Claude is connected to your home through Vome, ask it which of your ESPHome devices still update in plain text. It can read each device's config and add the two lines above for you.