From ec9d59f3dc61535c069b8bd769b205d2b9b308d6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 18 Apr 2026 12:32:36 +0000 Subject: [PATCH 1/5] Bump aioesphomeapi from 44.16.0 to 44.16.1 (#15836) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 36c81e25bf..1623876cb5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,7 +12,7 @@ platformio==6.1.19 esptool==5.2.0 click==8.3.2 esphome-dashboard==20260408.1 -aioesphomeapi==44.16.0 +aioesphomeapi==44.16.1 zeroconf==0.148.0 puremagic==1.30 ruamel.yaml==0.19.1 # dashboard_import From ccb53e34ca677659e78abdfe0d72ac95be179372 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Sat, 18 Apr 2026 08:04:51 -0500 Subject: [PATCH 2/5] [core] Default PollingComponent() to 1ms when codegen is bypassed (#15831) --- esphome/core/component.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/esphome/core/component.h b/esphome/core/component.h index 6fbb0d5c06..717ca36257 100644 --- a/esphome/core/component.h +++ b/esphome/core/component.h @@ -601,7 +601,7 @@ class Component { */ class PollingComponent : public Component { public: - PollingComponent() : PollingComponent(0) {} + PollingComponent() : PollingComponent(1) {} /** Initialize this polling component with the given update interval in ms. * From 63606dd4bb14d1b8275d8cee01f1bb5821df20c1 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Sat, 18 Apr 2026 08:09:03 -0500 Subject: [PATCH 3/5] [esp8266] Pin tool-esptoolpy to 5.x to match ESP32 platform The platform-espressif8266 4.2.1 platform manifest pins tool-esptoolpy to ~1.30000.0, while the pioarduino ESP32 platform uses 5.2.0. Because PlatformIO stores tool-esptoolpy in a single shared package directory, switching between esp8266 and esp32 builds forces PlatformIO to uninstall and reinstall the package every time. Override the pin on the ESP8266 side to the same pioarduino 5.2.0 build so both platforms resolve to the same installed package. ESPHome already invokes its own Python esptool 5.2.0 for uploads, and modern esptool still accepts the legacy underscore CLI flags used by the ESP8266 platform's builder scripts. --- esphome/components/esp8266/__init__.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/esphome/components/esp8266/__init__.py b/esphome/components/esp8266/__init__.py index bef7e36470..6a72bb429e 100644 --- a/esphome/components/esp8266/__init__.py +++ b/esphome/components/esp8266/__init__.py @@ -264,7 +264,14 @@ async def to_code(config): cg.add_platformio_option("platform", conf[CONF_PLATFORM_VERSION]) cg.add_platformio_option( "platform_packages", - [f"platformio/framework-arduinoespressif8266@{conf[CONF_SOURCE]}"], + [ + f"platformio/framework-arduinoespressif8266@{conf[CONF_SOURCE]}", + # Override the ancient tool-esptoolpy ~1.30000.0 pinned by + # platform-espressif8266 4.2.1 with the same 5.x build the + # pioarduino ESP32 platform uses, so both platforms share the + # same installed package and stop reinstalling on every switch. + "pioarduino/tool-esptoolpy@https://github.com/pioarduino/registry/releases/download/0.0.1/esptoolpy-v5.2.0.zip", + ], ) # Default for platformio is LWIP2_LOW_MEMORY with: From addda4c48fbd832c6410c65354da591bbbff4c7a Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Sat, 18 Apr 2026 08:10:29 -0500 Subject: [PATCH 4/5] [esp8266] Mirror tool-esptoolpy pin in dev platformio.ini Keep local pio run -e esp8266-arduino / esp32-arduino invocations (clang-tidy, IDE) in sync with the ESPHome codegen override so they share the same installed tool-esptoolpy package. --- .clang-tidy.hash | 2 +- platformio.ini | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.clang-tidy.hash b/.clang-tidy.hash index 72a9967590..ba22a61ede 100644 --- a/.clang-tidy.hash +++ b/.clang-tidy.hash @@ -1 +1 @@ -075ed2142432dc59883bb52db8ac11270f952851d6400deae080f5468c7cb592 +b92adf594cf596ec5dd5858406c479ac258eb33f2a7517522ed89d4594a68f56 diff --git a/platformio.ini b/platformio.ini index e2c7e2b097..2bb5f40d09 100644 --- a/platformio.ini +++ b/platformio.ini @@ -105,6 +105,11 @@ extends = common:arduino platform = platformio/espressif8266@4.2.1 platform_packages = platformio/framework-arduinoespressif8266@~3.30102.0 + ; Override the ancient tool-esptoolpy ~1.30000.0 pinned by + ; platform-espressif8266 4.2.1 with the same 5.x build the pioarduino + ; ESP32 platform uses, so switching between esp8266 and esp32 builds + ; does not reinstall tool-esptoolpy every time. + pioarduino/tool-esptoolpy@https://github.com/pioarduino/registry/releases/download/0.0.1/esptoolpy-v5.2.0.zip framework = arduino lib_deps = From fe0668424276737dea5f76c1a8a04ba7d86e144b Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Sat, 18 Apr 2026 08:12:28 -0500 Subject: [PATCH 5/5] [esp8266] Clarify 0.0.1 is pioarduino registry tag, not tool version --- .clang-tidy.hash | 2 +- esphome/components/esp8266/__init__.py | 2 ++ platformio.ini | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.clang-tidy.hash b/.clang-tidy.hash index ba22a61ede..bc8cd1dacd 100644 --- a/.clang-tidy.hash +++ b/.clang-tidy.hash @@ -1 +1 @@ -b92adf594cf596ec5dd5858406c479ac258eb33f2a7517522ed89d4594a68f56 +88bba93420f1dbc8c64a555c631195a8dc9544e6dc98ae45ac04978206c01bd7 diff --git a/esphome/components/esp8266/__init__.py b/esphome/components/esp8266/__init__.py index 6a72bb429e..9a16d5b90c 100644 --- a/esphome/components/esp8266/__init__.py +++ b/esphome/components/esp8266/__init__.py @@ -270,6 +270,8 @@ async def to_code(config): # platform-espressif8266 4.2.1 with the same 5.x build the # pioarduino ESP32 platform uses, so both platforms share the # same installed package and stop reinstalling on every switch. + # The 0.0.1 path component is pioarduino's stable registry + # release tag (not the tool version); the tool itself is 5.2.0. "pioarduino/tool-esptoolpy@https://github.com/pioarduino/registry/releases/download/0.0.1/esptoolpy-v5.2.0.zip", ], ) diff --git a/platformio.ini b/platformio.ini index 2bb5f40d09..d98d584b2e 100644 --- a/platformio.ini +++ b/platformio.ini @@ -109,6 +109,8 @@ platform_packages = ; platform-espressif8266 4.2.1 with the same 5.x build the pioarduino ; ESP32 platform uses, so switching between esp8266 and esp32 builds ; does not reinstall tool-esptoolpy every time. + ; The 0.0.1 path component is pioarduino's stable registry release tag + ; (not the tool version); the tool itself is 5.2.0. pioarduino/tool-esptoolpy@https://github.com/pioarduino/registry/releases/download/0.0.1/esptoolpy-v5.2.0.zip framework = arduino