ESPHome 2026.2.0 - February 2026
Full list of changes
The lists below are grouped by tag and may contain duplicates across sections.
New Features
- [debug] Add min_free heap sensor for ESP32 and LibreTiny, add fragmentation for ESP32 esphome#13231 by @bdraco (new-feature)
- [mipi_dsi] add JC8012P4A1 esphome#13241 by @remcom (new-feature)
- [select] Add condition for testing select option esphome#13267 by @clydebarrow (new-feature)
- [mipi_spi] Add variants of ESP32-2432S028 displays esphome#13340 by @clydebarrow (new-feature)
- [sensor] Enhance delta filter with a max value esphome#12605 by @polyfloyd (new-feature)
- [heatpumpir] Add ESP-IDF support, bump to 1.0.40 esphome#13042 by @swoboda1337 (new-feature)
- [nextion] Add configurable startup and queue timeout constants esphome#11098 by @edwardtfn (new-feature)
- [mipi_dsi] Add M5Stack Tab5 (Rev2/V2) DriverChip esphome#12074 by @miniskipper (new-feature)
- [bthome_mithermometer] add encrypted beacon support esphome#13428 by @nagyrobi (new-feature)
- [sensor] Clamp filter handles non-finite values better esphome#13457 by @clydebarrow (new-feature) (breaking-change)
- [sy6970] Implement support for the sy6970 BMS component esphome#13311 by @linkedupbits (new-component) (new-feature) (new-platform)
- [http_request] Add custom CA certificate support for ESP32 esphome#13552 by @swoboda1337 (new-feature)
- [hub75] Add Huidu HD-WF1 board configuration esphome#13341 by @sehraf (new-feature)
- [nrf52,zigbee] Time synchronization esphome#12236 by @tomaszduda23 (new-feature) (new-platform)
- [nrf52,zigbee] Address change esphome#13580 by @tomaszduda23 (new-feature)
- [esp32] Add advanced sdkconfig options to reduce build time and binary size esphome#13611 by @bdraco (new-feature)
- [nrf52,zigbee] Support for number component esphome#13581 by @tomaszduda23 (new-feature)
- [esp32] Reduce compile time by excluding unused IDF components esphome#13610 by @bdraco (new-feature)
- [ch423] Add CH423 I/O expander component esphome#13079 by @dwmw2 (new-component) (new-feature)
- [pmsx003] support device-types
PMS1003,PMS3003,PMS9003Mesphome#13640 by @ximex (new-feature) - [dlms_meter] Add dlms smart meter component esphome#8009 by @SimonFischer04 (new-component) (new-feature) (new-platform)
- [ethernet] Add on_connect and on_disconnect triggers esphome#13677 by @rogerfachini (new-feature)
- Add WAVESHARE-ESP32-P4-WIFI6-TOUCH-LCD-7B mipi_dsi driver esphome#13608 by @agillis (new-feature)
- [key_collector] Add text sensor and allow multiple callbacks esphome#13617 by @clydebarrow (new-feature) (new-platform)
- [cover] Add operation-based triggers and fix repeated trigger firing esphome#13471 by @Copilot (new-feature) (breaking-change)
- [vbus] Add DeltaSol BS/2 support with sensors and binary sensors esphome#13762 by @Bercek71 (new-feature)
- Add target_temperature to the template water heater esphome#13661 by @tronikos (new-feature)
- [epaper_spi] Add Waveshare 1.54-G esphome#13758 by @schdro (new-feature)
- [mipi_dsi] Add WAVESHARE-ESP32-P4-WIFI6-TOUCH-LCD 3.4C and 4C esphome#13840 by @gtjoseph (new-feature)
- [ld2450] add on_data callback esphome#13601 by @ccutrer (new-feature)
- [water_heater] Add On/Off and Away mode support to template platform esphome#13839 by @tronikos (new-feature)
- [logger] Add nRF52 task log buffer and unify TaskLogBuffer interface esphome#13862 by @tomaszduda23 (new-feature)
- [mqtt.cover] Add option to publish states as JSON payload esphome#12639 by @heythisisnate (new-feature)
New Components
- [bmp581] Split into
bmp581_baseandbmp581_i2cesphome#12485 by @danielkent-net (new-component) (breaking-change) (new-platform) - [sy6970] Implement support for the sy6970 BMS component esphome#13311 by @linkedupbits (new-component) (new-feature) (new-platform)
- [ch423] Add CH423 I/O expander component esphome#13079 by @dwmw2 (new-component) (new-feature)
- [dlms_meter] Add dlms smart meter component esphome#8009 by @SimonFischer04 (new-component) (new-feature) (new-platform)
New Platforms
- [bmp581] Split into
bmp581_baseandbmp581_i2cesphome#12485 by @danielkent-net (new-component) (breaking-change) (new-platform) - [sy6970] Implement support for the sy6970 BMS component esphome#13311 by @linkedupbits (new-component) (new-feature) (new-platform)
- [nrf52,zigbee] Time synchronization esphome#12236 by @tomaszduda23 (new-feature) (new-platform)
- [dlms_meter] Add dlms smart meter component esphome#8009 by @SimonFischer04 (new-component) (new-feature) (new-platform)
- [key_collector] Add text sensor and allow multiple callbacks esphome#13617 by @clydebarrow (new-feature) (new-platform)
Breaking Changes
- [sensor] Clamp filter handles non-finite values better esphome#13457 by @clydebarrow (new-feature) (breaking-change)
- [bmp581] Split into
bmp581_baseandbmp581_i2cesphome#12485 by @danielkent-net (new-component) (breaking-change) (new-platform) - [esp32] Default to CMN certificate bundle, saving ~51KB flash esphome#13574 by @bdraco (breaking-change)
- [cover] Add operation-based triggers and fix repeated trigger firing esphome#13471 by @Copilot (new-feature) (breaking-change)
- [esp32] Reduce Arduino build size by 44% and build time by 36% esphome#13623 by @bdraco (breaking-change)
- [dsmr] Fix issue with parsing lines like
1-0:0.2.0((ER11))esphome#13780 by @PolarGoose (breaking-change) - [voice_assistant] Replace timer unordered_map with vector to eliminate per-tick heap allocation esphome#13857 by @bdraco (breaking-change)
- [api] Deprecate WATER_HEATER_COMMAND_HAS_STATE esphome#13892 by @tronikos (breaking-change)
- [bl0942] Update reference values esphome#12867 by @DjordjeMandic (breaking-change)
All changes
- [lvgl] Use stack buffer for event code formatting, document justified str_sprintf usage esphome#13220 by @bdraco
- [web_server] Remove unused button_state_json_generator esphome#13235 by @bdraco
- [analyze_memory] Fix ELF section mapping for RTL87xx and LN882X platforms esphome#13213 by @bdraco
- [helpers] Add base85 support esphome#13254 by @kbx81
- [analyze_memory] Add nRF52/Zephyr platform support for memory analysis esphome#13249 by @bdraco
- [core] Add buf_append_printf helper for safe buffer formatting esphome#13258 by @bdraco
- [infrared, remote_base] Optimize IR transmit path for
web_serverbase85 data esphome#13238 by @kbx81 - [debug] Add min_free heap sensor for ESP32 and LibreTiny, add fragmentation for ESP32 esphome#13231 by @bdraco (new-feature)
- [core] Add –device hint when DNS resolution fails esphome#13240 by @bdraco
- [helpers] Support
base64urlencoding esphome#13264 by @kbx81 - [mipi_dsi] add JC8012P4A1 esphome#13241 by @remcom (new-feature)
- [mqtt] Replace sprintf with snprintf for friendly name hash esphome#13262 by @bdraco
- Add Claude Code PR workflow skill esphome#13271 by @swoboda1337
- [select] Add condition for testing select option esphome#13267 by @clydebarrow (new-feature)
- [remote_base] Replace unsafe sprintf with buf_append_printf; fix buffer overflow esphome#13257 by @bdraco
- [helpers] Add
base64_decode_int32_vectorfunction esphome#13289 by @kbx81 - [infrared, remote_base] Replace
base85withbase64urlfor web server infrared transmissions esphome#13265 by @kbx81 - [helpers] Remove
base85functions esphome#13266 by @kbx81 - [web_server] Skip defer on ESP8266 where callbacks already run in main loop esphome#13261 by @bdraco
- [core][opentherm] Add format_bin_to(), soft-deprecate format_bin() esphome#13232 by @bdraco
- [infrared][web_server] Implement initial
web_serversupport esphome#13202 by @kbx81 - [light] Store color mode JSON strings in flash on ESP8266 esphome#13314 by @bdraco
- [web_server] Use ESPHOME_F for canHandle domain checks to reduce ESP8266 RAM esphome#13315 by @bdraco
- [udp] Store addresses in flash instead of heap esphome#13330 by @bdraco
- [pipsolar] Store command strings in flash esphome#13336 by @bdraco
- [sun] Store text sensor format string in flash esphome#13335 by @bdraco
- [template] Store text initial_value in flash and avoid heap allocation in setup esphome#13332 by @bdraco
- [wireguard] Store configuration strings in flash instead of heap esphome#13331 by @bdraco
- [template] Store alarm control panel codes in flash instead of heap esphome#13329 by @bdraco
- [core] Add fnv1_hash_extend() string overloads, use in atm90e32 esphome#13326 by @bdraco
- [weikai] Replace bitset to_string with format_bin_to esphome#13297 by @bdraco
- [modbus_controller] Use stack buffers instead of heap-allocating string helpers esphome#13221 by @bdraco
- [core] Add str_endswith_ignore_case to avoid heap allocation in audio file type detection esphome#13313 by @bdraco
- [status] Convert to PollingComponent to reduce CPU usage esphome#13342 by @bdraco
- [socket] Eliminate heap allocations in set_sockaddr() esphome#13228 by @bdraco
- [uart] Replace unsafe sprintf with buf_append_printf in debugger esphome#13288 by @bdraco
- [rc522_spi] Replace unsafe sprintf with buf_append_printf esphome#13291 by @bdraco
- [tuya] Replace unsafe sprintf with snprintf in light color formatting esphome#13292 by @bdraco
- [wiegand] Replace heap-allocating to_string with stack buffers esphome#13294 by @bdraco
- [nextion] Replace to_string with stack buffer and fix unsafe sprintf esphome#13295 by @bdraco
- [sml] Use stack buffers instead of str_sprintf esphome#13222 by @bdraco
- [syslog] Use buf_append_printf for ESP8266 flash optimization esphome#13286 by @bdraco
- [ccs811] Use buf_append_printf for buffer safety and ESP8266 flash optimization esphome#13300 by @bdraco
- [esp8266] Use direct SDK calls instead of Arduino ESP class wrappers esphome#13353 by @bdraco
- [tuya] Use buf_append_printf for ESP8266 flash optimization esphome#13287 by @bdraco
- [uptime] Use buf_append_printf for ESP8266 flash optimization esphome#13282 by @bdraco
- [gpio] Use buf_append_printf in dump_summary for ESP8266 flash optimization esphome#13283 by @bdraco
- [esp32_hosted] Use stack buffer instead of str_sprintf for version string esphome#13226 by @bdraco
- [core][mqtt] Add str_sanitize_to(), soft-deprecate str_sanitize() esphome#13233 by @bdraco
- [homeassistant] Use buf_append_printf for ESP8266 flash optimization esphome#13284 by @bdraco
- [web_server] Simplify datetime formatting with buf_append_printf esphome#13281 by @bdraco
- [daikin_arc] Fix undefined behavior in sprintf calls esphome#13279 by @bdraco
- [tormatic] Use stack buffers instead of str_sprintf in debug methods esphome#13225 by @bdraco
- [zephyr] Avoid heap allocation in preferences key formatting esphome#13215 by @bdraco
- [cse7766] Use stack buffer for verbose debug logging esphome#13217 by @bdraco
- [ezo] Replace str_sprintf with stack-based formatting esphome#13218 by @bdraco
- [dfrobot_sen0395] Reduce heap allocations in command building esphome#13219 by @bdraco
- [toshiba] Replace to_string with stack buffer in debug logging esphome#13296 by @bdraco
- [gdk101] Use stack buffer to eliminate heap allocation for firmware version esphome#13224 by @bdraco
- [scheduler] Replace resize() with erase() to save ~ 436 bytes flash esphome#13214 by @bdraco
- [select][fan] Use StringRef for on_value/on_preset_set triggers to avoid heap allocation esphome#13324 by @bdraco
- [dfrobot_sen0395][pipsolar][sim800l][wl_134] Replace sprintf with snprintf/buf_append_printf esphome#13301 by @bdraco
- [template][event] Use StringRef for set_action and on_event triggers esphome#13328 by @bdraco
- [api] Use MAX_STATE_LEN constant for Home Assistant state buffer esphome#13278 by @bdraco
- [anova] Replace sprintf with bounds-checked alternatives esphome#13303 by @bdraco
- [mipi_spi] Add variants of ESP32-2432S028 displays esphome#13340 by @clydebarrow (new-feature)
- [dsmr] Avoid std::string allocation for decryption key esphome#13375 by @bdraco
- [voice_assistant] Deprecate Timer::to_string() in favor of heap-free to_str() esphome#13377 by @bdraco
- [network] Deprecate IPAddress::str() in favor of heap-free str_to() esphome#13378 by @bdraco
- [sprinkler] Eliminate std::string heap allocations esphome#13379 by @bdraco
- [sprinkler] Disable loops when idle to reduce CPU overhead esphome#13381 by @bdraco
- [esp32_ble] Deprecate ESPBTUUID::to_string() in favor of heap-free to_str() esphome#13376 by @bdraco
- [mqtt] Remove unnecessary defer in ESP8266 on_message callback esphome#13373 by @bdraco
- [shtcx] Use LogString for type to_string to save RAM on ESP8266 esphome#13370 by @bdraco
- [mqtt] Reduce heap allocations in publish path esphome#13372 by @bdraco
- [am43][lightwaverf][rf_bridge][spi_led_strip] Replace sprintf with safe alternatives esphome#13302 by @bdraco
- [ezo_pmp] Replace sprintf with bounds-checked snprintf esphome#13304 by @bdraco
- [debug] Use shared buf_append_printf helper from core esphome#13260 by @bdraco
- [statsd] Use direct appends and stack buffer instead of str_sprintf esphome#13223 by @bdraco
- [lock] Extract set_state_ helper to reduce code duplication esphome#13359 by @bdraco
- [cs5460a] Remove unnecessary empty loop override esphome#13357 by @bdraco
- [mqtt] Eliminate per-entity loop overhead and heap churn esphome#13356 by @bdraco
- [mapping] Use stack buffers for numeric key error logging esphome#13299 by @bdraco
- [helpers] Allow reading capacity of FixedVector esphome#13391 by @clydebarrow
- [sensor] Enhance delta filter with a max value esphome#12605 by @polyfloyd (new-feature)
- [datetime] Add const char * overloads for string parsing to avoid heap allocation esphome#13363 by @bdraco
- [wifi] ESP8266: Use direct SDK calls to reduce flash and heap allocation esphome#13349 by @bdraco
- [debug] ESP8266: Eliminate heap allocations from Arduino String functions esphome#13352 by @bdraco
- [api] Use stack buffers for noise handshake messages esphome#13399 by @bdraco
- [esp32_ble_tracker] Optimize loop with state change tracking for ~85% CPU reduction esphome#13337 by @bdraco
- [core] Eliminate global constructor overhead for component vectors esphome#13386 by @bdraco
- [cc1101] Add on_packet listener callback code (packet_transport) esphome#13344 by @jvanderneutstulen
- [json] Use ESP-IDF component registry for ArduinoJson on ESP32 esphome#13280 by @swoboda1337
- [esp32] Add support for native ESP-IDF builds esphome#13272 by @swoboda1337
- [core] Simplify LazyCallbackManager memory management esphome#13387 by @bdraco
- [esp32] [libretiny] Use stack buffer for preference comparison esphome#13398 by @bdraco
- [mdns] Use stack buffer for txt records on ESP32 esphome#13401 by @bdraco
- [logger] Use raw pointer for task log buffer to match tx_buffer pattern esphome#13402 by @bdraco
- [libretiny] Disable unused LWIP statistics to save RAM and flash esphome#13404 by @bdraco
- [web_server_idf] Use direct member for ListEntitiesIterator instead of unique_ptr esphome#13405 by @bdraco
- [ci] Block sprintf/vsprintf usage, suggest snprintf alternatives esphome#13305 by @bdraco
- [core] Avoid heap allocation in str_equals_case_insensitive with string literals esphome#13312 by @bdraco
- [audio] Bump esp-audio-libs to 2.0.3 esphome#13346 by @kahrendt
- [hc8, mhz19] Moving constant CONF_WARMUP_TIME to const.py esphome#13392 by @maikeljkwak
- [zephyr] Small build fixes for the logger/gpio subsystems esphome#13242 by @dawret
- [adc] Fix indent esphome#11933 by @tomaszduda23
- [heatpumpir] Add ESP-IDF support, bump to 1.0.40 esphome#13042 by @swoboda1337 (new-feature)
- [debug] Print reg0 value from config if mismatched on nrf52 esphome#11867 by @tomaszduda23
- Expose sockaddr to string formatter esphome#12351 by @elupus
- [esp32] Bump Arduino to 3.3.6, platform to 55.03.36 esphome#13438 by @swoboda1337
- [nextion] Add configurable startup and queue timeout constants esphome#11098 by @edwardtfn (new-feature)
- [mqtt] Use stack buffers for discovery message formatting esphome#13216 by @bdraco
- [mqtt] Reduce heap allocations in hot paths esphome#13362 by @bdraco
- [esp8266] Use SmallBufferWithHeapFallback in preferences esphome#13397 by @bdraco
- [alarm_control_panel] Reduce heap allocations in arm/disarm methods esphome#13358 by @bdraco
- [mipi_dsi] Add M5Stack Tab5 (Rev2/V2) DriverChip esphome#12074 by @miniskipper (new-feature)
- [bthome_mithermometer] add encrypted beacon support esphome#13428 by @nagyrobi (new-feature)
- [heatpumpir] Fix ambiguous millis() call with HeatpumpIR library esphome#13458 by @swoboda1337
- [sensor] Clamp filter handles non-finite values better esphome#13457 by @clydebarrow (new-feature) (breaking-change)
- [atm90e32] Fix dump_summary deprecation warning and remove stored cs_summary_ esphome#13465 by @bdraco
- [bmp581] Split into
bmp581_baseandbmp581_i2cesphome#12485 by @danielkent-net (new-component) (breaking-change) (new-platform) - [sensirion_common] Fix incorrect Big Endian conversion esphome#13492 by @mikelawrence
- [sen5x] Fix missing this-> on class members and member functions esphome#13497 by @mikelawrence
- [sensirion_common] Use SmallBufferWithHeapFallback helper esphome#13496 by @bdraco
- [thermostat] make comparisons consistent with documentation esphome#13499 by @meiser79
- [sen5x] Fix mangled serial number esphome#13491 by @mikelawrence
- [sen5x] Eliminate product name string esphome#13489 by @mikelawrence
- [sy6970] Implement support for the sy6970 BMS component esphome#13311 by @linkedupbits (new-component) (new-feature) (new-platform)
- [water_heater] Remove Component inheritance from base class esphome#13510 by @dhoeben
- [http_request] Add custom CA certificate support for ESP32 esphome#13552 by @swoboda1337 (new-feature)
- Add additional text_sensor filter tests esphome#13479 by @bdraco
- [http_request] Use stack allocation for MD5 buffer in OTA esphome#13550 by @bdraco
- [core] Add PROGMEM string comparison helpers and use in cover/valve/helpers esphome#13545 by @bdraco
- [libretiny] Bump to 1.11.0 esphome#13512 by @bdraco
- [mhz19] Refactor detection range logging to use LogString esphome#13541 by @bdraco
- [uln2003] Refactor step mode logging to use LogString esphome#13543 by @bdraco
- [light] Use member array instead of heap allocation in AddressableLightWrapper esphome#13503 by @bdraco
- [tm1638] Use member array instead of heap allocation for display buffer esphome#13504 by @bdraco
- [sml] Use constexpr std::array for START_SEQ constant esphome#13506 by @bdraco
- [mqtt] Use stack buffers for publish_state() topic building esphome#13434 by @bdraco
- [ci] Soft-deprecate str_sprintf/str_snprintf to prevent hidden heap allocations esphome#13227 by @bdraco
- [rp2040] Use SmallBufferWithHeapFallback for preferences esphome#13501 by @bdraco
- [wifi] Avoid heap allocation when building AP SSID esphome#13474 by @bdraco
- [core] Encapsulate entity preference creation to prepare for hash migration esphome#13505 by @bdraco
- [mqtt] Store command comparison strings in flash on ESP8266 esphome#13546 by @bdraco
- [factory_reset] Store reset reason comparison strings in flash on ESP8266 esphome#13547 by @bdraco
- [web_server_base] Update ESPAsyncWebServer to 3.9.5 esphome#13467 by @bdraco
- [nfc] Use StaticVector for NFC UID storage to eliminate heap allocation esphome#13507 by @bdraco
- [esp32] Eliminate dead exception class code via linker wraps esphome#13564 by @bdraco
- [libretiny] Regenerate boards for v1.11.0 esphome#13539 by @bdraco
- [hub75] Update esp-hub75 to 0.3.2 esphome#13572 by @stuartparmenter
- [web_server_idf] Replace heap-allocated url() with stack-based url_to() esphome#13407 by @bdraco
- [nextion] Fix alternative code path for
dump_device_infoesphome#13566 by @edwardtfn - [web_server] Add RP2040 platform support esphome#13576 by @bdraco
- [text_sensor] Use in-place mutation for filters to reduce heap allocations esphome#13475 by @bdraco
- [esp32] Default to CMN certificate bundle, saving ~51KB flash esphome#13574 by @bdraco (breaking-change)
- [nrf52] Move toolchain to platform esphome#13498 by @tomaszduda23
- [core] Add LOG_ENTITY_ICON/DEVICE_CLASS/UNIT_OF_MEASUREMENT macros esphome#13578 by @bdraco
- [hub75] Add Huidu HD-WF1 board configuration esphome#13341 by @sehraf (new-feature)
- [esp32] Add pin definitions for adafruit_feather_esp32s3_reversetft esphome#13273 by @dschafer
- [wifi] Filter scan results to only store matching networks esphome#13409 by @bdraco
- [nrf52,zigbee] Time synchronization esphome#12236 by @tomaszduda23 (new-feature) (new-platform)
- [runtime_stats] Eliminate heap churn by using stack-allocated buffer for sorting esphome#13586 by @bdraco
- [nrf52,zigbee] Address change esphome#13580 by @tomaszduda23 (new-feature)
- [globals] Convert restoring globals to PollingComponent to reduce CPU usage esphome#13345 by @bdraco
- [workflows] Refactor auto-label-pr script into modular JS esphome#13582 by @clydebarrow
- [waveshare_epaper] Add deprecation message esphome#13583 by @clydebarrow
- [workflows] Add deprecation check esphome#13584 by @clydebarrow
- [tx20] Eliminate heap allocations in wind sensor esphome#13298 by @bdraco
- [es8156] Add
bits_per_samplevalidation, comment code esphome#13612 by @kbx81 - [mdns] Do not broadcast registration when using openthread component esphome#13592 by @rwrozelle
- [esp32] Add advanced sdkconfig options to reduce build time and binary size esphome#13611 by @bdraco (new-feature)
- [const] Move
CONF_AUDIO_DACesphome#13614 by @kbx81 - [nrf52,zigbee] Support for number component esphome#13581 by @tomaszduda23 (new-feature)
- [esp32] Reduce compile time by excluding unused IDF components esphome#13610 by @bdraco (new-feature)
- [ch423] Add CH423 I/O expander component esphome#13079 by @dwmw2 (new-component) (new-feature)
- [logger] Fix USB Serial JTAG VFS linker errors when using UART on IDF esphome#13628 by @bdraco
- [pmsx003] Improvements esphome#13626 by @ximex
- [core] ESP32 chip revision text esphome#13647 by @shvmm
- [web_server_base] Update ESPAsyncWebServer to 3.9.6 esphome#13639 by @bdraco
- [mqtt] Restore ESP8266 on_message defer to prevent stack overflow esphome#13648 by @bdraco
- [pmsx003] support device-types
PMS1003,PMS3003,PMS9003Mesphome#13640 by @ximex (new-feature) - [core] Simplify generation of Lambda during
to_code()esphome#13533 by @clydebarrow - [esp32] Disable unused per-tag log filtering, saving ~536 bytes RAM esphome#13662 by @bdraco
- [dlms_meter] Add dlms smart meter component esphome#8009 by @SimonFischer04 (new-component) (new-feature) (new-platform)
- [thermostat] Avoid heap allocation for triggers esphome#13692 by @bdraco
- [sx127x] Avoid heap allocation for packet trigger esphome#13698 by @bdraco
- [sx126x] Avoid heap allocation for packet trigger esphome#13699 by @bdraco
- [current_based] Avoid heap allocation for cover triggers esphome#13700 by @bdraco
- [api] Avoid heap allocation for homeassistant action triggers esphome#13695 by @bdraco
- [endstop] Avoid heap allocation for cover triggers esphome#13702 by @bdraco
- [template] Avoid heap allocation for valve triggers esphome#13697 by @bdraco
- [template] Avoid heap allocation for cover triggers esphome#13696 by @bdraco
- [template] Avoid heap allocation for number set trigger esphome#13694 by @bdraco
- [template.switch] Avoid heap allocation for triggers esphome#13691 by @bdraco
- [http_request] Avoid heap allocation for triggers esphome#13690 by @bdraco
- [bang_bang] Avoid heap allocation for climate triggers esphome#13701 by @bdraco
- [api] Avoid heap allocation for client connected/disconnected triggers esphome#13688 by @bdraco
- [voice_assistant] Avoid heap allocation for triggers esphome#13689 by @bdraco
- [sprinkler] Avoid heap allocation for triggers esphome#13705 by @bdraco
- [thermostat] Remove dead null checks for triggers esphome#13706 by @bdraco
- [template.lock] Avoid heap allocation for triggers esphome#13704 by @bdraco
- [feedback] Avoid heap allocation for cover triggers esphome#13693 by @bdraco
- [speaker.media_player] Avoid heap allocation for triggers esphome#13707 by @bdraco
- [time_based] Avoid heap allocation for cover triggers esphome#13703 by @bdraco
- [remote_transmitter] Avoid heap allocation for triggers esphome#13708 by @bdraco
- [template.datetime] Avoid heap allocation for triggers esphome#13710 by @bdraco
- [light] Avoid heap allocation for AutomationLightEffect trigger esphome#13713 by @bdraco
- [cc1101] Avoid heap allocation for trigger esphome#13715 by @bdraco
- [micro_wake_word] Avoid heap allocation for trigger esphome#13714 by @bdraco
- [template.text] Avoid heap allocation for trigger esphome#13711 by @bdraco
- [template.water_heater] Avoid heap allocation for trigger esphome#13712 by @bdraco
- [template.output] Avoid heap allocation for triggers esphome#13709 by @bdraco
- [ethernet] Add on_connect and on_disconnect triggers esphome#13677 by @rogerfachini (new-feature)
- [api] Align water_heater_command with standard entity command pattern esphome#13655 by @bdraco
- [time] Use lazy callback for time sync to save 8 bytes esphome#13652 by @bdraco
- [analyze-memory] Add top 30 largest symbols to report esphome#13673 by @bdraco
- [esp32_hosted] Replace sscanf with strtol for version parsing esphome#13658 by @bdraco
- [wizard] Use API encryption key instead of deprecated password esphome#13634 by @swoboda1337
- [sx126x] fix maximal payload_length esphome#13723 by @jktjkt
- [logger] Use vsnprintf_P directly for ESP8266 flash format strings esphome#13716 by @bdraco
- [esp32] Exclude additional unused IDF components (driver, dac, mcpwm, twai, openthread, ulp) esphome#13664 by @bdraco
- [preferences] Use static storage for singletons and flash buffer esphome#13727 by @bdraco
- [wifi] Conditionally compile on_connect/on_disconnect triggers esphome#13684 by @bdraco
- [water_heater] Store mode strings in flash and avoid heap allocation in set_mode esphome#13728 by @bdraco
- [media_player] Store command strings in flash and avoid heap allocation in set_command esphome#13731 by @bdraco
- [opentherm] Fix ESP-IDF build by re-enabling legacy driver component esphome#13732 by @bdraco
- [speaker.media_player]: Add verbose error message for puremagic parsing esphome#13725 by @rogerfachini
- Add WAVESHARE-ESP32-P4-WIFI6-TOUCH-LCD-7B mipi_dsi driver esphome#13608 by @agillis (new-feature)
- [lock] Store state strings in flash and avoid heap allocation in set_state esphome#13729 by @bdraco
- [key_collector] Add text sensor and allow multiple callbacks esphome#13617 by @clydebarrow (new-feature) (new-platform)
- [template] Add additional tests for template select esphome#13741 by @bdraco
- [dlms_meter] Rename test UART package key to match directory name esphome#13743 by @bdraco
- [template] Split TemplateSelect into TemplateSelectWithSetAction to save RAM esphome#13685 by @bdraco
- [mqtt] Stop sending deprecated color_mode and brightness in light discovery (fixes #13666) esphome#13667 by @tomers
- [api] Eliminate intermediate buffers in protobuf dump helpers esphome#13742 by @bdraco
- [pulse_counter][hlw8012] Fix ESP-IDF build by re-enabling legacy driver component esphome#13747 by @bdraco
- [web_server_idf] Add const char* overloads for getParam/hasParam to avoid temporary string allocations esphome#13746 by @bdraco
- [mqtt] Refactor state publishing with dedicated enum-to-string helpers esphome#13544 by @bdraco
- [adc] Add ESP32-C2 support for curve fitting calibration esphome#13749 by @swoboda1337
- [rtttl] Fix dotted note parsing order to match RTTTL spec esphome#13722 by @swoboda1337
- [adc] Fix ESP32-C2 ADC calibration to use line fitting esphome#13756 by @swoboda1337
- [pylontech] Refactor parser to support new firmware version and SysError esphome#12300 by @functionpointer
- [components] Remove redundant setup priority overrides that duplicate default esphome#13745 by @bdraco
- [cover] Add operation-based triggers and fix repeated trigger firing esphome#13471 by @Copilot (new-feature) (breaking-change)
- [esp32] Restore develop branch for dev platform version, bump platformio esphome#13759 by @swoboda1337
- [nrf52,zigbee] update warnings esphome#13761 by @tomaszduda23
- [epaper_spi] Validate BUSY pin as input instead of output esphome#13764 by @schdro
- Fix bare hostname ping fallback in dashboard esphome#13760 by @bdraco
- [logger] Refactor to reduce code duplication and flash size esphome#13750 by @bdraco
- [web_server] Fix ESP8266 watchdog panic by deferring actions to main loop esphome#13765 by @bdraco
- [web_server] Add some more missing ESPHOME_F macros esphome#13748 by @bdraco
- [esp32] Reduce Arduino build size by 44% and build time by 36% esphome#13623 by @bdraco (breaking-change)
- [esp32] Skip downloading precompiled Arduino libs esphome#13775 by @swoboda1337
- [esp32] Remove specific claims from framework migration message esphome#13777 by @swoboda1337
- [epaper_spi] Refactor initialise for future use esphome#13774 by @schdro
- [ci] Block new scanf() usage to prevent ~9.8KB flash bloat esphome#13657 by @bdraco
- [api] Remove is_single parameter and fix batch buffer preparation esphome#13773 by @bdraco
- [vbus] Add DeltaSol BS/2 support with sensors and binary sensors esphome#13762 by @Bercek71 (new-feature)
- [esp32] Use underscores in arduino_libs_stub folder name esphome#13785 by @swoboda1337
- [rdm6300] Add ID-20LA compatibility by skipping CR/LF bytes esphome#13779 by @swoboda1337
- [const] Move some constants to common esphome#13788 by @clydebarrow
- [esp32_ble_beacon] Fix BLE compilation on ESP-Hosted platforms esphome#13787 by @RAR
- [core] Add PROGMEM_STRING_TABLE macro for flash-optimized string lookups esphome#13659 by @bdraco
- [http_request] Fix chunked transfer encoding on Arduino platforms esphome#13790 by @bdraco
- [wifi] Defer ESP8266 WiFi listener callbacks from system context to main loop esphome#13789 by @bdraco
- [gpio] Convert interrupt_type_to_string to PROGMEM_STRING_TABLE esphome#13795 by @bdraco
- [core] Convert entity string lookups to PROGMEM_STRING_TABLE esphome#13794 by @bdraco
- [update] Move update_state_to_string to update component and convert to PROGMEM_STRING_TABLE esphome#13796 by @bdraco
- [light] Convert color_mode_to_human to PROGMEM_STRING_TABLE using to_bit() esphome#13797 by @bdraco
- [analyze-memory] Trace CSWTCH switch table symbols to source components esphome#13798 by @bdraco
- [wifi] Avoid jump tables in LOG_STR switch statements to save ESP8266 RAM esphome#13799 by @bdraco
- [light] Move CSWTCH lookup table to PROGMEM in get_suitable_color_modes_mask_ esphome#13801 by @bdraco
- [dsmr] Fix issue with parsing lines like
1-0:0.2.0((ER11))esphome#13780 by @PolarGoose (breaking-change) - [core] Add missing requests dependency to requirements.txt esphome#13803 by @swoboda1337
- [template] Convert alarm sensor type to PROGMEM_STRING_TABLE and narrow enum to uint8_t esphome#13804 by @bdraco
- [mqtt] Move switch string tables to PROGMEM_STRING_TABLE esphome#13802 by @bdraco
- Add target_temperature to the template water heater esphome#13661 by @tronikos (new-feature)
- [epaper_spi] Add Waveshare 1.54-G esphome#13758 by @schdro (new-feature)
- [epaper_spi] Declare leaf classes final esphome#13776 by @schdro
- [udp] Eliminate per-loop heap allocation using std::span esphome#13838 by @bdraco
- [api] Elide empty message construction in protobuf dispatch esphome#13871 by @bdraco
- [web_server_idf] Remove unused host() method esphome#13869 by @bdraco
- [dashboard] Use resolve/relative_to for download path validation esphome#13867 by @bdraco
- [wizard] Use secrets module for fallback AP password generation esphome#13864 by @bdraco
- [analyze-memory] Attribute CSWTCH symbols from SDK archives esphome#13850 by @bdraco
- [mqtt] Use stack buffer for discovery topic to avoid heap allocation esphome#13812 by @bdraco
- [mqtt] Return friendly_name_() by const reference to avoid string copies esphome#13810 by @bdraco
- [lps22] Replace set_retry with set_interval to avoid heap allocation esphome#13841 by @bdraco
- [api] Guard varint parsing against overlong encodings esphome#13870 by @bdraco
- [water_heater] Add state masking to distinguish explicit commands from no-change esphome#13879 by @tronikos
- [web_server_idf] Use C++17 nested namespace style esphome#13856 by @bdraco
- [e131] Remove unnecessary heap allocation from packet receive loop esphome#13852 by @bdraco
- [analyze-memory] Attribute third-party library symbols via nm scanning esphome#13878 by @bdraco
- [ota] Use secrets module for OTA authentication cnonce esphome#13863 by @bdraco
- [dashboard] Use constant-time comparison for username check esphome#13865 by @bdraco
- [scheduler] Eliminate heap allocation in full_cleanup_removed_items_ esphome#13837 by @bdraco
- [ms8607] Replace set_retry with set_timeout chain to avoid heap allocation esphome#13842 by @bdraco
- [speaker] Replace set_retry with set_interval to avoid heap allocation esphome#13843 by @bdraco
- [dashboard] Handle malformed Basic Auth headers gracefully esphome#13866 by @bdraco
- [esp32_hosted] Replace set_retry with set_interval to avoid heap allocation esphome#13844 by @bdraco
- [api] Collapse APIServerConnection intermediary layer esphome#13872 by @bdraco
- [mixer] Refactor for stability and to support Sendspin esphome#12253 by @kahrendt
- [web_server_base] Fix RP2040 compilation when Crypto-no-arduino is present esphome#13887 by @bdraco
- [api] Merge auth check into base read_message, eliminate APIServerConnection esphome#13873 by @bdraco
- [core] Deprecate set_retry, cancel_retry, and RetryResult esphome#13845 by @bdraco
- [cse7766] Batch UART reads to reduce loop overhead esphome#13817 by @bdraco
- [ld2450] Batch UART reads to reduce loop overhead esphome#13818 by @bdraco
- [ld2412] Batch UART reads to reduce loop overhead esphome#13819 by @bdraco
- [modbus] Use stack buffer instead of heap vector in send() esphome#13853 by @bdraco
- [ld2410] Batch UART reads to reduce loop overhead esphome#13820 by @bdraco
- [pipsolar] Batch UART reads to reduce per-loop overhead esphome#13829 by @bdraco
- [rd03d] Batch UART reads to reduce per-loop overhead esphome#13830 by @bdraco
- [rf_bridge] Batch UART reads to reduce per-loop overhead esphome#13831 by @bdraco
- [dfplayer] Batch UART reads to reduce per-loop overhead esphome#13832 by @bdraco
- [tuya] Batch UART reads to reduce per-loop overhead esphome#13827 by @bdraco
- [seeed_mr24hpc1/mr60fda2/mr60bha2] Batch UART reads to reduce per-loop overhead esphome#13825 by @bdraco
- [nextion] Batch UART reads to reduce loop overhead esphome#13823 by @bdraco
- [modbus] Batch UART reads to reduce loop overhead esphome#13822 by @bdraco
- [i2c] Replace switch with if-else to avoid CSWTCH table in RAM esphome#13815 by @bdraco
- [ci] Block new std::to_string() usage, suggest snprintf alternatives esphome#13369 by @bdraco
- [api] Skip class generation for empty SOURCE_CLIENT protobuf messages esphome#13880 by @bdraco
- [mipi_rgb] Allow use on P4 esphome#13740 by @clydebarrow
- [voice_assistant] Replace timer unordered_map with vector to eliminate per-tick heap allocation esphome#13857 by @bdraco (breaking-change)
- Add get_away and get_on in WaterHeaterCall and deprecate get_state esphome#13891 by @tronikos
- [nrf52,zigee] print reporting status esphome#13890 by @tomaszduda23
- [uart] Change available() return type from int to size_t esphome#13893 by @swoboda1337
- [mipi_dsi] Add WAVESHARE-ESP32-P4-WIFI6-TOUCH-LCD 3.4C and 4C esphome#13840 by @gtjoseph (new-feature)
- [scheduler] Make core timer ID collisions impossible with type-safe internal IDs esphome#13882 by @bdraco
- [scheduler] Make core timer ID collisions impossible with type-safe internal IDs esphome#13882 by @bdraco
- [uart] Convert parity_to_str to PROGMEM_STRING_TABLE esphome#13805 by @bdraco
- [logger] Resolve thread name once and pass through logging chain esphome#13836 by @bdraco
- [pylontech] Batch UART reads to reduce loop overhead esphome#13824 by @bdraco
- [hlk_fm22x] Replace per-cycle vector allocation with member buffer esphome#13859 by @bdraco
- [dlms_meter] Batch UART reads to reduce per-loop overhead esphome#13828 by @bdraco
- [ld2420] Batch UART reads to reduce loop overhead esphome#13821 by @bdraco
- [dsmr] Batch UART reads to reduce per-loop overhead esphome#13826 by @bdraco
- [uart] Fix available() return type to size_t across components esphome#13898 by @swoboda1337
- [ld2450] add on_data callback esphome#13601 by @ccutrer (new-feature)
- [api] Deprecate WATER_HEATER_COMMAND_HAS_STATE esphome#13892 by @tronikos (breaking-change)
- [water_heater] Add On/Off and Away mode support to template platform esphome#13839 by @tronikos (new-feature)
- [http_request] Fix IDF chunked response completion detection esphome#13886 by @bdraco
- [resampler] Refactor for stability and to support Sendspin esphome#12254 by @kahrendt
- [pulse_counter] Migrate from legacy PCNT API to new ESP-IDF 5.x API esphome#13904 by @swoboda1337
- [esp32_hosted] Bump esp_wifi_remote and esp_hosted versions esphome#13911 by @swoboda1337
- [esp32_rmt_led_strip, remote_receiver, pulse_counter] Replace hardcoded clock frequencies with runtime queries esphome#13908 by @swoboda1337
- [ci] Pin ESP-IDF version for Arduino framework builds esphome#13909 by @swoboda1337
- [api] Remove duplicate peername storage to save RAM esphome#13540 by @bdraco
- [ssd1306_base] Move switch tables to PROGMEM with lookup tables esphome#13814 by @bdraco
- [http_request] Reduce heap allocations in update check by parsing JSON directly from buffer esphome#13588 by @bdraco
- [bmp3xx_base/bmp581_base] Convert oversampling and IIR filter strings to PROGMEM_STRING_TABLE esphome#13808 by @bdraco
- [mqtt] Avoid heap allocation in on_log by using const char* publish overload esphome#13809 by @bdraco
- [rtttl] Convert state_to_string to PROGMEM_STRING_TABLE esphome#13807 by @bdraco
- [debug] Move ESP8266 switch tables to flash with PROGMEM_STRING_TABLE esphome#13813 by @bdraco
- [sprinkler] Convert state and request origin strings to PROGMEM_STRING_TABLE esphome#13806 by @bdraco
- [mqtt] Add zero-allocation topic getters to MQTT_COMPONENT_CUSTOM_TOPIC macro esphome#13811 by @bdraco
- [web_server_idf] Reduce heap allocations by using stack buffers esphome#13549 by @bdraco
- [libretiny] Update LibreTiny to v1.12.1 esphome#13851 by @bdraco
- [esp32] Fix ESP32-P4 test: replace stale esp_hosted component ref esphome#13920 by @swoboda1337
- [esp32] Upgrade uv to 0.10.1 and increase HTTP retries esphome#13918 by @swoboda1337
- [mdns] Throttle MDNS.update() polling on ESP8266 and RP2040 esphome#13917 by @bdraco
- [rtttl] Code Improvements esphome#13653 by @ximex
- [esp32_ble] Extract state transitions from ESP32BLE::loop() hot path esphome#13903 by @bdraco
- [api] Extract cold code from APIConnection::loop() hot path esphome#13901 by @bdraco
- [core] Extract dump_config from Application::loop() hot path esphome#13900 by @bdraco
- [scheduler] Reduce set_timer_common_ hot path size by 25% esphome#13899 by @bdraco
- [api] Fix compiler format warnings esphome#13931 by @schdro
- [web_server] Remove unnecessary packed attribute from DeferredEvent esphome#13932 by @bdraco
- [esp8266][rp2040] Eliminate heap fallback in preference save/load esphome#13928 by @bdraco
- [logger] Add nRF52 task log buffer and unify TaskLogBuffer interface esphome#13862 by @tomaszduda23 (new-feature)
- [light] Eliminate redundant clamp in LightCall::validate_() esphome#13923 by @bdraco
- [bl0942] Update reference values esphome#12867 by @DjordjeMandic (breaking-change)
- [web_server_idf] Use constant-time comparison for Basic Auth esphome#13868 by @bdraco
- [api] Split process_batch_ to reduce stack on single-message hot path esphome#13907 by @bdraco
- [mqtt.cover] Add option to publish states as JSON payload esphome#12639 by @heythisisnate (new-feature)
- [preferences] Replace per-element erase with clear() in sync() esphome#13934 by @bdraco
- [openthread] Fix warning on old C89 implicit field zero init esphome#13935 by @schdro
- [socket] Devirtualize Socket::ready() and implement working ready() for LWIP raw TCP esphome#13913 by @bdraco
- [api] Fix debug asserts in production code, encode_bool bug, and reduce flash overhead esphome#13936 by @bdraco
- [nrf52,zigbee] count sleep time of zigbee thread esphome#13933 by @tomaszduda23
- [wifi] Add CompactString to reduce WiFi scan heap fragmentation esphome#13472 by @bdraco
- [web_server_idf] Revert multipart upload buffer back to heap to fix httpd stack overflow esphome#13941 by @bdraco
- [web_server_idf] Remove std::string temporaries from multipart header parsing esphome#13940 by @bdraco
- [esp32] Bump Arduino to 3.3.7, platform to 55.03.37 esphome#13943 by @swoboda1337
- Allow Python 3.14 esphome#13945 by @swoboda1337
- [wifi] Allow fast_connect without preconfigured networks esphome#13946 by @QRPp
- [ethernet] Add per-PHY compile guards to eliminate unused PHY drivers esphome#13947 by @bdraco
- Bump resvg-py from 0.2.5 to 0.2.6 esphome#13211 by @dependabot[bot]
- Bump ruff from 0.14.11 to 0.14.12 esphome#13244 by @dependabot[bot]
- Bump actions/cache from 5.0.1 to 5.0.2 esphome#13276 by @dependabot[bot]
- Bump actions/cache from 5.0.1 to 5.0.2 in /.github/actions/restore-python esphome#13277 by @dependabot[bot]
- Bump ruff from 0.14.12 to 0.14.13 esphome#13275 by @dependabot[bot]
- Bump setuptools from 80.9.0 to 80.10.1 esphome#13429 by @dependabot[bot]
- Bump peter-evans/create-pull-request from 8.0.0 to 8.1.0 esphome#13430 by @dependabot[bot]
- Bump actions/checkout from 6.0.1 to 6.0.2 esphome#13452 by @dependabot[bot]
- Bump actions/setup-python from 6.1.0 to 6.2.0 esphome#13454 by @dependabot[bot]
- Bump actions/setup-python from 6.1.0 to 6.2.0 in /.github/actions/restore-python esphome#13453 by @dependabot[bot]
- Update wheel requirement from <0.46,>=0.43 to >=0.43,<0.47 esphome#13451 by @dependabot[bot]
- Bump ruff from 0.14.13 to 0.14.14 esphome#13487 by @dependabot[bot]
- Bump github/codeql-action from 4.31.10 to 4.31.11 esphome#13488 by @dependabot[bot]
- Bump github/codeql-action from 4.31.11 to 4.32.0 esphome#13559 by @dependabot[bot]
- Bump setuptools from 80.10.1 to 80.10.2 esphome#13558 by @dependabot[bot]
- Bump aioesphomeapi from 43.13.0 to 43.14.0 esphome#13557 by @dependabot[bot]
- Bump docker/login-action from 3.6.0 to 3.7.0 in the docker-actions group esphome#13606 by @dependabot[bot]
- Bump actions/cache from 5.0.2 to 5.0.3 esphome#13621 by @dependabot[bot]
- Bump actions/cache from 5.0.2 to 5.0.3 in /.github/actions/restore-python esphome#13622 by @dependabot[bot]
- Bump github/codeql-action from 4.32.0 to 4.32.1 esphome#13726 by @dependabot[bot]
- Bump ruff from 0.14.14 to 0.15.0 esphome#13752 by @dependabot[bot]
- Bump github/codeql-action from 4.32.1 to 4.32.2 esphome#13781 by @dependabot[bot]
- Bump setuptools from 80.10.2 to 82.0.0 esphome#13897 by @dependabot[bot]
- Bump aioesphomeapi from 43.14.0 to 44.0.0 esphome#13906 by @dependabot[bot]
- Bump esphome-dashboard from 20260110.0 to 20260210.0 esphome#13905 by @dependabot[bot]
- Bump docker/build-push-action from 6.18.0 to 6.19.1 in /.github/actions/build-image esphome#13937 by @dependabot[bot]
All Changelogs
- ESPHome 2026.2.0 - February 2026 (current page)
- ESPHome 2026.1.0 - January 2026
- ESPHome 2025.12.0 - December 2025
- ESPHome 2025.11.0 - November 2025
- ESPHome 2025.10.0 - 15th October 2025
- ESPHome 2025.9.0 - 17th September 2025
- ESPHome 2025.8.0 - 20th August 2025
- ESPHome 2025.7.0 - 16th July 2025
- ESPHome 2025.6.0 - 18th June 2025
- ESPHome 2025.5.0 - 21st May 2025
- ESPHome 2025.4.0 - 16th April 2025
- ESPHome 2025.3.0 - 19th March 2025
- ESPHome 2025.2.0 - 19th February 2025
- ESPHome 2024.12.0 - 18th December 2024
- ESPHome 2024.11.0 - 20th November 2024
- ESPHome 2024.10.0 - 16th October 2024
- ESPHome 2024.9.0 - 18th September 2024
- ESPHome 2024.8.0 - 21st August 2024
- ESPHome 2024.7.0 - 17th July 2024
- ESPHome 2024.6.0 - 19th June 2024
- ESPHome 2024.5.0 - 15th May 2024
- ESPHome 2024.4.0 - 17th April 2024
- ESPHome 2024.3.0 - 20th March 2024
- ESPHome 2024.2.0 - 21st February 2024
- ESPHome 2023.12.0 - 20th December 2023
- ESPHome 2023.11.0 - 15th November 2023
- ESPHome 2023.10.0 - 18th October 2023
- ESPHome 2023.9.0 - 27th September 2023
- ESPHome 2023.8.0 - 16th August 2023
- ESPHome 2023.7.0 - 19th July 2023
- ESPHome 2023.6.0 - 21st June 2023
- ESPHome 2023.5.0 - 17th May 2023
- ESPHome 2023.4.0 - 19th April 2023
- ESPHome 2023.3.0 - 15th March 2023
- ESPHome 2023.2.0 - 15th February 2023
- ESPHome 2022.12.0 - 14th December 2022
- ESPHome 2022.11.0 - 16th November 2022
- ESPHome 2022.10.0 - 19th October 2022
- ESPHome 2022.9.0 - 21st September 2022
- ESPHome 2022.8.0 - 17th August 2022
- ESPHome 2022.6.0 - 15th June 2022
- ESPHome 2022.5.0 - 18th May 2022
- ESPHome 2022.4.0 - 20th April 2022
- ESPHome 2022.3.0 - 16th March 2022
- ESPHome 2022.2.0 - 16th February 2022
- ESPHome 2022.1.0 - 19th January 2022
- ESPHome 2021.12.0 - 11th December 2021
- ESPHome 2021.11.0 - 17th November 2021
- ESPHome 2021.10.0 - 20th October 2021
- ESPHome 2021.9.0 - 15th September 2021
- ESPHome 2021.8.0 - 18th August 2021
- Changelog - Version 1.20.0 - 21st July 2021
- Changelog - Version 1.19.0 - 16th June 2021
- Changelog - Version 1.18.0 - 19th May 2021
- Changelog - Version 1.17.0 - 4th May 2021
- Changelog - Version 1.16.0 - February 3, 2021
- Changelog - Version 1.15.0 - September 13, 2020
- Changelog - Version 1.14.0 - November 1
- Changelog - Version 1.13.0 - May 30th 2019
- Changelog - Version 1.12.0
- Changelog - Version 1.11.0
- Changelog - Version 1.10.0
- Changelog - Version 1.9.0
- Version 1.8.0
- Version 1.7.0



