ESPHome 2026.5.0 - May 2026
Full list of changes
Section titled “Full list of changes”New Features
Section titled “New Features”- [epaper_spi] Added Waveshare 3.97inch E-Paper Display esphome#15466 by @Farmer-shin (new-feature)
- [audio] Add/configure microDecoder library in preparation for use in future PRs esphome#15679 by @kahrendt (new-feature)
- [zephyr_ble_server] add support for on_numeric_comparison_request esphome#14400 by @tomaszduda23 (new-feature)
- [mipi_spi] Add Waveshare C6 LCD 1.47 esphome#15776 by @clydebarrow (new-feature)
- [mipi_spi] Add Sunton ESP32-2424S012 esphome#15812 by @clydebarrow (new-feature)
- [mipi_rgb] Add definitions for sunton displays esphome#15858 by @guillempages (new-feature)
- [mipi_dsi] Add Seeed reTerminal d1001 display esphome#15867 by @clydebarrow (new-feature)
- [epaper_spi] Support SSD1683 and GDEY042T81 4.2 inch display esphome#13910 by @Eelviny (new-feature)
- [lock] Implemented open states support esphome#15120 by @egormanga (new-feature)
- [esp32_ble] Add
use_psramoption to offload BT memory allocation to SPIRAM esphome#15644 by @edwardtfn (new-feature) - [sensor] Filter to round to significant digits esphome#11157 by @gapple (new-feature)
- [esp32] add watchdog_timeout configuration variable esphome#15908 by @rwrozelle (new-feature)
- [dsmr] Improve performance. Add missing sensors. Remove Crypto-no-arduino. esphome#15875 by @PolarGoose (new-feature)
- [ac_dimmer] Zero-crossing interrupt type esphome#15862 by @aselafernando (new-feature)
- [radio_frequency] Add experimental
radio_frequencyentity type (base component + API) esphome#15556 by @kbx81 (new-component) (new-feature) - [zigbee][core] Add support for Zigbee binary sensors on ESP32 H2 and C6 esphome#11553 by @luar123 (new-feature)
- [audio_http] Add a media source for playing audio from HTTP URLs esphome#15741 by @kahrendt (new-component) (new-feature) (new-platform)
- [sendspin] Add initial Sendspin hub component (PR1) esphome#15924 by @kahrendt (new-component) (new-feature)
- [sendspin] Add controller role and sendspin.switch action (PR2) esphome#15929 by @kahrendt (new-feature)
- [sendspin] Add a group media player controller (PR3) esphome#15948 by @kahrendt (new-feature) (new-platform)
- [sendspin] Add a Sendspin media source component for playing audio (PR4) esphome#15950 by @kahrendt (new-feature) (new-platform)
- [sendspin] Add a metadata text sensor component esphome#15969 by @kahrendt (new-feature) (new-platform)
- [sendspin] Add metadata sensor component esphome#15971 by @kahrendt (new-feature) (new-platform)
- [ir_rf_proxy] Extend for RF esphome#15744 by @kbx81 (new-feature) (new-platform)
- [api] Expose TemperatureUnit in water heater and climate api esphome#15815 by @jhenkens (new-feature)
- [lvgl] Allow a binary sensor to report checked or pressed state esphome#16073 by @clydebarrow (new-feature)
- [nrf52] make reset pin optional esphome#11684 by @tomaszduda23 (new-feature)
- [mapping] Implement default value esphome#15861 by @clydebarrow (new-feature)
- [lvgl] Additional layout features esphome#16041 by @clydebarrow (new-feature)
- [wifi] Add phy_mode option for ESP8266 esphome#16055 by @bdraco (new-feature)
- [sx126x] Add cold sleep option and drop unused RTC wakeup bit esphome#16144 by @swoboda1337 (new-feature)
- [audio] Enable specific codecs and configure advanced features esphome#16166 by @kahrendt (new-feature)
- [sendspin] Use sendspin-cpp to v0.4.0 to reduce stuttering esphome#16178 by @kahrendt (new-feature)
- [usb_host][usb_uart] Add configurable max packet size esphome#14584 by @p1ngb4ck (new-feature)
- [ota] Add extended OTA protocol esphome#16164 by @Mat931 (new-feature)
- [ota] Add partition table update functionality to ota component esphome#15780 by @Mat931 (new-feature)
- [cli] Add —ota-platform flag to pick web_server or native API OTA esphome#16207 by @bdraco (new-feature)
- [lvgl] Allow line points as percentages esphome#16209 by @clydebarrow (new-feature)
- [lvgl] Pass touch point to touch event lambdas esphome#16272 by @clydebarrow (new-feature)
- [sensor] Add alternate calibration format for ntc esphome#15937 by @clydebarrow (new-feature)
- [speaker] Add SPDIF output support esphome#8065 by @johnboiles (new-feature)
- [ota] Add bootloader update functionality to ota component esphome#16238 by @Mat931 (new-feature)
- [core] Native idf full support esphome#14678 by @diorcety (new-feature)
- [zigbee] Add sensor support on esp32 esphome#16026 by @luar123 (new-feature)
- [ota] Implement host platform OTA backend with re-exec for integration testing esphome#16304 by @bdraco (new-feature)
- [zigbee] add on_join trigger for esp32 esphome#16060 by @luar123 (new-feature)
- [zigbee] Add power_source option to esp32 esphome#16062 by @luar123 (new-feature)
- [lvgl] Add new trigger
on_updateand new number option esphome#16312 by @clydebarrow (new-feature) - [mitsubishi_cn105] Add C++ API for setting/clearing remote room temperature esphome#15558 by @crnjan (new-feature)
- [cli] Add config-hash command esphome#15548 by @ccutrer (new-feature)
- [safe_mode] Allow recovering soft-bricked devices via reboot to recovery partition esphome#16339 by @Mat931 (new-feature)
- [api][voice_assistant] Add second audio channel for voice_assistant esphome#16265 by @synesthesiam (new-feature)
- [radio_frequency] Add on_control trigger; ir_rf_proxy driver-agnostic esphome#16368 by @kbx81 (new-feature)
New Components
Section titled “New Components”- [radio_frequency] Add experimental
radio_frequencyentity type (base component + API) esphome#15556 by @kbx81 (new-component) (new-feature) - [audio_http] Add a media source for playing audio from HTTP URLs esphome#15741 by @kahrendt (new-component) (new-feature) (new-platform)
- [sendspin] Add initial Sendspin hub component (PR1) esphome#15924 by @kahrendt (new-component) (new-feature)
- [modbus] Split modbus_server from modbus_controller esphome#15509 by @exciton (new-component) (breaking-change)
- [core] Move core ring buffer to helper component esphome#16298 by @kahrendt (new-component)
New Platforms
Section titled “New Platforms”- [audio_http] Add a media source for playing audio from HTTP URLs esphome#15741 by @kahrendt (new-component) (new-feature) (new-platform)
- [sendspin] Add a group media player controller (PR3) esphome#15948 by @kahrendt (new-feature) (new-platform)
- [sendspin] Add a Sendspin media source component for playing audio (PR4) esphome#15950 by @kahrendt (new-feature) (new-platform)
- [sendspin] Add a metadata text sensor component esphome#15969 by @kahrendt (new-feature) (new-platform)
- [sendspin] Add metadata sensor component esphome#15971 by @kahrendt (new-feature) (new-platform)
- [ir_rf_proxy] Extend for RF esphome#15744 by @kbx81 (new-feature) (new-platform)
Breaking Changes
Section titled “Breaking Changes”- [esphome][ota] Disable loop while idle, wake on listening-socket activity esphome#15636 by @bdraco (breaking-change)
- [api] Replace clients_ std::vector with compile-time std::array + uint8_t count esphome#15889 by @bdraco (breaking-change)
- [core] decouple main loop cadence from scheduler wake timing esphome#15792 by @bdraco (breaking-change)
- [one_wire] Reset bus before SKIP ROM command esphome#14669 by @mikeytdisco (breaking-change)
- [media_player][speaker][speaker_source] Centralize preferred format codegen esphome#14771 by @kahrendt (breaking-change)
- [esp32_ble_tracker] Hold COEX_PREFER_BT for the lifetime of any active connection esphome#16036 by @plazarre (breaking-change)
- [modbus] Split modbus_server from modbus_controller esphome#15509 by @exciton (new-component) (breaking-change)
- [output] Gate FloatOutput power scaling fields behind USE_OUTPUT_FLOAT_POWER_SCALING esphome#15998 by @bdraco (breaking-change)
- [sensor] Pack ThrottleAverageFilter have_nan_ into n_ bitfield (-4 B/instance) esphome#16169 by @bdraco (breaking-change)
- [audio][media_player][speaker] WAV decoding is no longer always built esphome#16244 by @kahrendt (breaking-change)
- [audio_file][speaker] Eliminate code duplication for files built into firmware esphome#16266 by @kahrendt (breaking-change)
All changes
Section titled “All changes”- [ade7953_spi] Fix SPI mode on esp-idf esphome#14824 by @angelnu
- [ci] Fix status-check-labels workflow flooding CI queue esphome#15585 by @bdraco
- [safe_mode] Use loop component start time instead of millis() esphome#15591 by @bdraco
- [safe_mode] Combine related OTA rollback log messages esphome#15592 by @bdraco
- [socket] Document ready() contract: callers must drain or track esphome#15590 by @bdraco
- [ci] Use —base-only for memory impact builds esphome#15598 by @bdraco
- [core] Add CodSpeed benchmarks for hot helper functions esphome#15593 by @bdraco
- [CI] Add org fork detection warning to auto-label PR workflow esphome#15588 by @jesserockz
- [epaper_spi] Added Waveshare 3.97inch E-Paper Display esphome#15466 by @Farmer-shin (new-feature)
- [cc1101] Extract chip configuration into configure() method esphome#15635 by @swoboda1337
- [CI] Don’t run label workflow on closed/merged PRs esphome#15678 by @jesserockz
- [esp32] Use static allocation for loop task instead of heap esphome#15659 by @schdro
- [benchmark] Use -Os to match firmware optimization level esphome#15688 by @bdraco
- [benchmark] Add SubscribeLogsResponse encode benchmarks esphome#15696 by @bdraco
- [bme68x_bsec2] use esphome-libs wrappers for ESP32 esphome#15697 by @diorcety
- [zephyr] Remove redundant yield() from main loop esphome#15694 by @bdraco
- [core] Move FILTER_PLATFORMIO_LINES into platformio_runner esphome#15707 by @swoboda1337
- [scheduler] Force-inline process_defer_queue_() fast path esphome#15686 by @bdraco
- [scheduler] Force-inline cleanup_() fast path esphome#15683 by @bdraco
- [scheduler] Force-inline process_to_add() fast path esphome#15685 by @bdraco
- [heatpumpir] Bump tonia/HeatpumpIR to 1.0.41 esphome#15711 by @swoboda1337
- [core] Optimize format_hex_internal by splitting separator loop esphome#15594 by @bdraco
- [audio] Add/configure microDecoder library in preparation for use in future PRs esphome#15679 by @kahrendt (new-feature)
- [ld24xx] Replace heap-allocated SensorWithDedup with inline SensorWithDedup esphome#15676 by @bdraco
- [core] Add uint32_to_str helper and use in preferences esphome#15597 by @bdraco
- [light] Deduplicate color_uncorrect channel math via shared helper esphome#15727 by @bdraco
- [esphome][ota] Disable loop while idle, wake on listening-socket activity esphome#15636 by @bdraco (breaking-change)
- [core] Inline Millis64Impl::compute() on single-threaded platforms esphome#15684 by @bdraco
- [status_led] Disable loop when idle esphome#15642 by @bdraco
- [core] Deduplicate entity type boilerplate with X-macro pattern esphome#15618 by @bdraco
- [zephyr_ble_server] add support for on_numeric_comparison_request esphome#14400 by @tomaszduda23 (new-feature)
- [tm1637] Add set_brightness method esphome#15322 by @guillempages
- [mipi_spi] Add Waveshare C6 LCD 1.47 esphome#15776 by @clydebarrow (new-feature)
- [core] Add missing exception chaining (raise from) across codebase esphome#15648 by @SaVi456
- [gpio] Keep interrupts enabled for gpio binary_sensor shared with deep_sleep wakeup pin esphome#15020 by @rwalker777
- [libretiny] Make IRAM_ATTR functional on RTL87xx and LN882H esphome#15766 by @bdraco
- Fix typo in devcontainer.json esphome#15791 by @yvesf
- [wireguard] Bump esp_wireguard to 0.4.5 for ESP-IDF v6 esphome#15804 by @diorcety
- [wifi] Guard retry_phase_to_log_string with log level check to fix warning esphome#15801 by @Bl00d-B0b
- [core] Expose App.wake_loop_isrsafe() on ESP8266 esphome#15797 by @bdraco
- [mipi_spi] Add Sunton ESP32-2424S012 esphome#15812 by @clydebarrow (new-feature)
- [ci] Scope local pylint pre-commit hook to esphome/ esphome#15818 by @bdraco
- [bme680_bsec] [bme68x_bsec2] Mark the two BSEC variants as mutually exclusive esphome#15826 by @bdraco
- [ci] Honor CONFLICTS_WITH when grouping component tests esphome#15834 by @bdraco
- [ld2412] Fix flaky integration test race condition esphome#15833 by @bdraco
- [core] Default PollingComponent() to not run when codegen is bypassed esphome#15832 by @bdraco
- [lvgl] Fix angles for arc esphome#15860 by @clydebarrow
- [mipi_rgb] Add definitions for sunton displays esphome#15858 by @guillempages (new-feature)
- [rtttl] allow any control parameters order and default value fallback esphome#14438 by @ximex
- [modbus] Simplify payload size validation in modbus_helpers esphome#15838 by @ruimarinho
- [mipi_dsi] Add Seeed reTerminal d1001 display esphome#15867 by @clydebarrow (new-feature)
- [epaper_spi] Support SSD1683 and GDEY042T81 4.2 inch display esphome#13910 by @Eelviny (new-feature)
- [micro_wake_word] Use ESPMicroSpeechFeatures from Espressif registry (v1.2.3) esphome#15879 by @kahrendt
- [light] Force-inline LightCall::set_flag_/clear_flag_ esphome#15729 by @bdraco
- [core] raise WDT_FEED_INTERVAL_MS from 3 ms to 300 ms esphome#15846 by @bdraco
- [core] Move heap-allocating helpers to alloc_helpers.h/cpp esphome#15623 by @bdraco
- [core] Remove pre-sleep socket scan from fast select path esphome#15639 by @bdraco
- [ltr390] Reduce data polling delay and timeout esphome#15507 by @bdraco
- [core] Make buf_append_str PROGMEM-aware on ESP8266 esphome#15738 by @bdraco
- [sensor] Specialize
throttle_with_priorityNaN-only case esphome#15823 by @bdraco - [qmc5883l] Use GPIO interrupt when DRDY pin is configured esphome#15876 by @swoboda1337
- [api] Replace clients_ std::vector with compile-time std::array + uint8_t count esphome#15889 by @bdraco (breaking-change)
- [zwave_proxy] Inline loop() hot-path fast-paths for response_handler_ and process_uart_ esphome#15887 by @bdraco
- [core] Inline api_is_connected() for hot-path callers esphome#15888 by @bdraco
- [core] Replace strnlen in buf_append_str for Zephyr compatibility esphome#15892 by @bdraco
- [core] decouple main loop cadence from scheduler wake timing esphome#15792 by @bdraco (breaking-change)
- [debug] Migrate trivial buf_append_printf sites to buf_append_str esphome#15885 by @bdraco
- [lock] Implemented open states support esphome#15120 by @egormanga (new-feature)
- [template] Use placement new for template text restore saver esphome#15883 by @bdraco
- [esp32_ble] Add
use_psramoption to offload BT memory allocation to SPIRAM esphome#15644 by @edwardtfn (new-feature) - [sensor] Filter to round to significant digits esphome#11157 by @gapple (new-feature)
- [bl0906] Disable loop when idle and introduce BL0906Stage enum esphome#15884 by @jesserockz
- [substitutions] Improve error messages with include stack trace esphome#15874 by @jpeletier
- [wifi] Use queue abstraction for LibreTiny WiFi events esphome#15343 by @bdraco
- [rp2040] Tune oversized lwIP defaults for ESPHome esphome#14843 by @bdraco
- [core] Optimize value_accuracy_to_buf to avoid snprintf esphome#15596 by @bdraco
- [light] Reduce validate_ clamp code size and speed up unit-range clamps esphome#15728 by @bdraco
- [core] Use MAC_ADDRESS_BUFFER_SIZE constant instead of duplicated literal esphome#15913 by @bdraco
- [esp32] Use xTaskGetTickCount() for millis() when tick rate is 1kHz esphome#15661 by @bdraco
- [core] Collapse adjacent USE_HOST ifdef blocks in Application esphome#15914 by @bdraco
- [libretiny] Inline xTaskGetTickCount() for millis() fast path esphome#15918 by @bdraco
- [core] Dedupe yield() fast path in wakeable_delay and always-inline esphome#15915 by @bdraco
- [core] RAII guard for component loop phase esphome#15897 by @bdraco
- [esp32] add watchdog_timeout configuration variable esphome#15908 by @rwrozelle (new-feature)
- [network] Reorder IPv6 configuration for network components esphome#11694 by @lboue
- [cse7761] bidirectional active power esphome#15162 by @TimoPtr
- [one_wire] Reset bus before SKIP ROM command esphome#14669 by @mikeytdisco (breaking-change)
- [dsmr] Improve performance. Add missing sensors. Remove Crypto-no-arduino. esphome#15875 by @PolarGoose (new-feature)
- [internal_temperature] Fix internal Temperature discrepancy on BK7231T esphome#15771 by @rishabmehta7
- [ac_dimmer] Zero-crossing interrupt type esphome#15862 by @aselafernando (new-feature)
- [i2s_audio] Split speaker into base class and standard subclass esphome#15404 by @kbx81
- [api_protobuf] Support compound
ifdefconditions in proto generator esphome#15930 by @kbx81 - [ota] Make set_auth_password() lambda-callable via empty-password opt-in esphome#15928 by @swoboda1337
- [core] Move host socket-select wake mechanism into wake.h/wake.cpp esphome#15931 by @bdraco
- [radio_frequency] Add experimental
radio_frequencyentity type (base component + API) esphome#15556 by @kbx81 (new-component) (new-feature) - [core] feed_wdt wraps feed_wdt_with_time esphome#15932 by @bdraco
- [dsmr] Small refactoring: Move
Aes128GcmDecryptorImpltype insideesphome::dsmrnamespace. esphome#15940 by @PolarGoose - [ci] Better explain too-big bot review message esphome#15939 by @bdraco
- [scheduler][core] Lock-free fast-path on ESPHOME_THREAD_MULTI_NO_ATOMICS via __atomic builtins esphome#15947 by @bdraco
- [core] Clean up stale includes and inline yield_with_select_ in application esphome#15945 by @bdraco
- [core] Raise WDT_FEED_INTERVAL_MS to 2000ms on BK72xx esphome#15943 by @bdraco
- [wifi] Avoid BDK 3.0.78 wifi_event_sta_disconnected_t collision on BK72xx esphome#15942 by @bdraco
- [api] Fall back to plaintext for logger connections esphome#15938 by @bdraco
- [core] Allow finding all devices as target that match mac suffix esphome#13135 by @balloob
- [zigbee][core] Add support for Zigbee binary sensors on ESP32 H2 and C6 esphome#11553 by @luar123 (new-feature)
- [audio_http] Add a media source for playing audio from HTTP URLs esphome#15741 by @kahrendt (new-component) (new-feature) (new-platform)
- [ci] Auto-close PRs opened from a fork’s default branch esphome#15957 by @bdraco
- [sendspin] Add initial Sendspin hub component (PR1) esphome#15924 by @kahrendt (new-component) (new-feature)
- [sendspin] Add controller role and sendspin.switch action (PR2) esphome#15929 by @kahrendt (new-feature)
- [sendspin] Add a group media player controller (PR3) esphome#15948 by @kahrendt (new-feature) (new-platform)
- [deep_sleep][logger][zephyr][zigbee] add deep sleep support with zigbee wakeup esphome#13950 by @tomaszduda23
- [sendspin] Add a Sendspin media source component for playing audio (PR4) esphome#15950 by @kahrendt (new-feature) (new-platform)
- [sendspin] Add a metadata text sensor component esphome#15969 by @kahrendt (new-feature) (new-platform)
- [core] Scheduler: don’t sleep while defer queue is non-empty esphome#15968 by @bdraco
- [web_server_idf] Fix cross-thread race on SSE session state esphome#15967 by @bdraco
- [media_player][speaker][speaker_source] Centralize preferred format codegen esphome#14771 by @kahrendt (breaking-change)
- [sendspin] Add metadata sensor component esphome#15971 by @kahrendt (new-feature) (new-platform)
- [sendspin] remove year and track number text sensors and refactor esphome#15975 by @kahrendt
- [sendspin] Bumps sendspin-cpp library for a bugfix esphome#15976 by @kahrendt
- [packages] Fix premature substitution of vars in remote package files esphome#15997 by @jpeletier
- [dashboard] Add —no-states support to logs WebSocket handler esphome#15993 by @bdraco
- [ci] Trigger CodSpeed benchmarks on host platform changes esphome#15995 by @bdraco
- [ir_rf_proxy] Extend for RF esphome#15744 by @kbx81 (new-feature) (new-platform)
- [safe_mode] Use StaticCallbackManager for on_safe_mode esphome#16002 by @bdraco
- [rtttl] Gate on_finished_playback callback storage behind define esphome#16003 by @bdraco
- [host] Use integer math in millis()/micros() esphome#15994 by @bdraco
- [core] Isolate generated build metadata esphome#16007 by @Komzpa
- [esp32] Make ESP-IDF builds reproducible esphome#16008 by @Komzpa
- [mitsubishi_cn105] add support for half-degree temperature setpoint esphome#15919 by @crnjan
- [ci-custom] Suggest uint32_to_str/int8_to_str for integer formatting esphome#15970 by @bdraco
- [core] Raise ESP32 WDT feed interval to 1/5 of configured timeout esphome#15984 by @bdraco
- [bluetooth_proxy] Partial revert of loop() → set_interval migration esphome#15992 by @bdraco
- [bh1750] Downgrade per-reading Illuminance log to verbose esphome#16005 by @bdraco
- [bluetooth_proxy] Drop redundant remote_bda_ write in connect handler esphome#16000 by @bdraco
- [bk72xx] Prepare for BK7238 support esphome#16018 by @bdraco
- [core] Unify
skip_external_updateand honor it in external_files for fasteresphome logsesphome#16016 by @bdraco - [api] Expose TemperatureUnit in water heater and climate api esphome#15815 by @jhenkens (new-feature)
- [core] Combine set_component_source_ + register_component_ into one call esphome#16029 by @bdraco
- [zigbee] add router for nrf52 esphome#16034 by @tomaszduda23
- [core] Combine entity register + configure_entity_ into one call esphome#16030 by @bdraco
- [esp32_ble_tracker] Hold COEX_PREFER_BT for the lifetime of any active connection esphome#16036 by @plazarre (breaking-change)
- [audio] Bump microDecoder library to v0.2.0 esphome#16054 by @kahrendt
- [core] Freshen loop_component_start_time_ before scheduler dispatch esphome#16064 by @bdraco
- [feedback] Use App.get_loop_component_start_time() and constexpr timeout id esphome#16063 by @bdraco
- [ota] Add wall-clock timeout to OTA data transfer loop esphome#16047 by @bdraco
- [esp32] Make Arduino app metadata reproducible esphome#16053 by @Komzpa
- [ci-custom] Lint imports of esphome.components.const outside components esphome#16068 by @jesserockz
- [lvgl] Allow a binary sensor to report checked or pressed state esphome#16073 by @clydebarrow (new-feature)
- [api] add open states for
locktoapi.protoesphome#15901 by @egormanga - [core] Split wake.{h,cpp} into per-platform files esphome#15978 by @bdraco
- [ci] Add import-time regression check for esphome.main esphome#15954 by @bdraco
- [modbus] Split modbus_server from modbus_controller esphome#15509 by @exciton (new-component) (breaking-change)
- [core] wakeable_delay: yield on already-woken fast path (ESP8266, RP2040) esphome#16045 by @bdraco
- [nrf52] implement wake_loop_threadsafe/wakeable_delay esphome#16032 by @tomaszduda23
- [nrf52] make reset pin optional esphome#11684 by @tomaszduda23 (new-feature)
- [watchdog] Fix WatchdogManager on single core apps esphome#16074 by @Mat931
- [ci] Install requirements_dev.txt in the cached venv esphome#16082 by @swoboda1337
- Add dependencies.lock to .gitignore esphome#16081 by @swoboda1337
- [spi][http_request][demo] Fix latent clang-tidy issues in headers esphome#16080 by @swoboda1337
- [tlc5971] Remove dead bit-banging delay code esphome#16086 by @swoboda1337
- [pipsolar] Guard handle_qmod_ against empty message esphome#16085 by @swoboda1337
- [lvgl] Add utility gradient function esphome#16048 by @clydebarrow
- [mapping] Implement default value esphome#15861 by @clydebarrow (new-feature)
- [bme680] Rename cal1/cal2 to coeff1/coeff2 esphome#16087 by @swoboda1337
- [dfrobot_sen0395] Brace single-statement else-if in enqueue() esphome#16089 by @swoboda1337
- [nextion] Use std::string::starts_with for HTTPS URL check esphome#16090 by @swoboda1337
- [ezo] Use make_unique to construct EzoCommand esphome#16092 by @swoboda1337
- [esp32_ble] Widen loop variable in as_128bit() to match uuid_.len type esphome#16088 by @swoboda1337
- [wifi] Avoid copying EAP config in three connect handlers esphome#16094 by @swoboda1337
- [json] NOLINT StackAddressEscape false positive in parse_json esphome#16091 by @swoboda1337
- [binary_sensor] Bind at_index_ once in MultiClick on_state_ esphome#16095 by @swoboda1337
- [haier] Brace single-statement else-if in smartair2_climate esphome#16098 by @swoboda1337
- [online_image][sim800l] Use std::string::starts_with for prefix checks esphome#16097 by @swoboda1337
- [i2c] NOLINT readability-identifier-naming on Zephyr struct forward-decl esphome#16099 by @swoboda1337
- [core] Reduce copies in Callback/CallbackManager call paths esphome#16093 by @swoboda1337
- [lvgl] Additional layout features esphome#16041 by @clydebarrow (new-feature)
- [inkbird_ibsth1_mini][speaker][speaker_source] Fix performance-unnecessary-copy-initialization esphome#16101 by @swoboda1337
- [esp8266] Replace millis() with fast accumulator, wrap Arduino callers esphome#15662 by @bdraco
- [mdns] Drive MDNS.update() polling from IP state events on ESP8266/RP2040 esphome#15961 by @bdraco
- [api] Hoist memw out of socket ready check to once per main-loop iter esphome#15996 by @bdraco
- [sprinkler][pn532] Fix bugprone-unchecked-optional-access esphome#16102 by @swoboda1337
- [api] Use custom deleter to fix incomplete-type error on macOS libc++ esphome#16050 by @bdraco
- [core] Inline ContinuationAction in If/While/RepeatAction esphome#16040 by @bdraco
- [output] Gate FloatOutput power scaling fields behind USE_OUTPUT_FLOAT_POWER_SCALING esphome#15998 by @bdraco (breaking-change)
- [api] Add 48-bit MAC address varint fast path for BLE advertisements esphome#15988 by @bdraco
- [git] Make ref fetches and submodule updates shallow esphome#16014 by @bdraco
- [core] Use ETag in external_files cache to fix re-downloads from raw.githubusercontent.com esphome#16020 by @bdraco
- [feedback] Fix bugprone-unchecked-optional-access in start_direction_ esphome#16103 by @swoboda1337
- [analyze_memory] Attribute main.cpp setup()/loop() to esphome core esphome#16033 by @bdraco
- [light] Use bitmask template for LightControlAction unused fields esphome#16039 by @bdraco
- [light] Use constexpr template for ToggleAction transition_length esphome#16037 by @bdraco
- [light] Use constexpr template for DimRelativeAction transition_length esphome#16038 by @bdraco
- [cover] Add cover.control / cover.template.publish coverage to template tests esphome#16051 by @bdraco
- [climate] Add climate.control coverage to component tests via thermostat esphome#16052 by @bdraco
- [wifi] Add phy_mode option for ESP8266 esphome#16055 by @bdraco (new-feature)
- [script] Fix cpp_unit_test crash for non-MULTI_CONF platform components esphome#16104 by @bdraco
- [core] Download external_files in parallel esphome#16021 by @bdraco
- [api] Avoid JsonDocument copy-and-swap operator= in ActionResponse ctor esphome#16106 by @swoboda1337
- [time] Fix bugprone-unchecked-optional-access in CronTrigger::check_time_ esphome#16107 by @swoboda1337
- [light] Fold LightControlAction fields into a single stateless lambda esphome#16118 by @bdraco
- [tormatic] Use .value() for checked optional access in read_gate_status_ esphome#16121 by @swoboda1337
- [api] Extend NOLINT to cover bugprone-random-generator-seed in MAC varint test esphome#16120 by @swoboda1337
- [haier] Fix bugprone-unchecked-optional-access; switch HardwareInfo to char[9] esphome#16124 by @swoboda1337
- [mixer_speaker] NOLINT bugprone-unchecked-optional-access in audio_mixer_task esphome#16130 by @swoboda1337
- [aqi] Use std::max initializer-list for non-negative AQI clamp esphome#16134 by @swoboda1337
- [kamstrup_kmp][toshiba] Fix signed/unsigned comparisons against sizeof esphome#16135 by @swoboda1337
- [remote_base][core] Drop redundant typename in dependent type contexts esphome#16137 by @swoboda1337
- [core] Inline HAL clock wrappers and split hal.h into per-platform headers esphome#15977 by @bdraco
- [valve] Add tests for valve.control action field combinations esphome#16126 by @bdraco
- [fan] Add tests for fan.turn_on action field combinations esphome#16125 by @bdraco
- [core] Catch body-read errors in download_content esphome#16023 by @bdraco
- [ens160] Fix sensor initialization timing esphome#16024 by @GelidusResearch
- [core] Defer heavy module-scope imports in main, loader, and config esphome#15955 by @bdraco
- [espnow] Cleanup method visibility and naming esphome#16109 by @clydebarrow
- [scheduler] Add self-keyed timer API for callers without a Component esphome#16127 by @bdraco
- [watchdog] Use default CHECK_IDLE_TASK and PANIC when configuring the watchdog esphome#16142 by @Mat931
- [fan] Fold TurnOnAction fields into a single stateless lambda esphome#16122 by @bdraco
- [valve] Fold ControlAction fields into a single stateless lambda esphome#16123 by @bdraco
- [esp32] Move HAL bodies into components/esp32/hal.cpp + inline trivial dispatches esphome#16111 by @bdraco
- [ota] Use WatchdogManager for OTA on ESP32 esphome#16138 by @Mat931
- [ci] Bump clang-tidy from 18.1.8 to 22.1.0.1 esphome#16078 by @swoboda1337
- [core] DelayAction: drop Component inheritance, use self-keyed scheduler esphome#16129 by @bdraco
- [sx126x] Add cold sleep option and drop unused RTC wakeup bit esphome#16144 by @swoboda1337 (new-feature)
- [esp32] Add ESP-IDF 6.0.1 platform entry esphome#16146 by @swoboda1337
- [core] Fix null deref in WarnIfComponentBlockingGuard for self-keyed scheduler timers esphome#16150 by @bdraco
- [ci] Correct version comment on create-github-app-token pin esphome#16156 by @jesserockz
- [ci] Use client-id for GitHub App token generation esphome#16155 by @jesserockz
- [esp8266] Move HAL bodies into components/esp8266/hal.cpp + inline arch_init esphome#16112 by @bdraco
- [st7789v] Add deprecation warnings esphome#16162 by @clydebarrow
- [audio] Enable specific codecs and configure advanced features esphome#16166 by @kahrendt (new-feature)
- [audio] bump microOpus to v0.4.0 to use fixed-point by default on ESP32 esphome#16168 by @kahrendt
- [core] Simplify RAMAllocator and add internal fallback to external mode esphome#16171 by @kahrendt
- [libretiny] Move HAL bodies into components/libretiny/hal.cpp + inline trivial dispatches esphome#16113 by @bdraco
- [ci] Split integration tests into 3 buckets when count is more than 10 esphome#16152 by @bdraco
- [sensor] Drop Component from filter classes, use self-keyed scheduler esphome#16132 by @bdraco
- [bk72xx] Apply CFG_SUPPORT_BLE=0 SDK option to BK7238 esphome#16181 by @bdraco
- [sensor] Pack ThrottleAverageFilter have_nan_ into n_ bitfield (-4 B/instance) esphome#16169 by @bdraco (breaking-change)
- [core] Inline loop gate expression to avoid stale local reuse esphome#16167 by @bdraco
- [api] Add encode/decode benchmarks for Z-Wave, IR/RF, and serial proxy messages esphome#16157 by @bdraco
- [core] Drop unused DELAY_ACTION from InternalSchedulerID enum esphome#16151 by @bdraco
- [mdns] Broadcast config_hash TXT record on _esphomelib._tcp esphome#16145 by @bdraco
- [binary_sensor] Drop Component from filter classes, use self-keyed scheduler esphome#16131 by @bdraco
- [rp2040] Move HAL bodies into components/rp2040/hal.cpp + inline trivial dispatches esphome#16114 by @bdraco
- [climate] Fold ControlAction fields into a single stateless lambda esphome#16044 by @bdraco
- [host] Move HAL bodies into components/host/hal.cpp + inline trivial dispatches esphome#16115 by @bdraco
- [zephyr] Move HAL bodies into components/zephyr/hal.cpp + inline trivial dispatches esphome#16116 by @bdraco
- [sendspin] Use sendspin-cpp to v0.4.0 to reduce stuttering esphome#16178 by @kahrendt (new-feature)
- [esp32_hosted] Bump esp_hosted to 2.12.6 and esp_wifi_remote to 1.5.1 esphome#16176 by @swoboda1337
- [zigbee] Add newlib compatibility for zigbee sdk in idf 6 esphome#16174 by @luar123
- [core] Enable ruff FLY (flynt) lint family esphome#16182 by @bdraco
- [core] Move per-platform hal_platform.h into components/platform/hal.h esphome#16183 by @bdraco
- [usb_host][usb_uart] Add configurable max packet size esphome#14584 by @p1ngb4ck (new-feature)
- [core] Support allocating ring buffer in internal memory esphome#16187 by @kahrendt
- [ota] Add extended OTA protocol esphome#16164 by @Mat931 (new-feature)
- [nextion] TFT upload no longer fails when the display sends a split
0x08ack esphome#16205 by @edwardtfn - [zephyr] feed watchdog early. Otherwise OTA may rollback. esphome#16218 by @tomaszduda23
- [ota] Add partition table update functionality to ota component esphome#15780 by @Mat931 (new-feature)
- [esp8266] Lower WDT_FEED_INTERVAL_MS to 100 ms esphome#16197 by @bdraco
- [fan] Fix TurnOnAction trigger args with reference types esphome#16222 by @bdraco
- [climate] Fix ControlAction trigger args with reference types esphome#16221 by @bdraco
- [light] Fix LightControlAction trigger args with reference types esphome#16220 by @bdraco
- [tests] Fix flaky host_mode_climate_basic_state esphome#16225 by @bdraco
- [valve] Fix ControlAction trigger args with reference types esphome#16223 by @bdraco
- [ci] Run downstream device-builder tests against PR Python code esphome#16214 by @bdraco
- [dashboard] Stabilize device-builder dashboard backend’s API surface esphome#16206 by @bdraco
- [cover] Fold ControlAction/CoverPublishAction fields into stateless lambdas esphome#16046 by @bdraco
- [api] Mark high-volume proxy messages as speed_optimized (Infrared/RF, Z-Wave, serial) esphome#16159 by @bdraco
- [tests] Fix flaky host_mode_climate_basic_state integration test esphome#16192 by @bdraco
- [api] Don’t tear down log connection on stack-trace decode failure esphome#16196 by @bdraco
- [binary_sensor] Drop Component from AutorepeatFilter, use self-keyed scheduler esphome#16191 by @bdraco
- [zephyr] Add nRF52 component tests so CI runs on zephyr-only changes esphome#16188 by @bdraco
- [tests] Drop duplicate on_boot_restore_from in host_mode_climate_basic_state esphome#16228 by @bdraco
- [sensor] Document why TimeoutFilterBase intentionally keeps Component esphome#16194 by @bdraco
- [main] Move stacktrace handling out of platformio_api and FlashImage into platform components/util esphome#16186 by @diorcety
- [audio] Use the microMP3 library instead of esp-audio-libs esphome#16236 by @kahrendt
- [http_request] remove slow http_request warning on 8266 esphome#16239 by @oarcher
- [audio][media_player][speaker] WAV decoding is no longer always built esphome#16244 by @kahrendt (breaking-change)
- [audio_file] Use microDecoder library instead of manual task management/decoding esphome#16237 by @kahrendt
- [platformio_api] Remove duplicated _strip_win_long_path_prefix esphome#16249 by @jesserockz
- [i2s_audio] Fix stereo playback when slot bit width exceeds data bit width esphome#16248 by @kbx81
- [audio] Bump microOpus to v0.4.1 esphome#16255 by @kahrendt
- [audio] Use the microWAV library for decoding esphome#16251 by @kahrendt
- [debug] Remove unused buffer in uicr lambda function esphome#16208 by @tomaszduda23
- [cli] Add —ota-platform flag to pick web_server or native API OTA esphome#16207 by @bdraco (new-feature)
- [core] Replace scheduler pool vector with unbounded intrusive freelist esphome#16172 by @bdraco
- [packages] Add resolve_packages single-call seam esphome#16235 by @bdraco
- [cover] Fix ControlAction / CoverPublishAction trigger args with reference types esphome#16227 by @bdraco
- [web_server] Use entity_types.h X-macro for ListEntitiesIterator declarations esphome#16077 by @bdraco
- [api] Use entity_types.h X-macro for ListEntitiesIterator declarations esphome#16076 by @bdraco
- [api] Use entity_types.h X-macro for InitialStateIterator declarations esphome#16075 by @bdraco
- [audio] Bump esp-audio-libs to v3.0.0 esphome#16263 by @kahrendt
- [nrf52] add reserve area for bootloader esphome#16204 by @tomaszduda23
- [logger] give a chance to print crash esphome#16203 by @tomaszduda23
- [audio_file][speaker] Eliminate code duplication for files built into firmware esphome#16266 by @kahrendt (breaking-change)
- [lvgl] Allow line points as percentages esphome#16209 by @clydebarrow (new-feature)
- [core] Skip external component update on
esphome cleanesphome#16268 by @bdraco - [script] Make pre-commit and helpers work on Windows esphome#16260 by @swoboda1337
- [http_request] Add regression test for light action inside on_response esphome#16270 by @bdraco
- [atm90e32] Fix calibration instance not saving in flash properly esphome#14152 by @CircuitSetup
- [packages] Make package !include vars visible to its substitutions block esphome#16274 by @bdraco
- [ota] Partition table update: Fix log messages esphome#16241 by @Mat931
- [bl0942] Remove broken 24-bit overflow tracking esphome#15650 by @DidierA
- [core] Adds acquire and release methods to the ring buffer class esphome#16277 by @kahrendt
- [i2s_audio] Optimize software volume control esphome#16278 by @kahrendt
- [audio] Bump microFLAC to v0.2.0 esphome#16279 by @kahrendt
- [resolver] Make RESOLVE_TIMEOUT configurable via environment variable esphome#15951 by @dbl-0
- [schema] Surface OnlyWith / OnlyWithout default + gate components in schema generator esphome#16276 by @bdraco
- [uart] Use
tcdrainfor flushing instead oftcflushon host esphome#14877 by @puddly - [lvgl] Pass touch point to touch event lambdas esphome#16272 by @clydebarrow (new-feature)
- [sensor] Add alternate calibration format for ntc esphome#15937 by @clydebarrow (new-feature)
- [helpers] Document write_file’s external consumer contract (esphome-device-builder) esphome#16290 by @bdraco
- [clang-tidy] Concatenate nested namespaces (1/7: components a-c) esphome#16294 by @swoboda1337
- [clang-tidy] Concatenate nested namespaces (2/7: components d-h) esphome#16295 by @swoboda1337
- [clang-tidy] Concatenate nested namespaces (3/7: components i-m) esphome#16297 by @swoboda1337
- [clang-tidy] Concatenate nested namespaces (4/7: components n-r) esphome#16301 by @swoboda1337
- [clang-tidy] Concatenate nested namespaces (5/7: components s) esphome#16302 by @swoboda1337
- [clang-tidy] Concatenate nested namespaces (6/7: components t-z) esphome#16305 by @swoboda1337
- [ci] Skip needs-docs for new components without CONFIG_SCHEMA esphome#16303 by @jesserockz
- [core] Move core ring buffer to helper component esphome#16298 by @kahrendt (new-component)
- [clang-tidy] Concatenate nested namespaces (7/7: tests, platform-gated, enable check) esphome#16307 by @swoboda1337
- [modbus_server] Reduce log spam esphome#16283 by @clydebarrow
- [clang-tidy] Enable readability-redundant-string-init esphome#16310 by @swoboda1337
- [climate][ektf2232] Remove deprecations scheduled for 2026.5.0 esphome#16289 by @swoboda1337
- [htu31d][kamstrup_kmp][ms8607] Use CRC functions from helpers.h esphome#16313 by @Mat931
- [speaker] Add SPDIF output support esphome#8065 by @johnboiles (new-feature)
- [i2s_audio] Refactor SPDIF output, fixing synchronization problems esphome#16319 by @kahrendt
- [openthread] add coroutine-with-priority COMMUNICATION esphome#16318 by @rwrozelle
- [ota] Add bootloader update functionality to ota component esphome#16238 by @Mat931 (new-feature)
- [docker] Silence CopyIgnoredFile warning for build context root esphome#16311 by @jesserockz
- [lvgl] Ensure that
on_valueevents fire on checked change esphome#16119 by @clydebarrow - [config_validation] Add a visibility UI-hint kwarg esphome#16267 by @bdraco
- [wifi][rp2040] Add stable wifi-capability helpers for device-builder esphome#16300 by @bdraco
- [cli] Tighten command_rename: scoped name rewrite, target-collision check esphome#16296 by @bdraco
- [core] Native idf full support esphome#14678 by @diorcety (new-feature)
- [ci] sync-device-classes: mint least-privilege App token esphome#16350 by @jesserockz
- [ci] codeowner-review-request: mint least-privilege App token esphome#16351 by @jesserockz
- [ci] Tighten workflow permissions to least-privilege esphome#16349 by @jesserockz
- [ci] Fix external-component-bot 403 on PR comments esphome#16354 by @jesserockz
- [tuya] allow status pin that doesn’t match the reported one esphome#16353 by @ssieb
- [core] Move platformio files to subfolder esphome#16347 by @swoboda1337
- [wifi] Accept lowercase variant in variant_has_wifi esphome#16345 by @bdraco
- [core] Add stable esphome.upload_targets module for port classification esphome#16346 by @bdraco
- [openthread] Remove-freertos-portmacro-header-include esphome#16338 by @rwrozelle
- [logger] fix crash on zephyr esphome#16330 by @tomaszduda23
- [nrf52] add message that west update is running esphome#16321 by @tomaszduda23
- [esp32_camera] Downgrade esp32-camera to 2.1.5 esphome#16293 by @RubenKelevra
- [thermostat] Fix supplemental action never firing via max run time esphome#16308 by @kbx81
- [nrf52][zephyr] prepare for native builds esphome#16193 by @tomaszduda23
- [zigbee] Add sensor support on esp32 esphome#16026 by @luar123 (new-feature)
- [ota] Implement host platform OTA backend with re-exec for integration testing esphome#16304 by @bdraco (new-feature)
- [zigbee] add on_join trigger for esp32 esphome#16060 by @luar123 (new-feature)
- [zigbee] Add power_source option to esp32 esphome#16062 by @luar123 (new-feature)
- [helpers] Re-enable ProgressBar under —dashboard mode esphome#16357 by @bdraco
- [lvgl] Add new trigger
on_updateand new number option esphome#16312 by @clydebarrow (new-feature) - [lvgl] Check for user defined LV_USE items esphome#16362 by @clydebarrow
- [ota] Improve OTA error messages esphome#16327 by @Mat931
- [cli] Add —no-states flag to run command esphome#16366 by @clydebarrow
- [core] Fix PROGMEM_STRING_TABLE placement on ESP8266 without flash log strings esphome#16373 by @swoboda1337
- [script] Fix array-type parameters in script.execute esphome#16374 by @bdraco
- [script] Preserve source order of enum options in language schema esphome#16371 by @jesserockz
- [core] allow defining run_compile in external_components esphome#16179 by @tomaszduda23
- [ci] Comment on PRs that touch the legacy dashboard esphome#16378 by @bdraco
- [rp2040] Bump arduino-pico framework to 5.6.0 esphome#16375 by @bdraco
- [sendspin] Fix client_id MAC mismatch with ethernet esphome#16331 by @kahrendt
- [mitsubishi_cn105] Add C++ API for setting/clearing remote room temperature esphome#15558 by @crnjan (new-feature)
- [sendspin] Updates sendspin-cpp to v0.5.0 esphome#16380 by @kahrendt
- [cli] Add config-hash command esphome#15548 by @ccutrer (new-feature)
- Move AI instructions to AGENTS.md esphome#16382 by @jesserockz
- [zigbee] Fix init-order and missing-field warnings on native ESP-IDF esphome#16389 by @swoboda1337
- [ms8607] Pin humidity i2c_id in test fixture esphome#16386 by @swoboda1337
- [audio] Add a RingBufferAudioSource esphome#16314 by @kahrendt
- [ci] Add validate.*.yaml for config-only component tests esphome#16384 by @jesserockz
- [micro_wake_word] Increase INFERENCE_TASK_STACK_SIZE to 8192 for P4 chip esphome#16390 by @ggalt
- [i2s_audio] Speaker uses new RingBufferAudioSource esphome#16315 by @kahrendt
- [mixer] Use RingBufferAudioSource esphome#16316 by @kahrendt
- [esp32] Relax -Werror=reorder and -Werror=maybe-uninitialized on native ESP-IDF esphome#16392 by @swoboda1337
- [safe_mode] Allow recovering soft-bricked devices via reboot to recovery partition esphome#16339 by @Mat931 (new-feature)
- [audio] Document ring buffer source thread safety esphome#16393 by @kahrendt
- [i2s_audio] Properly track DMA input/output esphome#16317 by @kahrendt
- [api][voice_assistant] Add second audio channel for voice_assistant esphome#16265 by @synesthesiam (new-feature)
- [esp32] Print PlatformIO-format RAM/Flash summary after native ESP-IDF builds esphome#16394 by @swoboda1337
- [radio_frequency] Add on_control trigger; ir_rf_proxy driver-agnostic esphome#16368 by @kbx81 (new-feature)
- [core] Fix !include vars not being substituted in !lambda values esphome#16320 by @dmik
- [mitsubishi_cn105] Unified timeout handling esphome#16385 by @crnjan
- [core] Cache validated config to skip re-validation on upload/logs esphome#16381 by @bdraco
- [ci] Skip native ESP-IDF compile test when no relevant files changed esphome#16395 by @bdraco
- [tests] Cover top-level !include failure path in track_yaml_loads esphome#16396 by @bdraco
- [core] Retry PlatformIO downloads on transport-layer errors esphome#16397 by @bdraco
- [espidf] Partition pio_components cache by framework esphome#16401 by @swoboda1337
- [espidf] Emit -W warning flags at project scope so managed components also see them esphome#16403 by @swoboda1337
- [mitsubishi_cn105] Simplified protocol lookups esphome#16399 by @crnjan
- [tests] Add CodSpeed benchmark for compiled-config cache fast path esphome#16402 by @bdraco
- [espidf] Run PIO extraScript with SCons-env shim esphome#16404 by @swoboda1337
- [mitsubishi_cn105] Add vane and wide-vane support esphome#16405 by @crnjan
- [writer] Clean ESP-IDF build artifacts in clean_build esphome#16410 by @swoboda1337
- [espidf] Regenerate bundled CMakeLists; auto-REQUIRE via IDF build properties esphome#16406 by @swoboda1337
- Bump ruff from 0.15.9 to 0.15.10 esphome#15609 by @dependabot[bot]
- Bump resvg-py from 0.2.6 to 0.3.0 esphome#15629 by @dependabot[bot]
- Bump actions/upload-artifact from 7.0.0 to 7.0.1 esphome#15631 by @dependabot[bot]
- Bump docker/build-push-action from 7.0.0 to 7.1.0 in /.github/actions/build-image esphome#15633 by @dependabot[bot]
- Bump actions/github-script from 8.0.0 to 9.0.0 esphome#15632 by @dependabot[bot]
- Bump peter-evans/create-pull-request from 8.1.0 to 8.1.1 esphome#15630 by @dependabot[bot]
- Bump resvg-py from 0.3.0 to 0.3.1 esphome#15640 by @dependabot[bot]
- Bump actions/cache from 5.0.4 to 5.0.5 in /.github/actions/restore-python esphome#15714 by @dependabot[bot]
- Bump actions/cache from 5.0.4 to 5.0.5 esphome#15713 by @dependabot[bot]
- Bump actions/create-github-app-token from 3.0.0 to 3.1.1 esphome#15712 by @dependabot[bot]
- Bump github/codeql-action from 4.35.1 to 4.35.2 esphome#15759 by @dependabot[bot]
- Bump ruff from 0.15.10 to 0.15.11 esphome#15790 by @dependabot[bot]
- Bump CodSpeedHQ/action from 4.13.1 to 4.14.0 esphome#15880 by @dependabot[bot]
- Bump aioesphomeapi from 44.16.1 to 44.17.0 esphome#15906 by @dependabot[bot]
- Update pyparsing requirement from >=3.0 to >=3.3.2 esphome#15910 by @dependabot[bot]
- Bump aioesphomeapi from 44.17.0 to 44.18.0 esphome#15912 by @dependabot[bot]
- Update tzdata requirement from >=2021.1 to >=2026.1 esphome#15911 by @dependabot[bot]
- Update argcomplete requirement from >=2.0.0 to >=3.6.3 esphome#15921 by @dependabot[bot]
- Bump aioesphomeapi from 44.18.0 to 44.19.0 esphome#15920 by @dependabot[bot]
- Bump click from 8.3.2 to 8.3.3 esphome#15927 by @dependabot[bot]
- Update wheel requirement from <0.47,>=0.43 to >=0.43,<0.48 esphome#15926 by @dependabot[bot]
- Bump aioesphomeapi from 44.19.0 to 44.20.0 esphome#15936 by @dependabot[bot]
- Bump aioesphomeapi from 44.20.0 to 44.21.0 esphome#15941 by @dependabot[bot]
- Update tzdata requirement from >=2026.1 to >=2026.2 esphome#15980 by @dependabot[bot]
- Bump ruff from 0.15.11 to 0.15.12 esphome#15981 by @dependabot[bot]
- Bump aioesphomeapi from 44.21.0 to 44.22.0 esphome#15989 by @dependabot[bot]
- Bump cryptography from 46.0.7 to 47.0.0 esphome#15990 by @dependabot[bot]
- Bump esphome-dashboard from 20260408.1 to 20260425.0 esphome#16006 by @dependabot[bot]
- Bump CodSpeedHQ/action from 4.14.0 to 4.15.0 esphome#16084 by @dependabot[bot]
- Bump esphome/workflows/.github/workflows/lock.yml from 2026.4.0 to 2026.4.1 esphome#16143 by @dependabot[bot]
- Bump aioesphomeapi from 44.22.0 to 44.23.0 esphome#16161 by @dependabot[bot]
- Bump github/codeql-action from 4.35.2 to 4.35.3 esphome#16201 by @dependabot[bot]
- Bump cryptography from 47.0.0 to 48.0.0 esphome#16245 by @dependabot[bot]
- Bump CodSpeedHQ/action from 4.15.0 to 4.15.1 esphome#16281 by @dependabot[bot]
- Bump github/codeql-action from 4.35.3 to 4.35.4 esphome#16299 by @dependabot[bot]
- Bump requests from 2.33.1 to 2.34.0 esphome#16364 by @dependabot[bot]
- Bump actions/cache from 5.0.3 to 5.0.5 esphome#16365 by @dependabot[bot]
- Bump aioesphomeapi from 44.23.0 to 44.24.2 esphome#16376 by @dependabot[bot]
- Bump aioesphomeapi from 44.24.2 to 45.0.0 esphome#16391 by @dependabot[bot]
- Bump requests from 2.34.0 to 2.34.1 esphome#16408 by @dependabot[bot]
- Bump actions/create-github-app-token from 3.1.1 to 3.2.0 esphome#16409 by @dependabot[bot]