ESPHome 2026.10.0 - October 2026
NOTE
This is a beta release. Details on this page may change before the stable release is published.
Read the ESPHome 2026.10.0 release notes on the blog for the release overview, feature highlights, upgrade checklist, and breaking changes.
Full list of changes
Section titled “Full list of changes”New Features
Section titled “New Features”- [wifi] Allow a forced roam check esphome#17349 by @clydebarrow (new-feature)
- [serial_proxy] Add tap interface and port mode esphome#18955 by @kbx81 (new-feature) (breaking-change)
- [sendspin] Add manufacturer, model, and firmware version options esphome#18792 by @kahrendt (new-feature)
- [bridge] New component and
cdc_acm_uartplatform esphome#11689 by @kbx81 (new-component) (new-feature) - [tinyusb] Add on_mount/on_unmount triggers and is_mounted condition esphome#19067 by @kbx81 (new-feature)
- [usb_uart] Add claim_comm_interface option esphome#18969 by @kbx81 (new-feature)
- [uart_mux] New component to share a UART between a CDC-ACM bridge and local consumers esphome#19066 by @kbx81 (new-component) (new-feature)
- [icnt86] Support ICNT86 touch driver esphome#18331 by @danepowell (new-component) (new-feature) (new-platform)
- [sendspin] Add a switch platform to enable and disable the client esphome#19361 by @kahrendt (new-feature) (new-platform)
- [mixer] Raise ducking decibel_reduction maximum to 255 esphome#19347 by @kahrendt (new-feature)
- [esp32] Add a flash chip option that drops the unused flash vendor drivers esphome#19217 by @bdraco (new-feature)
- [mdns] Advertise ota_signed when signed OTA verification is compiled in esphome#19407 by @kbx81 (new-feature)
- [dfplayer] Add set_current_track_repeat action esphome#9186 by @myztillx (new-feature)
- [RX8025T] add RX8025T realtime clock esphome#13274 by @remcom (new-component) (new-feature) (new-platform)
- [pid] Pid climate add set deadband parameters action esphome#14730 by @ngolf (new-feature)
- [uart] clock_source option esphome#16486 by @ikruglov (new-feature)
- [TAS2780] Add TAS2780 audio amplifier esphome#15708 by @remcom (new-component) (new-feature) (new-platform)
- [light] Add transition_state_publish_interval option to publish intermediate states during transitions esphome#11968 by @nohat (new-feature)
- [ota] Add allow_plaintext_upload for devices that never migrated to encryption esphome#19396 by @bdraco (new-feature)
- [esp32] Keep the NVS cache in PSRAM when PSRAM is guaranteed esphome#19378 by @bdraco (new-feature)
- [light] Replace restore_mode with restore_state esphome#18997 by @clydebarrow (new-feature) (breaking-change)
- [tfluna] New component for the TF-Luna Low Cost LiDAR Distance Sensor esphome#9199 by @candrews (new-component) (new-feature) (new-platform)
- [pzem6l24] Add PZEM-6L24 three-phase energy monitor sensor esphome#17849 by @nuttytree (new-component) (new-feature) (new-platform)
- [remote_base] Add AEG Hob2Hood Infrared Protocol esphome#4687 by @Mat931 (new-feature)
- [mk2pvrouter] Add tag-based sensor defaults esphome#18870 by @FredM67 (new-feature)
- [systa_bus] Add systa_bus component esphome#15473 by @Mat931 (new-component) (new-feature) (new-platform)
- [snapshot] Add feature to record animated gifs from screen esphome#19421 by @clydebarrow (new-feature)
- [light][lvgl] Add color names for light states esphome#19712 by @clydebarrow (new-feature)
- [mk2pvrouter] Add binary_sensor platform esphome#19719 by @FredM67 (new-feature) (new-platform)
- [mk2pvrouter] Add text_sensor platform esphome#19720 by @FredM67 (new-feature) (new-platform)
- [xiaomi_body_scale] Add Xiaomi body scale S200 and S400 esphome#16476 by @dckiller51 (new-component) (new-feature) (new-platform)
- [nrf52] Reboot straight into the app on a 2001 baud touch esphome#19727 by @bdraco (new-feature)
- [esp8266] Add native toolchain that builds the Arduino core without PlatformIO esphome#18539 by @bdraco (new-feature)
- [hoermann_hcp] Add the motor’s serial number and firmware version as text sensors esphome#19543 by @RaHehl (new-feature) (new-platform)
- [hoermann_hcp] Add a door state text sensor esphome#19747 by @RaHehl (new-feature)
- [counter] Add persistent counter sensor esphome#19746 by @clydebarrow (new-component) (new-feature) (new-platform)
- [template][time] Add template time platform esphome#14838 by @ilikecake (new-feature) (new-platform)
- [light] Resume the previous effect on off/on esphome#17791 by @TheRealChriAnd (new-feature)
- [host] Build natively with ninja instead of PlatformIO esphome#19214 by @jesserockz (new-feature) (breaking-change)
- [zephyr_mcumgr] add LED which is controled by bootloader esphome#16322 by @tomaszduda23 (new-feature)
- [epaper_spi] reTerminal Sticky: Four-level grayscale for SSD1677 panels, and a full-refresh action esphome#19213 by @FuNK3Y (new-feature) (breaking-change)
- [esp8266] Use our own compiler builds for the native toolchain esphome#19849 by @bdraco (new-feature)
- [lvgl] Animation updates and debug outline option esphome#19420 by @clydebarrow (new-feature)
- [ethernet] Add KSZ8851SNL SPI ethernet support esphome#19883 by @jesserockz (new-feature)
- [zigbee] Add cluster: device_class to expose ESP32 sensors via measurement clusters instead of Analog/Binary Input esphome#17388 by @luar123 (new-feature)
- [tas58xx] Add TAS58xx audio amplifier (TAS5805M) esphome#19595 by @remcom (new-component) (new-feature) (new-platform)
- [zigbee] Implement switch support for esp32 esphome#17579 by @luar123 (new-feature)
- [bthome_mithermometer] Decode 0.1C temperature and 1% humidity objects esphome#19956 by @mtmatteo79 (new-feature)
- [resampler] Add resampler microphone platform esphome#19953 by @remcom (new-feature) (new-platform)
- [espidf] Add —skip-bootloader for OTA only builds esphome#19925 by @bdraco (new-feature)
- [light] Add
coloroption to strobe and other color state esphome#19874 by @clydebarrow (new-feature) - [stcc4] Add component for the Sensirion STCC4 CO2 sensor esphome#19434 by @j9brown (new-component) (new-feature) (new-platform)
- [substitutions] Support !include with a condition esphome#19455 by @j9brown (new-feature)
- [esphome][ota][core] Compress OTA uploads on ESP32, RP2040, LibreTiny and host esphome#19037 by @bdraco (new-feature)
- [tcp_uart] Add a TCP client that implements a UART esphome#19884 by @Bascht74 (new-component) (new-feature)
- [core] Add new options suspend_loop and loop_interval esphome#18136 by @luar123 (new-feature)
- [uart_tcp] Add a hardware UART copied to one TCP socket esphome#19887 by @Bascht74 (new-component) (new-feature)
- [socket] Share the server side as TcpListener esphome#20037 by @Bascht74 (new-feature)
- [tcp_uart] Add a server role with an IPv4 allow list esphome#20026 by @Bascht74 (new-feature)
- [exponential_moving_average] Add EMA preserved across reboots esphome#19882 by @clydebarrow (new-component) (new-feature) (new-platform)
- [epaper_spi] Add SSD1681 and the Waveshare 1.54in V2 panel esphome#18073 by @snoack (new-feature)
- [mipi_spi] Light platform for AMOLED display brightness esphome#20212 by @clydebarrow (new-feature) (new-platform)
- [tas58xx] Add support for tas5825 dac esphome#19971 by @mrtoy-me (new-feature)
- [motion] Add gesture detection esphome#16787 by @clydebarrow (new-feature) (new-platform)
- [homeassistant] Add text, select and button platforms esphome#19964 by @jesserockz (new-feature) (new-platform)
- [espectre] Add Wi-Fi CSI motion detection component esphome#19801 by @francescopace (new-component) (new-feature) (new-platform)
- [mipi_spi] Add Waveshare ESP32-S3-Touch-LCD-1.46 SPD2010 model esphome#19056 by @grischard (new-feature)
- [api] Add outgoing connections so the device can dial Home Assistant (or anything that implements native API) esphome#18919 by @bdraco (new-feature)
- [tcp_uart][uart_tcp] Add a disconnects sensor esphome#20096 by @Bascht74 (new-feature)
- [zigbee] Add zigbee support for number on esp32 esphome#20243 by @luar123 (new-feature)
- [xiaomi_mccgq02hl] Add Xiaomi Mijia Door/Window Sensor 2 (MCCGQ02HL) esphome#20104 by @ahpohl (new-component) (new-feature) (new-platform)
- [usb_host]
iManufacturerandiProductdescriptor filters esphome#19095 by @puddly (new-feature) (breaking-change) - [epaper_spi] Add is_updating condition esphome#20261 by @jesserockz (new-feature)
- [serial_proxy] Add USB_SERIAL port type and device identity esphome#19308 by @puddly (new-feature)
- [core] Select I/O expander pin providers by I2C address esphome#18939 by @clydebarrow (new-feature)
- [audio_http][core] Add ca_certificate_path to audio_http media source esphome#19392 by @TheSwert (new-feature)
- [api] Add a device wizard for Home Assistant onboarding esphome#19966 by @jesserockz (new-feature)
New Components
Section titled “New Components”- [bridge] New component and
cdc_acm_uartplatform esphome#11689 by @kbx81 (new-component) (new-feature) - [uart_mux] New component to share a UART between a CDC-ACM bridge and local consumers esphome#19066 by @kbx81 (new-component) (new-feature)
- [icnt86] Support ICNT86 touch driver esphome#18331 by @danepowell (new-component) (new-feature) (new-platform)
- [RX8025T] add RX8025T realtime clock esphome#13274 by @remcom (new-component) (new-feature) (new-platform)
- [TAS2780] Add TAS2780 audio amplifier esphome#15708 by @remcom (new-component) (new-feature) (new-platform)
- [tfluna] New component for the TF-Luna Low Cost LiDAR Distance Sensor esphome#9199 by @candrews (new-component) (new-feature) (new-platform)
- [pzem6l24] Add PZEM-6L24 three-phase energy monitor sensor esphome#17849 by @nuttytree (new-component) (new-feature) (new-platform)
- [systa_bus] Add systa_bus component esphome#15473 by @Mat931 (new-component) (new-feature) (new-platform)
- [xiaomi_body_scale] Add Xiaomi body scale S200 and S400 esphome#16476 by @dckiller51 (new-component) (new-feature) (new-platform)
- [pn71xx] Fix NCI transport and card emulation bugs; share code between PN7150 and PN7160 esphome#19589 by @kbx81 (new-component)
- [counter] Add persistent counter sensor esphome#19746 by @clydebarrow (new-component) (new-feature) (new-platform)
- [tas58xx] Add TAS58xx audio amplifier (TAS5805M) esphome#19595 by @remcom (new-component) (new-feature) (new-platform)
- [stcc4] Add component for the Sensirion STCC4 CO2 sensor esphome#19434 by @j9brown (new-component) (new-feature) (new-platform)
- [tcp_uart] Add a TCP client that implements a UART esphome#19884 by @Bascht74 (new-component) (new-feature)
- [uart_tcp] Add a hardware UART copied to one TCP socket esphome#19887 by @Bascht74 (new-component) (new-feature)
- [exponential_moving_average] Add EMA preserved across reboots esphome#19882 by @clydebarrow (new-component) (new-feature) (new-platform)
- [unicode][font] move extract_unicode_codepoint to new component esphome#19969 by @ssieb (new-component)
- [espectre] Add Wi-Fi CSI motion detection component esphome#19801 by @francescopace (new-component) (new-feature) (new-platform)
- [xiaomi_mccgq02hl] Add Xiaomi Mijia Door/Window Sensor 2 (MCCGQ02HL) esphome#20104 by @ahpohl (new-component) (new-feature) (new-platform)
- [api] Reply when an infrared/RF raw timings transmit has completed esphome#19086 by @bdraco (new-component)
New Platforms
Section titled “New Platforms”- [icnt86] Support ICNT86 touch driver esphome#18331 by @danepowell (new-component) (new-feature) (new-platform)
- [sendspin] Add a switch platform to enable and disable the client esphome#19361 by @kahrendt (new-feature) (new-platform)
- [RX8025T] add RX8025T realtime clock esphome#13274 by @remcom (new-component) (new-feature) (new-platform)
- [TAS2780] Add TAS2780 audio amplifier esphome#15708 by @remcom (new-component) (new-feature) (new-platform)
- [tfluna] New component for the TF-Luna Low Cost LiDAR Distance Sensor esphome#9199 by @candrews (new-component) (new-feature) (new-platform)
- [pzem6l24] Add PZEM-6L24 three-phase energy monitor sensor esphome#17849 by @nuttytree (new-component) (new-feature) (new-platform)
- [systa_bus] Add systa_bus component esphome#15473 by @Mat931 (new-component) (new-feature) (new-platform)
- [mk2pvrouter] Add binary_sensor platform esphome#19719 by @FredM67 (new-feature) (new-platform)
- [mk2pvrouter] Add text_sensor platform esphome#19720 by @FredM67 (new-feature) (new-platform)
- [xiaomi_body_scale] Add Xiaomi body scale S200 and S400 esphome#16476 by @dckiller51 (new-component) (new-feature) (new-platform)
- [hoermann_hcp] Add the motor’s serial number and firmware version as text sensors esphome#19543 by @RaHehl (new-feature) (new-platform)
- [counter] Add persistent counter sensor esphome#19746 by @clydebarrow (new-component) (new-feature) (new-platform)
- [template][time] Add template time platform esphome#14838 by @ilikecake (new-feature) (new-platform)
- [tas58xx] Add TAS58xx audio amplifier (TAS5805M) esphome#19595 by @remcom (new-component) (new-feature) (new-platform)
- [resampler] Add resampler microphone platform esphome#19953 by @remcom (new-feature) (new-platform)
- [stcc4] Add component for the Sensirion STCC4 CO2 sensor esphome#19434 by @j9brown (new-component) (new-feature) (new-platform)
- [exponential_moving_average] Add EMA preserved across reboots esphome#19882 by @clydebarrow (new-component) (new-feature) (new-platform)
- [mipi_spi] Light platform for AMOLED display brightness esphome#20212 by @clydebarrow (new-feature) (new-platform)
- [motion] Add gesture detection esphome#16787 by @clydebarrow (new-feature) (new-platform)
- [homeassistant] Add text, select and button platforms esphome#19964 by @jesserockz (new-feature) (new-platform)
- [espectre] Add Wi-Fi CSI motion detection component esphome#19801 by @francescopace (new-component) (new-feature) (new-platform)
- [xiaomi_mccgq02hl] Add Xiaomi Mijia Door/Window Sensor 2 (MCCGQ02HL) esphome#20104 by @ahpohl (new-component) (new-feature) (new-platform)
Breaking Changes
Section titled “Breaking Changes”- [serial_proxy] Add tap interface and port mode esphome#18955 by @kbx81 (new-feature) (breaking-change)
- [remote_receiver] Size the RMT ring buffer from receive symbols by default esphome#19100 by @bdraco (breaking-change)
- [speaker_source] keep mute when volume changes esphome#18412 by @carriewattsmake (breaking-change)
- [speaker] Make media player volume and mute independent esphome#19307 by @kahrendt (breaking-change)
- [speaker] Remove deprecated codec_support_enabled option esphome#19074 by @bdraco (breaking-change)
- [remote_receiver] Treat buffer size as bytes on the pulse ring targets esphome#19101 by @bdraco (breaking-change)
- [climate_ir] Only advertise HEAT_COOL when heat and cool are both supported esphome#19483 by @leodrivera (breaking-change)
- [light] Replace restore_mode with restore_state esphome#18997 by @clydebarrow (new-feature) (breaking-change)
- [host] Build natively with ninja instead of PlatformIO esphome#19214 by @jesserockz (new-feature) (breaking-change)
- [epaper_spi] reTerminal Sticky: Four-level grayscale for SSD1677 panels, and a full-refresh action esphome#19213 by @FuNK3Y (new-feature) (breaking-change)
- [esp8266] Make the native arduino toolchain the default esphome#19886 by @bdraco (breaking-change)
- [sendspin] Require a type on the switch platform esphome#20189 by @kahrendt (breaking-change)
- [hoermann_hcp] Send each command once, and the lamp as a state esphome#19765 by @RaHehl (breaking-change)
- [usb_host]
iManufacturerandiProductdescriptor filters esphome#19095 by @puddly (new-feature) (breaking-change)
Beta Changes
Section titled “Beta Changes”- Bump aioesphomeapi from 46.6.0 to 46.7.0 esphome#20317 by @esphome[bot]
- [tas58xx] Improve TAS5805M audio performance and use GPIO1 for TAS5825M faults esphome#20319 by @mrtoy-me
- Bump aioesphomeapi from 46.7.0 to 46.8.0 esphome#20321 by @esphome[bot]
- [core] Wake the main loop on its own task notification index on ESP32 esphome#20326 by @kbx81
- [cc1101] Keep the remote_receiver interrupt on a shared GDO0 pin in begin_tx esphome#20296 by @dbuezas
- Pin smp to 4.1.0 on Intel macOS so cbor2 installs from a wheel esphome#20302 by @bdraco
- [core] Warn on every run that Intel Mac support ends by 2027.6.0 esphome#20303 by @bdraco
- [api] Add a progmem option for bytes fields kept in flash esphome#20318 by @bdraco
- [esp8266] Normalize misspelled boards and fall back to PlatformIO for unknown ones esphome#20322 by @bdraco
- [core] Let cv.rename_key pass non-dict input through esphome#20331 by @jesserockz
- Bump bundled esphome-device-builder to 1.22.0 esphome#20334 by @esphome[bot]
- [combination] Use cv.rename_key for the deprecated coeffecient key esphome#20159 by @jesserockz
- [noise] Bump noise-c to 0.1.31 and libsodium to 1.10021.12 esphome#20345 by @bdraco
- [esp8266] Force-include the throw stubs into the core and libraries on the native toolchain esphome#20336 by @bdraco
- [esp8266] Fix Arduino core regressions that keep data in RAM and link the unused unwinder esphome#20337 by @bdraco
- [sendspin] Update to sendspin-cpp v0.9.3 esphome#20347 by @kahrendt (new-feature) (breaking-change)
- [sendspin] Add the static pairing code, pairing window and unpaired access option esphome#20348 by @kahrendt (new-feature)
- [sendspin] Add the dynamic pairing code esphome#20349 by @kahrendt (new-feature)
- [sendspin] Add an unpaired access switch esphome#20350 by @kahrendt (new-feature)
- Bump aioesphomeapi from 46.8.0 to 46.9.0 esphome#20358 by @esphome[bot]
- [api][sendspin] Add a request for the Sendspin pairing token esphome#20355 by @kahrendt (new-feature)
- [mdns] Bump espressif/mdns to 1.14.0 esphome#20383 by @bdraco
- [ci] Pin the shared I2C bus in test configs that left it implicit esphome#20412 by @bdraco
- [ci] Deal clang-tidy files across five shards esphome#20411 by @bdraco
- [api] Fix C++ unit test link failure when api is only a dependency esphome#20418 by @bdraco
- [esp32] Record the PC for cache error and interrupt watchdog crashes esphome#20415 by @bdraco
All changes
Section titled “All changes”- [ai] Advice to agents to limit verbiage esphome#18980 by @clydebarrow
- [wifi] Allow a forced roam check esphome#17349 by @clydebarrow (new-feature)
- [ci] Sync pre-commit revs and prek version from requirements files esphome#19026 by @jesserockz
- [core] Restore the shared git hooks after post-checkout runs script/setup esphome#19036 by @jesserockz
- [core] Share compiled binaries across modbus integration tests esphome#18945 by @bdraco
- [ci] Refresh integration test durations esphome#19049 by @esphome[bot]
- [core] Consolidate setup scripts into a cross-platform setup.py esphome#18856 by @jesserockz
- [ci] Ask stale PR authors to merge dev instead of rebasing esphome#19064 by @jesserockz
- [template] Surface value metadata on template entity forms esphome#17545 by @jesserockz
- [mlx90614] pec validation esphome#6689 by @asergunov
- [deep_sleep] disable loop esphome#18962 by @luar123
- [logger] Flush uart before sleep in idf 6 esphome#18975 by @luar123
- [zigbee] wake loop on defer/set_timeout esphome#19050 by @luar123
- Bump aioesphomeapi from 46.3.0 to 46.4.0 esphome#19071 by @esphome[bot]
- [serial_proxy] Add tap interface and port mode esphome#18955 by @kbx81 (new-feature) (breaking-change)
- [es7210] Fix 4 channel microphone support esphome#19034 by @matt123p
- [sendspin] Add manufacturer, model, and firmware version options esphome#18792 by @kahrendt (new-feature)
- [uart] Add apply_settings_live() for in-place ESP-IDF reconfiguration esphome#19087 by @kbx81
- [esp32] Trim mbedTLS to client-only defaults and stub vasprintf on the C6 esphome#19088 by @jesserockz
- [remote_base] Make protocol methods non-virtual and size receiver lists from codegen esphome#19084 by @bdraco
- [const] Centralize definition of
CONF_MANUFACTUREResphome#19098 by @puddly - Bump aioesphomeapi from 46.4.0 to 46.4.1 esphome#19104 by @esphome[bot]
- [remote_receiver] Size the RMT ring buffer from receive symbols by default esphome#19100 by @bdraco (breaking-change)
- [core][lvgl] Migrate codegen helpers from LVGL to core code esphome#19105 by @clydebarrow
- [bridge] New component and
cdc_acm_uartplatform esphome#11689 by @kbx81 (new-component) (new-feature) - [core] Isolate contextvars per task in the coroutine runner esphome#19238 by @clydebarrow
- [bluetooth_proxy] Add an advertisement filter hook esphome#19220 by @davidcoulson
- [spi] Send ESP8266 writes through transferBytes instead of a heap copy esphome#19265 by @bdraco
- [ci] Refresh integration test durations esphome#19275 by @esphome[bot]
- [issues] Add AI usage guidance to the bug report template esphome#19122 by @clydebarrow
- [audio] Update esp-audio-libs to 4.0.0 esphome#19300 by @kahrendt
- [i2s_audio] Ramp software volume changes esphome#19302 by @kahrendt
- [tinyusb] Add on_mount/on_unmount triggers and is_mounted condition esphome#19067 by @kbx81 (new-feature)
- [speaker][speaker_source] Make a volume of zero silent with an audio DAC esphome#19305 by @kahrendt
- [speaker_source] Don’t remap a requested volume of zero esphome#19063 by @rexmoriarty
- [speaker_source] keep mute when volume changes esphome#18412 by @carriewattsmake (breaking-change)
- [speaker] Make media player volume and mute independent esphome#19307 by @kahrendt (breaking-change)
- Synchronise Device Classes from Home Assistant esphome#19318 by @esphome[bot]
- [usb_uart] Add claim_comm_interface option esphome#18969 by @kbx81 (new-feature)
- [core] Add register_simple_action and register_parented_action helpers esphome#19321 by @bdraco
- [mdns] Add runtime service enable/disable API (ESP32 only) esphome#19325 by @kahrendt
- [uart_mux] New component to share a UART between a CDC-ACM bridge and local consumers esphome#19066 by @kbx81 (new-component) (new-feature)
- [uart] Add IDFUARTComponent::flush_input() and use it in uart_mux esphome#19336 by @kbx81
- [template] Skip the switch optimistic and assumed state setters when they match the default esphome#19232 by @bdraco
- [template] Move set_optimistic into the headers esphome#19278 by @bdraco
- [sds011] Move set_rx_mode_only into the header esphome#19298 by @bdraco
- [max44009] Move set_mode into the header esphome#19297 by @bdraco
- [st7789v] Move set_model_str into the header esphome#19296 by @bdraco
- [bang_bang] Move the single store setters into the header esphome#19287 by @bdraco
- [thermostat] Move set_default_preset into the header esphome#19294 by @bdraco
- [esp32_camera] Move the single store setters into the header esphome#19285 by @bdraco
- [mqtt_subscribe] Move set_qos into the headers esphome#19282 by @bdraco
- [web_server] Move the CSS and JS setters into the header esphome#19286 by @bdraco
- [graphical_display_menu] Move set_display and set_font into the header esphome#19291 by @bdraco
- [tsl2561] Move set_is_cs_package into the header esphome#19289 by @bdraco
- [template] Move the cover and valve set_has_* setters into the headers esphome#19283 by @bdraco
- [haier] Move set_send_wifi into the header esphome#19299 by @bdraco
- [openthread] Move set_mdns into the header esphome#19295 by @bdraco
- [lc709203f] Move the single store setters into the header esphome#19290 by @bdraco
- [tsl2591] Move the single store setters into the header esphome#19288 by @bdraco
- [waveshare_epaper] Move set_full_update_every into the header esphome#19280 by @bdraco
- [bme280_base][bme680][bmp280_base] Move set_iir_filter into the headers esphome#19281 by @bdraco
- [adc] Move set_sampling_mode into the header esphome#19293 by @bdraco
- [tsl2561][tsl2591] Move set_gain into the headers esphome#19284 by @bdraco
- [template][modbus_controller] Move set_assumed_state into the headers esphome#19279 by @bdraco
- [esp32_ble_tracker] Initialize ESPBTClient::app_id esphome#19199 by @bdraco
- [bluetooth_connection] Use a user provided default constructor for BluetoothConnection esphome#19200 by @bdraco
- [restart] Use a user provided default constructor for RestartSwitch esphome#19204 by @bdraco
- [gpio] Use a user provided default constructor for GPIOSwitch esphome#19203 by @bdraco
- [binary_sensor] Use a user provided default constructor for DelayedOnFilter esphome#19205 by @bdraco
- [binary_sensor] Use a user provided default constructor for DelayedOffFilter esphome#19206 by @bdraco
- [binary_sensor] Use a user provided default constructor esphome#19111 by @bdraco
- [ld2450] Use a user provided default constructor for RestartButton esphome#19183 by @bdraco
- [ld2450] Use a user provided default constructor for FactoryResetButton esphome#19182 by @bdraco
- [ld2412] Use a user provided default constructor for DistanceResolutionSelect esphome#19185 by @bdraco
- [ld2412] Use a user provided default constructor for BaudRateSelect esphome#19184 by @bdraco
- [ld2412] Use a user provided default constructor for LightOutControlSelect esphome#19186 by @bdraco
- [ld2450] Use a user provided default constructor for BaudRateSelect esphome#19187 by @bdraco
- [ld2450] Use a user provided default constructor for BluetoothSwitch esphome#19191 by @bdraco
- [ld2412] Use a user provided default constructor for BluetoothSwitch esphome#19189 by @bdraco
- [number] Initialize Number::state esphome#19114 by @bdraco
- [ld2450] Use a user provided default constructor for PresenceTimeoutNumber esphome#19195 by @bdraco
- [ld2450] Use a user provided default constructor for ZoneTypeSelect esphome#19188 by @bdraco
- [ld2412] Use a user provided default constructor for EngineeringModeSwitch esphome#19190 by @bdraco
- [ld2412] Use a user provided default constructor for LightThresholdNumber esphome#19193 by @bdraco
- [scd4x] Use a user provided default constructor for PerformForcedCalibrationAction esphome#19176 by @bdraco
- [safe_mode] Use a user provided default constructor for SafeModeComponent esphome#19163 by @bdraco
- [bluetooth_connection] Use a user provided default constructor for BluedroidGattClient esphome#19201 by @bdraco
- [core] Give StaticVector a user provided default constructor esphome#19110 by @bdraco
- [template] Use a user provided default constructor for TemplateBinarySensor esphome#19128 by @bdraco
- [version] Use a user provided default constructor for VersionTextSensor esphome#19139 by @bdraco
- [binary_sensor] Use a user provided default constructor for SettleFilter esphome#19135 by @bdraco
- [internal_temperature] Use a user provided default constructor for InternalTemperatureSensor esphome#19141 by @bdraco
- [uptime] Use a user provided default constructor for UptimeSecondsSensor esphome#19140 by @bdraco
- [status] Use a user provided default constructor for StatusBinarySensor esphome#19138 by @bdraco
- [uart] Use a user provided default constructor for IDFUARTComponent esphome#19142 by @bdraco
- [gpio] Use a user provided default constructor for GPIOBinarySensor esphome#19143 by @bdraco
- [http_request] Use a user provided default constructor for HttpRequestIDF esphome#19175 by @bdraco
- [restart] Use a user provided default constructor for RestartButton esphome#19168 by @bdraco
- [ethernet_info] Use a user provided default constructor for IPAddressEthernetInfo esphome#19166 by @bdraco
- [preferences] Use a user provided default constructor for IntervalSyncer esphome#19164 by @bdraco
- [template] Use a user provided default constructor for TemplateSensor esphome#19125 by @bdraco
- [core] Construct App without value initialization esphome#19109 by @bdraco
- [update] Initialize UpdateInfo::progress esphome#19121 by @bdraco
- [template] Use a user provided default constructor for TemplateTextSensor esphome#19126 by @bdraco
- [template] Use a user provided default constructor for TemplateButton esphome#19124 by @bdraco
- [template] Use a user provided default constructor for TemplateSelect esphome#19130 by @bdraco
- [template] Use a user provided default constructor for TemplateEvent esphome#19127 by @bdraco
- [alarm_control_panel] Initialize the state members esphome#19120 by @bdraco
- [text_sensor] Use a user provided default constructor esphome#19112 by @bdraco
- [fan] Initialize Fan::restore_mode_ esphome#19118 by @bdraco
- [ld2412] Drop the unused gate index from GateThresholdNumber esphome#19107 by @bdraco
- [esp8266_pwm] Use a user provided default constructor for ESP8266PWM esphome#19198 by @bdraco
- [api] Skip setters that pass the default port, reboot timeout and batch delay esphome#19227 by @bdraco
- [core] Use a user provided default constructor for DelayAction esphome#19137 by @bdraco
- [core] Use a user provided default constructor for Automation esphome#19197 by @bdraco
- [pca9554] Use a user provided default constructor for PCA9554GPIOPin esphome#19208 by @bdraco
- [pcf8574] Use a user provided default constructor for PCF8574GPIOPin esphome#19207 by @bdraco
- [improv_ble] Rename from esp32_improv and decouple from ESP32 esphome#19264 by @jesserockz
- [http_request] Keep the update manifest URL as a pointer to the literal esphome#19211 by @bdraco
- [http_request] Take the URL and method as C strings esphome#19215 by @bdraco
- [speaker] Remove deprecated codec_support_enabled option esphome#19074 by @bdraco (breaking-change)
- [i2s_audio] Resync DMA lockstep in place instead of restarting the speaker task esphome#19319 by @kahrendt
- [sendspin] Start mDNS service disabled, enable once server is running esphome#19326 by @kahrendt
- [sendspin] Bump sendspin-cpp to v0.8.0 esphome#19357 by @kahrendt
- [display] Trim the per pixel cost of draw_pixel_at esphome#19360 by @bdraco
- [nextion] Remove deprecated get_wave_chan_id() esphome#19080 by @bdraco
- [template] Remove deprecated bypass_before_arming() esphome#19075 by @bdraco
- [modbus] Remove disable_crc validation stub esphome#19078 by @bdraco
- [modbus] Remove deprecated send() esphome#19079 by @bdraco
- [icnt86] Support ICNT86 touch driver esphome#18331 by @danepowell (new-component) (new-feature) (new-platform)
- [esp32_hosted] Keep the update manifest URL as a pointer to the literal esphome#19212 by @bdraco
- [esp8266] Drop the dead NEW_OOM_ABORT flag and its nothrow advice esphome#19247 by @bdraco
- [ld2450] Use a user provided default constructor for MultiTargetSwitch esphome#19192 by @bdraco
- [image] Drop the unused stride_ member esphome#19353 by @bdraco
- [esp32] Redefine FILE to the basename so assert paths stay out of RAM esphome#19106 by @bdraco
- [core] Fold the modbus write and bits tests into the shared mesh fixture esphome#18946 by @bdraco
- [esp32] Enable octal flash when the flash mode is opi esphome#19218 by @bdraco
- [remote_receiver] Wake the main loop when the RMT callback stores a frame esphome#19102 by @bdraco
- [remote_base] Accept protocols registered by external components esphome#19332 by @bdraco
- [sendspin] Add a switch platform to enable and disable the client esphome#19361 by @kahrendt (new-feature) (new-platform)
- [switch] Use Switch::control() instead of hand written turn_on/turn_off branches esphome#19364 by @bdraco
- [mixer] Raise ducking decibel_reduction maximum to 255 esphome#19347 by @kahrendt (new-feature)
- [ci] Move skills to .agents/skills with .claude and .github symlinks esphome#19369 by @jesserockz
- [audio] Bump esp-audio-libs to v4.0.1 esphome#19372 by @kahrendt
- [modbus_controller] Remove deprecated helper shims esphome#19076 by @bdraco
- [remote_receiver] [remote_transmitter] Keep the RMT setup error message as a pointer to the literal esphome#19210 by @bdraco
- [remote_receiver] Treat buffer size as bytes on the pulse ring targets esphome#19101 by @bdraco (breaking-change)
- [rp2] Bump arduino-pico framework to 6.1.0 esphome#19261 by @bdraco
- [image] Blend grayscale alpha with Color::gradient esphome#19356 by @bdraco
- [output] Use BinaryOutput::set_state() instead of hand written turn_on/turn_off branches esphome#19366 by @bdraco
- [web_server] Reduce flash used by the JSON and request helpers esphome#19303 by @bdraco
- [sensor] Remove deprecated raw_state member esphome#19077 by @bdraco
- [espidf] Emit json2 size data so the link edge is not blocked esphome#18848 by @bdraco
- [esp32] Add a flash chip option that drops the unused flash vendor drivers esphome#19217 by @bdraco (new-feature)
- [core] Lint bare string literal ternaries in ESP_LOG arguments esphome#18908 by @bdraco
- [web_server_idf] Close stalled EventSource sessions via HTTPD esphome#17800 by @jeroen85
- [mdns] Advertise ota_signed when signed OTA verification is compiled in esphome#19407 by @kbx81 (new-feature)
- [core] fix capitalisation of “pin” esphome#19405 by @Xiretza
- [socket] Fix set_sockaddr() accepting malformed IPv4 addresses esphome#19394 by @rwrozelle
- [ci] Add code-review agent skill for GitHub Copilot esphome#19370 by @jesserockz
- [ci] Refresh integration test durations esphome#19435 by @esphome[bot]
- [syslog] Add configurable RFC 3164 and RFC 5424 formats esphome#18993 by @iago-veiga
- Bump aioesphomeapi from 46.4.1 to 46.5.0 esphome#19463 by @esphome[bot]
- [zigbee] Require mbedTLS extras for Zigbee crypto esphome#19457 by @luar123
- [yaml_util][substitutions] Repair bad tests esphome#19468 by @j9brown
- [fujitsu_general] Use constexpr for the protocol constants esphome#19486 by @leodrivera
- [core][cover] Add register_apply_action for actions that only forward values esphome#19469 by @bdraco
- [climate_ir] Only advertise HEAT_COOL when heat and cool are both supported esphome#19483 by @leodrivera (breaking-change)
- [gree] Store the model in one byte esphome#19488 by @leodrivera
- [mitsubishi] Store the fan mode and default directions in one byte each esphome#19489 by @leodrivera
- [fujitsu_general] Read the mode, fan speed and swing fields with their real width esphome#18297 by @leodrivera
- [docker] Drop the unused PlatformIO library preinstall esphome#19504 by @bdraco
- [core] Call a lambda whose only statement returns a braced value esphome#19503 by @bdraco
- [switch] Use register_apply_action for the switch actions esphome#19498 by @bdraco
- [valve] Use register_apply_action for valve.control esphome#19474 by @bdraco
- [template] Use register_apply_action for climate.template.publish esphome#19495 by @bdraco
- [cover] Use register_apply_action for the open, close, stop and toggle actions esphome#19500 by @bdraco
- [at581x] Use register_apply_action for the settings and reset actions esphome#19496 by @bdraco
- [rf_bridge] Use register_apply_action for the actions esphome#19497 by @bdraco
- [rtttl] Use register_apply_action for rtttl.play and rtttl.stop esphome#19482 by @bdraco
- [remote_base] Generate the gobox code as uint64_t esphome#19478 by @bdraco
- [nrf52] disable USB if not configured by esphome to save power esphome#19493 by @tomaszduda23
- [gree] Remove the traits() override now handled by climate_ir esphome#19484 by @leodrivera
- Bump bundled esphome-device-builder to 1.15.0 esphome#19526 by @esphome[bot]
- [dfplayer] Add set_current_track_repeat action esphome#9186 by @myztillx (new-feature)
- [mitsubishi] Use the climate_ir traits() for supported modes esphome#19485 by @leodrivera
- [RX8025T] add RX8025T realtime clock esphome#13274 by @remcom (new-component) (new-feature) (new-platform)
- [pid] Pid climate add set deadband parameters action esphome#14730 by @ngolf (new-feature)
- [modbus] Drop a deferred server reply when another frame arrives first esphome#19534 by @exciton
- [modbus] Log the discarded bytes, not just how many esphome#19428 by @dalklein
- [sprinkler] Use register_apply_action for the setter actions esphome#19471 by @bdraco
- [nextion] Use register_apply_action for set_brightness and the publish actions esphome#19529 by @bdraco
- [network] Remove deprecated IPAddress::str() from the host build esphome#19528 by @bdraco
- [esp32][esp32_hosted] Bump recommended Arduino to 3.3.12 and platform to 55.03.312 and PlatformIO to 6.2.0 esphome#19417 by @swoboda1337
- [speaker] Use register_apply_action for the speaker actions esphome#19535 by @bdraco
- [pulse_meter] Use register_apply_action for pulse_meter.set_total_pulses esphome#19533 by @bdraco
- [esp8266] Add the native build spec esphome#18559 by @bdraco
- [voice_assistant] Use register_apply_action for start, start_continuous and stop esphome#19536 by @bdraco
- [hlk_fm22x] Use register_apply_action for scan, enroll, delete, delete_all and reset esphome#19537 by @bdraco
- [text_sensor] Use register_apply_action for text_sensor.template.publish esphome#19539 by @bdraco
- [espnow] Use register_apply_action for peer.add, peer.delete and set_channel esphome#19538 by @bdraco
- [pulse_counter] Use register_apply_action for pulse_counter.set_total_pulses esphome#19532 by @bdraco
- [rp2_ble_tracker] Use register_apply_action for stop_scan esphome#19524 by @bdraco
- [bk72xx_ble_tracker] Use register_apply_action for stop_scan esphome#19522 by @bdraco
- [alarm_control_panel] Use register_apply_action for arm_away, arm_home, arm_night and disarm esphome#19521 by @bdraco
- [ln882h_ble_tracker] Use register_apply_action for stop_scan esphome#19523 by @bdraco
- [template] Use register_apply_action for lock.template.publish and valve.template.publish esphome#19525 by @bdraco
- [servo] Use register_apply_action for servo.write and servo.detach esphome#19531 by @bdraco
- [output] Use register_apply_action for the output actions esphome#19512 by @bdraco
- [datetime] Use register_apply_action for date.set, time.set and datetime.set esphome#19513 by @bdraco
- [media_player] Use register_apply_action for the media player actions esphome#19514 by @bdraco
- [ledc] Use register_apply_action for the set_frequency action esphome#19515 by @bdraco
- [libretiny_pwm] Use register_apply_action for the set_frequency action esphome#19518 by @bdraco
- [cc1101] Use register_apply_action for the setter actions esphome#19472 by @bdraco
- [select] Use register_apply_action for the set, set_index and operation actions esphome#19511 by @bdraco
- [number] Use register_apply_action for the set and operation actions esphome#19510 by @bdraco
- [display] Use register_apply_action for display.page.show_next and show_previous esphome#19519 by @bdraco
- [text] Use register_apply_action for text.set esphome#19509 by @bdraco
- [rp2040_pwm] Use register_apply_action for the set_frequency action esphome#19517 by @bdraco
- [stepper] Use register_apply_action for the setter actions esphome#19470 by @bdraco
- [esp32_ble_tracker] Use register_apply_action for start_scan and stop_scan esphome#19520 by @bdraco
- [fan] Use register_apply_action for fan.turn_on esphome#19473 by @bdraco
- [globals] Use register_apply_action for globals.set esphome#19481 by @bdraco
- [event] Use register_apply_action for event.trigger esphome#19508 by @bdraco
- [sensor] Use register_apply_action for sensor.template.publish esphome#19507 by @bdraco
- [mitsubishi_cn105] Use register_apply_action for vane.control esphome#19477 by @bdraco
- [binary_sensor] Use register_apply_action for binary_sensor.template.publish esphome#19506 by @bdraco
- [climate] Use register_apply_action for climate.control esphome#19475 by @bdraco
- [update] Use register_apply_action for update.perform esphome#19505 by @bdraco
- [light] Use register_apply_action for the light control actions esphome#19476 by @bdraco
- [esp8266_pwm] Use register_apply_action for the set_frequency action esphome#19516 by @bdraco
- [esp8266] Add the native ninja emission esphome#18560 by @bdraco
- [core][cover] Add register_apply_condition for conditions that only test the parent esphome#19540 by @bdraco
- [text_sensor] Use register_apply_condition for text_sensor.state esphome#19541 by @bdraco
- [core] Add ESPHOME_strlen_P to the progmem helpers esphome#19574 by @bdraco
- [lvgl] Allow negative text_letter_space, text_line_space esphome#19576 by @elpollodiablo
- [core][logger] Keep ESP8266 log strings in flash and deprecate the RAM option esphome#19577 by @bdraco
- [ha-addon] Announce the MCP server to Home Assistant esphome#19413 by @bdraco
- [rotary_encoder] Use register_apply_action for the set_value action esphome#19545 by @bdraco
- [audio_dac] Use register_apply_action for the mute_off, mute_on and set_volume actions esphome#19546 by @bdraco
- [online_image] Use register_apply_action for the set_url and release actions esphome#19547 by @bdraco
- [dfplayer] Use register_apply_action for the play, volume, eq, device and transport actions esphome#19549 by @bdraco
- [mqtt] Use register_apply_condition for mqtt.connected esphome#19561 by @bdraco
- [time] Use register_apply_condition for time.has_time esphome#19560 by @bdraco
- [lock] Use register_apply_condition for lock.is_locked and lock.is_unlocked esphome#19559 by @bdraco
- [script] Use register_apply_condition for script.is_running esphome#19558 by @bdraco
- [media_player] Use register_apply_condition for the state and muted conditions esphome#19557 by @bdraco
- [climate_ir] Store the supported modes in one mask esphome#19580 by @leodrivera
- [light] Use register_apply_condition for light.is_on and light.is_off esphome#19556 by @bdraco
- [fan] Use register_apply_condition for fan.is_on and fan.is_off esphome#19555 by @bdraco
- [binary_sensor] Use register_apply_condition for binary_sensor.is_on and binary_sensor.is_off esphome#19554 by @bdraco
- [switch] Use register_apply_condition for switch.is_on and switch.is_off esphome#19553 by @bdraco
- [core] Collapse ESP8266 flash string ifdefs onto the progmem helpers esphome#19578 by @bdraco
- [core][select] Pass the select.set option as a plain literal esphome#19568 by @bdraco
- [event] Trigger events without building a temporary std::string esphome#19567 by @bdraco
- [automation] Remove dead trigger classes from sensor, number and text_sensor esphome#19565 by @bdraco
- [tests] Give the binary_sensor and sensor publish targets distinct ids esphome#19564 by @bdraco
- [event] Remove the unused std::vector set_event_types overload esphome#19566 by @bdraco
- [speaker] Use register_apply_condition for speaker.is_playing and speaker.is_stopped esphome#19562 by @bdraco
- [light] Accept the top-level white key from Home Assistant’s MQTT JSO… esphome#19570 by @ryan-ronnander
- [core] Let register_apply_action read the parent id from another schema key esphome#19548 by @bdraco
- [tests] Point the binary_sensor conditions at the renamed publish target esphome#19583 by @bdraco
- [core] Lint duplicate UNIT_/CONF_ constants against both const homes esphome#19422 by @jesserockz
- [api] Pass the encode cursor by value through the protobuf helpers esphome#19014 by @bdraco
- [remote_transmitter] Use register_apply_action for the digital_write action esphome#19550 by @bdraco
- [automation] Remove dead trigger classes from switch, button, binary_sensor and event esphome#19563 by @bdraco
- [tests] Define USE_WEBSERVER_PORT in the light unit test override esphome#19584 by @bdraco
- [api] Make generated encode and size entry points type erased esphome#19015 by @bdraco
- [core] Silence -Wunused-function for user builds esphome#19571 by @exciton
- [uart] clock_source option esphome#16486 by @ikruglov (new-feature)
- [api] Collapse the three protobuf decode virtuals into one esphome#19016 by @bdraco
- [TAS2780] Add TAS2780 audio amplifier esphome#15708 by @remcom (new-component) (new-feature) (new-platform)
- [light] Add transition_state_publish_interval option to publish intermediate states during transitions esphome#11968 by @nohat (new-feature)
- [api] Default response only string fields to a null StringRef esphome#19025 by @bdraco
- [api] Decode without a vtable esphome#19029 by @bdraco
- [nextion] Keep add_waveform_data() available without a waveform sensor esphome#19590 by @swoboda1337
- [core] Keep static task TCB in internal RAM esphome#19426 by @snabb
- [core] Dispatch controller updates through generated direct calls esphome#19588 by @bdraco
- [ota] Treat a client that leaves after the handshake as a clean close esphome#19401 by @bdraco
- [nrf52] add device power manager support to deep sleep component esphome#19494 by @tomaszduda23
- [mcp3204] Read a conversion in one SPI transaction esphome#19423 by @oxynatOr
- [sgp30][sgp4x] Migrate CONF_HUMIDITY_SOURCE to const.py esphome#19436 by @j9brown
- [noise] Run the ESP8266 at 160 MHz during the handshake esphome#19233 by @bdraco
- [button] Use register_apply_action for button.press esphome#19598 by @bdraco
- [zigbee] move init back into setup esphome#19427 by @luar123
- [sendspin] Use register_apply_action for the switch, static delay and transition_finished actions esphome#19608 by @bdraco
- [mqtt] Use register_apply_action for mqtt.publish, mqtt.enable and mqtt.disable esphome#19602 by @bdraco
- [safe_mode] Use register_apply_action for safe_mode.mark_successful esphome#19605 by @bdraco
- [lock] Use register_apply_action for lock.lock, lock.unlock and lock.open esphome#19601 by @bdraco
- [fan] Use register_apply_action for fan.toggle and fan.turn_off esphome#19600 by @bdraco
- [script] Use register_apply_action for script.stop esphome#19599 by @bdraco
- [deep_sleep] Use register_apply_action for deep_sleep.prevent and deep_sleep.allow esphome#19607 by @bdraco
- [ota] Add allow_plaintext_upload for devices that never migrated to encryption esphome#19396 by @bdraco (new-feature)
- [core] Lint against std::nothrow, use RAMAllocator instead esphome#19244 by @bdraco
- [esp32] Keep the NVS cache in PSRAM when PSRAM is guaranteed esphome#19378 by @bdraco (new-feature)
- [micro_wake_word] Use the apply helpers for the start, stop and model automations esphome#19620 by @bdraco
- [microphone] Use the apply helpers for the capture, mute and condition automations esphome#19619 by @bdraco
- [wireguard] Use the apply helpers for the enable, disable, enabled and peer_online automations esphome#19616 by @bdraco
- [core] Migrate trivial action and condition builders to the shared helpers esphome#19322 by @bdraco
- [sprinkler] Use register_apply_action for the seven keyless controller actions esphome#19617 by @bdraco
- [valve] Use register_apply_action for valve.open, valve.close, valve.stop and valve.toggle esphome#19618 by @bdraco
- [duty_time] Use one import style for the automation module esphome#19622 by @bdraco
- [haier] Use register_apply_action for the thirteen climate.haier actions esphome#19624 by @bdraco
- [midea] Use register_apply_action for the eight midea_ac actions esphome#19625 by @bdraco
- [display_menu_base] Use the apply helpers for the eight display_menu actions and is_active esphome#19626 by @bdraco
- [alarm_control_panel] Use register_apply_action for pending and triggered, drop the chime and ready actions that had no class esphome#19627 by @bdraco
- [integration] Use register_apply_action for sensor.integration.reset and set_value esphome#19628 by @bdraco
- [scd4x] Use register_apply_action for perform_forced_calibration and factory_reset esphome#19630 by @bdraco
- [mhz19] Use register_apply_action for the four mhz19 actions esphome#19631 by @bdraco
- [update] Use the apply helpers for update.check and update.is_available esphome#19632 by @bdraco
- [animation] Use register_apply_action for next_frame, prev_frame and set_frame esphome#19633 by @bdraco
- [duty_time] Use the apply helpers for the start, stop, reset and is_running automations esphome#19634 by @bdraco
- [sx127x] Use register_apply_action for the five mode and calibration actions esphome#19636 by @bdraco
- [sx126x] Use register_apply_action for the five mode and calibration actions esphome#19635 by @bdraco
- [pcf8563] Use register_apply_action for pcf8563.write_time and pcf8563.read_time esphome#19639 by @bdraco
- [max7219digit] Use register_apply_action for the seven max7219digit actions esphome#19641 by @bdraco
- [binary_sensor] Use register_apply_action for binary_sensor.invalidate_state esphome#19637 by @bdraco
- Bump aioesphomeapi from 46.5.0 to 46.6.0 esphome#19648 by @esphome[bot]
- [ds1307] Use register_apply_action for ds1307.write_time and ds1307.read_time esphome#19638 by @bdraco
- [senseair] Use register_apply_action for the five senseair actions esphome#19643 by @bdraco
- [key_collector] Use register_apply_action for key_collector.enable and key_collector.disable esphome#19646 by @bdraco
- [fingerprint_grow] Use register_apply_action for the six fingerprint_grow actions esphome#19640 by @bdraco
- [tm1651] Use register_apply_action for the five tm1651 actions esphome#19647 by @bdraco
- [sps30] Use register_apply_action for the three sps30 actions esphome#19644 by @bdraco
- [sim800l] Use register_apply_action for the five sim800l actions esphome#19645 by @bdraco
- [pzemac] Use register_apply_action for pzemac.reset_energy esphome#19650 by @bdraco
- [hbridge] Use register_apply_action for fan.hbridge.brake esphome#19649 by @bdraco
- [pzemdc] Use register_apply_action for pzemdc.reset_energy esphome#19651 by @bdraco
- [sen5x] Use register_apply_action for sen5x.start_fan_autoclean esphome#19653 by @bdraco
- [scd30] Use register_apply_action for scd30.force_recalibration_with_reference esphome#19652 by @bdraco
- [nau7802] Use register_apply_action for the three calibration actions esphome#19657 by @bdraco
- [pcf85063] Use register_apply_action for pcf85063.write_time and pcf85063.read_time esphome#19659 by @bdraco
- [htu21d] Use register_apply_action for htu21d.set_heater and htu21d.set_heater_level esphome#19658 by @bdraco
- [cc1101] Use register_apply_action for begin_tx, begin_rx, reset and set_idle esphome#19661 by @bdraco
- [sound_level] Use register_apply_action for sound_level.start and sound_level.stop esphome#19656 by @bdraco
- [core] Report unknown for switch, climate and water heater with no state esphome#19458 by @tronikos
- [ld2410] Use register_apply_action for bluetooth_password.set esphome#19667 by @bdraco
- [pmwcs3] Use register_apply_action for the calibration and address actions esphome#19666 by @bdraco
- [core] Make Action::stop_complex and Action::is_running non-virtual esphome#19662 by @bdraco
- [ezo_pmp] Use register_apply_action for the twelve ezo_pmp actions esphome#19663 by @bdraco
- [bm8563] Use register_apply_action for read_time, write_time and start_timer esphome#19665 by @bdraco
- [grove_tb6612fng] Use register_apply_action for the six motor actions esphome#19664 by @bdraco
- [hdc302x] Use register_apply_action for heater_on and heater_off esphome#19673 by @bdraco
- [max6956] Use register_apply_action for set_brightness_global and set_brightness_mode esphome#19672 by @bdraco
- [uart_mux] Use the apply helpers for select_local, select_bridge and is_local esphome#19671 by @bdraco
- [ufire_ise] Use register_apply_action for calibrate_probe_low, calibrate_probe_high and reset esphome#19670 by @bdraco
- [mcp4461] Use register_apply_action for the four wiper actions esphome#19669 by @bdraco
- [rx8130] Use register_apply_action for read_time and write_time esphome#19674 by @bdraco
- [hub75] Use register_apply_action for hub75.set_brightness esphome#19677 by @bdraco
- [cm1106] Use register_apply_action for cm1106.calibrate_zero esphome#19678 by @bdraco
- [ags10] Use register_apply_action for new_i2c_address and set_zero_point esphome#19676 by @bdraco
- [ufire_ec] Use register_apply_action for calibrate_probe and reset esphome#19675 by @bdraco
- [esp_ldo] Use register_apply_action for esp_ldo.voltage.adjust esphome#19680 by @bdraco
- [light] Replace restore_mode with restore_state esphome#18997 by @clydebarrow (new-feature) (breaking-change)
- [tfluna] New component for the TF-Luna Low Cost LiDAR Distance Sensor esphome#9199 by @candrews (new-component) (new-feature) (new-platform)
- [pzem6l24] Add PZEM-6L24 three-phase energy monitor sensor esphome#17849 by @nuttytree (new-component) (new-feature) (new-platform)
- [remote_base] Add AEG Hob2Hood Infrared Protocol esphome#4687 by @Mat931 (new-feature)
- [mk2pvrouter] Add tag-based sensor defaults esphome#18870 by @FredM67 (new-feature)
- [web_server] Expose temperature units for climate and water heater entities esphome#19572 by @crnjan
- [audio_adc] Use register_apply_action for audio_adc.set_mic_gain esphome#19679 by @bdraco
- [max17043] Use register_apply_action for max17043.sleep_mode esphome#19682 by @bdraco
- [hc8] Use register_apply_action for hc8.calibrate esphome#19681 by @bdraco
- [cs5460a] Use register_apply_action for cs5460a.restart esphome#19683 by @bdraco
- [pipsolar] Use register_apply_action for output.pipsolar.set_level esphome#19685 by @bdraco
- [speaker_source] Use register_apply_action for speaker_source.set_playlist_delay esphome#19686 by @bdraco
- [mixer] Use register_apply_action for mixer_speaker.apply_ducking esphome#19689 by @bdraco
- [zigbee] Use register_apply_action for zigbee.factory_reset esphome#19690 by @bdraco
- [zephyr_ble_server] Use register_apply_action for ble_server.numeric_comparison_reply esphome#19692 by @bdraco
- [dfrobot_sen0395] Use register_apply_action for dfrobot_sen0395.reset esphome#19693 by @bdraco
- [lightwaverf] Use register_apply_action for lightwaverf.send_raw esphome#19698 by @bdraco
- [motion] Use register_apply_action for motion.clear_calibration esphome#19700 by @bdraco
- [dfplayer] Use register_apply_condition for dfplayer.is_playing esphome#19701 by @bdraco
- [snapshot] Use register_apply_action for snapshot.take esphome#19696 by @bdraco
- [tinyusb] Use register_apply_condition for tinyusb.is_mounted esphome#19702 by @bdraco
- [voice_assistant] Use register_apply_condition for is_running and connected esphome#19703 by @bdraco
- [mitsubishi_cn105] Use register_apply_action for set_remote_temperature and clear_remote_temperature esphome#19706 by @bdraco
- [sun] Use register_apply_condition for is_above_horizon and is_below_horizon esphome#19704 by @bdraco
- [alarm_control_panel] Use register_apply_condition for is_armed and ready esphome#19707 by @bdraco
- [aic3204] Use register_apply_action for aic3204.set_auto_mute_mode esphome#19684 by @bdraco
- [pid] Use register_apply_action for climate.pid.autotune esphome#19708 by @bdraco
- [bl0906] Use register_apply_action for bl0906.reset_energy esphome#19688 by @bdraco
- [openthread] Use register_apply_action for openthread.set_poll_period esphome#19697 by @bdraco
- [emontx] Use register_apply_action for emontx.send_command esphome#19687 by @bdraco
- [core] Pass the copy flag to JsonString explicitly in the StringRef conversion esphome#19709 by @bdraco
- [it8951] Use register_apply_action for it8951.update esphome#19691 by @bdraco
- [core] Render an id constant in an apply field as the object it names esphome#19694 by @bdraco
- [router] Use register_apply_action for router.speaker.switch_output esphome#19695 by @bdraco
- [systa_bus] Add systa_bus component esphome#15473 by @Mat931 (new-component) (new-feature) (new-platform)
- [display] Use register_apply_condition for display.is_displaying_page esphome#19705 by @bdraco
- Bump bundled esphome-device-builder to 1.16.0 esphome#19710 by @esphome[bot]
- [socket] Add outgoing connections to the raw lwIP TCP implementation esphome#18982 by @bdraco
- [snapshot] Add feature to record animated gifs from screen esphome#19421 by @clydebarrow (new-feature)
- [const] Share CONF_HOST esphome#19716 by @bdraco
- [light][lvgl] Add color names for light states esphome#19712 by @clydebarrow (new-feature)
- [gree] Encode temperature as offset from 16°C esphome#19718 by @swoboda1337
- [mk2pvrouter] Add binary_sensor platform esphome#19719 by @FredM67 (new-feature) (new-platform)
- [mk2pvrouter] Add text_sensor platform esphome#19720 by @FredM67 (new-feature) (new-platform)
- [xiaomi_body_scale] Add Xiaomi body scale S200 and S400 esphome#16476 by @dckiller51 (new-component) (new-feature) (new-platform)
- [ld2410][mqtt][packages][security] Mark string-valued secrets cv.sensitive esphome#19387 by @pleasantone
- [nrf52] Reboot straight into the app on a 2001 baud touch esphome#19727 by @bdraco (new-feature)
- [pn71xx] Fix NCI transport and card emulation bugs; share code between PN7150 and PN7160 esphome#19589 by @kbx81 (new-component)
- [esp8266] Add native toolchain that builds the Arduino core without PlatformIO esphome#18539 by @bdraco (new-feature)
- [pn532] Check InDataExchange status and fix tag handling esphome#19591 by @kbx81
- [ci] Add the native ESP8266 compile smoke test esphome#19714 by @bdraco
- [media_player] Name the player in the test automations so grouping works esphome#19741 by @bdraco
- [tfluna] Name the shared bus in the test fixture so grouping works esphome#19742 by @bdraco
- [lvgl] Ensure final animation frame completes before restart esphome#19642 by @catthetech
- [pn532] Use register_apply_condition for pn532.is_writing esphome#19737 by @bdraco
- [nrf52] Stream the SDK clone and resume it after an interruption esphome#19731 by @bdraco
- [nrf52] Run analyze-memory on the sdk-nrf toolchain esphome#19730 by @bdraco
- [hoermann_hcp] Add the motor’s serial number and firmware version as text sensors esphome#19543 by @RaHehl (new-feature) (new-platform)
- [pn532] Remove runtime heap allocation from the frame and tag paths esphome#19744 by @kbx81
- [hoermann_hcp] Add a door state text sensor esphome#19747 by @RaHehl (new-feature)
- [counter] Add persistent counter sensor esphome#19746 by @clydebarrow (new-component) (new-feature) (new-platform)
- [template][time] Add template time platform esphome#14838 by @ilikecake (new-feature) (new-platform)
- [light] Shrink LightState by 12 bytes per light esphome#19711 by @bdraco
- [core] Make the generated apply function a template argument of ApplyAction and ApplyCondition esphome#19655 by @bdraco
- [core][sensor][binary_sensor][text_sensor][debug][xiaomi_rtcgq02lm] Add new_sub_sensor, new_sub_binary_sensor and new_sub_text_sensor helpers esphome#19725 by @bdraco
- [ci] Compile esp8266 component tests with the native toolchain esphome#19740 by @bdraco
- [light] Resume the previous effect on off/on esphome#17791 by @TheRealChriAnd (new-feature)
- [nrf52] allow to download mcumgr image if exists esphome#19769 by @tomaszduda23
- [nrf52] Fetch only the nRF Connect SDK projects a build needs esphome#19735 by @bdraco
- [core][sensor][binary_sensor][text_sensor][button][switch][number][select][debug][xiaomi_rtcgq02lm][tfluna][ld2412] Bind sub entity config and parent once with sub_* helpers esphome#19754 by @bdraco
- [ld2420] Use the sub_* helpers for optional child entities esphome#19776 by @bdraco
- [scd30] Use the sub_* helpers for optional child entities esphome#19794 by @bdraco
- [xiaomi_body_scale] Use the sub_* helpers for optional child entities esphome#19772 by @bdraco
- [growatt_solar] Use the sub_* helpers for optional child entities esphome#19779 by @bdraco
- [tcs34725] Use the sub_* helpers for optional child entities esphome#19797 by @bdraco
- [ltr_als_ps] Use the sub_* helpers for optional child entities esphome#19780 by @bdraco
- [hm3301] Use the sub_* helpers for optional child entities esphome#19795 by @bdraco
- [atc_mithermometer] Use the sub_* helpers for optional child entities esphome#19787 by @bdraco
- [veml7700] Use the sub_* helpers for optional child entities esphome#19778 by @bdraco
- [seeed_mr60fda2] Use the sub_* helpers for optional child entities esphome#19799 by @bdraco
- [bl0906] Use the sub_* helpers for optional child entities esphome#19796 by @bdraco
- [pvvx_mithermometer] Use the sub_* helpers for optional child entities esphome#19788 by @bdraco
- [nrf52] Test that the mcumgr image is offered beside a UF2 esphome#19804 by @bdraco
- [bl0940] Use the sub_* helpers for optional child entities esphome#19783 by @bdraco
- [ina219] Use the sub_* helpers for optional child entities esphome#19785 by @bdraco
- [ld2410] Use the sub_* helpers for optional child entities esphome#19774 by @bdraco
- [seeed_mr24hpc1] Use the sub_* helpers for optional child entities esphome#19798 by @bdraco
- [ld2450] Use the sub_* helpers for optional child entities esphome#19775 by @bdraco
- [ina226] Use the sub_* helpers for optional child entities esphome#19784 by @bdraco
- [vbus] Use the sub_* helpers for optional child entities esphome#19755 by @bdraco
- [cse7766] Use the sub_* helpers for optional child entities esphome#19782 by @bdraco
- [pmsx003] Use the sub_* helpers for optional child entities esphome#19756 by @bdraco
- [sy6970] Use the sub_* helpers for optional child entities esphome#19757 by @bdraco
- [ruuvitag] Use the sub_* helpers for optional child entities esphome#19758 by @bdraco
- [sps30] Use the sub_* helpers for optional child entities esphome#19759 by @bdraco
- [ezo_pmp] Use the sub_* helpers for optional child entities esphome#19760 by @bdraco
- [ina2xx_base] Use the sub_* helpers for optional child entities esphome#19761 by @bdraco
- [sun_gtil2] Use the sub_* helpers for optional child entities esphome#19762 by @bdraco
- [bl0939] Use the sub_* helpers for optional child entities esphome#19763 by @bdraco
- [atm90e26] Use the sub_* helpers for optional child entities esphome#19764 by @bdraco
- [havells_solar] Use the sub_* helpers for optional child entities esphome#19777 by @bdraco
- [sdm_meter] Use the sub_* helpers for optional child entities esphome#19781 by @bdraco
- [sgp30] Use the sub_* helpers for optional child entities esphome#19786 by @bdraco
- [bthome_mithermometer] Use the sub_* helpers for optional child entities esphome#19789 by @bdraco
- [xiaomi_hhccjcy01] Use the sub_* helpers for optional child entities esphome#19790 by @bdraco
- [bl0942] Use the sub_* helpers for optional child entities esphome#19791 by @bdraco
- [hlw8012] Use the sub_* helpers for optional child entities esphome#19792 by @bdraco
- [airthings_wave_plus] Use the sub_* helpers for optional child entities esphome#19793 by @bdraco
- [core] Share conversion rate configuration constant esphome#19800 by @techdregs
- Bump bundled esphome-device-builder to 1.17.0 esphome#19814 by @esphome[bot]
- [bme280_base] Use the sub_* helpers for optional child entities esphome#19812 by @bdraco
- [airthings_wave_base] Use the sub_* helpers for optional child entities esphome#19811 by @bdraco
- [mopeka_pro_check] Use the sub_* helpers for optional child entities esphome#19810 by @bdraco
- [pzem004t] Use the sub_* helpers for optional child entities esphome#19809 by @bdraco
- [pzemac] Use the sub_* helpers for optional child entities esphome#19808 by @bdraco
- [ci] Refresh integration test durations esphome#19817 by @esphome[bot]
- [ble_nus] Increase BLE MTU for NUS esphome#19629 by @tomaszduda23
- [mqtt] fix compiler warnings when idf_send_async is used esphome#19815 by @patagonaa
- [pn71xx] Remove heap allocation from tag handling and NCI transport esphome#19738 by @kbx81
- [host] Build natively with ninja instead of PlatformIO esphome#19214 by @jesserockz (new-feature) (breaking-change)
- [platformio] Fix ccache path for non-root containers esphome#19807 by @vonpanda
- [hlw8032] Use the sub_* helpers for optional child entities esphome#19835 by @bdraco
- [pzemdc] Use the sub_* helpers for optional child entities esphome#19834 by @bdraco
- [wireguard] Use the sub_* helpers for optional child entities esphome#19833 by @bdraco
- [qmc5883l] Use the sub_* helpers for optional child entities esphome#19832 by @bdraco
- [tsl2591] Use the sub_* helpers for optional child entities esphome#19831 by @bdraco
- Bump bundled esphome-device-builder to 1.17.1 esphome#19838 by @esphome[bot]
- [nrf52] Use full newlib when the logger is enabled, disable unused serial and printk esphome#19766 by @tomaszduda23
- [zephyr_mcumgr] add LED which is controled by bootloader esphome#16322 by @tomaszduda23 (new-feature)
- [esp32] Precompile the core headers for ESP-IDF source compiles esphome#19820 by @bdraco
- [esp8266] Precompile the prefix header on the native toolchain esphome#19821 by @bdraco
- [host] Precompile the core headers on the native build esphome#19822 by @bdraco
- [ci] Refresh integration test durations esphome#19847 by @esphome[bot]
- [esp8266] Precompile the prefix header on PlatformIO builds esphome#19823 by @bdraco
- [rp2] Enable the PlatformIO precompiled header esphome#19824 by @bdraco
- [esp32] Enable the precompiled header on the PlatformIO toolchain esphome#19825 by @bdraco
- [nrf52] Precompile the core headers on the sdk-nrf build esphome#19826 by @bdraco
- Bump bundled esphome-device-builder to 1.17.2 esphome#19848 by @esphome[bot]
- [libretiny] Enable the PlatformIO precompiled header on Linux hosts esphome#19827 by @bdraco
- [split_buffer] Allow direct access to buffer chunks esphome#19819 by @clydebarrow
- [esp32_hosted][esp32_ble] Support esp_hosted 3.x alongside 2.x, keep builds on 2.12.13 for now esphome#19621 by @swoboda1337
- [mipi_rgb] Fix SWRESET delay for st7701s esphome#17646 by @clydebarrow
- [ltr501] Use the sub_* helpers for optional child entities esphome#19867 by @bdraco
- [thermopro_ble] Use the sub_* helpers for optional child entities esphome#19868 by @bdraco
- [as5600] Use the sub_* helpers for optional child entities esphome#19869 by @bdraco
- [xiaomi_lywsd03mmc] Use the sub_* helpers for optional child entities esphome#19870 by @bdraco
- [sm300d2] Use the sub_* helpers for optional child entities esphome#19866 by @bdraco
- [network] Keep lwip off the PSRAM tier when Ethernet is configured esphome#19367 by @bdraco
- [epaper_spi] reTerminal Sticky: Four-level grayscale for SSD1677 panels, and a full-refresh action esphome#19213 by @FuNK3Y (new-feature) (breaking-change)
- [rp2] Bump arduino-pico framework to 6.1.1 esphome#19881 by @bdraco
- [speaker] Skip a playlist item that fails instead of retrying it forever esphome#19862 by @randybb
- [dfrobot_sen0395] Fix output_latency treating milliseconds as seconds esphome#19873 by @cpruijsen
- [speaker_source] Account for playback callbacks during speaker writes esphome#19499 by @n-IA-hane
- [esp32][rp2][esp8266][libretiny]mask gpio flags (1/3) esphome#19393 by @luar123
- [libretiny] Load the precompiled header on Apple Silicon Macs esphome#19857 by @bdraco
- [esp8266] Use our own compiler builds for the native toolchain esphome#19849 by @bdraco (new-feature)
- [esp8266] Use our own Arduino core builds for the native toolchain esphome#19876 by @bdraco
- [core] Leave the precompiled header off on Windows for a GCC with bug 14940 esphome#19875 by @bdraco
- [esp8266] Make the native arduino toolchain the default esphome#19886 by @bdraco (breaking-change)
- [mopeka_std_check] Use the sub_* helpers for optional child entities esphome#19897 by @bdraco
- [inkbird_ibsth1_mini] Use the sub_* helpers for optional child entities esphome#19896 by @bdraco
- [ccs811] Use the sub_* helpers for optional child entities esphome#19895 by @bdraco
- [hmc5883l] Use the sub_* helpers for optional child entities esphome#19893 by @bdraco
- [htu21d] Use the sub_* helpers for optional child entities esphome#19894 by @bdraco
- [espidf] Run cmake and ninja directly instead of through idf.py esphome#19871 by @bdraco
- [socket] Let Zephyr clang-tidy see the BSD socket implementation esphome#19901 by @Bascht74
- [core] Create the PlatformIO HTTP cache dir before the first registry lookup esphome#19906 by @bdraco
- [nfc] Pass tags to triggers by reference and keep the listener list in static storage esphome#19902 by @kbx81
- [lvgl] Animation updates and debug outline option esphome#19420 by @clydebarrow (new-feature)
- [runtime_image] Improve format logs esphome#19903 by @guillempages
- [web_server_idf] Send events straight from the caller’s buffers instead of a std::string esphome#19376 by @bdraco
- [web_server_idf] Build state documents in a stack arena so a state event does no heap allocation esphome#19383 by @bdraco
- [core] Add a line based yaml editor and use it for rename esphome#19410 by @bdraco
- [nfc] Hold NDEF records in a fixed-size list esphome#19912 by @kbx81
- [core] Extract native toolchain package archives in parallel esphome#18840 by @bdraco
- [ethernet] Add KSZ8851SNL SPI ethernet support esphome#19883 by @jesserockz (new-feature)
- [ens160_base] Use the sub_* helpers for optional child entities esphome#19921 by @bdraco
- [emc2101] Use the sub_* helpers for optional child entities esphome#19920 by @bdraco
- [xiaomi_hhccjcy10] Use the sub_* helpers for optional child entities esphome#19919 by @bdraco
- [ld6002b] Use the sub_* helpers for optional child entities esphome#19918 by @bdraco
- [bme680] Use the sub_* helpers for optional child entities esphome#19917 by @bdraco
- [zigbee] Add cluster: device_class to expose ESP32 sensors via measurement clusters instead of Analog/Binary Input esphome#17388 by @luar123 (new-feature)
- [kuntze] Use the sub_* helpers for optional child entities esphome#19926 by @bdraco
- [ufm01] Use the sub_* helpers for optional child entities esphome#19927 by @bdraco
- [alpha3] Use the sub_* helpers for optional child entities esphome#19928 by @bdraco
- [uponor_smatrix] Use the sub_* helpers for optional child entities esphome#19929 by @bdraco
- [max9611] Use the sub_* helpers for optional child entities esphome#19930 by @bdraco
- [lvgl] Use contextvars to improve lvgl scheduling esphome#19242 by @clydebarrow
- [modbus] Fix a format warning when logging the frame buffer size esphome#19934 by @bdraco
- [dlms_meter] Fix a format warning when logging the receive timeout esphome#19935 by @bdraco
- [api] Fix format warnings in the api test config esphome#19936 by @bdraco
- [micro_wake_word] Fix a format warning when logging a model version mismatch esphome#19937 by @bdraco
- [seeed_mr60bha2] Use the sub_* helpers for optional child entities esphome#19939 by @bdraco
- [smt100] Use the sub_* helpers for optional child entities esphome#19940 by @bdraco
- [mmc5603] Use the sub_* helpers for optional child entities esphome#19941 by @bdraco
- [gdk101] Use the sub_* helpers for optional child entities esphome#19942 by @bdraco
- [pmwcs3] Use the sub_* helpers for optional child entities esphome#19943 by @bdraco
- [ufm01] Fix a format warning when logging the frame sync position esphome#19944 by @bdraco
- [midea] Fix a format warning in the esp32 test config esphome#19946 by @bdraco
- [json] Fix format truncation warnings in the arena tests esphome#19938 by @bdraco
- [xdb401] Fix format warnings in the timing and raw pressure logs esphome#19945 by @bdraco
- [core] Ignore empty CLI address cache entries esphome#19924 by @vonpanda
- [espidf] Resolve cmake through the IDF environment when reading the CMake cache esphome#19947 by @bdraco
- [audio_dac] Add a hook that runs once the I2S clocks are running esphome#19900 by @remcom
- [serial_proxy] Never let a client write stall the main loop past a fixed budget esphome#19923 by @kbx81
- [tas58xx] Add TAS58xx audio amplifier (TAS5805M) esphome#19595 by @remcom (new-component) (new-feature) (new-platform)
- [mqtt] Stop disabling the mbedTLS hardware MPI accelerator for TLS esphome#19958 by @heythisisnate
- [light] Fix white flash on turn-on during an effect, start strobe on its first color esphome#19916 by @clydebarrow
- [zigbee] Implement switch support for esp32 esphome#17579 by @luar123 (new-feature)
- [esp8266] Derive the native image header flash size from the linker script esphome#19961 by @bdraco
- [bthome_mithermometer] Decode 0.1C temperature and 1% humidity objects esphome#19956 by @mtmatteo79 (new-feature)
- Bump bundled esphome-device-builder to 1.18.0 esphome#19968 by @esphome[bot]
- [core] Parse ESPHOME_SERIAL_LOGGING_RESET as a boolean esphome#19963 by @vonpanda
- [ci] Pin SOURCE_DATE_EPOCH in the idf.py equivalence check esphome#19970 by @bdraco
- [nrf52] Add nRF Connect SDK 3.4.0 / Zephyr 4.x support esphome#19863 by @tomaszduda23
- [pmsa003i] Fix spurious component failures and warnings on power up esphome#19933 by @j9brown
- [openthread] rewrite openthread esp.cpp to use new esp functions esphome#16334 by @rwrozelle
- [noise] Generate the responder ephemeral key ahead of the handshake esphome#19000 by @bdraco
- [espidf] Skip ldgen when only app code changes esphome#18857 by @bdraco
- [socket] Add an IPv4 lookup next to set_sockaddr esphome#19909 by @Bascht74
- [ina260] Use the sub_* helpers for optional child entities esphome#19977 by @bdraco
- [midea] Use the sub_* helpers for optional child entities esphome#19976 by @bdraco
- [xiaomi_mjyd02yla] Use the sub_* helpers for optional child entities esphome#19975 by @bdraco
- [xiaomi_jqjcy01ym] Use the sub_* helpers for optional child entities esphome#19974 by @bdraco
- [xiaomi_gcls002] Use the sub_* helpers for optional child entities esphome#19973 by @bdraco
- [noise] Import noise-c and libsodium as ESP-IDF managed components esphome#18351 by @jesserockz
- [resampler] Add resampler microphone platform esphome#19953 by @remcom (new-feature) (new-platform)
- [ci] Balance component test batches by estimated build time esphome#19980 by @bdraco
- [climate] Fix the restore state memset warning on every platform esphome#19983 by @bdraco
- [display] Fix the null pointer comparison warning in the display log macro esphome#19984 by @bdraco
- [speaker] Fix the fall through warning in the media player turn off command esphome#19987 by @bdraco
- [uart] Fix a maybe uninitialized warning in the fixed size read esphome#19988 by @bdraco
- [sensor] Fix a double promotion warning in the NTC resistance filter esphome#19985 by @bdraco
- [light] Fix a double promotion warning in the light test config esphome#19989 by @bdraco
- [mk2pvrouter] Fix an ignored qualifiers warning in the group length check esphome#19986 by @bdraco
- [esp32_ble_tracker] Guard Bluedroid against stale queued connection requests esphome#19375 by @bdraco
- [espidf] Add —skip-bootloader for OTA only builds esphome#19925 by @bdraco (new-feature)
- [light] Add
coloroption to strobe and other color state esphome#19874 by @clydebarrow (new-feature) - [ci] Skip the bootloader in the component batch build jobs esphome#19931 by @bdraco
- Bump bundled esphome-device-builder to 1.19.0 esphome#19995 by @esphome[bot]
- [stcc4] Add component for the Sensirion STCC4 CO2 sensor esphome#19434 by @j9brown (new-component) (new-feature) (new-platform)
- [espidf] Mirror registry components locally so configures skip the registry esphome#19949 by @bdraco
- [bluetooth_connection] Cancel pending Bluedroid opens on disconnect esphome#19859 by @michaelheichler
- [socket] Add a reconnecting TCP client link esphome#19999 by @Bascht74
- [espidf] Resolve the ESP-IDF tool paths once per build esphome#19996 by @bdraco
- [espidf] Build all and size in one ninja run esphome#19997 by @bdraco
- [espidf] Read the ESP-IDF version in process instead of starting idf_tools esphome#19998 by @bdraco
- [substitutions] Support !include with a condition esphome#19455 by @j9brown (new-feature)
- [socket] Compile the lookup and client link helpers only when required esphome#20002 by @bdraco
- [core] Compile util.cpp only on MQTT builds esphome#20003 by @bdraco
- [espidf] Skip the lwip sources that compile to empty objects esphome#20000 by @bdraco
- [esphome][ota][core] Compress OTA uploads on ESP32, RP2040, LibreTiny and host esphome#19037 by @bdraco (new-feature)
- [tcp_uart] Add a TCP client that implements a UART esphome#19884 by @Bascht74 (new-component) (new-feature)
- [const] Move the role and reconnect interval keys to shared constants esphome#20009 by @bdraco
- [wifi] Warn when eap is configured with esp32_hosted esphome#20011 by @swoboda1337
- [ee895] Use the sub_* helpers for optional child entities esphome#20005 by @bdraco
- [pm2005] Use the sub_* helpers for optional child entities esphome#20004 by @bdraco
- [cs5460a] Use the sub_* helpers for optional child entities esphome#20006 by @bdraco
- [socket] Move the outgoing buffer into the TCP client link esphome#20010 by @bdraco
- [mmc5983] Use the sub_* helpers for optional child entities esphome#20007 by @bdraco
- [zyaura] Use the sub_* helpers for optional child entities esphome#20008 by @bdraco
- [core] Add new options suspend_loop and loop_interval esphome#18136 by @luar123 (new-feature)
- [xiaomi_lywsd02mmc] Use the sub_* helpers for optional child entities esphome#20014 by @bdraco
- [xiaomi_lywsd02] Use the sub_* helpers for optional child entities esphome#20015 by @bdraco
- [xiaomi_lywsdcgq] Use the sub_* helpers for optional child entities esphome#20016 by @bdraco
- [xiaomi_cgg1] Use the sub_* helpers for optional child entities esphome#20017 by @bdraco
- [xiaomi_cgd1] Use the sub_* helpers for optional child entities esphome#20018 by @bdraco
- [nrf52] Create the precompiled header in ccache depend mode esphome#20019 by @bdraco
- [tcp_uart] Report a failed flush when the flush drops the link esphome#20013 by @bdraco
- [uart_tcp] Add a hardware UART copied to one TCP socket esphome#19887 by @Bascht74 (new-component) (new-feature)
- [xiaomi_mhoc303] Use the sub_* helpers for optional child entities esphome#20024 by @bdraco
- [xiaomi_cgpr1] Use the sub_* helpers for optional child entities esphome#20023 by @bdraco
- [xiaomi_xmwsdj04mmc] Use the sub_* helpers for optional child entities esphome#20022 by @bdraco
- [xiaomi_mhoc401] Use the sub_* helpers for optional child entities esphome#20021 by @bdraco
- [xiaomi_cgdk2] Use the sub_* helpers for optional child entities esphome#20020 by @bdraco
- [socket] Add an IPv4 allow list esphome#20025 by @Bascht74
- [es8388] Use the sub_* helpers for optional child entities esphome#20030 by @bdraco
- [sht3xd] Use the sub_* helpers for optional child entities esphome#20031 by @bdraco
- [mhz19] Use the sub_* helpers for optional child entities esphome#20032 by @bdraco
- [shtcx] Use the sub_* helpers for optional child entities esphome#20033 by @bdraco
- [atm90e32] Use the sub_* helpers for optional child entities esphome#20034 by @bdraco
- [socket] Share the server side as TcpListener esphome#20037 by @Bascht74 (new-feature)
- [aht10][am2315c][am2320][dht][dht12] Use the sub_* helpers for optional child entities esphome#20038 by @bdraco
- [hdc1080][hdc2010][hdc2080][hdc302x][hte501] Use the sub_* helpers for optional child entities esphome#20039 by @bdraco
- [nrf52] Use the shared managed ccache settings for the native build esphome#20027 by @bdraco
- [bmp085][dps310][lps22][mpl3115a2][ms5611] Use the sub_* helpers for optional child entities esphome#20040 by @bdraco
- [ags10][cm1106][sds011][pm1006][senseair] Use the sub_* helpers for optional child entities esphome#20041 by @bdraco
- [bmi160][mpu6050][mpu6886][mlx90614][max31855] Use the sub_* helpers for optional child entities esphome#20042 by @bdraco
- [ens210][htu31d][hyt271][honeywell_hih_i2c][ms8607] Use the sub_* helpers for optional child entities esphome#20043 by @bdraco
- [honeywellabp][honeywellabp2_i2c][npi19][xgzp68xx][xdb401] Use the sub_* helpers for optional child entities esphome#20044 by @bdraco
- [mcp9600][tem3200][kmeteriso][ufire_ec][ufire_ise] Use the sub_* helpers for optional child entities esphome#20045 by @bdraco
- [lc709203f][max17043][pulse_counter][pulse_meter][duty_time] Use the sub_* helpers for optional child entities esphome#20046 by @bdraco
- [xiaomi_hhccpot002][xiaomi_miscale][xiaomi_wx08zm][radon_eye_rd200][am43] Use the sub_* helpers for optional child entities esphome#20047 by @bdraco
- [iaqcore][t6615][hc8][as3935][tx20] Use the sub_* helpers for optional child entities esphome#20048 by @bdraco
- [rd03d][sim800l][tas58xx][bedjet][hoermann_hcp] Use the sub_* helpers for optional child entities esphome#20049 by @bdraco
- [combination][libretiny][sound_level] Use the sub_* helpers for optional child entities esphome#20050 by @bdraco
- [bmp280_base][bmp3xx_base][bmp581_base][spa06_base][mlx90393] Use the sub_* helpers for optional child entities esphome#20051 by @bdraco
- [ethernet] Fix IPv6 SLAAC: link-local on link-up, pass all-nodes multicast esphome#19752 by @davidcoulson
- [tcp_uart] Add a server role with an IPv4 allow list esphome#20026 by @Bascht74 (new-feature)
- [wifi] Start IPv6 link-local on connect, not on DHCPv4 lease esphome#19749 by @davidcoulson
- [const] Hoist the allowed IPs and connected keys to the shared constants esphome#20053 by @Bascht74
- [qmi8658] Pin motion_id in test config to fix grouped component test conflict esphome#20075 by @bdraco
- [font] Keep the glyph table in flash esphome#20079 by @bdraco
- [lvgl] Reject ESP8266 at validation esphome#20099 by @bdraco
- [es8311] Encode the REG02 MCLK pre-multiplier instead of writing the factor esphome#20121 by @abderbejaoui
- [noise] Use the shared PROGMEM table helper for the PSK esphome#20101 by @bdraco
- [voice_assistant] Group the one byte members at the end esphome#20147 by @bdraco
- [microphone] Move bits_per_sample_ to the end of MicrophoneSource esphome#20146 by @bdraco
- [mixer] Pack has_contributed_ next to pause_state_ esphome#20144 by @bdraco
- [speaker] Pack mute_state_ next to state_ esphome#20143 by @bdraco
- [i2s_audio] Pack pdm_ with the other microphone bools esphome#20145 by @bdraco
- [sendspin] Pack mdns_advertised_ next to task_stack_in_psram_ esphome#20148 by @bdraco
- [ring_buffer] Use the static ring buffer structure as its handle esphome#20134 by @bdraco
- [http_request] Reduce log level for missing header esphome#18932 by @guillempages
- [homeassistant] Use input_number.set_value for input_number entities esphome#19965 by @jesserockz
- [ld2450] Pack direction_dedup_ after zone_config_ esphome#20152 by @bdraco
- [rtttl] Pack state_ after wholenote_duration_ esphome#20151 by @bdraco
- [ledc] Pack initialized_ next to bit_depth_ esphome#20150 by @bdraco
- [template] Pack restore_value_ next to optimistic_ in TemplateNumber esphome#20149 by @bdraco
- [wifi] Let the empty pending_ flags struct take no space esphome#20142 by @bdraco
- [template] Use distinct empty types so both unused select members take no space esphome#20141 by @bdraco
- [script] Let the empty argument tuple take no space for scripts without parameters esphome#20140 by @bdraco
- [core] Let the empty Scheduler mutex take no space on single-threaded platforms esphome#20139 by @bdraco
- [wifi] Place ap_ before the byte fields so they pack after it esphome#20138 by @bdraco
- [improv_ble] Pack the byte fields into the padding after connecting_sta_ esphome#20137 by @bdraco
- [esp32_ble] Group the one byte io_cap_ with the other byte fields esphome#20136 by @bdraco
- [remote_receiver] Pack carrier_duty_percent_ next to with_dma_ esphome#20135 by @bdraco
- [uart] Skip the parity setter when it matches the default esphome#20069 by @bdraco
- [version] Skip the hide hash and hide timestamp setters when they match the defaults esphome#20067 by @bdraco
- [api] Skip the listen backlog setter when it matches the default esphome#20066 by @bdraco
- [core] Log ignored —skip-bootloader at debug level esphome#20059 by @bdraco
- [web_server] Remove dead ESP-IDF event source connect callback and pack expose_log_ esphome#20130 by @bdraco
- [esp32] Remove the unused loop_task_handle global esphome#20132 by @bdraco
- [core] Use the static queue structure as the FreeRTOSQueue handle esphome#20133 by @bdraco
- [web_server] Keep allowed origins in a shared flash table esphome#20086 by @bdraco
- [matrix_keypad] Keep the keys in flash esphome#20110 by @bdraco
- [select] Cover select.is in the component test esphome#20112 by @bdraco
- [select] Keep select.is option lists in flash esphome#20108 by @bdraco
- [udp] Keep addresses in a shared flash table esphome#20085 by @bdraco
- [wifi] Keep a second fallback AP start from resetting the LN882x esphome#20168 by @bdraco
- Bump bundled esphome-device-builder to 1.20.0 esphome#20172 by @esphome[bot]
- [libretiny] Fix LN882x boot crash with the logger or a uart on UART0 esphome#20162 by @bdraco
- [exponential_moving_average] Add EMA preserved across reboots esphome#19882 by @clydebarrow (new-component) (new-feature) (new-platform)
- [mipi_rgb] Keep the init sequence in flash esphome#20090 by @bdraco
- [mipi_dsi] Keep the init sequence in flash esphome#20091 by @bdraco
- [mipi_spi] Keep the init sequence in flash esphome#20089 by @bdraco
- [uart] Validate parity and stop bits correctly esphome#20161 by @makstech
- [libretiny] Keep a scan that finds no networks from resetting the LN882x esphome#20169 by @bdraco
- [esp32] Work around ESP-IDF stack bug on P4 esphome#20181 by @clydebarrow
- [modbus] Reject send_wait_time and turnaround_time above 65535 ms esphome#20160 by @Bascht74
- [tcp_uart][uart_tcp] Expose the no-arg load_settings() and mark UartTcp final esphome#20163 by @Bascht74
- [socket][tcp_uart][uart_tcp] Reject an IPv6 host at config time esphome#20165 by @Bascht74
- [esp32][api][noise] Resolve arduino’s libsodium requirement to the converted esphome/libsodium esphome#20185 by @swoboda1337
- [emontx] Use total state class for energy sensors esphome#20128 by @FredM67
- [ethernet] Store PHY registers in a StaticVector sized from the config esphome#20131 by @bdraco
- [wifi] Keep ESP8266’s report of a replaced attempt from failing the next one esphome#20183 by @bdraco
- [libretiny] Build LN882x with 1-byte enums to match the SDK’s WiFi library esphome#20173 by @bdraco
- [wifi] Default LN882x power save to none, as on BK72xx and RTL87xx esphome#20170 by @bdraco
- [wireguard] Bump the library to esphome/wireguard 0.4.7 esphome#20188 by @swoboda1337
- [epaper_spi] Add SSD1681 and the Waveshare 1.54in V2 panel esphome#18073 by @snoack (new-feature)
- [nrf52] Share the ccache between devices esphome#20028 by @bdraco
- [api] Count packed varints a machine word at a time esphome#20122 by @bdraco
- [remote_base] Keep RC switch protocols in flash esphome#20081 by @bdraco
- [core] Decode base64 in a single pass esphome#20123 by @bdraco
- [wifi] Connect LN882x to the BSSID asked for esphome#20174 by @bdraco
- [libretiny] Flag the LN882H SDK default MAC esphome#20175 by @bdraco
- [wifi] Leave the AP before an LN882x reboots esphome#20176 by @bdraco
- [audio_file] Keep audio files in flash instead of building them in setup() esphome#20072 by @bdraco
- [unicode][font] move extract_unicode_codepoint to new component esphome#19969 by @ssieb (new-component)
- [usb_uart] Only compile the vendor drivers that are configured esphome#20190 by @bdraco
- Bump bundled esphome-device-builder to 1.21.0 esphome#20199 by @esphome[bot]
- [sx1509] Keep the keypad keys in flash esphome#20111 by @bdraco
- [logger] Use the static ring buffer structure as its handle on ESP32 esphome#20129 by @bdraco
- [core] [select] Keep select options in flash with a shared ConstVector esphome#20117 by @bdraco
- [wifi] Run the LN882x fallback AP on its own instead of retrying AP+STA every loop esphome#20166 by @bdraco
- [ble_device_base] Keep MAC filter lists in shared flash tables esphome#20088 by @bdraco
- [lvgl] Remove redundant aexit override esphome#20201 by @Bascht74
- [light] Cover get_effects() as published configs use it in the component test esphome#20203 by @bdraco
- [ci] Run pylint when its version, dependencies or configuration change esphome#20202 by @Bascht74
- [host] Ignore SIGPIPE so a write to a closed peer fails with EPIPE esphome#20228 by @Bascht74
- [climate] Cover custom mode reads and runtime sets in the component test esphome#20208 by @bdraco
- [fan] Cover preset mode reads and runtime sets in the component test esphome#20209 by @bdraco
- [event] Cover how configs and components read and set event types in the component test esphome#20216 by @bdraco
- [neopixelbus] Cover addressable_color_wipe with a random color on ESP8266 esphome#20221 by @bdraco
- [web_server_idf] Respect explicit HTTP header limit esphome#18657 by @jeroen85
- [api] Cover Home Assistant action fields in the api test config esphome#20236 by @bdraco
- [zigbee] add missing tests esphome#20234 by @luar123
- [espidf] Fix V1 ECDSA signed builds when skipping the bootloader esphome#20244 by @bdraco
- [esphome] Revise warning text for password use esphome#20230 by @clydebarrow
- [wireguard] Restart the connection while the peer is offline so the endpoint is re-resolved esphome#20231 by @swoboda1337
- [ethernet] Pin the IDF version in the KSZ8851SNL test fixtures esphome#20245 by @swoboda1337
- [sendspin] Require a type on the switch platform esphome#20189 by @kahrendt (breaking-change)
- [socket] Add host tests for TcpClientLink and TcpListener esphome#20167 by @Bascht74
- [tcp_uart] Keep received bytes readable after the connection drops esphome#20164 by @Bascht74
- [i2s_audio] Park the speaker data-out pin low at setup esphome#20226 by @kbx81
- [mipi_spi] Light platform for AMOLED display brightness esphome#20212 by @clydebarrow (new-feature) (new-platform)
- [tas58xx] Add support for tas5825 dac esphome#19971 by @mrtoy-me (new-feature)
- [esp32] Extract prefetched ESP-IDF tool archives in parallel esphome#18841 by @bdraco
- [wireguard] Bump the library to esphome/wireguard 0.4.8 esphome#20246 by @swoboda1337
- [motion] Add gesture detection esphome#16787 by @clydebarrow (new-feature) (new-platform)
- [uart_tcp] Claim the UART, reject duplicate server ports, pace on loop_interval esphome#20180 by @Bascht74
- [homeassistant] Add text, select and button platforms esphome#19964 by @jesserockz (new-feature) (new-platform)
- [ci] Ignore esphome/idf_component.yml in external component bot esphome#20258 by @clydebarrow
- [espectre] Add Wi-Fi CSI motion detection component esphome#19801 by @francescopace (new-component) (new-feature) (new-platform)
- [mipi_spi] Add Waveshare ESP32-S3-Touch-LCD-1.46 SPD2010 model esphome#19056 by @grischard (new-feature)
- [api] Add outgoing connections so the device can dial Home Assistant (or anything that implements native API) esphome#18919 by @bdraco (new-feature)
- [ci] Run label checks in parallel instead of cancelling them esphome#20259 by @swoboda1337
- [hoermann_hcp] Send each command once, and the lamp as a state esphome#19765 by @RaHehl (breaking-change)
- [tcp_uart][uart_tcp] Add a disconnects sensor esphome#20096 by @Bascht74 (new-feature)
- [zigbee] Add zigbee support for number on esp32 esphome#20243 by @luar123 (new-feature)
- [sx126x] Cover shared constant and trigger argument send_packet payloads in the component test esphome#20272 by @bdraco
- [espnow] Cover a send payload lambda that reads trigger arguments in the component test esphome#20270 by @bdraco
- [sx127x] Cover shared constant, string and trigger argument send_packet payloads in the component test esphome#20274 by @bdraco
- [udp] Cover identical constant and trigger argument write payloads in the component test esphome#20266 by @bdraco
- [cc1101] Cover shared, string and trigger argument send_packet payloads in the component test esphome#20263 by @bdraco
- [core] Test that if and while branches resume after delays, stops, nesting and script modes esphome#20282 by @bdraco
- [esp32] Disable mbedTLS TLS and TLS-only crypto when no component needs them esphome#18877 by @bdraco
- [espnow] Keep constant send payloads in shared flash tables esphome#20271 by @bdraco
- [xiaomi_mccgq02hl] Add Xiaomi Mijia Door/Window Sensor 2 (MCCGQ02HL) esphome#20104 by @ahpohl (new-component) (new-feature) (new-platform)
- [usb_host]
iManufacturerandiProductdescriptor filters esphome#19095 by @puddly (new-feature) (breaking-change) - [api] Reply when an infrared/RF raw timings transmit has completed esphome#19086 by @bdraco (new-component)
- [epaper_spi] Add is_updating condition esphome#20261 by @jesserockz (new-feature)
- [serial_proxy] Add USB_SERIAL port type and device identity esphome#19308 by @puddly (new-feature)
- [core] Select I/O expander pin providers by I2C address esphome#18939 by @clydebarrow (new-feature)
- [audio_http][core] Add ca_certificate_path to audio_http media source esphome#19392 by @TheSwert (new-feature)
- [api] Add a device wizard for Home Assistant onboarding esphome#19966 by @jesserockz (new-feature)
- [core] Keep log tags in flash on ESP8266 with ESPHOME_LOG_TAG esphome#20290 by @bdraco
- [core] Clone git PlatformIO packages in parallel in the prefetch esphome#18837 by @bdraco
- [api] Keep the protobuf write cursor in a register and emit sub-message tags inline esphome#20124 by @bdraco
- [api] Keep Home Assistant action fields in a flash table esphome#20237 by @bdraco
- [sx127x] Keep constant send_packet payloads in shared flash tables esphome#20275 by @bdraco
- [sx126x] Keep constant send_packet payloads in shared flash tables esphome#20273 by @bdraco
- Bump aioesphomeapi from 46.6.0 to 46.7.0 esphome#20317 by @esphome[bot]
- [tas58xx] Improve TAS5805M audio performance and use GPIO1 for TAS5825M faults esphome#20319 by @mrtoy-me
- Bump aioesphomeapi from 46.7.0 to 46.8.0 esphome#20321 by @esphome[bot]
- [core] Wake the main loop on its own task notification index on ESP32 esphome#20326 by @kbx81
- [cc1101] Keep the remote_receiver interrupt on a shared GDO0 pin in begin_tx esphome#20296 by @dbuezas
- Pin smp to 4.1.0 on Intel macOS so cbor2 installs from a wheel esphome#20302 by @bdraco
- [core] Warn on every run that Intel Mac support ends by 2027.6.0 esphome#20303 by @bdraco
- [api] Add a progmem option for bytes fields kept in flash esphome#20318 by @bdraco
- [esp8266] Normalize misspelled boards and fall back to PlatformIO for unknown ones esphome#20322 by @bdraco
- [core] Let cv.rename_key pass non-dict input through esphome#20331 by @jesserockz
- Bump bundled esphome-device-builder to 1.22.0 esphome#20334 by @esphome[bot]
- [combination] Use cv.rename_key for the deprecated coeffecient key esphome#20159 by @jesserockz
- [noise] Bump noise-c to 0.1.31 and libsodium to 1.10021.12 esphome#20345 by @bdraco
- [esp8266] Force-include the throw stubs into the core and libraries on the native toolchain esphome#20336 by @bdraco
- [esp8266] Fix Arduino core regressions that keep data in RAM and link the unused unwinder esphome#20337 by @bdraco
- [sendspin] Update to sendspin-cpp v0.9.3 esphome#20347 by @kahrendt (new-feature) (breaking-change)
- [sendspin] Add the static pairing code, pairing window and unpaired access option esphome#20348 by @kahrendt (new-feature)
- [sendspin] Add the dynamic pairing code esphome#20349 by @kahrendt (new-feature)
- [sendspin] Add an unpaired access switch esphome#20350 by @kahrendt (new-feature)
- Bump aioesphomeapi from 46.8.0 to 46.9.0 esphome#20358 by @esphome[bot]
- [api][sendspin] Add a request for the Sendspin pairing token esphome#20355 by @kahrendt (new-feature)
- [mdns] Bump espressif/mdns to 1.14.0 esphome#20383 by @bdraco
- [ci] Pin the shared I2C bus in test configs that left it implicit esphome#20412 by @bdraco
- [ci] Deal clang-tidy files across five shards esphome#20411 by @bdraco
- [api] Fix C++ unit test link failure when api is only a dependency esphome#20418 by @bdraco
- [esp32] Record the PC for cache error and interrupt watchdog crashes esphome#20415 by @bdraco
Dependency Changes
Section titled “Dependency Changes”- Bump ninja from 1.13.0 to 1.13.2 esphome#18952 by @dependabot[bot]
- Bump zeroconf from 0.151.2 to 0.151.3 esphome#18951 by @dependabot[bot]
- Bump filelock from 3.32.4 to 3.32.5 esphome#18963 by @dependabot[bot]
- Bump platformdirs from 4.11.5 to 4.11.7 esphome#18976 by @dependabot[bot]
- Bump prek from 0.5.0 to 0.5.1 esphome#18977 by @dependabot[bot]
- Bump ruff from 0.16.5 to 0.16.6 esphome#19022 by @dependabot[bot]
- Bump prek from 0.5.1 to 0.5.2 esphome#19021 by @dependabot[bot]
- Bump esptool from 5.3.1 to 5.4.0 esphome#19023 by @dependabot[bot]
- Bump astral-sh/setup-uv from 10.0.1 to 10.1.0 in /.github/actions/restore-python esphome#19313 by @dependabot[bot]
- Bump github/codeql-action/init from 4.37.9 to 4.38.0 esphome#19315 by @dependabot[bot]
- Bump github/codeql-action/analyze from 4.37.9 to 4.38.0 esphome#19314 by @dependabot[bot]
- Bump astral-sh/setup-uv from 10.0.1 to 10.1.0 esphome#19312 by @dependabot[bot]
- Bump ruff from 0.16.6 to 0.16.7 esphome#19310 by @dependabot[bot]
- Bump platformdirs from 4.11.7 to 4.11.8 esphome#19309 by @dependabot[bot]
- Bump filelock from 3.32.5 to 3.32.6 esphome#19311 by @dependabot[bot]
- Update tzdata requirement from >=2026.3 to >=2026.4 esphome#19328 by @dependabot[bot]
- Bump prek from 0.5.2 to 0.5.3 esphome#19358 by @dependabot[bot]
- Bump codecov/codecov-action from 7.0.0 to 7.1.0 esphome#19382 by @dependabot[bot]
- Bump docker/setup-buildx-action from 4.3.0 to 4.4.0 in the docker-actions group esphome#19404 by @dependabot[bot]
- Bump docker/build-push-action from 7.3.0 to 7.4.0 in /.github/actions/build-image esphome#19403 by @dependabot[bot]
- Bump platformdirs from 4.11.8 to 4.11.10 esphome#19443 by @dependabot[bot]
- Bump codecov/codecov-action from 7.1.0 to 7.1.1 esphome#19446 by @dependabot[bot]
- Bump ruff from 0.16.7 to 0.16.8 esphome#19441 by @dependabot[bot]
- Bump filelock from 3.32.6 to 4.0.0 esphome#19442 by @dependabot[bot]
- Bump esphome/workflows/.github/workflows/lock.yml from 2026.8.1 to 2026.9.0 esphome#19448 by @dependabot[bot]
- Bump github/codeql-action/analyze from 4.38.0 to 4.38.1 esphome#19447 by @dependabot[bot]
- Bump github/codeql-action/init from 4.38.0 to 4.38.1 esphome#19445 by @dependabot[bot]
- Bump esphome/workflows/.github/workflows/stale.yml from a1c1485ab46ef41a84a6a9d8abd7fa4b7628fd70 to cc3e76de337dc59bc1cba8da58d963cd23b873f1 esphome#19444 by @dependabot[bot]
- Bump filelock from 4.0.0 to 4.0.1 esphome#19464 by @dependabot[bot]
- Bump platformdirs from 4.11.10 to 4.11.11 esphome#19465 by @dependabot[bot]
- Bump click from 8.3.3 to 8.5.0 esphome#18925 by @dependabot[bot]
- Bump astral-sh/setup-uv from 10.1.0 to 10.2.0 esphome#19594 by @dependabot[bot]
- Bump astral-sh/setup-uv from 10.1.0 to 10.2.0 in /.github/actions/restore-python esphome#19593 by @dependabot[bot]
- Update pyparsing requirement from >=3.3.2 to >=3.3.3 esphome#19592 by @dependabot[bot]
- Bump platformdirs from 4.11.11 to 4.11.12 esphome#19668 by @dependabot[bot]
- Bump filelock from 4.0.1 to 4.0.3 esphome#19852 by @dependabot[bot]
- Bump pylint from 4.0.8 to 4.0.9 esphome#19853 by @dependabot[bot]
- Bump github/codeql-action/init from 4.38.1 to 4.38.2 esphome#19855 by @dependabot[bot]
- Bump platformdirs from 4.11.12 to 4.11.14 esphome#19854 by @dependabot[bot]
- Bump github/codeql-action/analyze from 4.38.1 to 4.38.2 esphome#19856 by @dependabot[bot]
- Bump ruff from 0.16.8 to 0.16.9 esphome#19851 by @dependabot[bot]
- Bump flake8 from 7.3.0 to 7.4.1 esphome#19850 by @dependabot[bot]
- Bump platformdirs from 4.11.14 to 4.12.0 esphome#19904 by @dependabot[bot]
- Bump filelock from 4.0.3 to 4.0.4 esphome#19905 by @dependabot[bot]
- Bump pytest-mock from 3.15.1 to 3.16.0 esphome#19952 by @dependabot[bot]
- Bump filelock from 4.0.4 to 4.0.5 esphome#19991 by @dependabot[bot]
- Bump zeroconf from 0.151.3 to 0.151.5 esphome#19992 by @dependabot[bot]
- Bump platformdirs from 4.12.0 to 4.12.1 esphome#19994 by @dependabot[bot]
- Bump prek from 0.5.3 to 0.5.4 esphome#19993 by @dependabot[bot]
- Bump filelock from 4.0.5 to 4.0.6 esphome#20055 by @dependabot[bot]
- Bump pylint from 4.0.9 to 4.0.10 esphome#20056 by @dependabot[bot]
- Bump platformdirs from 4.12.1 to 4.12.2 esphome#20054 by @dependabot[bot]
- Bump pre-commit-ci/lite-action from 1.1.0 to 1.2.0 esphome#20057 by @dependabot[bot]
- Bump CodSpeedHQ/action from 5.2.1 to 5.4.0 esphome#20197 by @dependabot[bot]
- Bump filelock from 4.0.6 to 4.0.9 esphome#20195 by @dependabot[bot]
- Bump pylint from 4.0.10 to 4.1.1 esphome#20194 by @dependabot[bot]
- Bump cryptography from 48.0.1 to 50.0.2 esphome#20193 by @dependabot[bot]
- Bump ruff from 0.16.9 to 0.16.10 esphome#20196 by @dependabot[bot]
- Bump smpclient from 7.2.0 to 7.3.0 esphome#17443 by @dependabot[bot]
- Bump pylint from 4.1.1 to 4.1.2 esphome#20249 by @dependabot[bot]
- Update tzdata requirement from >=2026.4 to >=2026.5 esphome#20250 by @dependabot[bot]
- Bump filelock from 4.0.9 to 4.0.10 esphome#20298 by @dependabot[bot]
- Bump platformdirs from 4.12.2 to 4.12.3 esphome#20297 by @dependabot[bot]