ESPHome 2026.7.0 - July 2026
Read the ESPHome 2026.7.0 release notes on the blog for the release overview, feature highlights, upgrade checklist, and breaking changes.
Full list of changes
Section titled “Full list of changes”New Features
Section titled “New Features”- [epaper_spi] Metadata, bug fixes, new model esphome#16950 by @clydebarrow (new-feature)
- [ufm01] Add UFM-01 ultrasonic flow meter component esphome#16582 by @ljungqvist (new-component) (new-feature) (new-platform)
- [openthread] Add basic Openthread support to Zephyr/nRF52 platform esphome#16854 by @Ardumine (new-feature)
- [sx126x] Add data whitening options esphome#17102 by @jclehner (new-feature)
- [epaper_spi] Add support for the Inkplate 2 esphome#16856 by @arunderwood (new-feature)
- [epaper_spi] Add support for Waveshare 2.13” V4 series B (R/B/W) esphome#16828 by @profplump (new-feature)
- [waveshare_io_ch32v003] Waveshare I/O Expander component esphome#10071 by @latonita (new-component) (new-feature) (new-platform)
- [psram] Support ESP32-S31/H4 esphome#17192 by @swoboda1337 (new-feature)
- [host] Fix handling of directory for preferences esphome#11160 by @haku (new-feature)
- [openthread] Provide action to control poll_period when device MTD esphome#11766 by @rwrozelle (new-feature)
- [it8951] Add IT8951 e-paper controller support to epaper_spi esphome#15346 by @Passific (new-component) (new-feature) (new-platform)
- [esphome] Warn when a YAML merge (
<<:) drops a key esphome#17246 by @clydebarrow (new-feature) - [ethernet] Generic and YT8531 PHY over RGMII (gigabit) for ESP32-S31 esphome#17277 by @swoboda1337 (new-feature)
- [qmi8658] Motion platform for QMI8658 IMU esphome#16889 by @clydebarrow (new-component) (new-feature) (new-platform)
- [cst9220] Add CST9220 and CST9217 touchscreen support esphome#16888 by @clydebarrow (new-component) (new-feature) (new-platform)
- [pixoo] Add Divoom Pixoo display component esphome#16974 by @jesserockz (new-component) (new-feature) (new-platform)
- [mqtt] Add LN882X (LN882H) platform support esphome#17297 by @Bl00d-B0b (new-feature)
- [modbus_server] Fix register range issues and allow partial reads esphome#17205 by @exciton (new-feature)
- [epaper_spi] Add Waveshare 7.5” V2 BWR support esphome#15719 by @twisterss (new-feature)
- [st7123] add ST7123 touch controller component (M5Stack Tab5) esphome#12075 by @miniskipper (new-component) (new-feature) (new-platform)
- [cst328] Touch screen (Waveshare ESP32-S3-Touch-LCD-2.8) esphome#8011 by @latonita (new-component) (new-feature) (new-platform)
- [epaper_spi] Add T133A01 6-color e-paper driver for reTerminal E1004 esphome#16706 by @limengdu (new-feature)
- [esp32] Add RTC-backed preferences (honor in_flash flag) esphome#17073 by @bootc (new-feature)
- [mipi_spi] Add Waveshare-ESP32-S3-TOUCH-AMOLED-1.64 esphome#17386 by @crimike (new-feature)
- [nrf52] let user select libc version esphome#17408 by @tomaszduda23 (new-feature)
- [rp2] Rename rp2040 platform to rp2 esphome#17145 by @jesserockz (new-feature)
- [espnow] Add max_payload_size option for ESP-NOW v2 frames esphome#17360 by @swoboda1337 (new-feature)
- [mipi_spi] Add M5STACK ATOM3SR display esphome#17344 by @clydebarrow (new-feature)
- [esp32] Add software OTA downgrade protection esphome#17315 by @kbx81 (new-feature)
- [lvgl] Continue activity while display busy esphome#17374 by @clydebarrow (new-feature)
- [esp32] Add NVS encryption (HMAC scheme) esphome#17004 by @kbx81 (new-feature)
- [pcm5122] Add analog gain, channel mixing, volume range, standby/powerdown switch, and XSMT enable pin support esphome#17313 by @remcom (new-feature) (new-platform)
- [lvgl] Add paused option to suppress updates on boot esphome#16973 by @clydebarrow (new-feature)
- [provisioning] Add provisioning window esphome#17152 by @kbx81 (new-component) (new-feature)
- [lvgl] Add animations esphome#16796 by @clydebarrow (new-feature)
- [lvgl] Add direct use of
mappingesphome#15863 by @clydebarrow (new-feature) - [zigbee] Allow to combine and merge endpoints on esp32 esphome#17402 by @luar123 (new-feature) (breaking-change)
- [image] Restructure into a platform component esphome#17416 by @jesserockz (new-component) (new-feature)
- [lvgl] Dynamic rotation features esphome#16773 by @clydebarrow (new-feature)
- [gsl3670] Add new touchscreen component esphome#16285 by @clydebarrow (new-component) (new-feature) (new-platform)
- [mipi_dsi] New model for M5Stack Tab5 esphome#17500 by @clydebarrow (new-feature)
- [web_server] Add HTTP digest authentication with selectable scheme esphome#17541 by @jesserockz (new-feature)
New Components
Section titled “New Components”- [ufm01] Add UFM-01 ultrasonic flow meter component esphome#16582 by @ljungqvist (new-component) (new-feature) (new-platform)
- [waveshare_io_ch32v003] Waveshare I/O Expander component esphome#10071 by @latonita (new-component) (new-feature) (new-platform)
- [it8951] Add IT8951 e-paper controller support to epaper_spi esphome#15346 by @Passific (new-component) (new-feature) (new-platform)
- [qmi8658] Motion platform for QMI8658 IMU esphome#16889 by @clydebarrow (new-component) (new-feature) (new-platform)
- [cst9220] Add CST9220 and CST9217 touchscreen support esphome#16888 by @clydebarrow (new-component) (new-feature) (new-platform)
- [pixoo] Add Divoom Pixoo display component esphome#16974 by @jesserockz (new-component) (new-feature) (new-platform)
- [st7123] add ST7123 touch controller component (M5Stack Tab5) esphome#12075 by @miniskipper (new-component) (new-feature) (new-platform)
- [cst328] Touch screen (Waveshare ESP32-S3-Touch-LCD-2.8) esphome#8011 by @latonita (new-component) (new-feature) (new-platform)
- [provisioning] Add provisioning window esphome#17152 by @kbx81 (new-component) (new-feature)
- [image] Restructure into a platform component esphome#17416 by @jesserockz (new-component) (new-feature)
- [gsl3670] Add new touchscreen component esphome#16285 by @clydebarrow (new-component) (new-feature) (new-platform)
New Platforms
Section titled “New Platforms”- [ufm01] Add UFM-01 ultrasonic flow meter component esphome#16582 by @ljungqvist (new-component) (new-feature) (new-platform)
- [waveshare_io_ch32v003] Waveshare I/O Expander component esphome#10071 by @latonita (new-component) (new-feature) (new-platform)
- [it8951] Add IT8951 e-paper controller support to epaper_spi esphome#15346 by @Passific (new-component) (new-feature) (new-platform)
- [qmi8658] Motion platform for QMI8658 IMU esphome#16889 by @clydebarrow (new-component) (new-feature) (new-platform)
- [cst9220] Add CST9220 and CST9217 touchscreen support esphome#16888 by @clydebarrow (new-component) (new-feature) (new-platform)
- [pixoo] Add Divoom Pixoo display component esphome#16974 by @jesserockz (new-component) (new-feature) (new-platform)
- [st7123] add ST7123 touch controller component (M5Stack Tab5) esphome#12075 by @miniskipper (new-component) (new-feature) (new-platform)
- [cst328] Touch screen (Waveshare ESP32-S3-Touch-LCD-2.8) esphome#8011 by @latonita (new-component) (new-feature) (new-platform)
- [pcm5122] Add analog gain, channel mixing, volume range, standby/powerdown switch, and XSMT enable pin support esphome#17313 by @remcom (new-feature) (new-platform)
- [gsl3670] Add new touchscreen component esphome#16285 by @clydebarrow (new-component) (new-feature) (new-platform)
Breaking Changes
Section titled “Breaking Changes”- [esp32] Make ESP-IDF the default toolchain esphome#16910 by @swoboda1337 (breaking-change)
- [select] Remove deprecated state member esphome#17027 by @bdraco (breaking-change)
- [modbus] Fix parsing & split out server mode esphome#11969 by @exciton (breaking-change)
- [web_server] Remove deprecated object ID URL matching esphome#17113 by @bdraco (breaking-change)
- [web_server] Deprecate version 1 esphome#17109 by @bdraco (breaking-change)
- [packages] Remove deprecated single-package include syntax esphome#17119 by @bdraco (breaking-change)
- [hub75] Remove deprecated scan_wiring name aliases esphome#17118 by @bdraco (breaking-change)
- [dashboard] Remove legacy web dashboard esphome#17124 by @jesserockz (breaking-change)
- [core] Drop Python 3.11 support esphome#17280 by @swoboda1337 (breaking-change)
- [libretiny] Update LibreTiny to v1.13.0 esphome#17288 by @swoboda1337 (breaking-change)
- [zigbee] Bump zigbee sdk to 2.0.2 esphome#16869 by @luar123 (breaking-change)
- [bluetooth_proxy] Take over stale advertisement subscription instead of rejecting the new subscriber esphome#17423 by @bdraco (breaking-change)
- [nrf52] allow to build for non nrf52840 boards esphome#17373 by @tomaszduda23 (breaking-change)
- [light] Preserve brightness on turn-off. esphome#17103 by @clydebarrow (breaking-change)
- [zigbee] Allow to combine and merge endpoints on esp32 esphome#17402 by @luar123 (new-feature) (breaking-change)
- [mipi][mipi_spi][mipi_dsi][mipi_rgb] Transform cleanup esphome#17405 by @clydebarrow (breaking-change)
- [web_server] Add CORS origin checking with allowed_origins esphome#17530 by @jesserockz (breaking-change)
All changes
Section titled “All changes”- [tests] Mock target branch in memory-impact exclusion test esphome#16913 by @jesserockz
- [xpt2046] touchscreen driver enhancement esphome#16414 by @ddrown
- [runtime_image] Improve error logging esphome#16943 by @guillempages
- [epaper_spi] Metadata, bug fixes, new model esphome#16950 by @clydebarrow (new-feature)
- Add PEP 572 walrus operator preference to coding conventions esphome#16951 by @jesserockz
- Bump bundled esphome-device-builder to 1.0.5 esphome#17014 by @esphome[bot]
- Bump bundled esphome-device-builder to 1.0.7 esphome#17018 by @esphome[bot]
- Bump bundled esphome-device-builder to 1.0.8 esphome#17020 by @esphome[bot]
- Bump bundled esphome-device-builder to 1.0.9 esphome#17021 by @esphome[bot]
- [ci] Replace clang-tidy hash with direct config-file diff check esphome#17019 by @swoboda1337
- [ufm01] Add UFM-01 ultrasonic flow meter component esphome#16582 by @ljungqvist (new-component) (new-feature) (new-platform)
- [nrf52] add support for native builds esphome#16898 by @tomaszduda23
- [core] Add generic component alias infrastructure esphome#16826 by @jesserockz
- [esp32] Make ESP-IDF the default toolchain esphome#16910 by @swoboda1337 (breaking-change)
- [socket] bugfix Set wake-request gate flag on LwIP socket receive event esphome#17010 by @rwrozelle
- [openthread] Add basic Openthread support to Zephyr/nRF52 platform esphome#16854 by @Ardumine (new-feature)
- [ci] Smoke-test docker image by compiling each target toolchain esphome#16995 by @jesserockz
- [ci] Fail CI Status job when workflow is cancelled esphome#17024 by @jesserockz
- [esp32] Consolidate network/coexistence sdkconfig into a single reconciler esphome#17008 by @kbx81
- [esp32] Pin Names for Seeed XIAO C3 / C6 / S3 esphome#17002 by @zeroflow
- [audio] Bump microMP3 to v0.3.0 esphome#17009 by @kahrendt
- Mark configurable classes as final (1/21: a01nyub-aqi) esphome#16952 by @jesserockz
- Mark configurable classes as final (2/21: as3935_i2c-ble_rssi) esphome#16953 by @jesserockz
- [ci] Revert “Bump awalsh128/cache-apt-pkgs-action from 1.6.0 to 1.6.1” esphome#17028 by @bdraco
- [ci] Update component-test CI for ESP-IDF default toolchain esphome#16383 by @swoboda1337
- [wifi] Add runtime suppression of post-connect roaming scans esphome#17012 by @kahrendt
- [esp32] Remove framework migration notice esphome#17023 by @swoboda1337
- [ci] Smoke-test Arduino framework in esp32 PlatformIO job esphome#17034 by @swoboda1337
- [sen6x] Remove codeowner esphome#17056 by @mikelawrence
- [select] Remove deprecated state member esphome#17027 by @bdraco (breaking-change)
- Add THREAT_MODEL.md esphome#17089 by @bdraco
- [modbus] Fix parsing & split out server mode esphome#11969 by @exciton (breaking-change)
- [api] Remove pre-1.14 object_id backward-compat code esphome#17108 by @bdraco
- [web_server] Remove deprecated object ID URL matching esphome#17113 by @bdraco (breaking-change)
- [ethernet] Defer clk_mode removal to 2026.9.0 esphome#17114 by @bdraco
- [core] Remove deprecated std::string GPIOPin::dump_summary() esphome#17115 by @bdraco
- [core] Remove deprecated value_accuracy_to_string() esphome#17116 by @bdraco
- [remote_base] Remove deprecated MideaData::to_string() esphome#17117 by @bdraco
- [core] Remove deprecated get_object_id() and get_compilation_time() esphome#17112 by @bdraco
- [web_server] Deprecate version 1 esphome#17109 by @bdraco (breaking-change)
- [packages] Remove deprecated single-package include syntax esphome#17119 by @bdraco (breaking-change)
- [hub75] Remove deprecated scan_wiring name aliases esphome#17118 by @bdraco (breaking-change)
- [core] Remove deprecated std::string scheduler/timer overloads esphome#17111 by @bdraco
- [dashboard] Remove legacy web dashboard esphome#17124 by @jesserockz (breaking-change)
- [esp8266] Drop stale esphome-docker-base reference esphome#17123 by @bdraco
- [docs] Remove leftover dashboard references after dashboard removal esphome#17125 by @bdraco
- Mark configurable classes as final (21/21: zhlt01-zyaura) esphome#16972 by @jesserockz
- Mark configurable classes as final (4/21: chsc6x-dfplayer) esphome#16955 by @jesserockz
- [i2s_audio] Narrow wider streams to the speaker’s configured bit depth esphome#16821 by @kahrendt
- Mark configurable classes as final (3/21: ble_scanner-ch423) esphome#16954 by @jesserockz
- [rp2040] Bump arduino-pico framework to 5.6.1 esphome#17122 by @bdraco
- [ld2420] Mark configurable classes as final esphome#17130 by @jesserockz
- Mark configurable classes as final (9/21) esphome#16960 by @jesserockz
- Mark configurable classes as final (10/21: matrix_keypad-micronova) esphome#16961 by @jesserockz
- Mark configurable classes as final (6/21) esphome#16957 by @jesserockz
- Mark configurable classes as final (5/21) esphome#16956 by @jesserockz
- Mark configurable classes as final (7/21: gcja5-hlw8032) esphome#16958 by @jesserockz
- [graphical_display_menu] Mark configurable classes as final esphome#17129 by @jesserockz
- [dashboard_import] Store package_import_url in flash on ESP8266 esphome#17127 by @bdraco
- [sx126x] Add data whitening options esphome#17102 by @jclehner (new-feature)
- [ble_nus] Atomic log-line framing (no partial ring-buffer writes) esphome#17105 by @anunayk
- [docker] Remove dead HA addon env exports (streamer_mode, relative_url) esphome#17140 by @jesserockz
- [motion] Make motion test configs mergeable in CI esphome#17149 by @jesserockz
- [epaper_spi] Add support for the Inkplate 2 esphome#16856 by @arunderwood (new-feature)
- [epaper_spi] Add support for Waveshare 2.13” V4 series B (R/B/W) esphome#16828 by @profplump (new-feature)
- [core] Use CORE.is_* platform helpers in main esphome#17144 by @jesserockz
- [bme680_bsec][bme68x_bsec2][const] Move BME sensor constants to shared component consts esphome#17160 by @berikv
- [ci] Enable ccache for component batch builds (~7% faster) esphome#17136 by @swoboda1337
- [docker] Bump base image to 2026.07.0 for bundled ccache esphome#17157 by @swoboda1337
- [tests] Disable Hypothesis deadline on IP validation property tests esphome#17138 by @swoboda1337
- [espidf] Enable ccache by default for ESP-IDF builds esphome#17163 by @swoboda1337
- [config_validation] Make bind_key a sensitive dual-mode validator esphome#17146 by @jesserockz
- [docker] Move build deps to base image, drop app apt step esphome#17167 by @swoboda1337
- [ci] Exclude test changes from small-pr/medium-pr size labels esphome#17172 by @jesserockz
- Mark configurable classes as final (12/21: msa3xx-pm2005) esphome#16963 by @jesserockz
- [waveshare_io_ch32v003] Waveshare I/O Expander component esphome#10071 by @latonita (new-component) (new-feature) (new-platform)
- [waveshare_io_ch32v003] Pin i2c_id in test to avoid grouping conflict esphome#17191 by @swoboda1337
- [psram] Support ESP32-S31/H4 esphome#17192 by @swoboda1337 (new-feature)
- [wifi][openthread] Wire ESP32-S31/H4/H21 radio support esphome#17186 by @swoboda1337
- [tinyusb][usb_cdc_acm][usb_host][usb_uart] Support ESP32-S31/H4 esphome#17190 by @swoboda1337
- [i2c][spi] Wire ESP32-S31/H4/H21 bus capabilities esphome#17188 by @swoboda1337
- [host] Fix handling of directory for preferences esphome#11160 by @haku (new-feature)
- [config_validation] Add tests for 100% validator coverage esphome#17204 by @jesserockz
- [image] Use LVGL 9 color formats esphome#16871 by @kyvaith
- Mark configurable classes as final (15/21: script-slow_pwm) esphome#16966 by @jesserockz
- Mark configurable classes as final (14/21: rc522_i2c-scd4x) esphome#16965 by @jesserockz
- Mark configurable classes as final (18/21: template-tx20) esphome#16969 by @jesserockz
- Mark configurable classes as final (8/21: hm3301-integration) esphome#16959 by @jesserockz
- Mark configurable classes as final (13/21: pmsa003i-rc522) esphome#16964 by @jesserockz
- [ms8607] Mark configurable classes as final esphome#17147 by @jesserockz
- [uart] Validate fixed UART settings at config time for fixed-baud components esphome#17207 by @swoboda1337
- [modbus] Only apply turnaround delay after broadcasts esphome#17209 by @swoboda1337
- [openthread] Provide action to control poll_period when device MTD esphome#11766 by @rwrozelle (new-feature)
- [core] Defer requests imports to speed up config validation esphome#17215 by @frenck
- [time] Defer aioesphomeapi import to speed up config validation esphome#17214 by @frenck
- [mdns] Add mDNS to Zephyr and nRF52 esphome#16924 by @Ardumine
- [socket] Add BSD socket support for nRF52 esphome#16699 by @Ardumine
- [esp32] Only warn about S3 PSRAM pins (GPIO33-37) in octal mode esphome#17222 by @frenck
- [deep_sleep] Add ESP32-C5 support esphome#17237 by @swoboda1337
- [api] Add nRF52 support esphome#17226 by @Ardumine
- [nrf52] add upload for native build esphome#17100 by @tomaszduda23
- [platformio] Extract toolchain-agnostic PlatformIO library converter esphome#17243 by @swoboda1337
- [it8951] Add IT8951 e-paper controller support to epaper_spi esphome#15346 by @Passific (new-component) (new-feature) (new-platform)
- [core] Use single-precision float math to avoid double promotion esphome#17252 by @swoboda1337
- [multiple] Single-precision float math, avoid double promotion (batch 1/4) esphome#17253 by @swoboda1337
- [multiple] Single-precision float math, avoid double promotion (batch 2/4) esphome#17254 by @swoboda1337
- [multiple] Single-precision float math, avoid double promotion (batch 3/4) esphome#17255 by @swoboda1337
- [multiple] Single-precision float math, avoid double promotion (batch 4/4) esphome#17256 by @swoboda1337
- [modbus_server] Simplify server response handling esphome#12376 by @exciton
- [multiple] Single-precision float math, avoid double promotion (stragglers) esphome#17260 by @swoboda1337
- [modbus] Reinstate turnaround delay after broadcasts (Revert #17209) esphome#17263 by @exciton
- [mcp4725] Use constexpr bit shift instead of powf for full-scale value esphome#17261 by @bdraco
- [esphome] Warn when a YAML merge (
<<:) drops a key esphome#17246 by @clydebarrow (new-feature) - [audio] Bump microMP3 to v0.4.0 esphome#17279 by @kahrendt
- [core] Drop Python 3.11 support esphome#17280 by @swoboda1337 (breaking-change)
- [ethernet] Generic and YT8531 PHY over RGMII (gigabit) for ESP32-S31 esphome#17277 by @swoboda1337 (new-feature)
- [network] Enlarge Zephyr net buffer pool and TCP windows on nRF52/Zephyr plataform esphome#17278 by @Ardumine
- Revert “Bump awalsh128/cache-apt-pkgs-action from 1.6.0 to 1.6.2 (#17286)” esphome#17289 by @swoboda1337
- [agents] Add English language AI guidelines for documentation esphome#17290 by @clydebarrow
- [qmi8658] Motion platform for QMI8658 IMU esphome#16889 by @clydebarrow (new-component) (new-feature) (new-platform)
- [cst9220] Add CST9220 and CST9217 touchscreen support esphome#16888 by @clydebarrow (new-component) (new-feature) (new-platform)
- [pixoo] Add Divoom Pixoo display component esphome#16974 by @jesserockz (new-component) (new-feature) (new-platform)
- [libretiny] Update LibreTiny to v1.13.0 esphome#17288 by @swoboda1337 (breaking-change)
- [mqtt] Add LN882X (LN882H) platform support esphome#17297 by @Bl00d-B0b (new-feature)
- [devcontainer] Align base image with production, fix Python venv and build tools esphome#17296 by @exciton
- [qmi8658] Pin i2c_id in test config to fix grouped component test conflict esphome#17303 by @swoboda1337
- [ci] Fix nRF52 zigbee/network test-grouping conflict esphome#17295 by @swoboda1337
- [ci] Widen import-time margin for CI runner variance esphome#17287 by @swoboda1337
- [modbus] Update client components to use ModbusClientDevice esphome#11987 by @exciton
- [espidf] Install native ESP-IDF into a machine-global cache dir esphome#17306 by @swoboda1337
- [tests] Add esp32-c61-idf base file for grouped component tests esphome#17293 by @swoboda1337
- [ethernet] Fix ETH_SPEED_1000M build on IDF 6.0 (enum added in 6.1) esphome#17311 by @swoboda1337
- [modbus_server] Fix register range issues and allow partial reads esphome#17205 by @exciton (new-feature)
- [esp8266] Strip dead libstdc++ throw message strings from DRAM esphome#17341 by @bdraco
- [usb_uart] Fix format specifier warnings for uint32_t in ft23xx and pl2303 esphome#17342 by @p1ngb4ck
- [power_supply] Make enable_on_boot high priority esphome#16914 by @clydebarrow
- [usb_uart] Add per-device-type maximum baud rate cap esphome#17259 by @p1ngb4ck
- [epaper_spi] Add Waveshare 7.5” V2 BWR support esphome#15719 by @twisterss (new-feature)
- [st7123] add ST7123 touch controller component (M5Stack Tab5) esphome#12075 by @miniskipper (new-component) (new-feature) (new-platform)
- [zephyr][nrf52] Rebuild native build when config inputs change esphome#17318 by @tomaszduda23
- [nrf52] Build PlatformIO libraries as Zephyr modules (sdk-nrf) esphome#17250 by @swoboda1337
- [nrf52] Install native sdk-nrf into a machine-global cache dir esphome#17353 by @swoboda1337
- [api] Register homeassistant.action with synchronous=False to fix stale trigger args in response callbacks esphome#17367 by @swoboda1337
- [core] Skip MAC-suffix mDNS discovery for non-mDNS addresses esphome#16874 by @jspiros
- [zephyr] Implement GPIO interrupts (ISRInternalGPIOPin) esphome#17077 by @anunayk
- Synchronise Device Classes from Home Assistant esphome#17372 by @esphome[bot]
- [nrf52] fix crash report for native build esphome#17371 by @tomaszduda23
- [nrf52] switch nrf52 builds to native sdk by default esphome#17319 by @tomaszduda23
- [ci] Carry native-toolchain needs on component test batches esphome#17359 by @swoboda1337
- [zigbee] Bump zigbee sdk to 2.0.2 esphome#16869 by @luar123 (breaking-change)
- [nrf52] Run clang-tidy against the native sdk-nrf toolchain esphome#17364 by @swoboda1337
- [cst328] Touch screen (Waveshare ESP32-S3-Touch-LCD-2.8) esphome#8011 by @latonita (new-component) (new-feature) (new-platform)
- [epaper_spi] Add T133A01 6-color e-paper driver for reTerminal E1004 esphome#16706 by @limengdu (new-feature)
- [ci] Name the sdk-nrf cache steps after the nRF Connect SDK esphome#17392 by @swoboda1337
- [esp32] Add RTC-backed preferences (honor in_flash flag) esphome#17073 by @bootc (new-feature)
- [ci] Make import time budget more realistic esphome#17406 by @clydebarrow
- [mipi_spi] Add Waveshare-ESP32-S3-TOUCH-AMOLED-1.64 esphome#17386 by @crimike (new-feature)
- [nrf52] let user select libc version esphome#17408 by @tomaszduda23 (new-feature)
- [cst328] Use dict-style packages so batch grouping deduplicates the i2c bus esphome#17413 by @jesserockz
- [esp32] Suppress -Wvolatile in the direct ESP-IDF build esphome#17404 by @bdraco
- [cst328] Update test package esphome#17415 by @jesserockz
- Mark configurable classes as final (17/21: ssd1351_spi-tem3200) esphome#16968 by @jesserockz
- Mark configurable classes as final (16/21: sm10bit_base-ssd1331_spi) esphome#16967 by @jesserockz
- Mark configurable classes as final (19/21: uart-wl_134) esphome#16970 by @jesserockz
- Mark configurable classes as final (11/21: microphone-ms8607) esphome#16962 by @jesserockz
- [modbus] API naming esphome#17378 by @exciton
- [core] helpers.h - Implement pop_back method for vector esphome#17390 by @p1ngb4ck
- [bluetooth_proxy] Take over stale advertisement subscription instead of rejecting the new subscriber esphome#17423 by @bdraco (breaking-change)
- [wifi] Accept boolean-like strings for fast_connect again esphome#17414 by @bdraco
- [nrf52] allow to build for non nrf52840 boards esphome#17373 by @tomaszduda23 (breaking-change)
- [nrf52] add better error message for OTA error esphome#17407 by @tomaszduda23
- [tests] Document dict-style packages requirement for batch grouping esphome#17420 by @jesserockz
- [rp2] Rename rp2040 platform to rp2 esphome#17145 by @jesserockz (new-feature)
- [espnow] Add max_payload_size option for ESP-NOW v2 frames esphome#17360 by @swoboda1337 (new-feature)
- Bump bundled esphome-device-builder to 1.2.0 esphome#17430 by @esphome[bot]
- [modbus] Store ModbusFrame inline to cut per-frame heap churn esphome#17282 by @exciton
- Mark configurable classes as final (20/21: wts01-zephyr_ble_server) esphome#16971 by @jesserockz
- [mipi_spi] Add M5STACK ATOM3SR display esphome#17344 by @clydebarrow (new-feature)
- [esp32] Add software OTA downgrade protection esphome#17315 by @kbx81 (new-feature)
- [esp8266] Strip lwIP glue dhcp stub message strings from DRAM esphome#17395 by @bdraco
- [analyze_memory] Report aliased RAM symbols once in the RAM strings report esphome#17397 by @bdraco
- [web_server] Use known message length in SSE send path esphome#17400 by @bdraco
- [libretiny] Use standard logger tag names esphome#17431 by @bdraco
- [lvgl] Continue activity while display busy esphome#17374 by @clydebarrow (new-feature)
- [light] Preserve brightness on turn-off. esphome#17103 by @clydebarrow (breaking-change)
- [esp32] Add NVS encryption (HMAC scheme) esphome#17004 by @kbx81 (new-feature)
- [pcm5122] Add analog gain, channel mixing, volume range, standby/powerdown switch, and XSMT enable pin support esphome#17313 by @remcom (new-feature) (new-platform)
- [network] Fix logged use_address with MAC suffix and build it at runtime esphome#17432 by @bdraco
- [core] add const for litre per hour esphome#17389 by @luar123
- [usb_uart] Fix FTDI RX data stall / corruption and input restart reliability esphome#17348 by @p1ngb4ck
- [audio_file] Accept mp1/mp2 puremagic detections as MP3 esphome#17436 by @remcom
- [lvgl] Add paused option to suppress updates on boot esphome#16973 by @clydebarrow (new-feature)
- [esp32_ble] Fix boot loop when the hosted co-processor does not answer BT bring-up esphome#17429 by @bdraco
- [internal_temperature] Support all ESP32 variants with a temperature sensor esphome#17438 by @swoboda1337
- [modbus] Finalize unreleased API surface before 2026.7 esphome#17434 by @exciton
- [web_server_idf] Deliver raw POST bodies to custom handlers via handleBody() esphome#17433 by @jesserockz
- [web_server_idf] Map more common HTTP status codes in responses esphome#17447 by @jesserockz
- Bump bundled esphome-device-builder to 1.3.0 esphome#17448 by @esphome[bot]
- [provisioning] Add provisioning window esphome#17152 by @kbx81 (new-component) (new-feature)
- [sendspin] Suppress WiFi roam scanning while playing esphome#17133 by @kahrendt
- [lvgl] Add animations esphome#16796 by @clydebarrow (new-feature)
- [lvgl] Add direct use of
mappingesphome#15863 by @clydebarrow (new-feature) - Bump bundled esphome-device-builder to 1.3.1 esphome#17450 by @esphome[bot]
- [uart][usb_uart] Implement runtime settings update esphome#16990 by @clydebarrow
- [zigbee] Allow to combine and merge endpoints on esp32 esphome#17402 by @luar123 (new-feature) (breaking-change)
- [lvgl] Fix ImageValidator.process signature to match base esphome#17451 by @swoboda1337
- [image] Restructure into a platform component esphome#17416 by @jesserockz (new-component) (new-feature)
- [lvgl] Dynamic rotation features esphome#16773 by @clydebarrow (new-feature)
- [core] Hide build & framework internals from the visual editor esphome#17449 by @jesserockz
- [gsl3670] Add new touchscreen component esphome#16285 by @clydebarrow (new-component) (new-feature) (new-platform)
- [gsl3670] Reference the test display explicitly so grouped CI builds validate esphome#17462 by @swoboda1337
- [usb_uart] Fix output chunk length truncated to 8 bits esphome#17480 by @swoboda1337
- [mcp4461] Fix wiper increment/decrement write length esphome#17487 by @swoboda1337
- [web_server] Serialize entity state strings without a copy buffer esphome#17488 by @swoboda1337
- Bump bundled esphome-device-builder to 1.4.0 esphome#17495 by @esphome[bot]
- Bump bundled esphome-device-builder to 1.4.1 esphome#17507 by @esphome[bot]
- [mipi][mipi_spi][mipi_dsi][mipi_rgb] Transform cleanup esphome#17405 by @clydebarrow (breaking-change)
- Bump bundled esphome-device-builder to 1.4.2 esphome#17512 by @esphome[bot]
- [mipi][mipi_spi] SWRESET handling improved esphome#17504 by @clydebarrow
- [mipi_dsi] New model for M5Stack Tab5 esphome#17500 by @clydebarrow (new-feature)
- [deep_sleep] feed watchdog in deep sleep esphome#17516 by @tomaszduda23
- Bump bundled esphome-device-builder to 1.4.3 esphome#17522 by @esphome[bot]
- [core] Make config-hash independent of machine-local paths esphome#17523 by @bdraco
- [mdns] Fix missing device info TXT records when native API is not enabled esphome#17520 by @bdraco
- [web_server] Fix unused function warning for json_state_str esphome#17524 by @bdraco
- [zigbee] Fix merge endpoint esphome#17511 by @luar123
- [zigbee] prevent task watchdog trigger with large configs. esphome#17506 by @luar123
- [core] Classify entity metadata visibility for the visual editor esphome#17503 by @jesserockz
- [api] Provision encryption keys over an encrypted zero-PSK noise connection esphome#17482 by @bdraco
- [zwave_proxy] Fix parser gaps and harden frame and subscription handling esphome#17461 by @kbx81
- [mipi_rgb] Test in isolation to avoid bus/pin merge conflicts esphome#17534 by @swoboda1337
- [gsl3670] Fix i2c package variant in esp32-s3-idf test esphome#17535 by @jesserockz
- [web_server] Add CORS origin checking with allowed_origins esphome#17530 by @jesserockz (breaking-change)
- [esp32] Do not require verification_key with Secure Boot V2 signing schemes esphome#17497 by @kbx81
- [web_server] Use dict-style packages in tests so they can be batch-grouped esphome#17544 by @jesserockz
- [web_server] Add HTTP digest authentication with selectable scheme esphome#17541 by @jesserockz (new-feature)
- [libretiny] Keep renamed board generic-ln882hki validating against generic-ln882h esphome#17542 by @bdraco
- [veml7700][as7341][ltr501] Fix device class on raw-count sensors esphome#17549 by @swoboda1337
- [nextion] Fix unbounded queue growth and OOM crash when display sends no data esphome#17553 by @kbx81
- [script] Recursively expand nested packages when merging component tests esphome#17557 by @jesserockz
- [mcp23017] reset IPOL registers to 0x00 on setup esphome#17177 by @Rocco83
- Bump bundled esphome-device-builder to 1.5.0 esphome#17558 by @esphome[bot]
- [atc_mithermometer] Make duplicate-packet counter per-instance esphome#17496 by @swoboda1337
- [zigbee] bump esp-zigbee-sdk to 2.0.3 esphome#17564 by @luar123
- Bump bundled esphome-device-builder to 1.6.0 esphome#17573 by @esphome[bot]
- [api] Warn when Home Assistant actions are sent with no subscribed client esphome#17560 by @jesserockz
- Bump bundled esphome-device-builder to 1.6.1 esphome#17575 by @esphome[bot]
- [core] Fix wait_until crash when re-entered from its own continuation esphome#17571 by @jesserockz
Dependency Changes
Section titled “Dependency Changes”- Bump ruff from 0.15.16 to 0.15.17 esphome#16918 by @dependabot[bot]
- Bump CodSpeedHQ/action from 4.17.0 to 4.17.5 esphome#16919 by @dependabot[bot]
- Bump clang-tidy from 22.1.0.1 to 22.1.7 esphome#16984 by @dependabot[bot]
- Bump tzlocal from 5.3.1 to 5.4.3 esphome#17015 by @dependabot[bot]
- Bump pylint from 4.0.5 to 4.0.6 esphome#16983 by @dependabot[bot]
- Bump awalsh128/cache-apt-pkgs-action from 1.6.0 to 1.6.1 esphome#16986 by @dependabot[bot]
- Bump cryptography from 48.0.1 to 49.0.0 esphome#16985 by @dependabot[bot]
- Bump pytest from 9.0.3 to 9.1.0 esphome#16981 by @dependabot[bot]
- Bump actions/checkout from 6.0.3 to 7.0.0 esphome#17049 by @dependabot[bot]
- Bump CodSpeedHQ/action from 4.17.5 to 4.17.6 esphome#17047 by @dependabot[bot]
- Bump ruff from 0.15.17 to 0.15.18 esphome#17046 by @dependabot[bot]
- Bump py7zr from 1.1.0 to 1.1.3 esphome#17071 by @dependabot[bot]
- Bump resvg-py from 0.3.2 to 0.3.3 esphome#17070 by @dependabot[bot]
- Bump pytest from 9.1.0 to 9.1.1 esphome#17069 by @dependabot[bot]
- Bump actions/cache from 5.0.5 to 6.0.0 in /.github/actions/restore-python esphome#17169 by @dependabot[bot]
- Bump actions/cache from 5.0.5 to 6.0.0 esphome#17168 by @dependabot[bot]
- Bump ruff from 0.15.18 to 0.15.19 esphome#17195 by @dependabot[bot]
- Bump CodSpeedHQ/action from 4.17.6 to 4.18.1 esphome#17198 by @dependabot[bot]
- Bump actions/setup-python from 6.2.0 to 6.3.0 esphome#17197 by @dependabot[bot]
- Bump actions/setup-python from 6.2.0 to 6.3.0 in /.github/actions/restore-python esphome#17194 by @dependabot[bot]
- Bump aioesphomeapi from 45.3.1 to 45.5.2 esphome#17211 by @dependabot[bot]
- Bump ruff from 0.15.19 to 0.15.20 esphome#17216 by @dependabot[bot]
- Bump actions/cache/restore from 6.0.0 to 6.1.0 in /.github/actions/restore-python esphome#17228 by @dependabot[bot]
- Bump actions/cache/save from 6.0.0 to 6.1.0 esphome#17229 by @dependabot[bot]
- Bump actions/cache from 6.0.0 to 6.1.0 esphome#17230 by @dependabot[bot]
- Bump actions/cache/restore from 6.0.0 to 6.1.0 esphome#17231 by @dependabot[bot]
- Bump awalsh128/cache-apt-pkgs-action from 1.6.0 to 1.6.2 esphome#17286 by @dependabot[bot]
- Bump tzlocal from 5.4.3 to 5.4.4 esphome#17283 by @dependabot[bot]
- Bump esptool from 5.3.0 to 5.3.1 esphome#17284 by @dependabot[bot]
- Bump puremagic from 1.30 to 2.2.0 esphome#17285 by @dependabot[bot]
- Bump platformdirs from 4.9.4 to 4.10.0 esphome#17309 by @dependabot[bot]
- Bump awalsh128/cache-apt-pkgs-action from 1.6.0 to 1.6.3 esphome#17310 by @dependabot[bot]
- Bump pillow from 12.2.0 to 12.3.0 esphome#17335 by @dependabot[bot]
- Bump github/codeql-action/analyze from 4.36.2 to 4.36.3 esphome#17363 by @dependabot[bot]
- Bump github/codeql-action/init from 4.36.2 to 4.36.3 esphome#17362 by @dependabot[bot]
- Bump the docker-actions group with 2 updates esphome#17361 by @dependabot[bot]
- Bump docker/build-push-action from 7.2.0 to 7.3.0 in /.github/actions/build-image esphome#17336 by @dependabot[bot]
- Update argcomplete requirement from >=3.6.3 to >=3.7.0 esphome#17334 by @dependabot[bot]
- Bump docker/login-action from 4.3.0 to 4.4.0 in the docker-actions group esphome#17380 by @dependabot[bot]
- Bump smpclient from 6.0.0 to 7.2.0 esphome#16928 by @dependabot[bot]
- Bump setuptools from 82.0.1 to 83.0.0 esphome#17426 by @dependabot[bot]
- Bump astral-sh/setup-uv from 8.2.0 to 8.3.0 in /.github/actions/restore-python esphome#17427 by @dependabot[bot]
- Bump astral-sh/setup-uv from 8.2.0 to 8.3.0 esphome#17428 by @dependabot[bot]
- Bump astral-sh/setup-uv from 8.3.0 to 8.3.1 in /.github/actions/restore-python esphome#17442 by @dependabot[bot]
- Bump astral-sh/setup-uv from 8.3.0 to 8.3.1 esphome#17444 by @dependabot[bot]
- Bump CodSpeedHQ/action from 4.18.1 to 4.18.2 esphome#17445 by @dependabot[bot]
- Bump astral-sh/setup-uv from 8.3.1 to 8.3.2 in /.github/actions/restore-python esphome#17452 by @dependabot[bot]
- Bump github/codeql-action/init from 4.36.3 to 4.37.0 esphome#17453 by @dependabot[bot]
- Bump astral-sh/setup-uv from 8.3.1 to 8.3.2 esphome#17454 by @dependabot[bot]
- Bump CodSpeedHQ/action from 4.18.2 to 4.18.4 esphome#17455 by @dependabot[bot]
- Bump github/codeql-action/analyze from 4.36.3 to 4.37.0 esphome#17456 by @dependabot[bot]
- Bump aioesphomeapi from 45.5.2 to 45.6.0 esphome#17490 by @dependabot[bot]