Releases: esphome/esphome
Releases · esphome/esphome
2025.6.0
Full list of changes
New Components
- Add CUBIC CM1106 Single Beam NDIR CO2 Sensor Module esphome#8293 by @andrewjswan (new-integration)
- [usb_uart] Implement USB Host mode UART esphome#8334 by @clydebarrow (new-integration)
- Add es8388 audio_dac esphome#8342 by @P4uLT (new-integration)
- [lc709203f] Add battery monitor esphome#8037 by @ilikecake (new-integration)
- [esp_ldo] Implement support for ESP32-P4 LDO esphome#9009 by @clydebarrow (new-integration)
- Add OpenThread support on ESP-IDF esphome#7506 by @mrene (new-integration)
Breaking Changes
- update minimal python version to 3.10 esphome#8850 by @ximex (breaking-change)
- Add LWIP optimization options to reduce flash usage esphome#8946 by @bdraco (breaking-change)
- Replace API deferred queue with efficient message batching system esphome#9012 by @bdraco (breaking-change)
- Optimize Component and Application state storage from uint32_t to uint8_t esphome#9082 by @bdraco (breaking-change)
- Reduce entity memory usage by eliminating field shadowing and bit-packing esphome#9076 by @bdraco (breaking-change)
- Optimize Application
area_
fromstd::string
toconst char*
esphome#9085 by @bdraco (breaking-change)
Beta Changes
Show
- Fix dashboard logging being escaped before parser esphome#9054 by @bdraco
- Always perform select() when loop duration exceeds interval esphome#9058 by @bdraco
- [nextion] Remove upload flags reset from success path to prevent TFT corruption esphome#9064 by @edwardtfn
- Fix BYPASS_AUTO feature to work with or without an arming delay esphome#9051 by @heythisisnate
- Fix misleading comment in API esphome#9069 by @bdraco
- [prometheus] Remove
cv.only_with_arduino
esphome#9061 by @jesserockz - [esp32] Dynamically set default framework based on variant esphome#9060 by @jesserockz
- Fix
captive_portal
loading entireweb_server
esphome#9066 by @bdraco - Make ParseOnOffState enum uint8_t esphome#9083 by @bdraco
- Optimize Component and Application state storage from uint32_t to uint8_t esphome#9082 by @bdraco (breaking-change)
- Small optimizations to api buffer helper esphome#9071 by @bdraco
- Reduce entity memory usage by eliminating field shadowing and bit-packing esphome#9076 by @bdraco (breaking-change)
- Optimize memory usage by lazy-allocating raw callbacks in sensors esphome#9077 by @bdraco
- Fix API message encoding to return actual size instead of calculated size esphome#9073 by @bdraco
- Optimize Application
area_
fromstd::string
toconst char*
esphome#9085 by @bdraco (breaking-change) - Fix unbound BLE event queue growth and reduce memory usage esphome#9052 by @bdraco
- Bump aioesphomeapi from 32.2.1 to 32.2.3 esphome#9091 by @dependabot[bot]
- [fan] fix initial FanCall to properly set speed esphome#8277 by @dhewg
- Implement a lock free ring buffer for BLEScanResult to avoid drops esphome#9087 by @bdraco
- Make BLE queue lock free esphome#9088 by @bdraco
- Fix protobuf encoding size mismatch by passing force parameter in encode_string esphome#9074 by @bdraco
- [i2s_audio] Check for a nullptr before disabling and deleting channel esphome#9062 by @kahrendt
- Ensure we can send batches where the first message exceeds MAX_PACKET_SIZE esphome#9068 by @bdraco
- Add common base classes for entity protobuf messages to reduce duplicate code esphome#9090 by @bdraco
- Reduce Component blocking threshold memory usage by 2 bytes per component esphome#9081 by @bdraco
- Remove
std::
prefix as not all platforms have access yet. esphome#9095 by @jesserockz - [i2s_audio] Add
dump_config
methods, shorten log messages esphome#9099 by @kbx81 - [i2s_audio] Bugfix: crashes when unlocking i2s bus multiple times esphome#9100 by @kahrendt
- [spi] Cater for non-word-aligned buffers on esp8266 esphome#9108 by @clydebarrow
- Optimize LightState memory layout esphome#9113 by @bdraco
- Reduce Switch component memory usage by 8 bytes per instance esphome#9112 by @bdraco
Notable Changes
- [bme68x_bsec2_i2c] Remove arduino dependency esphome#7815 by @luar123 (notable-change)
All changes
Show
- add actions to the MAX7219Component esphome#6462 by @nielsnl68
- [api] Update api proto to add legacy value esphome#8802 by @jesserockz
- [script] Use local import for zephyr esphome#8822 by @clydebarrow
- Bump cryptography to 45.0.1 esphome#8826 by @bdraco
- unify and add missing metric suffixes esphome#8816 by @ximex
- Improve stability for a test that crashes intermittently in CI esphome#8699 by @dala318
- update ruff version to
0.11.10
in.pre-commit-config.yaml
esphome#8851 by @ximex - add python 3.13 to ci pipeline esphome#8855 by @ximex
- [esp32] Use IDF 5.3.2 as default for IDF builds esphome#8464 by @swoboda1337
- update minimal python version to 3.10 esphome#8850 by @ximex (breaking-change)
- [esp32, logger] Add initial P4 support esphome#8439 by @swoboda1337
- Add CUBIC CM1106 Single Beam NDIR CO2 Sensor Module esphome#8293 by @andrewjswan (new-integration)
- Updates for development environment esphome#8801 by @jesserockz
- [sync] Update and fix sync workflow esphome#8873 by @jesserockz
- [lvgl] Try to allocate smaller buffer on failure esphome#8814 by @clydebarrow
- [lvgl] A...
2025.6.0b3
- [i2s_audio] Add
dump_config
methods, shorten log messages esphome#9099 by @kbx81 - [i2s_audio] Bugfix: crashes when unlocking i2s bus multiple times esphome#9100 by @kahrendt
- [spi] Cater for non-word-aligned buffers on esp8266 esphome#9108 by @clydebarrow
- Optimize LightState memory layout esphome#9113 by @bdraco
- Reduce Switch component memory usage by 8 bytes per instance esphome#9112 by @bdraco
2025.6.0b2
- Fix dashboard logging being escaped before parser esphome#9054 by @bdraco
- Always perform select() when loop duration exceeds interval esphome#9058 by @bdraco
- [nextion] Remove upload flags reset from success path to prevent TFT corruption esphome#9064 by @edwardtfn
- Fix BYPASS_AUTO feature to work with or without an arming delay esphome#9051 by @heythisisnate
- Fix misleading comment in API esphome#9069 by @bdraco
- [prometheus] Remove
cv.only_with_arduino
esphome#9061 by @jesserockz - [esp32] Dynamically set default framework based on variant esphome#9060 by @jesserockz
- Fix
captive_portal
loading entireweb_server
esphome#9066 by @bdraco - Make ParseOnOffState enum uint8_t esphome#9083 by @bdraco
- Optimize Component and Application state storage from uint32_t to uint8_t esphome#9082 by @bdraco (breaking-change)
- Small optimizations to api buffer helper esphome#9071 by @bdraco
- Reduce entity memory usage by eliminating field shadowing and bit-packing esphome#9076 by @bdraco (breaking-change)
- Optimize memory usage by lazy-allocating raw callbacks in sensors esphome#9077 by @bdraco
- Fix API message encoding to return actual size instead of calculated size esphome#9073 by @bdraco
- Optimize Application
area_
fromstd::string
toconst char*
esphome#9085 by @bdraco (breaking-change) - Fix unbound BLE event queue growth and reduce memory usage esphome#9052 by @bdraco
- Bump aioesphomeapi from 32.2.1 to 32.2.3 esphome#9091 by @dependabot[bot]
- [fan] fix initial FanCall to properly set speed esphome#8277 by @dhewg
- Implement a lock free ring buffer for BLEScanResult to avoid drops esphome#9087 by @bdraco
- Make BLE queue lock free esphome#9088 by @bdraco
- Fix protobuf encoding size mismatch by passing force parameter in encode_string esphome#9074 by @bdraco
- [i2s_audio] Check for a nullptr before disabling and deleting channel esphome#9062 by @kahrendt
- Ensure we can send batches where the first message exceeds MAX_PACKET_SIZE esphome#9068 by @bdraco
- Add common base classes for entity protobuf messages to reduce duplicate code esphome#9090 by @bdraco
- Reduce Component blocking threshold memory usage by 2 bytes per component esphome#9081 by @bdraco
- Remove
std::
prefix as not all platforms have access yet. esphome#9095 by @jesserockz
2025.6.0b1
- Bump aioesphomeapi from 30.2.0 to 31.0.0 esphome#8779 by @dependabot[bot]
- Bump cairosvg from 2.7.1 to 2.8.0 esphome#8780 by @dependabot[bot]
- add actions to the MAX7219Component esphome#6462 by @nielsnl68
- [api] Update api proto to add legacy value esphome#8802 by @jesserockz
- Bump cairosvg from 2.8.0 to 2.8.1 esphome#8799 by @dependabot[bot]
- Bump aioesphomeapi from 31.0.0 to 31.0.1 esphome#8809 by @dependabot[bot]
- Bump setuptools from 80.4.0 to 80.7.1 esphome#8808 by @dependabot[bot]
- Bump ruff from 0.11.9 to 0.11.10 esphome#8818 by @dependabot[bot]
- Bump cairosvg from 2.8.1 to 2.8.2 esphome#8817 by @dependabot[bot]
- [script] Use local import for zephyr esphome#8822 by @clydebarrow
- Bump cryptography to 45.0.1 esphome#8826 by @bdraco
- Bump codecov/codecov-action from 5.4.2 to 5.4.3 esphome#8820 by @dependabot[bot]
- unify and add missing metric suffixes esphome#8816 by @ximex
- Improve stability for a test that crashes intermittently in CI esphome#8699 by @dala318
- Bump aioesphomeapi from 31.0.1 to 31.1.0 esphome#8849 by @dependabot[bot]
- update ruff version to
0.11.10
in.pre-commit-config.yaml
esphome#8851 by @ximex - add python 3.13 to ci pipeline esphome#8855 by @ximex
- Bump setuptools from 80.7.1 to 80.8.0 esphome#8858 by @dependabot[bot]
- [esp32] Use IDF 5.3.2 as default for IDF builds esphome#8464 by @swoboda1337
- update minimal python version to 3.10 esphome#8850 by @ximex (breaking-change)
- [esp32, logger] Add initial P4 support esphome#8439 by @swoboda1337
- Add CUBIC CM1106 Single Beam NDIR CO2 Sensor Module esphome#8293 by @andrewjswan (new-integration)
- Updates for development environment esphome#8801 by @jesserockz
- [sync] Update and fix sync workflow esphome#8873 by @jesserockz
- [lvgl] Try to allocate smaller buffer on failure esphome#8814 by @clydebarrow
- [lvgl] Add content styling to tabview esphome#8823 by @clydebarrow
- [usb_uart] Implement USB Host mode UART esphome#8334 by @clydebarrow (new-integration)
- OTA: Close and clean up client when setsockopt fails esphome#8865 by @luuoaoa
- Bump tornado from 6.4.2 to 6.5.1 esphome#8882 by @dependabot[bot]
- Bump ruff from 0.11.10 to 0.11.11 esphome#8883 by @dependabot[bot]
- Add const DEVICE_CLASS_WIND_DIRECTION esphome#8870 by @Pi57
- Synchronise Device Classes from Home Assistant esphome#8874 by @esphomebot
- Optimize API frame helper buffer management esphome#8805 by @bdraco
- Use UINT16_MAX instead of hard coded 65535 in api esphome#8884 by @bdraco
- feat:
wifi.configure
now emits error after reconnecting to old AP esphome#8653 by @Rapsssito - [modbus_controller] Add assumed_state to switch esphome#8880 by @gotnone
- [const] Move
CONF_RESET
to const.py esphome#8889 by @jesserockz - [bme68x_bsec2_i2c] Remove arduino dependency esphome#7815 by @luar123 (notable-change)
- [i2s_audio] Add basic support for esp32-p4 esphome#8887 by @jesserockz
- [esp32, logger, core] Add initial c5 support esphome#8895 by @swoboda1337
- Resolve regex library warnings esphome#8890 by @emmanuel-ferdman
- Bump pyupgrade from 3.19.1 to 3.20.0 esphome#8891 by @dependabot[bot]
- Add integration tests for host esphome#8912 by @bdraco
- Fix flakey tests esphome#8914 by @bdraco
- Bump actions/checkout from 4.1.7 to 4.2.2 esphome#8904 by @jesserockz
- [sx1509] add support for keys esphome#8413 by @ssieb
- Bump ruamel-yaml from 0.18.10 to 0.18.11 esphome#8910 by @dependabot[bot]
- Bump pytest-mock from 3.14.0 to 3.14.1 esphome#8909 by @dependabot[bot]
- Bump setuptools from 80.8.0 to 80.9.0 esphome#8915 by @dependabot[bot]
- Bump pytest-xdist from 3.6.1 to 3.7.0 esphome#8916 by @dependabot[bot]
- Bump docker/build-push-action from 6.17.0 to 6.18.0 in /.github/actions/build-image esphome#8919 by @dependabot[bot]
- Add es8388 audio_dac esphome#8342 by @P4uLT (new-integration)
- [online_image] Last-Modified-Date and ETag response caching esphome#8782 by @candrews
- [aht10] Various optimizations/clean-up esphome#8921 by @kbx81
- [rtttl] Various optimizations/clean-up esphome#8923 by @kbx81
- [ledc] Various optimizations/clean-up esphome#8922 by @kbx81
- Streamline setup() logging (a, b) esphome#8924 by @kbx81
- Streamline setup() logging (c, d) esphome#8925 by @kbx81
- Streamline setup() logging (e, f) esphome#8926 by @kbx81
- Streamline setup() logging (g, h, i) esphome#8927 by @kbx81
- Streamline setup() logging (k, l, m) esphome#8928 by @kbx81
- Streamline setup() logging (n, o, p, q, r) esphome#8929 by @kbx81
- Streamline setup() logging (s, t, u, v, w, x, y, z) esphome#8930 by @kbx81
- [speaker mediaplayer] Yaml config initial volume (on first boot) esphome#8898 by @mrtoy-me
- [i2s_audio] Bump esphome/ESP32-audioI2S to 2.2.0 esphome#8920 by @jesserockz
- Add more demo platforms [esphome#...
2025.5.2
- [i2s-audio] ensure mic task isn't pinned to a core esphome#8879 by @kahrendt
- [rp2040] use low-level control for ISR gpio and add IRAM_ATTR esphome#8950 by @ssieb
- [esp8266] fix isr pin esphome#8981 by @ssieb
- [debug] Make sensors work without logger debug level esphome#8980 by @clydebarrow
- Fix logger stack overflow esphome#8988 by @bdraco
2025.5.1
- [core] Add some missing includes esphome#8864 by @jesserockz
- [tuya_select] - Fix datapoint config error. esphome#8871 by @Cossid
- [online_image] Allocate pngle manually to potentially use psram esphome#8354 by @jesserockz
- [lvgl] Improve error messages from text validation esphome#8872 by @clydebarrow
- [micro_wake_word] avoid duplicated detections from same event esphome#8877 by @kahrendt
- [speaker] ensure the pipeline returns an error state before returning its stopped esphome#8878 by @kahrendt
- [logger] Fix options in select esphome#8875 by @jesserockz
- [esp32] Fix building on IDF 4 esphome#8892 by @kbx81
- [api] Fix crash with gcc compiler on host esphome#8902 by @jesserockz
- [web_server] Fix download list where external_components has a substitution value esphome#8911 by @jesserockz
2025.5.0
Full list of changes
New Components
- Add CUBIC PM2005/PM2105 Laser Particle Sensor Module esphome#8292 by @andrewjswan (new-integration)
- [mapping] Implement yaml-configured maps esphome#8333 by @clydebarrow (new-integration)
- [const] Create component-level const repository esphome#8385 by @clydebarrow (new-integration)
- [packet_transport] Extract packet encoding functionality esphome#8187 by @clydebarrow (new-integration) (breaking-change)
- [uart] Add packet_transport platform esphome#8214 by @clydebarrow (new-integration)
- [syslog] Implement logging via syslog esphome#8637 by @clydebarrow (new-integration)
- ATM90E32 Semi-automatic calibration & Status fields esphome#8529 by @CircuitSetup (new-integration) (breaking-change)
- [sound_level] Add a new sound level sensor esphome#8737 by @kahrendt (new-integration)
- [mipi_spi] New display driver for MIPI DBI devices esphome#8383 by @clydebarrow (new-integration)
New Platforms
- [cst226] Add support for cst226 binary sensor esphome#8381 by @clydebarrow (new-platform)
Breaking Changes
- [http_request] Ability to get response headers esphome#8224 by @candrews (breaking-change)
- [i2s_audio, microphone, micro_wake_word, voice_assistant] Use microphone source to process incoming audio esphome#8645 by @kahrendt (breaking-change)
- [binary_sensor] initial state refactor esphome#8648 by @clydebarrow (breaking-change)
- [packet_transport] Extract packet encoding functionality esphome#8187 by @clydebarrow (new-integration) (breaking-change)
- ATM90E32 Semi-automatic calibration & Status fields esphome#8529 by @CircuitSetup (new-integration) (breaking-change)
Beta Changes
- [media_player] Deprecate
MEDIA_PLAYER_SCHEMA
esphome#8784 by @jesserockz - [schema] Get component name if available for deprecation warning esphome#8785 by @jesserockz
- [fan] Update components to use
fan_schema(...)
esphome#8786 by @jesserockz - Improve batching of BLE advertisements for better airtime efficiency esphome#8778 by @bdraco
- Fix release to pypi esphome#8789 by @jesserockz
- [climate] Update components to use
climate_schema(...)
esphome#8788 by @jesserockz - Bump esphome-dashboard to 20250514.0 esphome#8790 by @jesserockz
- Avoid protobuf message construction when tx buffer is full esphome#8787 by @bdraco
- Update some sensor schemas to be Optional esphome#8803 by @jesserockz
- Use fixed buffer for plaintext protocol like noise protocol esphome#8800 by @bdraco
- Optimize protobuf varint decoder for ESPHome use case esphome#8791 by @bdraco
- Logger Recursion Guard per Task on ESP32 esphome#8765 by @bdraco
- [log] improve/refactor
log
esphome#8708 by @ximex - [gps] update lib, improve code/tests/config esphome#8768 by @ximex
- Fix ESP32 Camera class inheritance esphome#8811 by @bdraco
- [sen5x] Fix validation for values read from hardware esphome#8769 by @kbx81
- Fix the case of single error esphome#8824 by @asergunov
- Revert "[binary_sensor] initial state refactor" esphome#8828 by @clydebarrow
- Fix misspelling of climate in climate_ir.climate_ir_with_receiver_schema esphome#8829 by @warthog618
- Fix ESP32 console logging corruption and message loss in multi-task esphome#8806 by @bdraco
- Reduce number of calls to fetch time in the main loop esphome#8804 by @bdraco
- Refactor API frame helpers to enable buffer reuse esphome#8825 by @bdraco
- Bump docker/build-push-action from 6.16.0 to 6.17.0 in /.github/actions/build-image esphome#8810 by @dependabot[bot]
- Update esp32-camera library version esphome#8832 by @Fexiven
- Fix api doc homepage esphome#8836 by @jesserockz
- Deploy doxygen docs to netlify esphome#8837 by @jesserockz
- [release] Fix output value esphome#8839 by @jesserockz
- [release] Don't wait for docker to be finished before deploying schema esphome#8838 by @jesserockz
- Fix API connection sending ping too early after connection establishment esphome#8840 by @bdraco
- Fix ethernet connection timeout issue caused by incorrect time value during setup esphome#8841 by @bdraco
- [docker] Update pip on build esphome#8835 by @jesserockz
- [api-docs] Run using netlify builders esphome#8842 by @jesserockz
- Fix #ifdefs esphome#8853 by @clydebarrow
- [at581x] Fix issue with methods not being public esphome#8852 by @gpambrozio
- [api-docs] Move netlify.toml to root esphome#8861 by @jesserockz
All changes
Show
- [esp32] Allow pioarduino version 5.3.3 and 5.5.0 esphome#8526 by @swoboda1337
- Update setup to make .temp directory esphome#8558 by @calumapplepie
- [core] make require_framework_version generic esphome#8412 by @tomaszduda23
- Add support for Waveshare 5.65" ACeP 7-Color display esphome#8557 by @nhjschulz
- [ci] Pin codecov action to v5.4.0 esphome#8564 by @jesserockz
- [lvgl] Small buffers in internal RAM esphome#8523 by @clydebarrow
- Use python3 in place of python, as some systems don't emulate the former esphome#8568 by @calumapplepie
- Add typing to protobuf code generator esphome#8541 by @bdraco
- fix typo
USE_ESP32_VARIANT_ESP32H6
esphome#8580 by @ximex - [prometheus] Add climate metrics esphome#8247 by @jzucker2
- [api] Allow noise encryption key to be set at runti...
2025.5.0b6
- [api-docs] Move netlify.toml to root esphome#8861 by @jesserockz
2025.5.0b5
- Fix #ifdefs esphome#8853 by @clydebarrow
- [at581x] Fix issue with methods not being public esphome#8852 by @gpambrozio
2025.5.0b4
- Avoid protobuf message construction when tx buffer is full esphome#8787 by @bdraco
- Update esp32-camera library version esphome#8832 by @Fexiven
- Fix api doc homepage esphome#8836 by @jesserockz
- Deploy doxygen docs to netlify esphome#8837 by @jesserockz
- [release] Fix output value esphome#8839 by @jesserockz
- [release] Don't wait for docker to be finished before deploying schema esphome#8838 by @jesserockz
- Fix API connection sending ping too early after connection establishment esphome#8840 by @bdraco
- Fix ethernet connection timeout issue caused by incorrect time value during setup esphome#8841 by @bdraco
- [docker] Update pip on build esphome#8835 by @jesserockz
- [api-docs] Run using netlify builders esphome#8842 by @jesserockz