Climate Entity Class: FiniteSetMask and Flash Storage Optimizations
ESPHome 2025.11.0 introduces significant memory optimizations to the Climate entity class that affect external components implementing custom climate devices.
ESPHome 2025.11.0 introduces significant memory optimizations to the Climate entity class that affect external components implementing custom climate devices.
ESPHome 2025.11.0 introduces memory optimizations to the Event entity class that reduce heap usage and store event type strings in flash. These changes affect external components implementing custom event devices.
ESPHome 2025.11.0 introduces a memory optimization to the Fan entity class that also changes how preset modes are ordered. This affects external components implementing custom fan devices and may change the display order of preset modes in Home Assistant.
ESPHome 2025.11.0 introduces memory optimizations to the Light entity class that reduce both heap and flash usage. These changes affect external components implementing custom light devices and effects.
ESPHome 2025.11.0 introduces significant optimizations to the Select entity class that reduce memory usage and improve performance. These changes affect external components that implement custom select entities.
The core automation framework (actions, triggers, and conditions) has been optimized to use const references instead of pass-by-value for parameter passing. This reduces memory allocations by 83% in the automation execution path.
This is a breaking change for external components with custom actions or conditions in ESPHome 2025.11.0 and later.
At the beginning of this year, we made the transition from IDF 4.4 to IDF 5.1; this was a major upgrade and many changes were necessary within ESPHome to achieve this.
*.*_SCHEMA deprecationsIn order to align all of the top level platform components (listed below), we are deprecating the *_SCHEMA constants that are present. Some examples are SENSOR_SCHEMA, SWITCH_SCHEMA and so on.
ESPHome's "custom component" mechanism was a holdover from Home Assistant's feature by the same name. It existed before external components and offered a way to "hack in" support for devices which were not officially supported by ESPHome.
Welcome to the first post of this new ESPHome Developer Documentation. This is a place where you can find all the information you need to start developing for ESPHome. This website will cover everything you need to create components and how to structure your code so that it will be easy to maintain and understand.