Download Latest Version 2025.6.3 source code.tar.gz (4.1 MB)
Email in envelope

Get an email when there's a new version of ESPHome

Home / 2025.6.0
Name Modified Size InfoDownloads / Week
Parent folder
2025.6.0 source code.tar.gz 2025-06-18 4.1 MB
2025.6.0 source code.zip 2025-06-18 7.1 MB
README.md 2025-06-18 36.8 kB
Totals: 3 Items   11.3 MB 0

Full list of changes

New Components

Breaking Changes

  • update minimal python version to 3.10 [#8850] by @ximex (breaking-change)
  • Add LWIP optimization options to reduce flash usage [#8946] by @bdraco (breaking-change)
  • Replace API deferred queue with efficient message batching system [#9012] by @bdraco (breaking-change)
  • Optimize Component and Application state storage from uint32_t to uint8_t [#9082] by @bdraco (breaking-change)
  • Reduce entity memory usage by eliminating field shadowing and bit-packing [#9076] by @bdraco (breaking-change)
  • Optimize Application area_ from std::string to const char* [#9085] by @bdraco (breaking-change)

Beta Changes

Show - Fix dashboard logging being escaped before parser [[#9054]](https://github.com/esphome/esphome/pull/9054) by [@bdraco](https://github.com/bdraco) - Always perform select() when loop duration exceeds interval [[#9058]](https://github.com/esphome/esphome/pull/9058) by [@bdraco](https://github.com/bdraco) - [nextion] Remove upload flags reset from success path to prevent TFT corruption [[#9064]](https://github.com/esphome/esphome/pull/9064) by [@edwardtfn](https://github.com/edwardtfn) - Fix BYPASS_AUTO feature to work with or without an arming delay [[#9051]](https://github.com/esphome/esphome/pull/9051) by [@heythisisnate](https://github.com/heythisisnate) - Fix misleading comment in API [[#9069]](https://github.com/esphome/esphome/pull/9069) by [@bdraco](https://github.com/bdraco) - [prometheus] Remove ``cv.only_with_arduino`` [[#9061]](https://github.com/esphome/esphome/pull/9061) by [@jesserockz](https://github.com/jesserockz) - [esp32] Dynamically set default framework based on variant [[#9060]](https://github.com/esphome/esphome/pull/9060) by [@jesserockz](https://github.com/jesserockz) - Fix ``captive_portal`` loading entire ``web_server`` [[#9066]](https://github.com/esphome/esphome/pull/9066) by [@bdraco](https://github.com/bdraco) - Make ParseOnOffState enum uint8_t [[#9083]](https://github.com/esphome/esphome/pull/9083) by [@bdraco](https://github.com/bdraco) - Optimize Component and Application state storage from uint32_t to uint8_t [[#9082]](https://github.com/esphome/esphome/pull/9082) by [@bdraco](https://github.com/bdraco) (breaking-change) - Small optimizations to api buffer helper [[#9071]](https://github.com/esphome/esphome/pull/9071) by [@bdraco](https://github.com/bdraco) - Reduce entity memory usage by eliminating field shadowing and bit-packing [[#9076]](https://github.com/esphome/esphome/pull/9076) by [@bdraco](https://github.com/bdraco) (breaking-change) - Optimize memory usage by lazy-allocating raw callbacks in sensors [[#9077]](https://github.com/esphome/esphome/pull/9077) by [@bdraco](https://github.com/bdraco) - Fix API message encoding to return actual size instead of calculated size [[#9073]](https://github.com/esphome/esphome/pull/9073) by [@bdraco](https://github.com/bdraco) - Optimize Application ``area_`` from ``std::string`` to ``const char*`` [[#9085]](https://github.com/esphome/esphome/pull/9085) by [@bdraco](https://github.com/bdraco) (breaking-change) - Fix unbound BLE event queue growth and reduce memory usage [[#9052]](https://github.com/esphome/esphome/pull/9052) by [@bdraco](https://github.com/bdraco) - Bump aioesphomeapi from 32.2.1 to 32.2.3 [[#9091]](https://github.com/esphome/esphome/pull/9091) by [@dependabot[bot]](https://github.com/apps/dependabot) - [fan] fix initial FanCall to properly set speed [[#8277]](https://github.com/esphome/esphome/pull/8277) by [@dhewg](https://github.com/dhewg) - Implement a lock free ring buffer for BLEScanResult to avoid drops [[#9087]](https://github.com/esphome/esphome/pull/9087) by [@bdraco](https://github.com/bdraco) - Make BLE queue lock free [[#9088]](https://github.com/esphome/esphome/pull/9088) by [@bdraco](https://github.com/bdraco) - Fix protobuf encoding size mismatch by passing force parameter in encode_string [[#9074]](https://github.com/esphome/esphome/pull/9074) by [@bdraco](https://github.com/bdraco) - [i2s_audio] Check for a nullptr before disabling and deleting channel [[#9062]](https://github.com/esphome/esphome/pull/9062) by [@kahrendt](https://github.com/kahrendt) - Ensure we can send batches where the first message exceeds MAX_PACKET_SIZE [[#9068]](https://github.com/esphome/esphome/pull/9068) by [@bdraco](https://github.com/bdraco) - Add common base classes for entity protobuf messages to reduce duplicate code [[#9090]](https://github.com/esphome/esphome/pull/9090) by [@bdraco](https://github.com/bdraco) - Reduce Component blocking threshold memory usage by 2 bytes per component [[#9081]](https://github.com/esphome/esphome/pull/9081) by [@bdraco](https://github.com/bdraco) - Remove ``std::`` prefix as not all platforms have access yet. [[#9095]](https://github.com/esphome/esphome/pull/9095) by [@jesserockz](https://github.com/jesserockz) - [i2s_audio] Add ``dump_config`` methods, shorten log messages [[#9099]](https://github.com/esphome/esphome/pull/9099) by [@kbx81](https://github.com/kbx81) - [i2s_audio] Bugfix: crashes when unlocking i2s bus multiple times [[#9100]](https://github.com/esphome/esphome/pull/9100) by [@kahrendt](https://github.com/kahrendt) - [spi] Cater for non-word-aligned buffers on esp8266 [[#9108]](https://github.com/esphome/esphome/pull/9108) by [@clydebarrow](https://github.com/clydebarrow) - Optimize LightState memory layout [[#9113]](https://github.com/esphome/esphome/pull/9113) by [@bdraco](https://github.com/bdraco) - Reduce Switch component memory usage by 8 bytes per instance [[#9112]](https://github.com/esphome/esphome/pull/9112) by [@bdraco](https://github.com/bdraco)

Notable Changes

  • [bme68x_bsec2_i2c] Remove arduino dependency [#7815] by @luar123 (notable-change)

All changes

Show - add actions to the MAX7219Component [[#6462]](https://github.com/esphome/esphome/pull/6462) by [@nielsnl68](https://github.com/nielsnl68) - [api] Update api proto to add legacy value [[#8802]](https://github.com/esphome/esphome/pull/8802) by [@jesserockz](https://github.com/jesserockz) - [script] Use local import for zephyr [[#8822]](https://github.com/esphome/esphome/pull/8822) by [@clydebarrow](https://github.com/clydebarrow) - Bump cryptography to 45.0.1 [[#8826]](https://github.com/esphome/esphome/pull/8826) by [@bdraco](https://github.com/bdraco) - unify and add missing metric suffixes [[#8816]](https://github.com/esphome/esphome/pull/8816) by [@ximex](https://github.com/ximex) - Improve stability for a test that crashes intermittently in CI [[#8699]](https://github.com/esphome/esphome/pull/8699) by [@dala318](https://github.com/dala318) - update ruff version to ``0.11.10`` in ``.pre-commit-config.yaml`` [[#8851]](https://github.com/esphome/esphome/pull/8851) by [@ximex](https://github.com/ximex) - add python 3.13 to ci pipeline [[#8855]](https://github.com/esphome/esphome/pull/8855) by [@ximex](https://github.com/ximex) - [esp32] Use IDF 5.3.2 as default for IDF builds [[#8464]](https://github.com/esphome/esphome/pull/8464) by [@swoboda1337](https://github.com/swoboda1337) - update minimal python version to 3.10 [[#8850]](https://github.com/esphome/esphome/pull/8850) by [@ximex](https://github.com/ximex) (breaking-change) - [esp32, logger] Add initial P4 support [[#8439]](https://github.com/esphome/esphome/pull/8439) by [@swoboda1337](https://github.com/swoboda1337) - Add CUBIC CM1106 Single Beam NDIR CO2 Sensor Module [[#8293]](https://github.com/esphome/esphome/pull/8293) by [@andrewjswan](https://github.com/andrewjswan) (new-integration) - Updates for development environment [[#8801]](https://github.com/esphome/esphome/pull/8801) by [@jesserockz](https://github.com/jesserockz) - [sync] Update and fix sync workflow [[#8873]](https://github.com/esphome/esphome/pull/8873) by [@jesserockz](https://github.com/jesserockz) - [lvgl] Try to allocate smaller buffer on failure [[#8814]](https://github.com/esphome/esphome/pull/8814) by [@clydebarrow](https://github.com/clydebarrow) - [lvgl] Add content styling to tabview [[#8823]](https://github.com/esphome/esphome/pull/8823) by [@clydebarrow](https://github.com/clydebarrow) - [usb_uart] Implement USB Host mode UART [[#8334]](https://github.com/esphome/esphome/pull/8334) by [@clydebarrow](https://github.com/clydebarrow) (new-integration) - OTA: Close and clean up client when setsockopt fails [[#8865]](https://github.com/esphome/esphome/pull/8865) by [@luuoaoa](https://github.com/luuoaoa) - Add const DEVICE_CLASS_WIND_DIRECTION [[#8870]](https://github.com/esphome/esphome/pull/8870) by [@Pi57](https://github.com/Pi57) - Synchronise Device Classes from Home Assistant [[#8874]](https://github.com/esphome/esphome/pull/8874) by [@esphomebot](https://github.com/esphomebot) - Optimize API frame helper buffer management [[#8805]](https://github.com/esphome/esphome/pull/8805) by [@bdraco](https://github.com/bdraco) - Use UINT16_MAX instead of hard coded 65535 in api [[#8884]](https://github.com/esphome/esphome/pull/8884) by [@bdraco](https://github.com/bdraco) - feat: ``wifi.configure`` now emits error after reconnecting to old AP [[#8653]](https://github.com/esphome/esphome/pull/8653) by [@Rapsssito](https://github.com/Rapsssito) - [modbus_controller] Add assumed_state to switch [[#8880]](https://github.com/esphome/esphome/pull/8880) by [@gotnone](https://github.com/gotnone) - [const] Move ``CONF_RESET`` to const.py [[#8889]](https://github.com/esphome/esphome/pull/8889) by [@jesserockz](https://github.com/jesserockz) - [bme68x_bsec2_i2c] Remove arduino dependency [[#7815]](https://github.com/esphome/esphome/pull/7815) by [@luar123](https://github.com/luar123) (notable-change) - [i2s_audio] Add basic support for esp32-p4 [[#8887]](https://github.com/esphome/esphome/pull/8887) by [@jesserockz](https://github.com/jesserockz) - [esp32, logger, core] Add initial c5 support [[#8895]](https://github.com/esphome/esphome/pull/8895) by [@swoboda1337](https://github.com/swoboda1337) - Resolve regex library warnings [[#8890]](https://github.com/esphome/esphome/pull/8890) by [@emmanuel-ferdman](https://github.com/emmanuel-ferdman) - Add integration tests for host [[#8912]](https://github.com/esphome/esphome/pull/8912) by [@bdraco](https://github.com/bdraco) - Fix flakey tests [[#8914]](https://github.com/esphome/esphome/pull/8914) by [@bdraco](https://github.com/bdraco) - [sx1509] add support for keys [[#8413]](https://github.com/esphome/esphome/pull/8413) by [@ssieb](https://github.com/ssieb) - Add es8388 audio_dac [[#8342]](https://github.com/esphome/esphome/pull/8342) by [@P4uLT](https://github.com/P4uLT) (new-integration) - [online_image] Last-Modified-Date and ETag response caching [[#8782]](https://github.com/esphome/esphome/pull/8782) by [@candrews](https://github.com/candrews) - [aht10] Various optimizations/clean-up [[#8921]](https://github.com/esphome/esphome/pull/8921) by [@kbx81](https://github.com/kbx81) - [rtttl] Various optimizations/clean-up [[#8923]](https://github.com/esphome/esphome/pull/8923) by [@kbx81](https://github.com/kbx81) - [ledc] Various optimizations/clean-up [[#8922]](https://github.com/esphome/esphome/pull/8922) by [@kbx81](https://github.com/kbx81) - Streamline setup() logging (a, b) [[#8924]](https://github.com/esphome/esphome/pull/8924) by [@kbx81](https://github.com/kbx81) - Streamline setup() logging (c, d) [[#8925]](https://github.com/esphome/esphome/pull/8925) by [@kbx81](https://github.com/kbx81) - Streamline setup() logging (e, f) [[#8926]](https://github.com/esphome/esphome/pull/8926) by [@kbx81](https://github.com/kbx81) - Streamline setup() logging (g, h, i) [[#8927]](https://github.com/esphome/esphome/pull/8927) by [@kbx81](https://github.com/kbx81) - Streamline setup() logging (k, l, m) [[#8928]](https://github.com/esphome/esphome/pull/8928) by [@kbx81](https://github.com/kbx81) - Streamline setup() logging (n, o, p, q, r) [[#8929]](https://github.com/esphome/esphome/pull/8929) by [@kbx81](https://github.com/kbx81) - Streamline setup() logging (s, t, u, v, w, x, y, z) [[#8930]](https://github.com/esphome/esphome/pull/8930) by [@kbx81](https://github.com/kbx81) - [speaker mediaplayer] Yaml config initial volume (on first boot) [[#8898]](https://github.com/esphome/esphome/pull/8898) by [@mrtoy-me](https://github.com/mrtoy-me) - [i2s_audio] Bump esphome/ESP32-audioI2S to 2.2.0 [[#8920]](https://github.com/esphome/esphome/pull/8920) by [@jesserockz](https://github.com/jesserockz) - Add more demo platforms [[#8903]](https://github.com/esphome/esphome/pull/8903) by [@jesserockz](https://github.com/jesserockz) - Migrate wifi component to use App.get_loop_component_start_time [[#8931]](https://github.com/esphome/esphome/pull/8931) by [@bdraco](https://github.com/bdraco) - Optimize socket operations by checking readiness in the main loop [[#8918]](https://github.com/esphome/esphome/pull/8918) by [@bdraco](https://github.com/bdraco) - Improve logging in integration tests when port does not open [[#8932]](https://github.com/esphome/esphome/pull/8932) by [@bdraco](https://github.com/bdraco) - [pmwcs3] Optimize logging [[#8936]](https://github.com/esphome/esphome/pull/8936) by [@kbx81](https://github.com/kbx81) - [tmp102] Remove ``setup()``, optimize logging [[#8937]](https://github.com/esphome/esphome/pull/8937) by [@kbx81](https://github.com/kbx81) - Optimize plaintext API header reading to reduce system calls [[#8941]](https://github.com/esphome/esphome/pull/8941) by [@bdraco](https://github.com/bdraco) - [gcja5] Remove unused ``setup()`` method [[#8935]](https://github.com/esphome/esphome/pull/8935) by [@kbx81](https://github.com/kbx81) - [alarm_control_panel] BYPASS_AUTO option for Template Alarm Control Panel sensors left open when armed [[#8795]](https://github.com/esphome/esphome/pull/8795) by [@heythisisnate](https://github.com/heythisisnate) - Fix select() logging flood in very verbose mode [[#8942]](https://github.com/esphome/esphome/pull/8942) by [@bdraco](https://github.com/bdraco) - particle matter improvements [[#8846]](https://github.com/esphome/esphome/pull/8846) by [@ximex](https://github.com/ximex) - Fix colors in update all [[#8854]](https://github.com/esphome/esphome/pull/8854) by [@swoboda1337](https://github.com/swoboda1337) - Add flip X and Y on inkplate6 component [[#7904]](https://github.com/esphome/esphome/pull/7904) by [@Leicas](https://github.com/Leicas) - [modbus] [modbus_controller] Fix server role read coil 0x1 crc [[#8859]](https://github.com/esphome/esphome/pull/8859) by [@gotnone](https://github.com/gotnone) - [rp2040] Allow changing watchdog timeout [[#8868]](https://github.com/esphome/esphome/pull/8868) by [@kuba2k2](https://github.com/kuba2k2) - [esp32] Regenerate boards from recommended platform version [[#8938]](https://github.com/esphome/esphome/pull/8938) by [@jesserockz](https://github.com/jesserockz) - Introduce "communication failed" log macro [[#8939]](https://github.com/esphome/esphome/pull/8939) by [@kbx81](https://github.com/kbx81) - [demo] FIx some of the entities [[#8943]](https://github.com/esphome/esphome/pull/8943) by [@jesserockz](https://github.com/jesserockz) - Redundant Log Messages Cleanup [[#8944]](https://github.com/esphome/esphome/pull/8944) by [@bdraco](https://github.com/bdraco) - [dht] Clean-up, shorten some log messages [[#8949]](https://github.com/esphome/esphome/pull/8949) by [@kbx81](https://github.com/kbx81) - Have ESPHome's YAML dumper comply with its own yamllint rules [[#8957]](https://github.com/esphome/esphome/pull/8957) by [@jpeletier](https://github.com/jpeletier) - Allow Weikai to pass data_bit validation [[#8917]](https://github.com/esphome/esphome/pull/8917) by [@timdaman](https://github.com/timdaman) - [max9611] Remove redundant "max9611" from log messages [[#8967]](https://github.com/esphome/esphome/pull/8967) by [@kbx81](https://github.com/kbx81) - [nextion] Allocate NextionQueue in PSRAM (if available) [[#8979]](https://github.com/esphome/esphome/pull/8979) by [@edwardtfn](https://github.com/edwardtfn) - [esp32c6] Add test base file and platformio env [[#8973]](https://github.com/esphome/esphome/pull/8973) by [@jesserockz](https://github.com/jesserockz) - Add missing icons and device classes to BME680 sensors [[#8960]](https://github.com/esphome/esphome/pull/8960) by [@tronikos](https://github.com/tronikos) - [preferences] Shorten log messages [[#8982]](https://github.com/esphome/esphome/pull/8982) by [@kbx81](https://github.com/kbx81) - [lc709203f] Add battery monitor [[#8037]](https://github.com/esphome/esphome/pull/8037) by [@ilikecake](https://github.com/ilikecake) (new-integration) - [mdns] Set up only after API is set up [[#9000]](https://github.com/esphome/esphome/pull/9000) by [@jesserockz](https://github.com/jesserockz) - [const] Move CONF_X and CONF_Y to const.py [[#8999]](https://github.com/esphome/esphome/pull/8999) by [@Hannah-GBS](https://github.com/Hannah-GBS) - [core] Update defines.h esp-idf version [[#8974]](https://github.com/esphome/esphome/pull/8974) by [@jesserockz](https://github.com/jesserockz) - [spi] Remove redundant "SPI" from log messages [[#8970]](https://github.com/esphome/esphome/pull/8970) by [@kbx81](https://github.com/kbx81) - [sdp3x] Remove redundant "sdp3x" from log messages [[#8969]](https://github.com/esphome/esphome/pull/8969) by [@kbx81](https://github.com/kbx81) - [ethernet] Remove redundant "ethernet" from log messages [[#8966]](https://github.com/esphome/esphome/pull/8966) by [@kbx81](https://github.com/kbx81) - [bmp3xx] Remove redundant "bmp3xx" from log messages [[#8965]](https://github.com/esphome/esphome/pull/8965) by [@kbx81](https://github.com/kbx81) - Remove unnecessary ellipsis [[#8964]](https://github.com/esphome/esphome/pull/8964) by [@kbx81](https://github.com/kbx81) - [wireguard] Remove redundant "wireguard" from log messages [[#8963]](https://github.com/esphome/esphome/pull/8963) by [@kbx81](https://github.com/kbx81) - [dashboard] Fix logging colors [[#8984]](https://github.com/esphome/esphome/pull/8984) by [@swoboda1337](https://github.com/swoboda1337) - [sps30] Shorten log messages [[#8971]](https://github.com/esphome/esphome/pull/8971) by [@kbx81](https://github.com/kbx81) - [bmp581] Shorten some log messages [[#8948]](https://github.com/esphome/esphome/pull/8948) by [@kbx81](https://github.com/kbx81) - [api] Streamline some log strings [[#8962]](https://github.com/esphome/esphome/pull/8962) by [@kbx81](https://github.com/kbx81) - [mqtt] Remove redundant "mqtt" from log messages [[#8968]](https://github.com/esphome/esphome/pull/8968) by [@kbx81](https://github.com/kbx81) - [ci, nrf52] make zephyr clang mandatory [[#8992]](https://github.com/esphome/esphome/pull/8992) by [@tomaszduda23](https://github.com/tomaszduda23) - [sdl] Add config for SDL window flags [[#8998]](https://github.com/esphome/esphome/pull/8998) by [@Hannah-GBS](https://github.com/Hannah-GBS) - [nextion] Add optional ``max_queue_size`` limit to prevent queue overflows [[#8976]](https://github.com/esphome/esphome/pull/8976) by [@edwardtfn](https://github.com/edwardtfn) - Move CONF_REQUEST_HEADERS to const.py [[#9002]](https://github.com/esphome/esphome/pull/9002) by [@numo68](https://github.com/numo68) - [api] Fix build error in IDF 5.5 [[#9007]](https://github.com/esphome/esphome/pull/9007) by [@swoboda1337](https://github.com/swoboda1337) - [list-components.py] Only add platforms that are actually platforms. [[#9005]](https://github.com/esphome/esphome/pull/9005) by [@clydebarrow](https://github.com/clydebarrow) - [qwiic_pir] Clean-up, shorten some log messages [[#8951]](https://github.com/esphome/esphome/pull/8951) by [@kbx81](https://github.com/kbx81) - [esp32] Add config vars for compiler [[#9023]](https://github.com/esphome/esphome/pull/9023) by [@kbx81](https://github.com/kbx81) - Implement proper API connection teardown before deep sleep/reboot [[#9008]](https://github.com/esphome/esphome/pull/9008) by [@bdraco](https://github.com/bdraco) - [config] Clean build on ESP-IDF when component/platform combos change [[#9028]](https://github.com/esphome/esphome/pull/9028) by [@clydebarrow](https://github.com/clydebarrow) - Disable ruff rule UP038 [[#9029]](https://github.com/esphome/esphome/pull/9029) by [@bdraco](https://github.com/bdraco) - Update webserver local assets to 20250608-225410 [[#9030]](https://github.com/esphome/esphome/pull/9030) by [@esphomebot](https://github.com/esphomebot) - Reduce ESP_LOGCONFIG calls [[#9026]](https://github.com/esphome/esphome/pull/9026) by [@bdraco](https://github.com/bdraco) - Force socket ready when high frequency looping [[#9032]](https://github.com/esphome/esphome/pull/9032) by [@juanboro](https://github.com/juanboro) - [psram] Add P4 support [[#8545]](https://github.com/esphome/esphome/pull/8545) by [@clydebarrow](https://github.com/clydebarrow) - [nextion] Use safe restart to properly handle globals and restart logging [[#9010]](https://github.com/esphome/esphome/pull/9010) by [@edwardtfn](https://github.com/edwardtfn) - [max7219digit, servo, tsl2591] ESP_LOGCONFIG call reduction (Extend [#9026]) [[#9033]](https://github.com/esphome/esphome/pull/9033) by [@kbx81](https://github.com/kbx81) - [tsl2561, tsl2591] Shorten log messages [[#9034]](https://github.com/esphome/esphome/pull/9034) by [@kbx81](https://github.com/kbx81) - Change RP2040 PIO SK6812 timings [[#9020]](https://github.com/esphome/esphome/pull/9020) by [@pseud0sphere](https://github.com/pseud0sphere) - Add LWIP optimization options to reduce flash usage [[#8946]](https://github.com/esphome/esphome/pull/8946) by [@bdraco](https://github.com/bdraco) (breaking-change) - [globals] Prevent redundant oversized string checks in loop [[#9001]](https://github.com/esphome/esphome/pull/9001) by [@edwardtfn](https://github.com/edwardtfn) - [nextion] Optimize log messages to reduce memory usage [[#9039]](https://github.com/esphome/esphome/pull/9039) by [@edwardtfn](https://github.com/edwardtfn) - [nextion] Add configurable limit for commands processed per loop [[#8972]](https://github.com/esphome/esphome/pull/8972) by [@edwardtfn](https://github.com/edwardtfn) - [lvgl] Fix templated argument to ``lvgl.is_idle`` [[#9014]](https://github.com/esphome/esphome/pull/9014) by [@clydebarrow](https://github.com/clydebarrow) - Replace API deferred queue with efficient message batching system [[#9012]](https://github.com/esphome/esphome/pull/9012) by [@bdraco](https://github.com/bdraco) (breaking-change) - Reduce Bluetooth overhead by disabling unused logging categories [[#8945]](https://github.com/esphome/esphome/pull/8945) by [@bdraco](https://github.com/bdraco) - [inkplate] Remove arduino dependency [[#9031]](https://github.com/esphome/esphome/pull/9031) by [@jesserockz](https://github.com/jesserockz) - [core] Include esp_mac.h on Arduino too [[#9040]](https://github.com/esphome/esphome/pull/9040) by [@swoboda1337](https://github.com/swoboda1337) - Use a ``define`` for log message constants [[#8952]](https://github.com/esphome/esphome/pull/8952) by [@kbx81](https://github.com/kbx81) - [esp_ldo] Implement support for ESP32-P4 LDO [[#9009]](https://github.com/esphome/esphome/pull/9009) by [@clydebarrow](https://github.com/clydebarrow) (new-integration) - Fix: Seeed Studio MR60FDA2 threshold height could not be set [[#9011]](https://github.com/esphome/esphome/pull/9011) by [@limengdu](https://github.com/limengdu) - [esp32] Use release zip from pioarduino/platform-espressif32 instead of git tag [[#8975]](https://github.com/esphome/esphome/pull/8975) by [@jesserockz](https://github.com/jesserockz) - [esp32_rmt] Add variant validation for use_dma [[#8897]](https://github.com/esphome/esphome/pull/8897) by [@swoboda1337](https://github.com/swoboda1337) - Ensure components only powerdown after teardown [[#9044]](https://github.com/esphome/esphome/pull/9044) by [@bdraco](https://github.com/bdraco) - use ``encode_uintXX`` [[#8847]](https://github.com/esphome/esphome/pull/8847) by [@ximex](https://github.com/ximex) - Add OpenThread support on ESP-IDF [[#7506]](https://github.com/esphome/esphome/pull/7506) by [@mrene](https://github.com/mrene) (new-integration) - [shtcx] Shorten log messages [[#9046]](https://github.com/esphome/esphome/pull/9046) by [@kbx81](https://github.com/kbx81) - [application] Fix build error on some IDF versions [[#9045]](https://github.com/esphome/esphome/pull/9045) by [@kbx81](https://github.com/kbx81) - [spi] Restrict octal spi to S3/S2/P4 [[#9041]](https://github.com/esphome/esphome/pull/9041) by [@clydebarrow](https://github.com/clydebarrow) - Reserve memory for component and platform vectors [[#9042]](https://github.com/esphome/esphome/pull/9042) by [@bdraco](https://github.com/bdraco) - Improve shutdown reliability when tx buffer is full [[#9043]](https://github.com/esphome/esphome/pull/9043) by [@bdraco](https://github.com/bdraco) - Add support for custom request headers in online_image component [[#8985]](https://github.com/esphome/esphome/pull/8985) by [@numo68](https://github.com/numo68) - Openthread code updates [[#9047]](https://github.com/esphome/esphome/pull/9047) by [@jesserockz](https://github.com/jesserockz) - [sgp4x] Shorten log messages, various clean-up [[#9048]](https://github.com/esphome/esphome/pull/9048) by [@kbx81](https://github.com/kbx81) - Fix dashboard logging being escaped before parser [[#9054]](https://github.com/esphome/esphome/pull/9054) by [@bdraco](https://github.com/bdraco) - Always perform select() when loop duration exceeds interval [[#9058]](https://github.com/esphome/esphome/pull/9058) by [@bdraco](https://github.com/bdraco) - [nextion] Remove upload flags reset from success path to prevent TFT corruption [[#9064]](https://github.com/esphome/esphome/pull/9064) by [@edwardtfn](https://github.com/edwardtfn) - Fix BYPASS_AUTO feature to work with or without an arming delay [[#9051]](https://github.com/esphome/esphome/pull/9051) by [@heythisisnate](https://github.com/heythisisnate) - Fix misleading comment in API [[#9069]](https://github.com/esphome/esphome/pull/9069) by [@bdraco](https://github.com/bdraco) - [prometheus] Remove ``cv.only_with_arduino`` [[#9061]](https://github.com/esphome/esphome/pull/9061) by [@jesserockz](https://github.com/jesserockz) - [esp32] Dynamically set default framework based on variant [[#9060]](https://github.com/esphome/esphome/pull/9060) by [@jesserockz](https://github.com/jesserockz) - Fix ``captive_portal`` loading entire ``web_server`` [[#9066]](https://github.com/esphome/esphome/pull/9066) by [@bdraco](https://github.com/bdraco) - Make ParseOnOffState enum uint8_t [[#9083]](https://github.com/esphome/esphome/pull/9083) by [@bdraco](https://github.com/bdraco) - Optimize Component and Application state storage from uint32_t to uint8_t [[#9082]](https://github.com/esphome/esphome/pull/9082) by [@bdraco](https://github.com/bdraco) (breaking-change) - Small optimizations to api buffer helper [[#9071]](https://github.com/esphome/esphome/pull/9071) by [@bdraco](https://github.com/bdraco) - Reduce entity memory usage by eliminating field shadowing and bit-packing [[#9076]](https://github.com/esphome/esphome/pull/9076) by [@bdraco](https://github.com/bdraco) (breaking-change) - Optimize memory usage by lazy-allocating raw callbacks in sensors [[#9077]](https://github.com/esphome/esphome/pull/9077) by [@bdraco](https://github.com/bdraco) - Fix API message encoding to return actual size instead of calculated size [[#9073]](https://github.com/esphome/esphome/pull/9073) by [@bdraco](https://github.com/bdraco) - Optimize Application ``area_`` from ``std::string`` to ``const char*`` [[#9085]](https://github.com/esphome/esphome/pull/9085) by [@bdraco](https://github.com/bdraco) (breaking-change) - Fix unbound BLE event queue growth and reduce memory usage [[#9052]](https://github.com/esphome/esphome/pull/9052) by [@bdraco](https://github.com/bdraco) - [fan] fix initial FanCall to properly set speed [[#8277]](https://github.com/esphome/esphome/pull/8277) by [@dhewg](https://github.com/dhewg) - Implement a lock free ring buffer for BLEScanResult to avoid drops [[#9087]](https://github.com/esphome/esphome/pull/9087) by [@bdraco](https://github.com/bdraco) - Make BLE queue lock free [[#9088]](https://github.com/esphome/esphome/pull/9088) by [@bdraco](https://github.com/bdraco) - Fix protobuf encoding size mismatch by passing force parameter in encode_string [[#9074]](https://github.com/esphome/esphome/pull/9074) by [@bdraco](https://github.com/bdraco) - [i2s_audio] Check for a nullptr before disabling and deleting channel [[#9062]](https://github.com/esphome/esphome/pull/9062) by [@kahrendt](https://github.com/kahrendt) - Ensure we can send batches where the first message exceeds MAX_PACKET_SIZE [[#9068]](https://github.com/esphome/esphome/pull/9068) by [@bdraco](https://github.com/bdraco) - Add common base classes for entity protobuf messages to reduce duplicate code [[#9090]](https://github.com/esphome/esphome/pull/9090) by [@bdraco](https://github.com/bdraco) - Reduce Component blocking threshold memory usage by 2 bytes per component [[#9081]](https://github.com/esphome/esphome/pull/9081) by [@bdraco](https://github.com/bdraco) - Remove ``std::`` prefix as not all platforms have access yet. [[#9095]](https://github.com/esphome/esphome/pull/9095) by [@jesserockz](https://github.com/jesserockz) - [i2s_audio] Add ``dump_config`` methods, shorten log messages [[#9099]](https://github.com/esphome/esphome/pull/9099) by [@kbx81](https://github.com/kbx81) - [i2s_audio] Bugfix: crashes when unlocking i2s bus multiple times [[#9100]](https://github.com/esphome/esphome/pull/9100) by [@kahrendt](https://github.com/kahrendt) - [spi] Cater for non-word-aligned buffers on esp8266 [[#9108]](https://github.com/esphome/esphome/pull/9108) by [@clydebarrow](https://github.com/clydebarrow) - Add intent progress event to voice assistant enum [[#9103]](https://github.com/esphome/esphome/pull/9103) by [@synesthesiam](https://github.com/synesthesiam) - Optimize LightState memory layout [[#9113]](https://github.com/esphome/esphome/pull/9113) by [@bdraco](https://github.com/bdraco) - Reduce Switch component memory usage by 8 bytes per instance [[#9112]](https://github.com/esphome/esphome/pull/9112) by [@bdraco](https://github.com/bdraco)

Dependency Changes

Show - Bump aioesphomeapi from 30.2.0 to 31.0.0 [[#8779]](https://github.com/esphome/esphome/pull/8779) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump cairosvg from 2.7.1 to 2.8.0 [[#8780]](https://github.com/esphome/esphome/pull/8780) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump cairosvg from 2.8.0 to 2.8.1 [[#8799]](https://github.com/esphome/esphome/pull/8799) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump aioesphomeapi from 31.0.0 to 31.0.1 [[#8809]](https://github.com/esphome/esphome/pull/8809) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump setuptools from 80.4.0 to 80.7.1 [[#8808]](https://github.com/esphome/esphome/pull/8808) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump ruff from 0.11.9 to 0.11.10 [[#8818]](https://github.com/esphome/esphome/pull/8818) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump cairosvg from 2.8.1 to 2.8.2 [[#8817]](https://github.com/esphome/esphome/pull/8817) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump codecov/codecov-action from 5.4.2 to 5.4.3 [[#8820]](https://github.com/esphome/esphome/pull/8820) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump aioesphomeapi from 31.0.1 to 31.1.0 [[#8849]](https://github.com/esphome/esphome/pull/8849) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump setuptools from 80.7.1 to 80.8.0 [[#8858]](https://github.com/esphome/esphome/pull/8858) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump tornado from 6.4.2 to 6.5.1 [[#8882]](https://github.com/esphome/esphome/pull/8882) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump ruff from 0.11.10 to 0.11.11 [[#8883]](https://github.com/esphome/esphome/pull/8883) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump pyupgrade from 3.19.1 to 3.20.0 [[#8891]](https://github.com/esphome/esphome/pull/8891) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump actions/checkout from 4.1.7 to 4.2.2 [[#8904]](https://github.com/esphome/esphome/pull/8904) by [@jesserockz](https://github.com/jesserockz) - Bump ruamel-yaml from 0.18.10 to 0.18.11 [[#8910]](https://github.com/esphome/esphome/pull/8910) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump pytest-mock from 3.14.0 to 3.14.1 [[#8909]](https://github.com/esphome/esphome/pull/8909) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump setuptools from 80.8.0 to 80.9.0 [[#8915]](https://github.com/esphome/esphome/pull/8915) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump pytest-xdist from 3.6.1 to 3.7.0 [[#8916]](https://github.com/esphome/esphome/pull/8916) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump docker/build-push-action from 6.17.0 to 6.18.0 in /.github/actions/build-image [[#8919]](https://github.com/esphome/esphome/pull/8919) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump pytest from 8.3.5 to 8.4.0 [[#8993]](https://github.com/esphome/esphome/pull/8993) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump ruamel-yaml from 0.18.11 to 0.18.12 [[#8977]](https://github.com/esphome/esphome/pull/8977) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump aioesphomeapi from 31.1.0 to 32.0.0 [[#9004]](https://github.com/esphome/esphome/pull/9004) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump ruff from 0.11.11 to 0.11.13 [[#9017]](https://github.com/esphome/esphome/pull/9017) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump ruamel-yaml from 0.18.12 to 0.18.13 [[#9018]](https://github.com/esphome/esphome/pull/9018) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump aioesphomeapi from 32.0.0 to 32.1.0 [[#9024]](https://github.com/esphome/esphome/pull/9024) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump aioesphomeapi from 32.1.0 to 32.2.0 [[#9025]](https://github.com/esphome/esphome/pull/9025) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump aioesphomeapi from 32.2.0 to 32.2.1 [[#9038]](https://github.com/esphome/esphome/pull/9038) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump ruamel-yaml from 0.18.13 to 0.18.14 [[#9037]](https://github.com/esphome/esphome/pull/9037) by [@dependabot[bot]](https://github.com/apps/dependabot) - Bump aioesphomeapi from 32.2.1 to 32.2.3 [[#9091]](https://github.com/esphome/esphome/pull/9091) by [@dependabot[bot]](https://github.com/apps/dependabot)
Source: README.md, updated 2025-06-18