Skip to content

2026

Scheduler String-Based API Deprecation

The scheduler's std::string-based APIs (set_timeout, set_interval, set_retry, defer, and their cancel counterparts) are now deprecated. Use const char* string literals or uint32_t numeric IDs instead.

This deprecation affects ESPHome 2026.1.0 and later, with removal planned for 2026.7.0.

Build Info and compilation_time API Changes

The App.get_compilation_time() method is deprecated in favor of new constexpr methods. The compilation_time field in the native API now updates on every compile.

This is a breaking change for external components in ESPHome 2026.1.0 and later.

GPIOPin::dump_summary() Now Uses Buffer-Based API

The GPIOPin::dump_summary() virtual method now writes to a caller-provided buffer instead of returning std::string. This eliminates heap allocations during configuration dumps.

This is a breaking change for external components that implement custom GPIO pins in ESPHome 2026.1.0 and later.

Listener Interface Pattern for OTA and Alarm Control Panel

The OTA component now uses a listener interface instead of std::function callbacks. The alarm control panel component has removed per-state callback methods in favor of a unified state callback.

This is a breaking change for external components in ESPHome 2026.1.0 and later.

Socket and ClientInfo std::string Removal

The Socket class virtual methods getpeername() and getsockname() that returned std::string have been removed. The ClientInfo struct no longer contains std::string fields.

This is a breaking change for external components in ESPHome 2026.1.0 and later.

Entity Getters Now Return StringRef

Several entity component getters now return StringRef instead of const char* or std::string. This improves safety by eliminating null pointer crashes and provides a modern C++ API.

This is a breaking change for external components in ESPHome 2026.1.0 and later.

USE_ESP_IDF Deprecated in Favor of USE_ESP32

The USE_ESP_IDF C++ define and related Python APIs are deprecated. Since Arduino-ESP32 is built on ESP-IDF, all IDF APIs are available on ESP32 regardless of framework selection.

This is a breaking change for external components in ESPHome 2026.1.0 and later.