Releases
2025.7.0
Compare
Sorry, something went wrong.
No results found
Full list of changes
New Components
Breaking Changes
Notable Changes
All changes
Show
[core/pins] improve pins types esphome#8848 by @ximex
[binary_sensor] Add action to invalidate state and pass to HA esphome#8961 by @clydebarrow (breaking-change)
ina219: powerdown the sensor on shutdown esphome#9053 by @youknow0
Build with C++17 esphome#8603 by @HeMan
Move some consts to const.py esphome#9084 by @kbx81
Reduce Component memory usage by 20 bytes per component esphome#9080 by @bdraco
[ruff] Apply various ruff suggestions esphome#8947 by @jesserockz
Bump LibreTiny recommended version to 1.9.1 esphome#9110 by @swoboda1337
[esp32_hall] Remove esp32_hall esphome#9117 by @swoboda1337 (breaking-change)
Resolve esphome::optional vs std::optional ambiguity in code generation esphome#9119 by @bdraco
Add intent progress event to voice assistant enum esphome#9103 by @synesthesiam
Pin libretiny to 1.9.1 esphome#9118 by @swoboda1337
Bump ruff in pre-commit to 0.12.0 esphome#9121 by @bdraco
[heatpumpir] Bump HeatpumpIR to 1.0.35 esphome#9123 by @swoboda1337
[i2s_audio] Bump esphome/ESP32-audioI2S to 2.3.0 esphome#9124 by @swoboda1337
Reduce CPU overhead by allowing components to disable their loop() esphome#9089 by @bdraco
Add support for Xiaomi XMWSDJ04MMC esphome#8591 by @medusalix (new-integration)
[web_server] Upgrade ESPAsync libraries esphome#8867 by @kuba2k2 (breaking-change)
Bump ESP32 Arduino version to 3.1.3 esphome#8604 by @swoboda1337 (breaking-change)
Remove empty generated protobuf methods esphome#9098 by @bdraco
Reduce code duplication in auto-generated API protocol code esphome#9097 by @bdraco
Use smaller atomic types for ESP32 BLE Tracker ring buffer indices esphome#9106 by @bdraco
Optimize API server performance by using cached loop time esphome#9104 by @bdraco
Optimize API component memory usage by reordering class members to reduce padding esphome#9111 by @bdraco
Optimize bluetooth_proxy memory usage on ESP32 esphome#9114 by @bdraco
Add enable_loop_soon_any_context() for thread and ISR-safe loop enabling esphome#9127 by @bdraco
Optimize OTA loop to avoid unnecessary stack allocations esphome#9129 by @bdraco
[i2c] Expose internal i2c bus port number esphome#9136 by @jesserockz
Disable Ethernet loop polling when connected and stable esphome#9102 by @bdraco
Clean up RAMAllocators in audio related code esphome#9140 by @jesserockz
Clean up RAMAllocators in http_request code esphome#9143 by @jesserockz
Clean up RAMAllocators in display related code esphome#9141 by @jesserockz
[i2c] Make get_port() public esphome#9146 by @jesserockz
[esp32_camera] Allow sharing i2c bus esphome#9137 by @jesserockz
[nextion] Add command queuing to prevent command loss when spacing is active esphome#9139 by @edwardtfn
[nextion] Cached timing optimization esphome#9150 by @edwardtfn
[wifi, wifi_info] Tidy up/shorten more log messages esphome#9151 by @kbx81
[bh1750] Remove redundant platform name from logging esphome#9153 by @kbx81
Add option to enable support for USB Hubs esphome#9154 by @RoganDawes
[spi] Enable >6 devices with ESP-IDF esphome#9128 by @clydebarrow
Clean up RAMAllocators in light related code esphome#9142 by @jesserockz
[nextion] Extract common upload_end_ function to shared file esphome#9155 by @edwardtfn
Improve on C++17 esphome#9170 by @HeMan
[nextion] Revert to millis() on recv_ret_string_ esphome#9168 by @edwardtfn
[const] Move CONF_DEVICES to const.py esphome#9179 by @jesserockz
Reduce Logger memory usage by optimizing variable sizes esphome#9161 by @bdraco
Fix slow noise handshake by reading multiple messages per loop esphome#9130 by @bdraco
Reduce RAM usage for scheduled tasks esphome#9180 by @bdraco
Pre-reserve looping components vector to reduce memory allocations esphome#9177 by @bdraco
[lvgl] Add start_value to bar; make values templatable and updateable esphome#9056 by @clydebarrow
[lvgl] Use styles instead of object properties for themes esphome#9116 by @clydebarrow
Feature fontmetrics esphome#8978 by @JonasB2497
Image should not update when setting URL esphome#8885 by @gpambrozio
[opt3001] New component esphome#6625 by @ccutrer (new-integration)
[mqtt] Don't wait for connection unless configured to esphome#8933 by @jesserockz (breaking-change)
[modbus_controller] Fix modbus read_lambda precision for non-floats or large integers esphome#9159 by @jpeletier
[helpers] Add format_mac_address_pretty function, migrate components esphome#9193 by @kbx81
[ld2450] Use App.get_loop_component_start_time(), shorten log messages esphome#9192 by @kbx81
[ld2420] Shorten log messages + other clean-up esphome#9200 by @kbx81
[ld2410] Use App.get_loop_component_start_time(), shorten log messages esphome#9194 by @kbx81
[esp32_hall] Add dummy component esphome#9125 by @swoboda1337
fix(MQTT): Call disconnect callback on DNS error esphome#9016 by @Rapsssito
Rename kVARh/VARh to kvarh/varh esphome#9191 by @Drafteed
[API] Sub devices and areas esphome#8544 by @dala318 (breaking-change)
[binary_sensor] Add timeout filter esphome#9198 by @clydebarrow
[lvgl] Allow linear positioning of grid cells esphome#9196 by @clydebarrow
Reduce memory required for sensor entities esphome#9201 by @bdraco (breaking-change)
Reduce logger CPU usage by disabling loop when buffer is empty esphome#9160 by @bdraco
Optimize API connection loop performance esphome#9184 by @bdraco
Optimize TemplatableValue memory esphome#9202 by @bdraco (breaking-change)
Optimize API connection memory with tagged pointers esphome#9203 by @bdraco
Fix missing protobuf message dump for batched messages with very verbose logging esphome#9206 by @bdraco
Optimize Application class memory layout and reduce loop_interval size esphome#9208 by @bdraco (breaking-change)
Use shared workflow for locking esphome#9211 by @jesserockz
[esp32] Improve and simplify IDF component support esphome#9163 by @swoboda1337
[ld2450] More optimizing, fix copypasta esphome#9210 by @kbx81
[ci] Lint lock.yml esphome#9214 by @jesserockz
[script] Add exec bit to run-in-env esphome#9212 by @jesserockz
[ld2410] More optimizations esphome#9209 by @kbx81
[ld2450] Move consts to cpp file, optimize memory use esphome#9215 by @kbx81
[tests] Remove extra newline esphome#9213 by @jesserockz
Optimize SafeModeComponent memory layout to reduce padding esphome#9228 by @bdraco
[esp32_hosted] Add support for remote wifi esphome#8833 by @swoboda1337 (new-integration)
use c++17 [[fallthrough]]; esphome#9149 by @ximex
[esp32] Update IDF components to use the registry esphome#9223 by @swoboda1337
[wifi] Reduce memory usage esphome#9232 by @bdraco
[ethernet] Reduce memory usage by 8 bytes esphome#9231 by @bdraco
[gpio] Reduce ESP32 memory usage by optimizing struct padding esphome#9230 by @bdraco
Reduce component_iterator memory usage esphome#9205 by @bdraco
Upgrade to use C++20 esphome#9135 by @HeMan
[mcp23xxx_base] fix pin interrupts esphome#9244 by @ssieb
[i2c] Disable i2c scan on certain idf versions esphome#9237 by @swoboda1337
Reduce libretiny logconfig messages esphome#9239 by @bdraco
Disable dynamic log level control for ESP32 ESP-IDF builds esphome#9233 by @bdraco
Silence protobuf compatibility warnings when importing aioesphomeapi esphome#9236 by @bdraco
[esp32] Allow 5.4.2 esphome#9243 by @swoboda1337
Remove backports of std esphome#9246 by @HeMan
Fix buffer corruption in API message encoding with very verbose logging esphome#9249 by @bdraco
Extract lock-free queue and event pool to core helpers esphome#9238 by @bdraco
Replace ping retry timer with batch queue fallback esphome#9207 by @bdraco
[thermostat] Memory optimizations esphome#9259 by @kbx81
[adc] Memory optimizations esphome#9247 by @kbx81
[light] Memory optimizations esphome#9260 by @kbx81
Reduce web_server code duplication by extracting detail parameter parsing esphome#9257 by @bdraco
Remove redundant get_setup_priority() overrides returning default value esphome#9253 by @bdraco
Fix MQTT blocking main loop for multiple seconds at a time esphome#8325 by @dwmw2
Remove single-use send_*_info wrappers in API connection esphome#9255 by @bdraco
Reduce API memory footprint through bitfield consolidation and type sizing esphome#9252 by @bdraco
Reduce flash usage by making add_message_object non-template esphome#9258 by @bdraco
Remove unused return value from read_message and fix ifdef placement in generated API code esphome#9256 by @bdraco
Reduce web_server RAM usage by 96 bytes with conditional sorting compilation esphome#9227 by @bdraco
Add interrupt support to GPIO binary sensors esphome#9115 by @bdraco
[pi4ioe5v6408] Add new IO Expander esphome#8888 by @jesserockz (new-integration)
Reduce loop enable/disable log spam by using very verbose level esphome#9267 by @bdraco
Fix thread-safe cleanup of event source connections in ESP-IDF web server esphome#9268 by @bdraco
Reduce API component memory usage with conditional compilation esphome#9262 by @bdraco
Optimize scheduler string storage to eliminate heap allocations esphome#9251 by @bdraco
Optimize web_server UrlMatch to avoid heap allocations esphome#9263 by @bdraco
Add support for LN882X Family (with LibreTiny) esphome#8954 by @lamauny (new-integration) (notable-change)
Support DM9051 SPI ethernet device esphome#6861 by @bmork
[light] Fix transitions with lerp esphome#9269 by @kbx81
[remote_base] Fix dumper base class and enable schema extension esphome#9218 by @gabest11
[ld2420] Move consts to cpp file, optimize memory use esphome#9216 by @kbx81
Update libsodium to 1.0.20 esphome#9240 by @bdraco
Fixes for async MQTT esphome#9273 by @dwmw2
Fix flaky test_api_conditional_memory by waiting for all required states esphome#9271 by @bdraco
[pins] Update internal_gpio_pin_number to work directly like internal_gpio_output_pin_number esphome#9270 by @jesserockz (breaking-change)
[http_request.update] Fix size_t printing esphome#9144 by @jesserockz
[smt100] Rename dielectric_constant to permittivity esphome#9175 by @piechade (breaking-change)
[ethernet] P4 changes and 5.3.0 deprecated warnings esphome#8457 by @swoboda1337
Fix - Pass thread TLVs down to openthread if they are defined esphome#9182 by @mrene
Fix entity hash collisions by enforcing unique names across devices per platform esphome#9276 by @bdraco (breaking-change)
[host] Disable platformio ldf esphome#9277 by @jesserockz
Jinja expressions in configs (Take #3 ) esphome#8955 by @jpeletier (notable-change)
Use interrupt based approach for esp32_touch esphome#9059 by @bdraco
Add OTA support to ESP-IDF webserver esphome#9264 by @bdraco
[modbus] Modbus server role: write holding registers esphome#9156 by @jpeletier
[esp32] Remove IDF 4 support and clean up code esphome#9145 by @swoboda1337 (breaking-change)
Fix regression: BK7231N devices not returning entities via API esphome#9283 by @bdraco
[esp32_rmt_led_strip] Reduce memory usage by 32x with IDF 5.3 esphome#8388 by @swoboda1337
[api] Dump bytes fields as hex instead of unreadable string esphome#9288 by @jesserockz
Reduce Component memory usage by 40% (8 bytes per component) esphome#9278 by @bdraco
Replace custom OTA implementation in web_server_base esphome#9274 by @bdraco (new-integration) (breaking-change)
pulse_meter total esphome#9282 by @prchal
Mmc5603 fix for devices that don't retrieve chip_id esphome#8959 by @jsb2092
made qr_code elements optional esphome#8896 by @JonasB2497
[nextion] memory optimization esphome#9164 by @edwardtfn
Use encode_bytes() for protobuf bytes fields esphome#9289 by @bdraco
[core] Deleting CMakeCache.txt for fast recompilation with ESP-IDF esphome#8750 by @zkoalexey
[heatpumpir] Add Support for PHS32 HeatPump esphome#7378 by @mrtntome
OpenThread - add Device Type esphome#9272 by @rwrozelle
Don't compile state_to_string() unless debugging. esphome#7473 by @colmbuckley
[time] Add USE_TIME_TIMEZONE define esphome#9290 by @jesserockz
[time] fix clang-tidy esphome#9292 by @tomaszduda23
[esp32_touch] Fix threshold esphome#9291 by @clydebarrow
[ds2484] New component esphome#9147 by @mrk-its (new-integration)
Fix missing ifdef guards in API protobuf generator esphome#9296 by @bdraco
Save flash and RAM by conditionally compiling unused API password code esphome#9297 by @bdraco
[Packet transport] Ping timeout sensor esphome#8694 by @dala318
Allow disabling API batch delay for real-time state updates esphome#9298 by @bdraco
Packages: optional base path for remote git packages esphome#9279 by @dudanov
[sx127x] Add sx127x component esphome#7490 by @swoboda1337 (new-integration)
[microphone] simplify mute handling to avoid unnecessary copies esphome#9303 by @kahrendt
Add device_id to entity state messages for sub-device support esphome#9304 by @bdraco
Fix web_server URL parsing lifetime issue esphome#9309 by @bdraco
Reduce web_server loop overhead on ESP32 by avoiding unnecessary semaphore operations esphome#9308 by @bdraco
Fix compiler warning in tsl2591 component esphome#9310 by @mikelawrence
Fix web_server busy loop with ungracefully disconnected clients esphome#9312 by @bdraco
Add const char overload for Component::defer() esphome#9324 by @bdraco
[rtttl] trim extraneous whitespace in "ac_dimmer" in "PWM_BAD" list esphome#9318 by @ximex
Mark ESPTime comparison operators as const esphome#9335 by @freundTech
[ld2450] Reduce CPU usage, eliminate redundant sensor updates esphome#9334 by @bdraco
[nextion] Memory optimization esphome#9338 by @edwardtfn
Reduce RAM usage by optimizing Color constant storage esphome#9339 by @bdraco (breaking-change)
Eliminate API component guard variable to save 8 bytes RAM esphome#9341 by @bdraco
Eliminate web_server_idf guard variable to save 8 bytes RAM esphome#9344 by @bdraco
[scd4x] Optimize logging + minor code clean-up esphome#9347 by @kbx81
[ld2410] Reduce RAM usage, general clean-up esphome#9346 by @kbx81
[sx127x] Improve error handling esphome#9351 by @swoboda1337
Fix defer() thread safety issues on multi-core platforms esphome#9317 by @bdraco
[update, http_request_update] Implement update available trigger esphome#9174 by @jhbruhn
Split LockFreeQueue into base and notifying variants to reduce memory usage esphome#9330 by @bdraco
Fix bluetooth proxy busy loop when disconnecting pending BLE connections esphome#9332 by @bdraco
Use std::span to eliminate heap allocation for single-packet API transmissions esphome#9313 by @bdraco
[sx127x] Fix shaping print in dump_config and preallocate packet esphome#9357 by @swoboda1337
Introduce base Camera class to support alternative camera implementations esphome#9285 by @DT-art1 (new-integration)
[scd4x] Memory optimization esphome#9358 by @kbx81
[nextion] Replace boolean flags with bitfields to optimize memory usage esphome#9359 by @edwardtfn
[inkplate6] Require 240mhz cpu frequency esphome#9356 by @jesserockz
[sx126x] Add sx126x component esphome#8516 by @swoboda1337 (new-integration)
[nextion] Optimize settings memory usage with compile-time defines esphome#9350 by @edwardtfn
[ld2450] Clean-up for consistency, reduce CPU usage when idle esphome#9363 by @kbx81
[nextion] Review touch_sleep_timeout esphome#9345 by @edwardtfn
[core] Move platform helper implementations into their own file esphome#9361 by @jesserockz
[nextion] Add optional device info storage configuration esphome#9366 by @edwardtfn
Optimize Bluetooth proxy batching and increase scan buffer capacity esphome#9328 by @bdraco
Fix scheduler race conditions and add comprehensive test suite esphome#9348 by @bdraco
Reduce LightCall memory usage by 50 bytes per call esphome#9333 by @bdraco
Optimize entity icon memory usage with USE_ENTITY_ICON flag esphome#9337 by @bdraco
Reduce core RAM usage by 40 bytes with static initialization optimizations esphome#9340 by @bdraco
Fix flaky test_api_conditional_memory by disabling API batch delay esphome#9360 by @bdraco
Fix format specifier warnings in QuantileFilter logging esphome#9364 by @bdraco
Optimize logger performance by eliminating redundant strlen calls esphome#9369 by @bdraco
Replace deprecated sprintf with snprintf in API protobuf code generation esphome#9365 by @bdraco
Refactor duplicate socket read error handling in API frame helper esphome#9370 by @bdraco
Refactor entity lookup methods with macros in preparation for device_id support esphome#9371 by @bdraco
Refactor API entity update dispatch to reduce code duplication esphome#9372 by @bdraco
Don't compile unnecessary platform files (e.g. ESP8266 files on ESP32) esphome#9354 by @bdraco
Refactor voice assistant API methods to reduce code duplication esphome#9374 by @bdraco
Eliminate bluetooth_proxy guard variable to save 8 bytes RAM esphome#9343 by @bdraco
[nextion] Optimize component memory usage with bitfield state management esphome#9373 by @edwardtfn
Fix brightness setting not working on SSD1305 128x32 OLEDs esphome#9376 by @DooMMasteR
Optimize logger callback API by including message length parameter esphome#9368 by @bdraco (breaking-change)
Run integration tests only on Python 3.13 to reduce CI resource usage esphome#9377 by @bdraco
Fix flaky test_api_conditional_memory and improve integration test patterns esphome#9379 by @bdraco
[helpers] Improve format_hex_pretty esphome#9380 by @jesserockz
hydreon_rgxx: remove precipitation_intensity from RG9 esphome#9367 by @functionpointer
[image] Add byte order option and unit tests esphome#9326 by @clydebarrow
Fix integration test race condition by isolating PlatformIO directories esphome#9383 by @bdraco
Fix format string error in waveshare_epaper.cpp esphome#9322 by @tmpeh
Fix race condition in scheduler string lifetime integration test esphome#9382 by @bdraco
lps22: add a component esphome#7540 by @nagisa (new-integration)
[nfc] Update code to use format_hex_pretty esphome#9384 by @jesserockz
[helpers] Fix format_hex_pretty resize without separator esphome#9389 by @jesserockz
Add support for GL-R01 I2C - Time of Flight sensor esphome#8329 by @pkejval (new-integration)
[esp32] Improve flexibility of only_on_variant esphome#9390 by @jesserockz
ESP_EXT1_WAKEUP_ANY_LOW is for s2/s3/c6/h2; ESP_EXT1_WAKEUP_ALL_LOW otherwise esphome#9387 by @candrews
[apds9960] Add 0x9E ID esphome#9392 by @Merikei
Fix another race in the string lifetime scheduler test esphome#9399 by @bdraco
[esp32_touch] Fix touch v1 esphome#9414 by @swoboda1337
Set lib_compat_mode to strict esphome#9408 by @swoboda1337
debug: bufferoverflow mitigation in DebugComponent::on_shutdown() esphome#9422 by @RubenKelevra
Exclude internal entities from name uniqueness validation esphome#9410 by @bdraco
Handle ESP32 chunked MQTT messages missing topic on non-first chunks, causing panic esphome#5786 by @aaliddell
Replace remaining instances of USE_ESP32_CAMERA with USE_CAMERA esphome#9401 by @DT-art1
Sync api.proto from aioesphomeapi esphome#9393 by @bdraco
Fix scheduler crash when cancelling items with NULL names esphome#9444 by @bdraco
[wizard] use lowercase to match esphome#9448 by @ssieb
Optimize API flash usage by storing message size at compile time esphome#9447 by @bdraco
Optimize API proto size calculations by removing redundant force parameter esphome#9449 by @bdraco
[ld2410] Remove redundant delay() calls, minor optimizations esphome#9453 by @kbx81
[ld2420] Memory optimization, code clean-up esphome#9426 by @kbx81
Reduce API flash usage by eliminating unnecessary template instantiations esphome#9452 by @bdraco
Conditionally compile API user services to save 4.3KB flash (follow-up to #9262) esphome#9451 by @bdraco (breaking-change)
[packet_transport] Don't run update if ping_pong not enabled. esphome#9434 by @clydebarrow
[sx127x, sx126x] Fix preamble_size default and validation esphome#9454 by @swoboda1337
Apply existing protobuf buffer optimization to nested message encoding (~2.3x speed up) esphome#9458 by @bdraco
Only generate protobuf encode/decode methods for the message direction they're used esphome#9461 by @bdraco
[usb_uart] Be flexible about descriptor layout for CDC-ACM devices esphome#9425 by @clydebarrow
[libretiny] Set lib_compat_mode to soft for libretiny esphome#9439 by @swoboda1337
(Maybe?) fix I2S speaker internal DAC mode esphome#9435 by @pzich
[lvgl] Post-process size arguments in meter config esphome#9466 by @pzich
Automatically disable interrupts for ESP8266 GPIO16 binary sensors esphome#9467 by @bdraco
[substitutions] Fix #7189 esphome#9469 by @jpeletier
Fix pre-commit CI failures by skipping local hooks that require virtual environment esphome#9476 by @bdraco
[esp_ldo] Component schema; default priority esphome#9479 by @clydebarrow
Follow logging best practices by removing redundant component prefix esphome#9481 by @bdraco
Fix dormant bug in RAMAllocator::reallocate() manual_size calculation esphome#9482 by @bdraco
Suppress spurious volatile and Python syntax warnings during builds esphome#9488 by @bdraco
[online_image] Support byte_order esphome#9502 by @clydebarrow
[json] Bump ArduinoJson library to 7.4.2 esphome#8857 by @kahrendt (breaking-change)
[fan] Do not save state for fan if configured as NO_RESTORE esphome#9472 by @skyegecko
Fix LibreTiny compilation error by updating ESPAsyncWebServer and dependencies esphome#9492 by @bdraco
[captive_portal] Add test case for libretiny esphome#9457 by @clydebarrow
[opentherm.output] Fix lerp esphome#9506 by @kbx81
[servo] Fix lerp esphome#9507 by @kbx81
Add missing clang-tidy NOLINT comments for ArduinoJson v7 in IDF webserver esphome#9508 by @bdraco
[core] Don't issue -Wno-volatile for host platform esphome#9511 by @clydebarrow
[component] Fix is_ready flag when loop disabled esphome#9501 by @jesserockz
[ms8607] Fix humidity calc esphome#9499 by @LorbusChris
Fix timing overflow when components disable themselves during loop esphome#9529 by @bdraco
[as3935_spi] remove unnecessary includes esphome#9528 by @ssieb
Dependency Changes
Show
You can’t perform that action at this time.