ESPHome 2026.10.0 went stable on 21 October 2026, after six betas. The project counts 786 merged pull requests from more than 60 contributors. Most of that work is internal, but two changes reach almost every device: firmware updates now travel compressed, and ESP8266 firmware is built by a new toolchain.

Smaller updates on ESP32, RP2040 and LibreTiny

The ESP8266 has accepted gzip-compressed updates for a long time. Now ESP32, RP2040, LibreTiny and host builds do too. The device unpacks a deflate stream as it arrives, and according to the release notes the image sent over the network is about a third smaller. That matters most on weak links. On an ESP32 with 15% simulated packet loss, the release notes report upload times falling from 317/113 s to 74/67 s.

Nothing needs to be configured. The uploader and the firmware negotiate compression, so a device still running a release older than 2026.10.0 updates exactly as before, and the next update after that is compressed. If the device does not have enough free heap for the 4.9 KB decoder, it falls back to an uncompressed upload instead of rebooting.

ESP8266: a new toolchain and one clean rebuild

ESP8266 configurations now build by default with ESPHome's own native Arduino toolchain instead of PlatformIO. ESPHome says about 40% of its devices run on an ESP8266. On the team's test machine a cold compile took 9.2 s instead of 17.8 s, and Apple Silicon Macs no longer need Rosetta 2 to build for the chip. Expect the first compile after updating to be a full clean build. Anyone who needs the old path can set toolchain: platformio under esp8266:, but that option is deprecated and is due to be removed in 2027.4.0.

Check these before you update

The release notes say a typical configuration carries over without changes, apart from four cases:

  • A light with initial_state: now really starts in that state at boot. Before, the default restore_mode could silently keep it off.
  • speaker media players no longer accept codec_support_enabled. Remove it, and use format: NONE in the pipeline for the old behaviour.
  • climate_ir devices with supports_heat: false or supports_cool: false no longer offer the combined heat/cool mode. Add supports_heat_cool: true to keep it.
  • Sendspin now encrypts every connection and needs Music Assistant 2.10.7 or 2.11.0b4 or newer. Update Music Assistant first.

Anyone who set buffer_size: on remote_receiver for an ESP8266, RP2040, LibreTiny, ESP32-C2 or ESP32-C61 should also multiply that value by 4, because it is now counted in bytes.

New components and other changes

Among the 20 new components is ESPectre, which turns an ESP32 into a motion sensor using Wi-Fi channel state information from an existing access point, with no extra sensing hardware. Others include a persistent counter sensor, the Sensirion STCC4 CO2 sensor, the three-phase PZEM-6L24 energy monitor and the Xiaomi Mijia Door/Window Sensor 2. Zigbee on the ESP32 can now expose switches and numbers and report sensors through typed measurement clusters.

Two features concern the link to Home Assistant. With outgoing_connection under api:, a device opens the native API connection to Home Assistant itself, which helps when it sits behind NAT. The option requires encryption. A new device-side setup wizard is already in the firmware, but Home Assistant will only show it from version 2026.11. The bundled Device Builder can now also flash nRF52, Raspberry Pi Pico, Realtek, Beken and LN882H boards from the browser, not only ESP32 and ESP8266.