ESPHome 2026.11.0 - November 2026
NOTE
This is a beta release. Details on this page may change before the stable release is published.
Read the ESPHome 2026.11.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”- [spd2010] Add touchscreen platform esphome#19057 by @grischard (new-component) (new-feature) (new-platform)
- [remote_base] Add Onkyo RI Wired Serial Support esphome#18595 by @c0nsumer (new-feature)
- [gpio][esp32][uart] Add option to hold gpio during (deep)sleep and reboot (3/3) esphome#18964 by @luar123 (new-feature)
- [mitsubishi] Add fahrenheit_compatibility mode esphome#18880 by @zigboi (new-feature)
- [mitsubishi] Control both vanes on multi-vane Mitsubishi minisplit heads esphome#12609 by @zigboi (new-feature)
- [cm1106] Add ABC function esphome#8894 by @CzBiX (new-feature)
- [tca9548a] Allow separate I²C bus frequencies on each multiplexer port esphome#10422 by @DAVe3283 (new-feature)
- [zigbee] add support for SED on esp32 esphome#20487 by @luar123 (new-feature)
- [feedback] Support for overshoot_duration esphome#13186 by @AchilleGR (new-feature)
- [cli] Add line format error message option esphome#20470 by @clydebarrow (new-feature)
- [toshiba] Add ‘seiya’ model support esphome#17830 by @longerCZE (new-feature)
- [toshiba] Add RAS-B10N3KV2 model support esphome#17550 by @RuedigerMueller (new-feature)
- [espnow] Add support for ESPNow with ESP8266 esphome#14407 by @minorOffense (new-feature)
- [hub75] add set_rotation and get_rotation methods esphome#13921 by @tjhorner (new-feature)
- [daikin] Add presets and half-degree temperature steps esphome#17891 by @opcod3 (new-feature)
- [tuya] Add forced minute boundary time sync esphome#18603 by @MayorBug (new-feature)
- [systa_bus] Add text_sensor esphome#20518 by @Mat931 (new-feature) (new-platform)
- [tmp102] Add hardware configuration options esphome#20063 by @techdregs (new-feature)
- [ufm01] Improve stale recovery, add diagnostics and clear flow action esphome#18899 by @ljungqvist (new-feature) (new-platform)
- [pmsx003] add support for luftmy ld15 esphome#15296 by @tuct (new-feature)
- [lvgl] Migrate to 9.6.0 esphome#20257 by @clydebarrow (new-feature)
- [pipsolar] Add QET/QLT total energy sensors esphome#17347 by @mkhrulov (new-feature)
- [cse7761] Add new sensors esphome#17531 by @fornellas (new-feature)
- [emontx] Add pause/resume actions to let another component take over the UART esphome#18756 by @FredM67 (new-feature)
- [mipi_dsi] Add JC1060P470-V2 esphome#18695 by @mkucharek (new-feature)
- [zigbee] Improve basic cluster and add manufacturer and app version setting esphome#20519 by @luar123 (new-feature)
- [zigbee] add report action on esp32 esphome#20488 by @luar123 (new-feature)
- [micro_wake_word] Add opt-in internal RAM placement esphome#20529 by @mbrudka (new-feature)
- [openthread] add mesh_local_eid openthread_info sensor esphome#13924 by @mrene (new-feature)
- [tmp102] Add comparator alert binary sensor esphome#20540 by @techdregs (new-feature) (new-platform)
- [remote_base] Add optional suffix bits to KeeLoq after the HCS301 word esphome#19891 by @Bascht74 (new-feature)
- [mipi_spi] Add LCDwiki ES3C35P model (ST77922 QSPI) esphome#19011 by @jlmeredith (new-feature)
- [cse7761] Add current_input option for current transformer boards such as the Sonoff POW CT esphome#7836 by @mick96 (new-feature)
- [lvgl] Add a color picker widget esphome#17883 by @clydebarrow (new-feature)
- [wifi] Add DHCP lease cache esphome#17767 by @bootc (new-feature)
- [bl0939] Add optional internal temperature sensor esphome#19415 by @ikruglov (new-feature)
- [remote_base] Add Nexus RF protocol support esphome#13577 by @philpem (new-feature)
- [remote_base] Add the Somfy RTS transmit protocol esphome#16502 by @RobertH1993 (new-feature)
- [remote_base] Adding Marantz RC5 Extended protocol esphome#13164 by @endemics (new-feature)
- [epaper_spi] Add Good Display GDEY0213F51 4-color e-paper support esphome#17991 by @profplump (new-feature)
- [emontx] Lock the emonTx across reboots esphome#20576 by @FredM67 (new-feature)
- [remote_base] updates to support 56 bit panasonic codes esphome#20260 by @toups (new-feature) (breaking-change)
- [remote_base] Add a data option and checksum handling to the Drayton protocol esphome#13060 by @marshn (new-feature)
- [mipi_spi] Add M5STACK-ATOMS3R-ST7735 as a display panel configuration esphome#18673 by @mfishma (new-feature)
- [daikin_brc] Add sub_unit parameter for multi-unit addressing esphome#15234 by @AnilDaoud (new-feature)
- [dsmr] add Switzerland channel 1-1 sensors (EWL Luzern AM550) esphome#17391 by @SebiGo (new-feature)
- [heatpumpir] Add ZMP IR receiver esphome#17099 by @bughaver (new-feature)
- [heatpumpir] Add Eco and Boost presets and fix fan speeds on Mitsubishi Heavy ZJ and ZMP esphome#16877 by @bughaver (new-feature)
- [cli] Add —prompt-ota-key to present a different key for one upload esphome#19397 by @bdraco (new-feature)
- [bl0939] Add current transformer measurement mode support esphome#13350 by @amateescu (new-feature)
- [remote_base] Add the Pioneer WYT transmit protocol esphome#17175 by @mikesmitty (new-feature)
- [web_server] Self contained AP mode: embedded interface served as a captive portal esphome#18517 by @bdraco (new-feature)
- [whirlpool] Add the HISENSE_ARG model for Hisense and BGH units sold in Argentina esphome#17352 by @arpena (new-feature)
- [siemens_ira211] Add the Siemens IRA211 protocol and climate platform esphome#15154 by @fonix232 (new-component) (new-feature) (new-platform)
- [lis2dw12] Add ST LIS2DW12 accelerometer component esphome#14780 by @latonita (new-component) (new-feature) (new-platform)
- [ld2460] Add HLK-LD2460 radar hub with target sensors esphome#19002 by @jesusvallejo (new-component) (new-feature) (new-platform)
- [ds3231] Add DS3231 real-time clock hub with temperature sensor esphome#18883 by @linkedupbits (new-component) (new-feature) (new-platform)
- [udp] Add IPv6 unicast and multicast esphome#20590 by @rwrozelle (new-feature)
- [pd_pioneer_ir] Add Pioneer mini-split IR climate component esphome#17680 by @martinsah (new-component) (new-feature) (new-platform)
- [es7210] Add TDM support for future AEC support esphome#18954 by @matt123p (new-feature)
- [power_management] Add the power_management domain with an esp32_power_management platform esphome#12325 by @rwrozelle (new-component) (new-feature)
- [husb238] Add HUSB238 USB PD controller hub with binary sensors esphome#16572 by @latonita (new-component) (new-feature) (new-platform)
- [bh1745] Add BH1745 colour sensor esphome#6349 by @latonita (new-component) (new-feature) (new-platform)
- [ecocomfort2] Add component for Fantini Cosmi VMC units via BLE (Part 1: hub + fan) esphome#17092 by @gledian (new-component) (new-feature) (new-platform)
- [lis3dh] Add LIS3DH accelerometer component esphome#17393 by @Zebble (new-component) (new-feature) (new-platform)
- [i2s_clockless_led_strip] Drives LED strips using I2S and DMA esphome#20255 by @j9brown (new-component) (new-feature) (new-platform)
- [ld2410s] Add HLK-LD2410S presence radar component esphome#10452 by @NovakIrs (new-component) (new-feature) (new-platform)
- [bq27220] Add BQ27220 battery fuel gauge component esphome#17702 by @rggammon (new-component) (new-feature) (new-platform)
- [lp5562] Add LP5562 4-channel I2C LED driver output component esphome#18453 by @DennisGaida (new-component) (new-feature) (new-platform)
- [tca8418] Add TCA8418 keypad component esphome#18521 by @Zebble (new-component) (new-feature) (new-platform)
- [MAX31888] Add temperature sensor esphome#13567 by @JiriPrchal (new-component) (new-feature) (new-platform)
- [ns2009] Add Nsiway NS2009 touchscreen controller component esphome#10597 by @tchilov (new-component) (new-feature) (new-platform)
- [ezsp_proxy_tap] Add SiLabs EZSP auto-ACK implementation esphome#20304 by @puddly (new-component) (new-feature)
- [max17048] Add MAX17048 Li+ Cell Fuel Gauge IC esphome#13585 by @B48D81EFCC (new-component) (new-feature) (new-platform)
- [bq25186] Add bq25186 1-Cell, 1A Linear Battery Charger component (part 1) esphome#15700 by @Rapsssito (new-component) (new-feature)
- [tinyusb] Add
tinyusb_keyboardcomponent esphome#16079 by @FrederikBolding (new-component) (new-feature) - [renogy_inverter_ble] Add Renogy inverter BLE sensor component esphome#16754 by @emilioaray-dev (new-component) (new-feature) (new-platform)
- [samsung] Add climate IR samsung support esphome#8004 by @jorofi (new-component) (new-feature) (new-platform)
- [bmi270] Add optional BMM150 magnetometer support via aux interface esphome#18436 by @DennisGaida (new-feature)
- [remko_ar715] Add Remko AR-715 IR climate platform esphome#17173 by @naKruul (new-component) (new-feature) (new-platform)
- [sh1122] Add OLED display driver esphome#15295 by @pl4nkton (new-component) (new-feature) (new-platform)
- [tmc2209] Add TMC2209 stepper driver esphome#20437 by @remcom (new-component) (new-feature) (new-platform)
- [apds9930] Add ambient light and proximity sensor esphome#13125 by @iyesin (new-component) (new-feature) (new-platform)
- [mistral_ir] Add climate component for Mistral MHFE1126A IR AC units esphome#17812 by @lerhum (new-component) (new-feature) (new-platform)
- [ota] Add old_key so an upload can retry with the previous key esphome#19398 by @bdraco (new-feature)
- [apc1] Add support for the ScioSense APC1 air quality sensor (UART) esphome#19274 by @ademuri (new-component) (new-feature) (new-platform)
- [aranet] Add Aranet BLE sensor support esphome#18263 by @patrickod (new-component) (new-feature) (new-platform)
- [ecocomfort2] Add the read-only sensors and clock sync (Part 2) esphome#15447 by @gledian (new-feature) (new-platform)
- [bq25186] Add the status sensors, buttons, PG/GPO switch and watchdog option (part 2) esphome#15736 by @Rapsssito (new-feature) (new-platform)
- [ld2410s] Add the distance sensor, firmware version and common parameters (Part 2) esphome#8486 by @NovakIrs (new-feature) (new-platform)
- [INA3221] Add optional flags to expose all functionality esphome#16309 by @rwalker777 (new-feature)
- [tmp102] Add number entities for runtime thermostat thresholds esphome#20596 by @techdregs (new-feature) (new-platform)
- [bq76972] Add BQ76972 BMS chip monitoring component esphome#17720 by @limpkin (new-component) (new-feature)
- [selec_meter] Add EM4M (3-phase) support via model option esphome#17782 by @sourabhjaiswal (new-feature)
- [friedrich] New Climate IR component esphome#9178 by @rwrozelle (new-component) (new-feature) (new-platform)
- [image] Implement RGB111 format esphome#20114 by @guillempages (new-feature)
- [emontx] Read the emonTx firmware version esphome#20619 by @FredM67 (new-feature) (new-platform)
- [filter_lifetime] Add component with sensor/lambda support for is_on … esphome#13914 by @tuct (new-component) (new-feature) (new-platform)
- [icm20689] Add ICM-20689 6-axis accelerometer/gyroscope (SPI) esphome#19234 by @lboue (new-component) (new-feature) (new-platform)
- [haier_tundra] New Climate IR component esphome#20469 by @fauxpark (new-component) (new-feature) (new-platform)
- [pcf8574] Add reset option to preserve outputs across MCU reboots esphome#20589 by @ikruglov (new-feature)
- [voice_assistant] Make TTS playback start timeout configurable esphome#18707 by @n-IA-hane (new-feature)
- [es8388] Add initial option configuration for DAC output and ADC input mic esphome#16342 by @cociweb (new-feature)
- [tmc2209] Add driver diagnostics and stall detection esphome#20618 by @remcom (new-feature)
- [openthread] Add core_options for OpenThread compile-time options esphome#20595 by @rwrozelle (new-feature)
- [tmc2209] Add current and diagnostic sensors esphome#20638 by @remcom (new-feature) (new-platform)
- [emontx] Lock the emonTx on reboot when its firmware supports it esphome#20621 by @FredM67 (new-feature)
- [PCA9505] Add PCA9505/PCA9506 40-channel GPIO expander esphome#20667 by @ajfriesen (new-component) (new-feature)
- [epaper_spi] Add Waveshare 2.66” e-Paper Module (B) support esphome#20546 by @TheZoc (new-feature)
- [epaper_spi] Add Waveshare 2.13in-G (JD79660) display models esphome#18141 by @fredkotze (new-feature)
- [midea] Add display_control and send the display toggle over UART without a transmitter esphome#18671 by @andreuSignes (new-feature)
- [sen6x] Add measurement control and maintenance actions esphome#18783 by @bharvey88 (new-feature)
- [tmp102] Add text sensor for diagnostics esphome#20629 by @techdregs (new-feature) (new-platform)
- [esp32_can] Add NO_ACK mode esphome#20706 by @steamEngineer (new-feature)
- [haier] Haier Select component added esphome#16148 by @paveldn (new-feature) (new-platform)
- [midea_portasplit] Add Midea PortaSplit climate component esphome#18033 by @Fexiven (new-component) (new-feature) (new-platform)
- [tmc2209] Add chopper and PWM tuning actions esphome#20753 by @remcom (new-feature)
- [ld2450] Add polygon zones evaluated on the device esphome#20154 by @fornellas (new-feature) (new-platform)
- [mqtt] Print crash info over MQTT esphome#17935 by @AndreKR (new-feature)
- [i2s_audio] Add keep_alive option to speaker to prevent pop/click on audio start esphome#15565 by @nullable-eth (new-feature)
- [micro_wake_word] Allow selecting the inference task core esphome#20126 by @n-IA-hane (new-feature)
- [wifi] Implement access point WISP mode esphome#13633 by @felipecrs (new-feature)
- [audio_dac] Add ES9038Q2M Katana platform esphome#15017 by @GioMez (new-component) (new-feature) (new-platform)
- [fusb302b] Add FUSB302B driver esphome#20760 by @remcom (new-feature)
- [wifi] Apply reboot_timeout with a fallback AP unless a station is connected to it esphome#9958 by @GilDev (new-feature)
- [wifi] Add Wi-Fi Easy Connect (DPP) provisioning on the ESP32 esphome#17934 by @egormanga (new-feature)
- [ota] Fall back to a UDP data phase when the link is lossy esphome#20498 by @bdraco (new-feature)
- [hdmi_cec] Add HDMI-CEC bus component (part 1: bus core) esphome#9189 by @JosVanEijndhoven (new-component) (new-feature)
- [lsm6ds] Add the LSM6DSO and match all chips to their datasheets esphome#20733 by @bdraco (new-feature)
- [openthread] Add ESP32 OpenThread Border Router support esphome#18104 by @pputerla (new-feature) (breaking-change)
- [lvgl] Implement menu widget esphome#18022 by @clydebarrow (new-feature)
- [apc_proteous] Cover component for APC Proteous gate motors esphome#13403 by @clydebarrow (new-component) (new-feature) (new-platform)
- [fusb302b] Add sensors, contract text sensor and automations esphome#20796 by @remcom (new-feature)
- [dfrobot_sen0609] Add DFRobot SEN0609/SEN0610 radar esphome#20809 by @remcom (new-component) (new-feature) (new-platform)
- [rx8111] Add basic RX8111CE real-time clock support esphome#20785 by @techdregs (new-component) (new-feature) (new-platform)
- [nrf52] nrf52840dongle support esphome#19009 by @adminy (new-feature)
- [as734x] [1/3] Add AS7341/AS7343/TCS3448 spectral sensor hub with counts sensors esphome#17038 by @latonita (new-component) (new-feature) (new-platform)
- [dfrobot_sen0609] Add number, switch and select settings esphome#20813 by @remcom (new-feature) (new-platform)
- [as734x] [2/3] Add basic counts, calibration and saturation level esphome#18011 by @latonita (new-feature)
- [usb_uart] Runtime modem pin control for USB and host esphome#20330 by @puddly (new-feature)
- [as734x] [3/3] Add illuminance, photopic irradiance, PAR, PPFD, colour temperature and RGB esphome#18012 by @latonita (new-feature) (new-platform)
- [http_request] Allow a per-request timeout esphome#20821 by @p1ngb4ck (new-feature)
- [i2s_audio] Add full duplex support esphome#19959 by @remcom (new-feature)
- [dfrobot_sen0609] Add restart, factory reset and query buttons esphome#20877 by @remcom (new-feature) (new-platform)
- [haier_water_heater] Initial water-heater implementation tested with Haier VH3W esphome#20765 by @TheLexus (new-component) (new-feature) (new-platform)
- [mics_5524] Add MiCS-5524 gas sensor platform (1/2) esphome#19721 by @nliaudat (new-component) (new-feature) (new-platform)
- [lp5562] Add the current per channel and logarithmic dimming esphome#20903 by @Bascht74 (new-feature)
- [logger][usb_cdc_acm][core] Add CDC uart to NRF52 esphome#11634 by @tomaszduda23 (new-feature)
- [mics_5524] Add datasheet model, diagnostics and advanced wiring (2/2) esphome#20521 by @nliaudat (new-feature)
- [dfrobot_sen0465] Add DFRobot SEN0465-SEN0476 electrochemical gas sensors esphome#20880 by @tzabbi (new-component) (new-feature) (new-platform)
- [core] Script improvements including
chooseesphome#20547 by @clydebarrow (new-feature) - [rtsp_server] Add an RTSP server that streams the esp32_camera picture esphome#17990 by @max246 (new-component) (new-feature)
- [zephyr_coredump] Store a coredump in flash on nRF52 and print it to the next log reader esphome#13122 by @tomaszduda23 (new-component) (new-feature)
- [pylontech] Add individual cell voltage and temperature sensors esphome#16852 by @functionpointer (new-feature)
- [remote_base] Add a protocol for 433MHz A-OK remotes esphome#20991 by @nagisa (new-feature)
- [remote_base] Send the 72-bit Jarolift TDEF group frame with transmit_keeloq esphome#20927 by @Bascht74 (new-feature)
- [wifi] Support hidden option in single-network shorthand esphome#18157 by @bharvey88 (new-feature)
- [hoermann_hcp] Add an actuator error binary sensor esphome#20299 by @RaHehl (new-feature)
- [sen6x] Add CO2 configuration options esphome#18780 by @bharvey88 (new-feature)
- [epaper_spi] Add the UC8279 controller and the Xteink X4 Pro esphome#20545 by @exciton (new-feature)
- [sen6x] Add temperature compensation, acceleration and startup delay esphome#18781 by @bharvey88 (new-feature)
- [sen6x] Add PM number concentration sensors esphome#18782 by @bharvey88 (new-feature)
- [uart] Add a binary sensor that fires on a byte sequence esphome#14032 by @tomaszduda23 (new-feature) (new-platform)
- [sen6x] Add device status binary sensors esphome#18784 by @bharvey88 (new-feature) (new-platform)
- [mt6701] Add MT6701 (MagnTek magnetic encoder) component esphome#17643 by @slimcdk (new-component) (new-feature) (new-platform)
- [libretiny] Emulate rtc preference storage on the Beken BK7231T, BK7231N and BK7238 with flash and the reset reason esphome#21007 by @porelli (new-feature)
- [airton] Add support to climate for Airton IR A/C units esphome#7753 by @Procsiab (new-component) (new-feature) (new-platform)
- [vevor_dtx] Add Vevor weather station component esphome#17224 by @Bofr5555 (new-component) (new-feature) (new-platform)
- [micro_wake_word] Allow configurable capture buffer duration esphome#20942 by @mbrudka (new-feature)
- [light] Add power estimation and current limiting for addressable LED strips esphome#15348 by @mvoss96 (new-feature)
- [homeassistant] Add the light platform esphome#11354 by @egormanga (new-feature) (new-platform)
- [epaper_spi] Add the UC8151D controller and the Waveshare 2.13” B V3 esphome#21022 by @clydebarrow (new-feature)
- [globals] Add RTC memory support esphome#13954 by @Rapsssito (new-feature)
- [i2s_audio] Add ESP32-S31 support esphome#20115 by @cosmicDustOfLightLength (new-feature)
- [mipi_spi] Fix GC9107 native size and add M5Stack AtomS3 model esphome#21087 by @jesserockz (new-feature)
- [usb_audio] Add USB Audio Class (UAC) host support esphome#11728 by @ab-tools (new-component) (new-feature) (new-platform)
- [st7305] Add reflective LCD display driver esphome#21099 by @clydebarrow (new-component) (new-feature) (new-platform)
- [st25r] Add ST25R3916 NFC reader (SPI, ISO14443A) esphome#15608 by @JohnMcLear (new-component) (new-feature)
- [gree] Add sleep preset support for GREE YAC1FB9 esphome#18090 by @jrvd007 (new-feature)
- [mqtt] Add MQTT over WebSocket transport for ESP32 IDF esphome#16056 by @ankur-paan (new-feature)
- [speaker][speaker_source] Add a set volume for announcements that start while nothing is playing esphome#21002 by @remcom (new-feature)
- [vl53l1x] Add VL53L1X time-of-flight distance sensor esphome#13605 by @will-tm (new-component) (new-feature) (new-platform)
- [pca9554] Add a device option with the PCA953x/PCA955x/TCA955x names and the PCAL9538 and PCAL9555 expanders esphome#15449 by @ilikecake (new-feature)
- [esp32_ulp][esp32] Add component to run programs on the ULP coprocessor esphome#21127 by @swoboda1337 (new-component) (new-feature)
- [epaper_spi] Add SSD1681 model with differential partial refresh esphome#20332 by @exciton (new-feature)
- [mqtt] increase TLS options and compatibility esphome#14318 by @Rapsssito (new-feature)
- [veml6040] Add VEML6040 RGBW colour sensor esphome#20812 by @aalaei (new-component) (new-feature) (new-platform)
- [cover] Add stop tilt support esphome#20248 by @piitaya (new-feature)
- [sensor] Add Relative Humidity Correction Filter esphome#18287 by @damib (new-feature)
- [epaper_spi] Support Good Display GDEY029Z95 2.9” 3-color e-paper (128x296, SSD1680) esphome#21218 by @candrews (new-feature)
- [api] Let a media_player ask for a constant bitrate esphome#19962 by @bboe (new-feature)
- [wifi] [ethernet] Bridge the WISP access point to an ethernet upstream esphome#7147 by @oarcher (new-feature)
- [vnc] Add VNC client component esphome#20623 by @MindFreeze (new-component) (new-feature)
- [api] Add optional user-defined action variables with defaults esphome#18882 by @bharvey88 (new-feature)
- [esp32_hosted] Download and cache pinned embedded firmware esphome#20065 by @Gunni (new-feature)
- [wifi] Allow WISP mode on the ESP32 Arduino framework esphome#21410 by @swoboda1337 (new-feature)
- [mqtt] Support stop tilt on covers esphome#20251 by @piitaya (new-feature)
- [switch] Add initial_state and restore_state, with flash or RTC storage esphome#20978 by @porelli (new-feature)
- [ds3231] Add time platform, alarms, binary sensors and output control esphome#21054 by @miloit (new-feature) (new-platform)
- [rx8111] Add alarm and wake-up timer support esphome#21217 by @techdregs (new-feature)
- [vnc] Add the Hextile encoding and skip unchanged tiles esphome#20625 by @MindFreeze (new-feature)
- [m5stack_4relay] m5stack 4relay switch implementation esphome#7234 by @KoenBreeman (new-component) (new-feature) (new-platform)
- [light] Add
effecttoinitial_stateesphome#18795 by @backcountrymountains (new-feature) - [usb_uart] Implement hardware flow control esphome#20823 by @puddly (new-feature)
- [spi] Add nRF52 (Zephyr) hardware SPI support esphome#18214 by @aalaei (new-feature)
- [ln882x_spi_led_strip] Add SPI DMA addressable LED strip for LN882x esphome#21409 by @sebo-b (new-component) (new-feature) (new-platform)
- [islandaire] Add Islandaire PTAC climate IR component esphome#20153 by @ipopov (new-component) (new-feature) (new-platform)
- [cw2017] Add CW2017 battery fuel gauge esphome#21369 by @exciton (new-component) (new-feature) (new-platform)
- [seeed_multi_channel_relay] Add the Seeed Studio Grove multi-channel relay boards esphome#7233 by @KoenBreeman (new-component) (new-feature) (new-platform)
- [online_image] Decode a JPEG as it downloads esphome#21342 by @clydebarrow (new-feature)
- [online_image] Add on_download_started and on_download_progress esphome#21355 by @clydebarrow (new-feature)
- [packet_interface] Add packet interface component esphome#21037 by @clydebarrow (new-component) (new-feature) (new-platform)
- [duco] Component for Duco ventilation system esphome#7993 by @kokx (new-component) (new-feature) (new-platform)
- [max170xx] Shared helper; retry setup and fix sleep for max17043 and max17048 esphome#18594 by @ryansch (new-component) (new-feature)
- [delta_wallbox] Delta AC wallbox esphome#21231 by @epicRE (new-component) (new-feature) (new-platform)
- [modem] Add PPPoS networking over a UART cellular modem on ESP32 esphome#6721 by @oarcher (new-component) (new-feature) (new-platform)
- [tuya] fan optimistic mode esphome#18525 by @bkbartk (new-feature)
- [toshiba] Add support for RAS-25J2KVSG-ND esphome#21413 by @magnusoverli (new-feature) (new-platform)
- [tas58xx] Add an activate switch esphome#21458 by @mrtoy-me (new-feature) (new-platform)
- [core] Add esphome.project.sbom for SBOM supplier and contact esphome#21455 by @kbx81 (new-feature)
- [sim800l] Add on_dtmf_received trigger esphome#21495 by @glmnet (new-feature)
- [hitachi_ac344] Add mildew-proof switch esphome#18230 by @eoleedi (new-feature) (new-platform)
- [hitachi_ac344] Add quiet and vertical swing mode esphome#18229 by @eoleedi (new-feature)
- [http_request] Run requests from the action without blocking the loop esphome#21486 by @clydebarrow (new-feature) (breaking-change)
- [udp] Add UDP packet interface link esphome#21042 by @clydebarrow (new-feature)
- [packet_interface] Add layer registry and HDLC reliability layer esphome#21044 by @clydebarrow (new-feature)
- [packet_interface] Add session and XXTEA encryption layers esphome#21088 by @clydebarrow (new-feature)
- [modem] [wifi] allow wifi AP for modem (WISP) esphome#21584 by @oarcher (new-feature)
- [modem] Add signal sensors and a network type text sensor esphome#14683 by @oarcher (new-feature) (new-platform)
- [es7243] Add ES7243 audio ADC driver esphome#19335 by @Chorty (new-component) (new-feature) (new-platform)
- [gree] Add yaw1f model for YAW1F remotes esphome#19722 by @Marvinthebored (new-feature)
- [rx8111] Add backup, FOUT, and EVIN events esphome#21490 by @techdregs (new-feature)
- [wifi] Add ap_mode: ALWAYS_ON and allow a captive portal with ap_mode: WISP esphome#20077 by @nliaudat (new-feature)
- [adafruit_ble][nrf52][zephyr_ble_server] Initial adafruit ble dfu ota support esphome#20481 by @omersiar (new-component) (new-feature) (new-platform)
- [delta_wallbox] Added ability to set the max current esphome#21587 by @epicRE (new-feature) (new-platform)
- [climate][water_heater] Add unit_of_measurement to the template climate and water heater esphome#20759 by @jhenkens (new-feature)
- [mqtt] fix/implement session persistence esphome#12426 by @Rapsssito (new-feature)
- [ble_midi] Add BLE MIDI component esphome#18508 by @bogdanr (new-component) (new-feature)
- [nextion] Add tft_upload_http_buffer_size_tx option for TFT upload redirects esphome#21435 by @samsonovss (new-feature)
- [core][display] Let users take over a display model’s default enable pins esphome#21605 by @clydebarrow (new-feature)
- [gree] Add use_fahrenheit for Fahrenheit display on the unit’s panel esphome#20751 by @KD5RYN (new-feature)
- [remote_base] Add support for Cardin S438 remotes esphome#21507 by @manuelm (new-feature)
- [modbus_client] Pass the request’s address to the send handlers esphome#20461 by @Bascht74 (new-feature)
- [runtime_image] Fix LVGL widgets on image resize, add double_buffer esphome#21368 by @clydebarrow (new-feature)
- [libretiny] Reboot and report the previous boot’s crash on BK7238 and BK7231N esphome#21012 by @bdraco (new-feature)
- [speaker][i2s_audio][es8156] Allow a list of audio DACs on one speaker esphome#21260 by @mrtoy-me (new-feature)
- [logger] Add optional boot log buffer replayed over the API esphome#17666 by @bdraco (new-feature)
- [i2c] Add software I2C bus for BK72xx esphome#21586 by @Korkuttum (new-feature)
- [tas58xx] Add fault_output and modulation options esphome#21242 by @mrtoy-me (new-feature)
- [vnc] Add input actions and touchscreen forwarding esphome#20627 by @MindFreeze (new-feature)
- [modbus_monitor] Add modbus_monitor with on_request and on_response for server and client hubs esphome#20256 by @Bascht74 (new-component) (new-feature)
- [libretiny] Report the previous boot’s crash on RTL8720C esphome#21648 by @bdraco (new-feature)
- [text_sensor] Add throttle, throttle_with_priority and timeout filters esphome#21669 by @bdraco (new-feature)
- [debug] Log per-thread CPU usage on nRF52 esphome#13938 by @tomaszduda23 (new-feature)
- [tas58xx] Add mixer mode select esphome#21637 by @mrtoy-me (new-feature) (new-platform)
- [gree] Add IR receiver support and YB1FA model esphome#18435 by @juriyivanov (new-feature)
- [ld2450] Add a text sensor with the position of each target esphome#21416 by @fornellas (new-feature)
- [prometheus] Add prometheus datetime metrics esphome#9941 by @jzucker2 (new-feature)
- [core] Allow esphome upload without a configuration esphome#21738 by @heythisisnate (new-feature)
- [rx8111] Add event timestamp text sensor and capture storage modes esphome#21604 by @techdregs (new-feature) (new-platform)
- [libretiny] Report the previous boot’s crash on LN882H esphome#21728 by @bdraco (new-feature)
- [ecocomfort2] Add the configuration entities (Part 3) esphome#20783 by @gledian (new-feature) (new-platform)
- [vnc] Add VNC password authentication esphome#20626 by @MindFreeze (new-feature)
- [ld2450] Detect a lost radar link esphome#21734 by @dcb (new-feature)
- [esp32_camera] Add sensor windowing (digital zoom) esphome#20480 by @nliaudat (new-feature)
- [esp32_camera] Add capture_delay and capture triggers for single images esphome#21614 by @RaHehl (new-feature)
- [rx8111] Add optional binary sensors esphome#21744 by @techdregs (new-feature) (new-platform)
- [binary_sensor] Add on_raw_value trigger esphome#21126 by @elpollodiablo (new-feature)
- [sendspin] Add the source role, streaming a microphone to the server esphome#21696 by @kahrendt (new-feature)
- [mitsubishi_cn105] Add horizontal vane direction select esphome#21863 by @crnjan (new-feature)
- [ld2410] Add automatic background noise correction esphome#21460 by @bhuveshm29 (new-feature)
- [mitsubishi_cn105] Add the horizontal vane to the vane trigger and action esphome#21870 by @crnjan (new-feature)
- [dlms_meter] Allow multiple dlms_meter instances esphome#21585 by @FuNK3Y (new-feature)
- [mitsubishi_cn105] Add climate action support esphome#21650 by @kboone (new-feature)
- [mitsubishi_cn105] Hold the climate action through wind-down and keep the AUTO direction esphome#20819 by @DavidWAbrahams (new-feature)
- [airton_serial] Add Airton serial climate component esphome#21872 by @guiguid (new-component) (new-feature) (new-platform)
- [zephyr_mcumgr] Add SMP UDP OTA transport for nRF52 esphome#17245 by @Ardumine (new-feature)
- [ld6004] Add Hi-Link LD6004 radar with binary_sensor platform esphome#19840 by @wolph (new-component) (new-feature) (new-platform)
- [ld6004] Add sensor platform esphome#19841 by @wolph (new-feature) (new-platform)
- [ld6004] Add text_sensor platform esphome#19842 by @wolph (new-feature) (new-platform)
- [ld6004] Add select platform esphome#19844 by @wolph (new-feature) (new-platform)
- [ld6004] Add button platform esphome#19846 by @wolph (new-feature) (new-platform)
- [ld6004] Add number platform esphome#19843 by @wolph (new-feature) (new-platform)
- [ld6004] Add switch platform esphome#19845 by @wolph (new-feature) (new-platform)
- [atm90e32] Add configurable thresholds esphome#15244 by @CircuitSetup (new-feature)
- [panasonic_ir] Add Panasonic AC IR climate component esphome#21631 by @Duckle29 (new-component) (new-feature) (new-platform)
- [xgzp68xx] Add XGZP6899DC variant esphome#21779 by @gcormier (new-feature)
- [m5stack_unit_bldc] Add M5Stack M5Unit-BLDC platform support esphome#18086 by @lboue (new-component) (new-feature) (new-platform)
- [ledc] Add hardware duty dithering for supported ESP32 variants esphome#21320 by @Kubuxu (new-feature)
- [fujitsu_general] Add buttons for the vane step and economy commands esphome#14271 by @wiiaam (new-feature) (new-platform)
- [esp32_ble_server] Add secure connection support esphome#17562 by @david-collett (new-feature)
- [es8388] Add configurable ADC PGA gain esphome#21363 by @ishai-levy (new-feature)
- [runtime_image] Decode progressive and SOF1 JPEGs with JPEGDEC esphome#21784 by @remcom (new-feature)
- [mipi_rgb] Add GC9503V and ZX3D95CE01S-TR-4848 esphome#21588 by @GiorgioAresu (new-feature)
- [mipi_spi] Add generic SPD2010 model and SenseCAP Watcher board esphome#21354 by @jesserockz (new-feature)
- [epaper_spi] - Add support for the XSRUPB-7.5in-bwr panel esphome#19654 by @candrews (new-feature) (breaking-change)
- [udp] Add Zephyr/nRF52 IPv6 support esphome#17838 by @Ardumine (new-feature)
- [ht16k33_char] Add support for HT16K33 based character displays esphome#8520 by @ilikecake (new-component) (new-feature) (new-platform)
- [epaper_spi] Add Good Display GDEY029T94 2.9” model esphome#22128 by @jesserockz (new-feature)
- [espectre] Update to SDK 3.1.0; add runtime config entities and CSI diagnostics esphome#22132 by @francescopace (new-feature) (new-platform)
- [sht4x] Expose serial number as a text sensor esphome#22176 by @iskyguy (new-feature)
- [libretiny] Report the previous boot’s crash on RTL8710B esphome#21752 by @bdraco (new-feature)
- [daikin_madoka] Add new Daikin Madoka integration esphome#5951 by @Petapton (new-component) (new-feature) (new-platform)
New Components
Section titled “New Components”- [core] Add a DOMAIN constant to every component esphome#20395 by @jesserockz (new-component)
- [spd2010] Add touchscreen platform esphome#19057 by @grischard (new-component) (new-feature) (new-platform)
- [siemens_ira211] Add the Siemens IRA211 protocol and climate platform esphome#15154 by @fonix232 (new-component) (new-feature) (new-platform)
- [lis2dw12] Add ST LIS2DW12 accelerometer component esphome#14780 by @latonita (new-component) (new-feature) (new-platform)
- [ld2460] Add HLK-LD2460 radar hub with target sensors esphome#19002 by @jesusvallejo (new-component) (new-feature) (new-platform)
- [ds3231] Add DS3231 real-time clock hub with temperature sensor esphome#18883 by @linkedupbits (new-component) (new-feature) (new-platform)
- [pd_pioneer_ir] Add Pioneer mini-split IR climate component esphome#17680 by @martinsah (new-component) (new-feature) (new-platform)
- [power_management] Add the power_management domain with an esp32_power_management platform esphome#12325 by @rwrozelle (new-component) (new-feature)
- [husb238] Add HUSB238 USB PD controller hub with binary sensors esphome#16572 by @latonita (new-component) (new-feature) (new-platform)
- [bh1745] Add BH1745 colour sensor esphome#6349 by @latonita (new-component) (new-feature) (new-platform)
- [ecocomfort2] Add component for Fantini Cosmi VMC units via BLE (Part 1: hub + fan) esphome#17092 by @gledian (new-component) (new-feature) (new-platform)
- [lis3dh] Add LIS3DH accelerometer component esphome#17393 by @Zebble (new-component) (new-feature) (new-platform)
- [i2s_clockless_led_strip] Drives LED strips using I2S and DMA esphome#20255 by @j9brown (new-component) (new-feature) (new-platform)
- [ld2410s] Add HLK-LD2410S presence radar component esphome#10452 by @NovakIrs (new-component) (new-feature) (new-platform)
- [bq27220] Add BQ27220 battery fuel gauge component esphome#17702 by @rggammon (new-component) (new-feature) (new-platform)
- [lp5562] Add LP5562 4-channel I2C LED driver output component esphome#18453 by @DennisGaida (new-component) (new-feature) (new-platform)
- [tca8418] Add TCA8418 keypad component esphome#18521 by @Zebble (new-component) (new-feature) (new-platform)
- [MAX31888] Add temperature sensor esphome#13567 by @JiriPrchal (new-component) (new-feature) (new-platform)
- [ns2009] Add Nsiway NS2009 touchscreen controller component esphome#10597 by @tchilov (new-component) (new-feature) (new-platform)
- [ezsp_proxy_tap] Add SiLabs EZSP auto-ACK implementation esphome#20304 by @puddly (new-component) (new-feature)
- [max17048] Add MAX17048 Li+ Cell Fuel Gauge IC esphome#13585 by @B48D81EFCC (new-component) (new-feature) (new-platform)
- [bq25186] Add bq25186 1-Cell, 1A Linear Battery Charger component (part 1) esphome#15700 by @Rapsssito (new-component) (new-feature)
- [tinyusb] Add
tinyusb_keyboardcomponent esphome#16079 by @FrederikBolding (new-component) (new-feature) - [renogy_inverter_ble] Add Renogy inverter BLE sensor component esphome#16754 by @emilioaray-dev (new-component) (new-feature) (new-platform)
- [samsung] Add climate IR samsung support esphome#8004 by @jorofi (new-component) (new-feature) (new-platform)
- [remko_ar715] Add Remko AR-715 IR climate platform esphome#17173 by @naKruul (new-component) (new-feature) (new-platform)
- [sh1122] Add OLED display driver esphome#15295 by @pl4nkton (new-component) (new-feature) (new-platform)
- [tmc2209] Add TMC2209 stepper driver esphome#20437 by @remcom (new-component) (new-feature) (new-platform)
- [apds9930] Add ambient light and proximity sensor esphome#13125 by @iyesin (new-component) (new-feature) (new-platform)
- [mistral_ir] Add climate component for Mistral MHFE1126A IR AC units esphome#17812 by @lerhum (new-component) (new-feature) (new-platform)
- [apc1] Add support for the ScioSense APC1 air quality sensor (UART) esphome#19274 by @ademuri (new-component) (new-feature) (new-platform)
- [aranet] Add Aranet BLE sensor support esphome#18263 by @patrickod (new-component) (new-feature) (new-platform)
- [bq76972] Add BQ76972 BMS chip monitoring component esphome#17720 by @limpkin (new-component) (new-feature)
- [friedrich] New Climate IR component esphome#9178 by @rwrozelle (new-component) (new-feature) (new-platform)
- [filter_lifetime] Add component with sensor/lambda support for is_on … esphome#13914 by @tuct (new-component) (new-feature) (new-platform)
- [icm20689] Add ICM-20689 6-axis accelerometer/gyroscope (SPI) esphome#19234 by @lboue (new-component) (new-feature) (new-platform)
- [haier_tundra] New Climate IR component esphome#20469 by @fauxpark (new-component) (new-feature) (new-platform)
- [PCA9505] Add PCA9505/PCA9506 40-channel GPIO expander esphome#20667 by @ajfriesen (new-component) (new-feature)
- [fusb302b] Add USB PD sink protocol esphome#20632 by @remcom (new-component)
- [midea_portasplit] Add Midea PortaSplit climate component esphome#18033 by @Fexiven (new-component) (new-feature) (new-platform)
- [audio_dac] Add ES9038Q2M Katana platform esphome#15017 by @GioMez (new-component) (new-feature) (new-platform)
- [hdmi_cec] Add HDMI-CEC bus component (part 1: bus core) esphome#9189 by @JosVanEijndhoven (new-component) (new-feature)
- [apc_proteous] Cover component for APC Proteous gate motors esphome#13403 by @clydebarrow (new-component) (new-feature) (new-platform)
- [dfrobot_sen0609] Add DFRobot SEN0609/SEN0610 radar esphome#20809 by @remcom (new-component) (new-feature) (new-platform)
- [rx8111] Add basic RX8111CE real-time clock support esphome#20785 by @techdregs (new-component) (new-feature) (new-platform)
- [as734x] [1/3] Add AS7341/AS7343/TCS3448 spectral sensor hub with counts sensors esphome#17038 by @latonita (new-component) (new-feature) (new-platform)
- [haier_water_heater] Initial water-heater implementation tested with Haier VH3W esphome#20765 by @TheLexus (new-component) (new-feature) (new-platform)
- [mics_5524] Add MiCS-5524 gas sensor platform (1/2) esphome#19721 by @nliaudat (new-component) (new-feature) (new-platform)
- [dfrobot_sen0465] Add DFRobot SEN0465-SEN0476 electrochemical gas sensors esphome#20880 by @tzabbi (new-component) (new-feature) (new-platform)
- [rtsp_server] Add an RTSP server that streams the esp32_camera picture esphome#17990 by @max246 (new-component) (new-feature)
- [zephyr_coredump] Store a coredump in flash on nRF52 and print it to the next log reader esphome#13122 by @tomaszduda23 (new-component) (new-feature)
- [mt6701] Add MT6701 (MagnTek magnetic encoder) component esphome#17643 by @slimcdk (new-component) (new-feature) (new-platform)
- [airton] Add support to climate for Airton IR A/C units esphome#7753 by @Procsiab (new-component) (new-feature) (new-platform)
- [vevor_dtx] Add Vevor weather station component esphome#17224 by @Bofr5555 (new-component) (new-feature) (new-platform)
- [usb_audio] Add USB Audio Class (UAC) host support esphome#11728 by @ab-tools (new-component) (new-feature) (new-platform)
- [st7305] Add reflective LCD display driver esphome#21099 by @clydebarrow (new-component) (new-feature) (new-platform)
- [st25r] Add ST25R3916 NFC reader (SPI, ISO14443A) esphome#15608 by @JohnMcLear (new-component) (new-feature)
- [vl53l1x] Add VL53L1X time-of-flight distance sensor esphome#13605 by @will-tm (new-component) (new-feature) (new-platform)
- [esp32_ulp][esp32] Add component to run programs on the ULP coprocessor esphome#21127 by @swoboda1337 (new-component) (new-feature)
- [veml6040] Add VEML6040 RGBW colour sensor esphome#20812 by @aalaei (new-component) (new-feature) (new-platform)
- [vnc] Add VNC client component esphome#20623 by @MindFreeze (new-component) (new-feature)
- [m5stack_4relay] m5stack 4relay switch implementation esphome#7234 by @KoenBreeman (new-component) (new-feature) (new-platform)
- [ln882x_spi_led_strip] Add SPI DMA addressable LED strip for LN882x esphome#21409 by @sebo-b (new-component) (new-feature) (new-platform)
- [islandaire] Add Islandaire PTAC climate IR component esphome#20153 by @ipopov (new-component) (new-feature) (new-platform)
- [cw2017] Add CW2017 battery fuel gauge esphome#21369 by @exciton (new-component) (new-feature) (new-platform)
- [seeed_multi_channel_relay] Add the Seeed Studio Grove multi-channel relay boards esphome#7233 by @KoenBreeman (new-component) (new-feature) (new-platform)
- [packet_interface] Add packet interface component esphome#21037 by @clydebarrow (new-component) (new-feature) (new-platform)
- [duco] Component for Duco ventilation system esphome#7993 by @kokx (new-component) (new-feature) (new-platform)
- [max170xx] Shared helper; retry setup and fix sleep for max17043 and max17048 esphome#18594 by @ryansch (new-component) (new-feature)
- [delta_wallbox] Delta AC wallbox esphome#21231 by @epicRE (new-component) (new-feature) (new-platform)
- [modem] Add PPPoS networking over a UART cellular modem on ESP32 esphome#6721 by @oarcher (new-component) (new-feature) (new-platform)
- [es7243] Add ES7243 audio ADC driver esphome#19335 by @Chorty (new-component) (new-feature) (new-platform)
- [adafruit_ble][nrf52][zephyr_ble_server] Initial adafruit ble dfu ota support esphome#20481 by @omersiar (new-component) (new-feature) (new-platform)
- [ble_midi] Add BLE MIDI component esphome#18508 by @bogdanr (new-component) (new-feature)
- [modbus_monitor] Add modbus_monitor with on_request and on_response for server and client hubs esphome#20256 by @Bascht74 (new-component) (new-feature)
- [airton_serial] Add Airton serial climate component esphome#21872 by @guiguid (new-component) (new-feature) (new-platform)
- [ld600x] Add shared TinyFrame parser and use it in ld6002b esphome#19836 by @wolph (new-component)
- [ld6004] Add Hi-Link LD6004 radar with binary_sensor platform esphome#19840 by @wolph (new-component) (new-feature) (new-platform)
- [panasonic_ir] Add Panasonic AC IR climate component esphome#21631 by @Duckle29 (new-component) (new-feature) (new-platform)
- [m5stack_unit_bldc] Add M5Stack M5Unit-BLDC platform support esphome#18086 by @lboue (new-component) (new-feature) (new-platform)
- [ht16k33_char] Add support for HT16K33 based character displays esphome#8520 by @ilikecake (new-component) (new-feature) (new-platform)
- [daikin_madoka] Add new Daikin Madoka integration esphome#5951 by @Petapton (new-component) (new-feature) (new-platform)
New Platforms
Section titled “New Platforms”- [spd2010] Add touchscreen platform esphome#19057 by @grischard (new-component) (new-feature) (new-platform)
- [systa_bus] Add text_sensor esphome#20518 by @Mat931 (new-feature) (new-platform)
- [ufm01] Improve stale recovery, add diagnostics and clear flow action esphome#18899 by @ljungqvist (new-feature) (new-platform)
- [tmp102] Add comparator alert binary sensor esphome#20540 by @techdregs (new-feature) (new-platform)
- [siemens_ira211] Add the Siemens IRA211 protocol and climate platform esphome#15154 by @fonix232 (new-component) (new-feature) (new-platform)
- [lis2dw12] Add ST LIS2DW12 accelerometer component esphome#14780 by @latonita (new-component) (new-feature) (new-platform)
- [ld2460] Add HLK-LD2460 radar hub with target sensors esphome#19002 by @jesusvallejo (new-component) (new-feature) (new-platform)
- [ds3231] Add DS3231 real-time clock hub with temperature sensor esphome#18883 by @linkedupbits (new-component) (new-feature) (new-platform)
- [pd_pioneer_ir] Add Pioneer mini-split IR climate component esphome#17680 by @martinsah (new-component) (new-feature) (new-platform)
- [husb238] Add HUSB238 USB PD controller hub with binary sensors esphome#16572 by @latonita (new-component) (new-feature) (new-platform)
- [bh1745] Add BH1745 colour sensor esphome#6349 by @latonita (new-component) (new-feature) (new-platform)
- [ecocomfort2] Add component for Fantini Cosmi VMC units via BLE (Part 1: hub + fan) esphome#17092 by @gledian (new-component) (new-feature) (new-platform)
- [lis3dh] Add LIS3DH accelerometer component esphome#17393 by @Zebble (new-component) (new-feature) (new-platform)
- [i2s_clockless_led_strip] Drives LED strips using I2S and DMA esphome#20255 by @j9brown (new-component) (new-feature) (new-platform)
- [ld2410s] Add HLK-LD2410S presence radar component esphome#10452 by @NovakIrs (new-component) (new-feature) (new-platform)
- [bq27220] Add BQ27220 battery fuel gauge component esphome#17702 by @rggammon (new-component) (new-feature) (new-platform)
- [lp5562] Add LP5562 4-channel I2C LED driver output component esphome#18453 by @DennisGaida (new-component) (new-feature) (new-platform)
- [tca8418] Add TCA8418 keypad component esphome#18521 by @Zebble (new-component) (new-feature) (new-platform)
- [MAX31888] Add temperature sensor esphome#13567 by @JiriPrchal (new-component) (new-feature) (new-platform)
- [ns2009] Add Nsiway NS2009 touchscreen controller component esphome#10597 by @tchilov (new-component) (new-feature) (new-platform)
- [max17048] Add MAX17048 Li+ Cell Fuel Gauge IC esphome#13585 by @B48D81EFCC (new-component) (new-feature) (new-platform)
- [renogy_inverter_ble] Add Renogy inverter BLE sensor component esphome#16754 by @emilioaray-dev (new-component) (new-feature) (new-platform)
- [samsung] Add climate IR samsung support esphome#8004 by @jorofi (new-component) (new-feature) (new-platform)
- [remko_ar715] Add Remko AR-715 IR climate platform esphome#17173 by @naKruul (new-component) (new-feature) (new-platform)
- [sh1122] Add OLED display driver esphome#15295 by @pl4nkton (new-component) (new-feature) (new-platform)
- [tmc2209] Add TMC2209 stepper driver esphome#20437 by @remcom (new-component) (new-feature) (new-platform)
- [apds9930] Add ambient light and proximity sensor esphome#13125 by @iyesin (new-component) (new-feature) (new-platform)
- [mistral_ir] Add climate component for Mistral MHFE1126A IR AC units esphome#17812 by @lerhum (new-component) (new-feature) (new-platform)
- [apc1] Add support for the ScioSense APC1 air quality sensor (UART) esphome#19274 by @ademuri (new-component) (new-feature) (new-platform)
- [aranet] Add Aranet BLE sensor support esphome#18263 by @patrickod (new-component) (new-feature) (new-platform)
- [ecocomfort2] Add the read-only sensors and clock sync (Part 2) esphome#15447 by @gledian (new-feature) (new-platform)
- [bq25186] Add the status sensors, buttons, PG/GPO switch and watchdog option (part 2) esphome#15736 by @Rapsssito (new-feature) (new-platform)
- [ld2410s] Add the distance sensor, firmware version and common parameters (Part 2) esphome#8486 by @NovakIrs (new-feature) (new-platform)
- [tmp102] Add number entities for runtime thermostat thresholds esphome#20596 by @techdregs (new-feature) (new-platform)
- [friedrich] New Climate IR component esphome#9178 by @rwrozelle (new-component) (new-feature) (new-platform)
- [emontx] Read the emonTx firmware version esphome#20619 by @FredM67 (new-feature) (new-platform)
- [filter_lifetime] Add component with sensor/lambda support for is_on … esphome#13914 by @tuct (new-component) (new-feature) (new-platform)
- [icm20689] Add ICM-20689 6-axis accelerometer/gyroscope (SPI) esphome#19234 by @lboue (new-component) (new-feature) (new-platform)
- [haier_tundra] New Climate IR component esphome#20469 by @fauxpark (new-component) (new-feature) (new-platform)
- [tmc2209] Add current and diagnostic sensors esphome#20638 by @remcom (new-feature) (new-platform)
- [tmp102] Add text sensor for diagnostics esphome#20629 by @techdregs (new-feature) (new-platform)
- [haier] Haier Select component added esphome#16148 by @paveldn (new-feature) (new-platform)
- [midea_portasplit] Add Midea PortaSplit climate component esphome#18033 by @Fexiven (new-component) (new-feature) (new-platform)
- [ld2450] Add polygon zones evaluated on the device esphome#20154 by @fornellas (new-feature) (new-platform)
- [audio_dac] Add ES9038Q2M Katana platform esphome#15017 by @GioMez (new-component) (new-feature) (new-platform)
- [apc_proteous] Cover component for APC Proteous gate motors esphome#13403 by @clydebarrow (new-component) (new-feature) (new-platform)
- [dfrobot_sen0609] Add DFRobot SEN0609/SEN0610 radar esphome#20809 by @remcom (new-component) (new-feature) (new-platform)
- [rx8111] Add basic RX8111CE real-time clock support esphome#20785 by @techdregs (new-component) (new-feature) (new-platform)
- [as734x] [1/3] Add AS7341/AS7343/TCS3448 spectral sensor hub with counts sensors esphome#17038 by @latonita (new-component) (new-feature) (new-platform)
- [dfrobot_sen0609] Add number, switch and select settings esphome#20813 by @remcom (new-feature) (new-platform)
- [as734x] [3/3] Add illuminance, photopic irradiance, PAR, PPFD, colour temperature and RGB esphome#18012 by @latonita (new-feature) (new-platform)
- [dfrobot_sen0609] Add restart, factory reset and query buttons esphome#20877 by @remcom (new-feature) (new-platform)
- [haier_water_heater] Initial water-heater implementation tested with Haier VH3W esphome#20765 by @TheLexus (new-component) (new-feature) (new-platform)
- [mics_5524] Add MiCS-5524 gas sensor platform (1/2) esphome#19721 by @nliaudat (new-component) (new-feature) (new-platform)
- [dfrobot_sen0465] Add DFRobot SEN0465-SEN0476 electrochemical gas sensors esphome#20880 by @tzabbi (new-component) (new-feature) (new-platform)
- [uart] Add a binary sensor that fires on a byte sequence esphome#14032 by @tomaszduda23 (new-feature) (new-platform)
- [sen6x] Add device status binary sensors esphome#18784 by @bharvey88 (new-feature) (new-platform)
- [mt6701] Add MT6701 (MagnTek magnetic encoder) component esphome#17643 by @slimcdk (new-component) (new-feature) (new-platform)
- [bq76972] Expose the sensors as a sensor platform esphome#21006 by @bdraco (new-platform)
- [fusb302b] Expose the sensors as platforms esphome#21004 by @bdraco (new-platform)
- [airton] Add support to climate for Airton IR A/C units esphome#7753 by @Procsiab (new-component) (new-feature) (new-platform)
- [vevor_dtx] Add Vevor weather station component esphome#17224 by @Bofr5555 (new-component) (new-feature) (new-platform)
- [homeassistant] Add the light platform esphome#11354 by @egormanga (new-feature) (new-platform)
- [usb_audio] Add USB Audio Class (UAC) host support esphome#11728 by @ab-tools (new-component) (new-feature) (new-platform)
- [st7305] Add reflective LCD display driver esphome#21099 by @clydebarrow (new-component) (new-feature) (new-platform)
- [vl53l1x] Add VL53L1X time-of-flight distance sensor esphome#13605 by @will-tm (new-component) (new-feature) (new-platform)
- [veml6040] Add VEML6040 RGBW colour sensor esphome#20812 by @aalaei (new-component) (new-feature) (new-platform)
- [ds3231] Add time platform, alarms, binary sensors and output control esphome#21054 by @miloit (new-feature) (new-platform)
- [m5stack_4relay] m5stack 4relay switch implementation esphome#7234 by @KoenBreeman (new-component) (new-feature) (new-platform)
- [ln882x_spi_led_strip] Add SPI DMA addressable LED strip for LN882x esphome#21409 by @sebo-b (new-component) (new-feature) (new-platform)
- [islandaire] Add Islandaire PTAC climate IR component esphome#20153 by @ipopov (new-component) (new-feature) (new-platform)
- [cw2017] Add CW2017 battery fuel gauge esphome#21369 by @exciton (new-component) (new-feature) (new-platform)
- [seeed_multi_channel_relay] Add the Seeed Studio Grove multi-channel relay boards esphome#7233 by @KoenBreeman (new-component) (new-feature) (new-platform)
- [packet_interface] Add packet interface component esphome#21037 by @clydebarrow (new-component) (new-feature) (new-platform)
- [duco] Component for Duco ventilation system esphome#7993 by @kokx (new-component) (new-feature) (new-platform)
- [delta_wallbox] Delta AC wallbox esphome#21231 by @epicRE (new-component) (new-feature) (new-platform)
- [modem] Add PPPoS networking over a UART cellular modem on ESP32 esphome#6721 by @oarcher (new-component) (new-feature) (new-platform)
- [toshiba] Add support for RAS-25J2KVSG-ND esphome#21413 by @magnusoverli (new-feature) (new-platform)
- [tas58xx] Add an activate switch esphome#21458 by @mrtoy-me (new-feature) (new-platform)
- [hitachi_ac344] Add mildew-proof switch esphome#18230 by @eoleedi (new-feature) (new-platform)
- [modem] Add signal sensors and a network type text sensor esphome#14683 by @oarcher (new-feature) (new-platform)
- [es7243] Add ES7243 audio ADC driver esphome#19335 by @Chorty (new-component) (new-feature) (new-platform)
- [adafruit_ble][nrf52][zephyr_ble_server] Initial adafruit ble dfu ota support esphome#20481 by @omersiar (new-component) (new-feature) (new-platform)
- [delta_wallbox] Added ability to set the max current esphome#21587 by @epicRE (new-feature) (new-platform)
- [haier_water_heater] Move child entities to sensor, binary_sensor and text_sensor platforms esphome#21437 by @bdraco (new-platform)
- [tas58xx] Add mixer mode select esphome#21637 by @mrtoy-me (new-feature) (new-platform)
- [rx8111] Add event timestamp text sensor and capture storage modes esphome#21604 by @techdregs (new-feature) (new-platform)
- [ecocomfort2] Add the configuration entities (Part 3) esphome#20783 by @gledian (new-feature) (new-platform)
- [rx8111] Add optional binary sensors esphome#21744 by @techdregs (new-feature) (new-platform)
- [airton_serial] Add Airton serial climate component esphome#21872 by @guiguid (new-component) (new-feature) (new-platform)
- [ld6004] Add Hi-Link LD6004 radar with binary_sensor platform esphome#19840 by @wolph (new-component) (new-feature) (new-platform)
- [ld6004] Add sensor platform esphome#19841 by @wolph (new-feature) (new-platform)
- [ld6004] Add text_sensor platform esphome#19842 by @wolph (new-feature) (new-platform)
- [ld6004] Add select platform esphome#19844 by @wolph (new-feature) (new-platform)
- [ld6004] Add button platform esphome#19846 by @wolph (new-feature) (new-platform)
- [ld6004] Add number platform esphome#19843 by @wolph (new-feature) (new-platform)
- [ld6004] Add switch platform esphome#19845 by @wolph (new-feature) (new-platform)
- [panasonic_ir] Add Panasonic AC IR climate component esphome#21631 by @Duckle29 (new-component) (new-feature) (new-platform)
- [m5stack_unit_bldc] Add M5Stack M5Unit-BLDC platform support esphome#18086 by @lboue (new-component) (new-feature) (new-platform)
- [fujitsu_general] Add buttons for the vane step and economy commands esphome#14271 by @wiiaam (new-feature) (new-platform)
- [ht16k33_char] Add support for HT16K33 based character displays esphome#8520 by @ilikecake (new-component) (new-feature) (new-platform)
- [espectre] Update to SDK 3.1.0; add runtime config entities and CSI diagnostics esphome#22132 by @francescopace (new-feature) (new-platform)
- [daikin_madoka] Add new Daikin Madoka integration esphome#5951 by @Petapton (new-component) (new-feature) (new-platform)
Breaking Changes
Section titled “Breaking Changes”- [canbus] Keep constant send payloads in shared flash tables esphome#20309 by @bdraco (breaking-change)
- [qspi_amoled] Remove legacy renamed component stub esphome#20396 by @jesserockz (breaking-change)
- [ethernet] Remove deprecated clk_mode option esphome#20384 by @bdraco (breaking-change)
- [dlms_meter] Remove deprecated provider option esphome#20385 by @bdraco (breaking-change)
- [lvgl] Remove deprecated update_on_release option esphome#20387 by @bdraco (breaking-change)
- [nextion] Remove deprecated dump_device_info option esphome#20388 by @bdraco (breaking-change)
- [dlms_meter] Remove deprecated predefined sensor keys esphome#20386 by @bdraco (breaking-change)
- [emontx] Pass on_json/on_data data without copies and reject deferring actions esphome#20516 by @FredM67 (breaking-change)
- [haier] Reject deferring actions in on_status_message esphome#20539 by @FredM67 (breaking-change)
- [mqtt] Reject deferring actions in on_json_message esphome#20538 by @FredM67 (breaking-change)
- [remote_base] updates to support 56 bit panasonic codes esphome#20260 by @toups (new-feature) (breaking-change)
- [remote_base] Decode the full MagiQuest frame and check its checksum esphome#10622 by @ificator (breaking-change)
- [remote_base] Fix NEC command_repeats to send repeat frames esphome#17663 by @Siddharthsinghkumar (breaking-change)
- [openthread] Add ESP32 OpenThread Border Router support esphome#18104 by @pputerla (new-feature) (breaking-change)
- [web_server] Do not match internal entities by URL unless include_internal is set esphome#20883 by @sebo-b (breaking-change)
- [web_server] Report numbers without a state as NA esphome#20973 by @r3wretrhy (breaking-change)
- [network][socket] Allow disabling IPV4 esphome#14526 by @rwrozelle (breaking-change)
- [core] Add relation option to sub-devices esphome#21232 by @jesserockz (breaking-change)
- [esp32] Require ESP-IDF 5.1 and set software coexistence through its Kconfig name esphome#21398 by @swoboda1337 (breaking-change)
- [esp32_hosted] Move to esp_hosted 3.0.10 esphome#21394 by @swoboda1337 (breaking-change)
- [http_request] Run requests from the action without blocking the loop esphome#21486 by @clydebarrow (new-feature) (breaking-change)
- [libretiny] Bump LibreTiny to 1.14.0 and build BK7231N and BK7231T with BDK 3.0.78 esphome#21531 by @bdraco (breaking-change)
- [epaper_spi] - Add support for the XSRUPB-7.5in-bwr panel esphome#19654 by @candrews (new-feature) (breaking-change)
- [esp32_rmt] Check that RMT components fit the chip’s RMT channels esphome#22172 by @zeroflow (breaking-change)
All changes
Section titled “All changes”- [core] Deprecate TemplatableValue::is_static_string and get_static_string esphome#20280 by @bdraco
- [cc1101] Keep constant send_packet payloads in shared flash tables esphome#20264 by @bdraco
- [ci] Only run sync dependency versions workflow on PRs targeting dev esphome#20316 by @jesserockz
- [CI] Remove obsolete platform labels esphome#20301 by @luar123
- [canbus] Cover shared, string and trigger argument send payloads in the component tests esphome#20306 by @bdraco
- [remote_base] Cover shared, empty and trigger argument abbwelcome payloads in the component test esphome#20307 by @bdraco
- [modbus_client] Cover shared constant and trigger argument write values in the component test esphome#20327 by @bdraco
- [canbus] Keep constant send payloads in shared flash tables esphome#20309 by @bdraco (breaking-change)
- [esp32_ble_server] Cover string, typed number, repeated and trigger argument set_value payloads in the component test esphome#20308 by @bdraco
- [web_server] Emit the resource tables with cg.extern_progmem_array esphome#20300 by @bdraco
- [core] Declare component log tags with ESPHOME_LOG_TAG esphome#20291 by @bdraco
- [udp] Keep constant write payloads in shared flash tables esphome#20268 by @bdraco
- [qspi_amoled] Remove legacy renamed component stub esphome#20396 by @jesserockz (breaking-change)
- [core] Add a DOMAIN constant to every component esphome#20395 by @jesserockz (new-component)
- [mipi_dsi] Make config tests pass in isolation esphome#20420 by @jesserockz
- [core] Use component DOMAIN constants instead of name literals esphome#20419 by @jesserockz
- [spd2010] Add touchscreen platform esphome#19057 by @grischard (new-component) (new-feature) (new-platform)
- [spd2010] Fix DOMAIN esphome#20422 by @clydebarrow
- [sendspin] Fix duplicate definitions after the beta merge esphome#20424 by @bdraco
- [debug] Collapse duplicate CI test variants esphome#20404 by @bdraco
- [mdns] Collapse duplicate CI test variants esphome#20403 by @bdraco
- [core] Use numeric scheduler ids instead of string names (ESP32 1/2) esphome#20380 by @bdraco
- [core] Use numeric scheduler ids instead of string names (ESP32 2/2) esphome#20381 by @bdraco
- [core] Document numeric scheduler ids in AGENTS.md esphome#20382 by @bdraco
- [core] Use numeric scheduler ids instead of string names (1/5) esphome#20374 by @bdraco
- [core] Use numeric scheduler ids instead of string names (3/5) esphome#20376 by @bdraco
- [sprinkler] Key timers by index and keep them in a fixed array esphome#20379 by @bdraco
- [core] Use numeric scheduler ids instead of string names (4/5) esphome#20377 by @bdraco
- [ci] Skip the memory impact target build when the base test is missing esphome#20410 by @bdraco
- [ci] Skip the static analyzer on the generated protobuf dump file esphome#20414 by @bdraco
- [ir_rf_proxy] Collapse duplicate CI test variants esphome#20399 by @bdraco
- [core] Use numeric scheduler ids instead of string names (2/5) esphome#20375 by @bdraco
- [dallas_temp] Use a numeric scheduler id and drop the cached address string esphome#20361 by @bdraco
- [core] Use numeric scheduler ids instead of string names (5/5) esphome#20378 by @bdraco
- [modbus] Use a numeric scheduler id for the deferred server reply esphome#20368 by @bdraco
- [power_supply] Use a numeric scheduler id for the power off timeout esphome#20367 by @bdraco
- [tuya] Use numeric scheduler ids instead of string names esphome#20365 by @bdraco
- [esp8266] Keep switch lookup tables out of RAM esphome#20398 by @bdraco
- [adc] Collapse duplicate CI test variants esphome#20400 by @bdraco
- [logger] Collapse duplicate CI test variants esphome#20402 by @bdraco
- [ethernet] Remove deprecated clk_mode option esphome#20384 by @bdraco (breaking-change)
- [improv_serial] Collapse duplicate CI test variants esphome#20405 by @bdraco
- [core] Build trigger callbacks as stateless lambdas esphome#19606 by @bdraco
- [core] Document the trigger callback helpers in AGENTS.md esphome#20435 by @bdraco
- [core][zigbee] Wake main loop on defer/set_timeout from background task esphome#20356 by @luar123
- [espidf] Cache the discovered component list once per target esphome#20432 by @bdraco
- [sensor] Merge the radar timeout and throttle filters into one esphome#20118 by @bdraco
- [template] Keep alarm codes in a shared flash table esphome#20084 by @bdraco
- [dlms_meter] Remove deprecated provider option esphome#20385 by @bdraco (breaking-change)
- [wireguard] Keep allowed IPs in a shared flash table esphome#20087 by @bdraco
- [core] Stop re-exporting alloc_helpers.h from helpers.h esphome#20389 by @bdraco
- [core] Remove deprecated esphome::RingBuffer alias esphome#20390 by @bdraco
- [remote_base] Keep constant IR codes in flash esphome#20083 by @bdraco
- [remote_base] Add Onkyo RI Wired Serial Support esphome#18595 by @c0nsumer (new-feature)
- [lvgl] Remove deprecated update_on_release option esphome#20387 by @bdraco (breaking-change)
- [nextion] Remove deprecated dump_device_info option esphome#20388 by @bdraco (breaking-change)
- [http_request] Test shared, lambda and trigger argument request headers esphome#20224 by @bdraco
- [dlms_meter] Remove deprecated predefined sensor keys esphome#20386 by @bdraco (breaking-change)
- [dlms_meter] Add support for “Landis+Gyr E450 HDLC Cyprus”. Adapt the code for new API of dlms_parser esphome#16942 by @PolarGoose
- [deep_sleep][gpio][core][power_supply] Prepare for gpio hold (2/3) esphome#18966 by @luar123
- [uart] Share uart_tcp’s write pacing and uart_id matcher esphome#20464 by @Bascht74
- [microphone] Build on_data with build_callback_automation esphome#20451 by @bdraco
- [graphical_display_menu] Build on_redraw with build_callback_automation esphome#20452 by @bdraco
- [core] Bind InternalGPIOPin to the platform pin class instead of a virtual base esphome#20455 by @bdraco
- [espidf] Declare the map byproduct only when IDF has not esphome#20462 by @bdraco
- [display_menu_base] Build the menu item triggers with build_parent_callback_automation esphome#20443 by @bdraco
- [time] Build on_time_sync with build_callback_automation esphome#20441 by @bdraco
- [datetime] Build on_value with build_callback_automation esphome#20445 by @bdraco
- [display] Test on_page_change with each from and to combination esphome#20457 by @bdraco
- [tuya] Build on_datapoint_update with build_trigger_callback esphome#20453 by @bdraco
- [opentherm] Build before_send and before_process_response with build_callback_automation esphome#20450 by @bdraco
- [core] Let a trigger filter name its parent with
{parent}esphome#20448 by @bdraco - [valve] Build on_open and on_closed with build_callback_automation esphome#20442 by @bdraco
- [core] Add status_momentary_warning/error overloads without a name esphome#20362 by @bdraco
- [st7735][st7789v][waveshare_epaper] Declare log tags with ESPHOME_LOG_TAG esphome#20295 by @bdraco
- [light] Keep the effect list in a flash table esphome#20204 by @bdraco
- [core] Catch heap allocating helper calls with explicit template arguments esphome#20391 by @bdraco
- [improv_ble] Build the state triggers with build_callback_automation esphome#20444 by @bdraco
- [core] Use status_momentary_warning/error without a name in components esphome#20363 by @bdraco
- [gpio][esp32][uart] Add option to hold gpio during (deep)sleep and reboot (3/3) esphome#18964 by @luar123 (new-feature)
- [core] Deprecate the named status_momentary_warning/error overloads esphome#20369 by @bdraco
- [it8951] Hold display enable pins off during deep-sleep esphome#20471 by @clydebarrow
- [ci] Compile an ESP8266 config with the native toolchain on Windows esphome#20467 by @bdraco
- [ci] Mark PRs with merge conflicts stale after 30 days esphome#20490 by @swoboda1337
- [addressable_light] Clear white channel when setting HSV color esphome#20265 by @j9brown
- [adalight] Add a component build test esphome#19103 by @j9brown
- [const] Move automatic_baseline_calibration to the shared constants esphome#20492 by @bdraco
- [mitsubishi] Add fahrenheit_compatibility mode esphome#18880 by @zigboi (new-feature)
- [mitsubishi] Control both vanes on multi-vane Mitsubishi minisplit heads esphome#12609 by @zigboi (new-feature)
- [cm1106] Add ABC function esphome#8894 by @CzBiX (new-feature)
- [esp32] Honor sdkconfig CPU frequency options esphome#20158 by @rupayon123
- [const] Move aqi to the shared constants esphome#20494 by @bdraco
- [tca9548a] Allow separate I²C bus frequencies on each multiplexer port esphome#10422 by @DAVe3283 (new-feature)
- [const] Add the milliampere hour unit to the shared constants esphome#20495 by @bdraco
- [mipi_spi] ESP32-2432S028-9342 panel is RGB, not BGR esphome#19419 by @pleasantone
- [zigbee] add support for SED on esp32 esphome#20487 by @luar123 (new-feature)
- [feedback] Support for overshoot_duration esphome#13186 by @AchilleGR (new-feature)
- [cli] Add line format error message option esphome#20470 by @clydebarrow (new-feature)
- [const] Move the verify_ssl constant to the shared constants esphome#20501 by @bdraco
- [const] Move the adc_time and adc_averaging constants to the shared constants esphome#20503 by @bdraco
- [toshiba] Add ‘seiya’ model support esphome#17830 by @longerCZE (new-feature)
- [toshiba] Add RAS-B10N3KV2 model support esphome#17550 by @RuedigerMueller (new-feature)
- [espnow] Add support for ESPNow with ESP8266 esphome#14407 by @minorOffense (new-feature)
- [hub75] add set_rotation and get_rotation methods esphome#13921 by @tjhorner (new-feature)
- [daikin] Add presets and half-degree temperature steps esphome#17891 by @opcod3 (new-feature)
- [ld2412] Fix crash when only some gate thresholds are configured esphome#18194 by @ptr727
- [tests] Reset shared App state before every host test esphome#20510 by @bdraco
- [daikin] Prefix the PendingComfort enumerators esphome#20512 by @bdraco
- [tuya] Add forced minute boundary time sync esphome#18603 by @MayorBug (new-feature)
- [emontx] Read UART bytes with read_byte() esphome#20514 by @FredM67
- [emontx] Discard the rest of a line that overflows the buffer esphome#20515 by @FredM67
- [esp32] Add allow_insecure_tls() for components that skip certificate verification esphome#20506 by @bdraco
- [emontx] Test lines of exactly MAX_LINE_LENGTH bytes esphome#20517 by @FredM67
- [modbus] Pass the request’s address to client device callbacks esphome#20504 by @exciton
- [emontx] Pass on_json/on_data data without copies and reject deferring actions esphome#20516 by @FredM67 (breaking-change)
- [systa_bus] Add text_sensor esphome#20518 by @Mat931 (new-feature) (new-platform)
- [core] Add this week’s review lessons to AGENTS.md esphome#20522 by @bdraco
- [core] Add sum_bytes() and use it for the additive byte checksums components hand-roll esphome#20507 by @bdraco
- [core] Add validators that reject deferring actions in an automation esphome#20523 by @FredM67
- [tmp102] Add hardware configuration options esphome#20063 by @techdregs (new-feature)
- [web_server] Keep the cover, valve and alarm panel action tables in flash esphome#20397 by @bdraco
- [canbus] Bus error logging, Auto-recover bus-off on ESP32 esphome#10953 by @patagonaa
- [emontx] Use the core validate_synchronous_automation() helper esphome#20525 by @FredM67
- [modbus_client] Use the core deferring-actions validators esphome#20526 by @FredM67
- [remote_base] Transmit constant Haier, Mirage and AEHA codes without a heap vector esphome#20287 by @bdraco
- [display] Build on_page_change with build_callback_automation and compile it out when unused esphome#20456 by @bdraco
- [ufm01] Improve stale recovery, add diagnostics and clear flow action esphome#18899 by @ljungqvist (new-feature) (new-platform)
- [core] Only treat action names as actions in has_non_synchronous_actions() esphome#20524 by @FredM67
- [teleinfo] Store the frame as bytes and read with read_byte() esphome#20531 by @FredM67
- [teleinfo] Log the tag name for an invalid timestamp esphome#20532 by @FredM67
- [mk2pvrouter] Store the frame as bytes and read with read_byte() esphome#20530 by @FredM67
- [pmsx003] add support for luftmy ld15 esphome#15296 by @tuct (new-feature)
- [socket] Add join_multicast_group() and set_ipv6_multicast_if() helpers esphome#17045 by @rwrozelle
- [lvgl] Migrate to 9.6.0 esphome#20257 by @clydebarrow (new-feature)
- [pipsolar] Add QET/QLT total energy sensors esphome#17347 by @mkhrulov (new-feature)
- [haier] Reject deferring actions in on_status_message esphome#20539 by @FredM67 (breaking-change)
- [cse7761] Add new sensors esphome#17531 by @fornellas (new-feature)
- [emontx] Add pause/resume actions to let another component take over the UART esphome#18756 by @FredM67 (new-feature)
- [mipi_dsi] Add JC1060P470-V2 esphome#18695 by @mkucharek (new-feature)
- [mqtt] Reject deferring actions in on_json_message esphome#20538 by @FredM67 (breaking-change)
- [zigbee] Improve basic cluster and add manufacturer and app version setting esphome#20519 by @luar123 (new-feature)
- [zigbee] add report action on esp32 esphome#20488 by @luar123 (new-feature)
- [micro_wake_word] Add opt-in internal RAM placement esphome#20529 by @mbrudka (new-feature)
- [openthread] add mesh_local_eid openthread_info sensor esphome#13924 by @mrene (new-feature)
- [const] Move the colour channel config keys to the shared constants esphome#20544 by @bdraco
- [ci] Tell too-big PR authors that review waits until the PR is under the cap esphome#20543 by @bdraco
- [tmp102] Add comparator alert binary sensor esphome#20540 by @techdregs (new-feature) (new-platform)
- [remote_base] Add optional suffix bits to KeeLoq after the HCS301 word esphome#19891 by @Bascht74 (new-feature)
- [core] Expose the preferences storage helpers to components esphome#20535 by @bdraco
- [mipi_spi] Add LCDwiki ES3C35P model (ST77922 QSPI) esphome#19011 by @jlmeredith (new-feature)
- [uart] Let a UART say it has no line timing esphome#20227 by @Bascht74
- [remote_base] Keep constant abbwelcome payloads in shared flash tables esphome#20311 by @bdraco
- [http_request] Keep action request headers in a shared flash table esphome#20225 by @bdraco
- [api] Share one flash string pool between API action and Home Assistant action strings esphome#20281 by @bdraco
- [event] Keep event types in a shared flash table esphome#20217 by @bdraco
- [thermostat] Keep presets in shared flash tables esphome#20080 by @bdraco
- [esp32_ble_server] Keep constant set_value payloads in shared flash tables esphome#20314 by @bdraco
- [core] Emit filter, action and condition lists one item at a time esphome#20116 by @bdraco
- [uart] Keep constant switch, button and write payloads in flash esphome#20082 by @bdraco
- [core] Move CONF_ON_STOP to the shared component constants esphome#20548 by @clydebarrow
- [climate] Build the on_state and on_control triggers with build_callback_automation esphome#19611 by @bdraco
- [select] Build the on_value trigger with build_callback_automation esphome#19609 by @bdraco
- [fan] Build the on_state trigger with build_parent_callback_automation esphome#19612 by @bdraco
- [text] Build the on_value trigger with build_callback_automation esphome#19613 by @bdraco
- [json][web_server] Link strings that outlive the document instead of copying them esphome#19380 by @bdraco
- [remote_transmitter] Compile the transmit actions the test config left out esphome#20550 by @bdraco
- [core] Do not search the same heap twice in RAMAllocator single-region requests esphome#19381 by @bdraco
- [socket] Add lwip raw UDP socket implementation esphome#14677 by @bdraco
- [improv_serial] Remove the duplicate timeout id left by the beta merge esphome#20562 by @bdraco
- [cse7761] Add current_input option for current transformer boards such as the Sonoff POW CT esphome#7836 by @mick96 (new-feature)
- [remote_base] Generate the simple transmit actions with no C++ class esphome#20549 by @bdraco
- [mcp9808] Remove k7hpn as codeowner esphome#20561 by @k7hpn
- [remote_base] Name transmit as a template in ProtocolCall::perform esphome#20566 by @bdraco
- [seeed_mr24hpc1] Remove the duplicate startup delay constant left by the beta merge esphome#20569 by @bdraco
- [wake_on_lan] Use the socket UDP API on ESP8266 and RP2040 esphome#20556 by @bdraco
- [lvgl] Add a color picker widget esphome#17883 by @clydebarrow (new-feature)
- [wifi] Add DHCP lease cache esphome#17767 by @bootc (new-feature)
- [core] Add UnavoidableBlockingScope for blocking that cannot be shortened esphome#19020 by @bdraco
- [core] Mask integer-valued credentials without changing code generation esphome#20430 by @Firat17aze
- [bl0939] Add optional internal temperature sensor esphome#19415 by @ikruglov (new-feature)
- [remote_base] Add Nexus RF protocol support esphome#13577 by @philpem (new-feature)
- [ci] Refresh integration test durations esphome#20578 by @esphome[bot]
- [remote_base] Add the Somfy RTS transmit protocol esphome#16502 by @RobertH1993 (new-feature)
- [core] Add a name truncation helper and keep the MAC suffix in the nRF52 BLE name esphome#19768 by @bdraco
- [remote_base] Adding Marantz RC5 Extended protocol esphome#13164 by @endemics (new-feature)
- [nextion] Pass std::string to custom-protocol automations that defer esphome#20571 by @FredM67
- [epaper_spi] Add Good Display GDEY0213F51 4-color e-paper support esphome#17991 by @profplump (new-feature)
- [emontx] Lock the emonTx across reboots esphome#20576 by @FredM67 (new-feature)
- [remote_base] updates to support 56 bit panasonic codes esphome#20260 by @toups (new-feature) (breaking-change)
- [remote_base] Decode the full MagiQuest frame and check its checksum esphome#10622 by @ificator (breaking-change)
- [remote_base] Fix NEC command_repeats to send repeat frames esphome#17663 by @Siddharthsinghkumar (breaking-change)
- [remote_base] Add a data option and checksum handling to the Drayton protocol esphome#13060 by @marshn (new-feature)
- [mipi_spi] Add M5STACK-ATOMS3R-ST7735 as a display panel configuration esphome#18673 by @mfishma (new-feature)
- [daikin_brc] Add sub_unit parameter for multi-unit addressing esphome#15234 by @AnilDaoud (new-feature)
- [dsmr] add Switzerland channel 1-1 sensors (EWL Luzern AM550) esphome#17391 by @SebiGo (new-feature)
- [heatpumpir] Add ZMP IR receiver esphome#17099 by @bughaver (new-feature)
- [cse7766] Clamp a power factor above 1 instead of publishing NaN esphome#15307 by @joshuaboniface
- [heatpumpir] Add Eco and Boost presets and fix fan speeds on Mitsubishi Heavy ZJ and ZMP esphome#16877 by @bughaver (new-feature)
- [remote_base] List the hob2hood, nexus and onkyori protocol defines in defines.h esphome#20577 by @bdraco
- [wifi] Exclude the station connect from the loop blocking guard on LibreTiny esphome#20575 by @bdraco
- [api] Exclude the spare key refill from the loop blocking guard esphome#20574 by @bdraco
- [noise] Exclude the handshake write step from the loop blocking guard esphome#20573 by @bdraco
- [remote_transmitter] Compile pronto, rc6, midea and lambda byte payloads in the test config esphome#20565 by @bdraco
- [remote_base] Generate transmit_pronto and transmit_rc6 with no C++ class esphome#20564 by @bdraco
- [adc] Skip the output raw, sample count, attenuation and sampling mode setters when they match the defaults esphome#20068 by @bdraco
- [ethernet] Skip setters that pass the default PHY address, MDC, MDIO, clock and SPI interface esphome#20070 by @bdraco
- [remote_base] Generate the byte payload transmit actions with no C++ class esphome#20568 by @bdraco
- [cli] Add —prompt-ota-key to present a different key for one upload esphome#19397 by @bdraco (new-feature)
- [udp] Use the socket UDP API on ESP8266 and RP2040 esphome#20558 by @bdraco
- [e131] Use the socket UDP API on ESP8266 and RP2040 esphome#20559 by @bdraco
- [statsd] Use the socket UDP API on ESP8266 and RP2040 esphome#20557 by @bdraco
- [bl0939] Add current transformer measurement mode support esphome#13350 by @amateescu (new-feature)
- [remote_base] Add the Pioneer WYT transmit protocol esphome#17175 by @mikesmitty (new-feature)
- [web_server] Self contained AP mode: embedded interface served as a captive portal esphome#18517 by @bdraco (new-feature)
- [esp32] Check the TLS option the active IDF version writes in tests esphome#20584 by @swoboda1337
- [core] Add YAML secret reference and registration helpers esphome#20343 by @bdraco
- [whirlpool] Add the HISENSE_ARG model for Hisense and BGH units sold in Argentina esphome#17352 by @arpena (new-feature)
- [socket] Read the LwIP interface list under the core lock esphome#20583 by @rwrozelle
- [udp] Wake the main loop when a datagram arrives esphome#20585 by @rwrozelle
- [siemens_ira211] Add the Siemens IRA211 protocol and climate platform esphome#15154 by @fonix232 (new-component) (new-feature) (new-platform)
- [lis2dw12] Add ST LIS2DW12 accelerometer component esphome#14780 by @latonita (new-component) (new-feature) (new-platform)
- [ld2460] Add HLK-LD2460 radar hub with target sensors esphome#19002 by @jesusvallejo (new-component) (new-feature) (new-platform)
- [ds3231] Add DS3231 real-time clock hub with temperature sensor esphome#18883 by @linkedupbits (new-component) (new-feature) (new-platform)
- [udp] Add IPv6 unicast and multicast esphome#20590 by @rwrozelle (new-feature)
- [pd_pioneer_ir] Add Pioneer mini-split IR climate component esphome#17680 by @martinsah (new-component) (new-feature) (new-platform)
- [es7210] Add TDM support for future AEC support esphome#18954 by @matt123p (new-feature)
- [power_management] Add the power_management domain with an esp32_power_management platform esphome#12325 by @rwrozelle (new-component) (new-feature)
- [husb238] Add HUSB238 USB PD controller hub with binary sensors esphome#16572 by @latonita (new-component) (new-feature) (new-platform)
- [bh1745] Add BH1745 colour sensor esphome#6349 by @latonita (new-component) (new-feature) (new-platform)
- [ecocomfort2] Add component for Fantini Cosmi VMC units via BLE (Part 1: hub + fan) esphome#17092 by @gledian (new-component) (new-feature) (new-platform)
- [lis3dh] Add LIS3DH accelerometer component esphome#17393 by @Zebble (new-component) (new-feature) (new-platform)
- [i2s_clockless_led_strip] Drives LED strips using I2S and DMA esphome#20255 by @j9brown (new-component) (new-feature) (new-platform)
- [ld2410s] Add HLK-LD2410S presence radar component esphome#10452 by @NovakIrs (new-component) (new-feature) (new-platform)
- [bq27220] Add BQ27220 battery fuel gauge component esphome#17702 by @rggammon (new-component) (new-feature) (new-platform)
- [lp5562] Add LP5562 4-channel I2C LED driver output component esphome#18453 by @DennisGaida (new-component) (new-feature) (new-platform)
- [tca8418] Add TCA8418 keypad component esphome#18521 by @Zebble (new-component) (new-feature) (new-platform)
- [MAX31888] Add temperature sensor esphome#13567 by @JiriPrchal (new-component) (new-feature) (new-platform)
- [ns2009] Add Nsiway NS2009 touchscreen controller component esphome#10597 by @tchilov (new-component) (new-feature) (new-platform)
- [ezsp_proxy_tap] Add SiLabs EZSP auto-ACK implementation esphome#20304 by @puddly (new-component) (new-feature)
- [max17048] Add MAX17048 Li+ Cell Fuel Gauge IC esphome#13585 by @B48D81EFCC (new-component) (new-feature) (new-platform)
- [bq25186] Add bq25186 1-Cell, 1A Linear Battery Charger component (part 1) esphome#15700 by @Rapsssito (new-component) (new-feature)
- [tinyusb] Add
tinyusb_keyboardcomponent esphome#16079 by @FrederikBolding (new-component) (new-feature) - [renogy_inverter_ble] Add Renogy inverter BLE sensor component esphome#16754 by @emilioaray-dev (new-component) (new-feature) (new-platform)
- [samsung] Add climate IR samsung support esphome#8004 by @jorofi (new-component) (new-feature) (new-platform)
- [bmi270] Add optional BMM150 magnetometer support via aux interface esphome#18436 by @DennisGaida (new-feature)
- [remko_ar715] Add Remko AR-715 IR climate platform esphome#17173 by @naKruul (new-component) (new-feature) (new-platform)
- [sh1122] Add OLED display driver esphome#15295 by @pl4nkton (new-component) (new-feature) (new-platform)
- [tmc2209] Add TMC2209 stepper driver esphome#20437 by @remcom (new-component) (new-feature) (new-platform)
- [apds9930] Add ambient light and proximity sensor esphome#13125 by @iyesin (new-component) (new-feature) (new-platform)
- [mistral_ir] Add climate component for Mistral MHFE1126A IR AC units esphome#17812 by @lerhum (new-component) (new-feature) (new-platform)
- [core] Report incomplete YAML discovery and record remote package sources esphome#20312 by @bdraco
- [gpio] Keep each interlock group in one shared flash table esphome#20238 by @bdraco
- [core] Resume if and while from the end of their branch instead of an embedded continuation action esphome#20283 by @bdraco
- [ota] Add old_key so an upload can retry with the previous key esphome#19398 by @bdraco (new-feature)
- [apc1] Add support for the ScioSense APC1 air quality sensor (UART) esphome#19274 by @ademuri (new-component) (new-feature) (new-platform)
- [binary_sensor] Share multi click timing tables in flash and skip the default cooldown setter esphome#20071 by @bdraco
- [sensor] Share calibrate_linear and calibrate_polynomial tables in flash esphome#20074 by @bdraco
- [text_sensor] Share substitute and map filter tables in flash esphome#20076 by @bdraco
- [core] Document string tables, shared CRC helpers, NaN sentinels and polling start-up in AGENTS.md esphome#20599 by @bdraco
- [aranet] Add Aranet BLE sensor support esphome#18263 by @patrickod (new-component) (new-feature) (new-platform)
- [ecocomfort2] Add the read-only sensors and clock sync (Part 2) esphome#15447 by @gledian (new-feature) (new-platform)
- [ota] Refuse a second OTA while one is already running esphome#20588 by @FredM67
- [noise] Add generate_encryption_key and use it in the wizard and dashboard_import esphome#20600 by @bdraco
- [weikai] Mark configurable classes as final esphome#17292 by @jesserockz
- [runtime_image] Add CodSpeed benchmarks for JPEG decoding esphome#20603 by @bdraco
- [bh1745] Use SUB_SENSOR for the sensors esphome#20606 by @bdraco
- [pzem6l24] Use SUB_SENSOR and explicit sub_sensors calls for the sensors esphome#20609 by @bdraco
- [systa_bus] Use SUB_SENSOR and explicit sub_sensors calls for the sensors esphome#20610 by @bdraco
- [uart] Keep the swapped UART0 pins on an ESP8266 reload esphome#20463 by @Bascht74
- [stcc4] Use SUB_SENSOR for the output sensors esphome#20605 by @bdraco
- [yaml_util] Raise a clear error for a non-mapping
defaults:in a package esphome#19425 by @Gunni - [runtime_image] Speed up RGB565 JPEG decoding esphome#19454 by @jcianci12
- [gt911] Fix the interrupt pin initialisation after reset esphome#15021 by @t2bottom
- [esp32_power_management] Build the flash power-down path in a standalone test variant esphome#20612 by @bdraco
- [const] Move CONF_SERIAL_NUMBER to the shared component constants esphome#20611 by @bdraco
- [light] Keep one copy of the color mode lookup table in flash esphome#20394 by @bdraco
- [core] Keep string constants in apply conditions in flash on ESP8266 esphome#20107 by @bdraco
- [sensor] Share filter_out and throttle_with_priority value tables in flash esphome#20078 by @bdraco
- [bq25186] Add the status sensors, buttons, PG/GPO switch and watchdog option (part 2) esphome#15736 by @Rapsssito (new-feature) (new-platform)
- [ecocomfort2] Test the component in isolation esphome#20613 by @bdraco
- [ld2410s] Add the distance sensor, firmware version and common parameters (Part 2) esphome#8486 by @NovakIrs (new-feature) (new-platform)
- [INA3221] Add optional flags to expose all functionality esphome#16309 by @rwalker777 (new-feature)
- [tmp102] Add number entities for runtime thermostat thresholds esphome#20596 by @techdregs (new-feature) (new-platform)
- [bq76972] Add BQ76972 BMS chip monitoring component esphome#17720 by @limpkin (new-component) (new-feature)
- [selec_meter] Add EM4M (3-phase) support via model option esphome#17782 by @sourabhjaiswal (new-feature)
- [friedrich] New Climate IR component esphome#9178 by @rwrozelle (new-component) (new-feature) (new-platform)
- [deep_sleep] Reject wakeup_pin configs that fail after validation esphome#18616 by @bharvey88
- [image] Implement RGB111 format esphome#20114 by @guillempages (new-feature)
- [emontx] Read the emonTx firmware version esphome#20619 by @FredM67 (new-feature) (new-platform)
- [tests] Turn off the Hypothesis deadline for the MAC address tests esphome#20614 by @bdraco
- [core] Document constexpr constants, per-model schemas and isolated build tests in AGENTS.md esphome#20617 by @bdraco
- [esp32_camera] Fix compile warning esphome#20628 by @Mat931
- [core] Add probe_ota_key, a Noise handshake with the device that sends no image esphome#20601 by @bdraco
- [filter_lifetime] Add component with sensor/lambda support for is_on … esphome#13914 by @tuct (new-component) (new-feature) (new-platform)
- [icm20689] Add ICM-20689 6-axis accelerometer/gyroscope (SPI) esphome#19234 by @lboue (new-component) (new-feature) (new-platform)
- [haier_tundra] New Climate IR component esphome#20469 by @fauxpark (new-component) (new-feature) (new-platform)
- [pcf8574] Add reset option to preserve outputs across MCU reboots esphome#20589 by @ikruglov (new-feature)
- [voice_assistant] Make TTS playback start timeout configurable esphome#18707 by @n-IA-hane (new-feature)
- [es8388] Add initial option configuration for DAC output and ADC input mic esphome#16342 by @cociweb (new-feature)
- [tmc2209] Add driver diagnostics and stall detection esphome#20618 by @remcom (new-feature)
- [haier_tundra] Build the IR frame on the stack esphome#20635 by @bdraco
- [lvgl] Change deprecated calls to current version esphome#20620 by @clydebarrow
- [core] Let a nested repeat shadow the outer iteration variable esphome#20634 by @swoboda1337
- [openthread] Add core_options for OpenThread compile-time options esphome#20595 by @rwrozelle (new-feature)
- [epaper_spi] Write pixel blocks straight into mono buffers esphome#20552 by @exciton
- [epaper_spi] Abandon an update when the busy pin never clears esphome#20555 by @exciton
- [homeassistant] Add sensor platform benchmarks esphome#20637 by @bdraco
- [toshiba] Move the lookup tables to PROGMEM esphome#20636 by @bdraco
- [image] Fix pillow deprecation warning esphome#20679 by @guillempages
- [thermostat] Allow a dry-only thermostat without cool_action esphome#20682 by @albert-canfield
- [syslog] Keep the log level to severity table in flash esphome#20662 by @bdraco
- [core] Sync the static analysis dependency pins with the code esphome#20681 by @swoboda1337
- [tmc2209] Add current and diagnostic sensors esphome#20638 by @remcom (new-feature) (new-platform)
- [emontx] Lock the emonTx on reboot when its firmware supports it esphome#20621 by @FredM67 (new-feature)
- [PCA9505] Add PCA9505/PCA9506 40-channel GPIO expander esphome#20667 by @ajfriesen (new-component) (new-feature)
- [rtttl] Play a configured song from static storage without copying it esphome#19569 by @bdraco
- [core] Add a decimal fast path to
parse_number<float>esphome#20639 by @bdraco - [core] Declare the remaining log tags with ESPHOME_LOG_TAG esphome#20666 by @bdraco
- [ci] Lint log tags in headers and core esphome#20668 by @bdraco
- [ci] Catch out-of-class member log tags and keep midea’s in flash esphome#20674 by @bdraco
- [lvgl] Make the list_outside_block tests work offline esphome#20676 by @albert-canfield
- [ili9xxx] Set removal of the deprecated component for 2027.5.0 esphome#20687 by @bdraco
- [qspi_dbi] Set removal of the deprecated component for 2027.5.0 esphome#20690 by @bdraco
- [st7735] Set removal of the deprecated component for 2027.5.0 esphome#20688 by @bdraco
- [st7789v] Set removal of the deprecated component for 2027.5.0 esphome#20689 by @bdraco
- [rpi_dpi_rgb] Set removal of the deprecated component for 2027.5.0 esphome#20691 by @bdraco
- [epaper_spi] Add Waveshare 2.66” e-Paper Module (B) support esphome#20546 by @TheZoc (new-feature)
- [epaper_spi] Add Waveshare 2.13in-G (JD79660) display models esphome#18141 by @fredkotze (new-feature)
- [network] Notify listeners when the active interface changes esphome#20684 by @kbx81
- [midea] Add display_control and send the display toggle over UART without a transmitter esphome#18671 by @andreuSignes (new-feature)
- [sy6970] Service the I2C watchdog so charge/LED settings persist esphome#19424 by @willumpie82
- [esp32_can] Support 20 kbit/s on ESP32 revision 2 or later esphome#20426 by @CReimer
- [sen6x] Add measurement control and maintenance actions esphome#18783 by @bharvey88 (new-feature)
- [image] Add CodSpeed benchmarks for image, runtime image and display block draws esphome#20649 by @bdraco
- [tmp102] Add text sensor for diagnostics esphome#20629 by @techdregs (new-feature) (new-platform)
- [core] Let PROGMEM_STRING_TABLE hold more than 255 bytes esphome#20646 by @bdraco
- [haier] Keep the alarm message table in flash esphome#20641 by @bdraco
- [display] Walk the blit fallback in frame buffer order and resolve the bitness once esphome#20651 by @bdraco
- [esp32_can] Add NO_ACK mode esphome#20706 by @steamEngineer (new-feature)
- [core] Move deferred include processing to parse_yaml esphome#16344 by @dmik
- [heatpumpir] Link only the configured protocol classes esphome#20707 by @bdraco
- [socket] Add TcpClientLink::connecting() esphome#20722 by @MindFreeze
- [esp32_ble] Rely on preferences for NVS init esphome#20708 by @kbx81
- [display] Let other components draw into a display esphome#20622 by @MindFreeze
- [haier] Haier Select component added esphome#16148 by @paveldn (new-feature) (new-platform)
- [bmi270] Build the component on ESP8266 in CI esphome#20731 by @bdraco
- [seeed_mr60bha2] Compile without sensors or binary sensors esphome#20729 by @bdraco
- [seeed_mr60fda2] Compile without binary sensors or selects esphome#20726 by @bdraco
- [sx126x][sx127x] Stop the watchdog reset loop when a packet is sent before setup esphome#20727 by @bdraco
- [nfc] Add unit tests for the URI record prefix codes esphome#20724 by @bdraco
- [shelly_dimmer] Build the STM32 firmware update path in CI esphome#20677 by @bdraco
- [core] Add CodSpeed benchmarks for importing entity components esphome#20648 by @bdraco
- [ci] Test tinyusb_keyboard in isolation esphome#20749 by @swoboda1337
- [audio] Bump esp-audio-libs to v4.1.0 esphome#20754 by @kahrendt
- [ci] Add a host clang-tidy environment and job esphome#20747 by @swoboda1337
- [pn532] Fix NDEF parsing greater than 255 bytes esphome#18188 by @Aptimex
- [ci] Select the feature-gated files the platform clang-tidy jobs were missing esphome#20743 by @swoboda1337
- [core] Analyze the ethernet component under ESP-IDF esphome#20745 by @swoboda1337
- [cse7766] Keep last power reading between measurements at low load esphome#20631 by @mvoss96
- [fusb302b] Add USB PD sink protocol esphome#20632 by @remcom (new-component)
- [lvgl] Keep LV_CONF_PATH one argument when the build path has a space esphome#20758 by @swoboda1337
- [bm8563] Convert the weekday to and from the chip’s 0-6 range esphome#20737 by @albert-canfield
- [pcf85063] Convert the weekday to and from the chip’s 0-6 range esphome#20736 by @albert-canfield
- [midea_portasplit] Add Midea PortaSplit climate component esphome#18033 by @Fexiven (new-component) (new-feature) (new-platform)
- [esp8266] Check that every component’s saved values fit together esphome#20686 by @bdraco
- [microphone] Speed up MicrophoneSource audio conversion esphome#20755 by @kahrendt
- [mqtt] Build the mqtt triggers with build_trigger_callback esphome#20433 by @bdraco
- [tmc2209] Add chopper and PWM tuning actions esphome#20753 by @remcom (new-feature)
- [tests] Count OTA key probe retries on a fake clock esphome#20761 by @swoboda1337
- [ld2450] Add polygon zones evaluated on the device esphome#20154 by @fornellas (new-feature) (new-platform)
- [ci] Give the BK72xx clang-tidy environment the static allocation flag the real build has esphome#20764 by @bdraco
- [core] Point compile errors after a lambda at the right line esphome#20740 by @albert-canfield
- [bq25186] Set i2c_id in the component tests esphome#20742 by @albert-canfield
- [ci] Run benchmarks when a component the Python import benchmark imports changes esphome#20763 by @bdraco
- [mqtt] Print crash info over MQTT esphome#17935 by @AndreKR (new-feature)
- [friedrich] Clear saved preferences in the test fixture esphome#20770 by @bdraco
- [i2s_audio] Add keep_alive option to speaker to prevent pop/click on audio start esphome#15565 by @nullable-eth (new-feature)
- [micro_wake_word] Allow selecting the inference task core esphome#20126 by @n-IA-hane (new-feature)
- [wifi] Implement access point WISP mode esphome#13633 by @felipecrs (new-feature)
- [audio_dac] Add ES9038Q2M Katana platform esphome#15017 by @GioMez (new-component) (new-feature) (new-platform)
- [ecocomfort2] Fix the clock sync and read boost from the unit state esphome#20782 by @gledian
- [fusb302b] Add FUSB302B driver esphome#20760 by @remcom (new-feature)
- [wifi] Apply reboot_timeout with a fallback AP unless a station is connected to it esphome#9958 by @GilDev (new-feature)
- [core] Test that includes inside a package resolve next to the package esphome#20739 by @albert-canfield
- [openthread] Fail instead of aborting when NVS is unavailable esphome#20717 by @kbx81
- [wifi] Add Wi-Fi Easy Connect (DPP) provisioning on the ESP32 esphome#17934 by @egormanga (new-feature)
- [wifi] Call esp_supp_dpp_init without a callback on ESP-IDF 6 esphome#20789 by @swoboda1337
- [core] Add ksz8851snl to the static analysis manifest for IDF 6 esphome#20788 by @swoboda1337
- [tests] Reset saved preferences before every C++ unit test esphome#20771 by @bdraco
- [ota] Fall back to a UDP data phase when the link is lossy esphome#20498 by @bdraco (new-feature)
- [api] Encode action strings straight from flash esphome#20425 by @bdraco
- [qmi8658] Keep the range name tables in flash esphome#20714 by @bdraco
- [lsm6ds] Keep the range and chip names in flash esphome#20718 by @bdraco
- [bmi270] Keep the range name and scale tables in flash esphome#20715 by @bdraco
- [hdmi_cec] Add HDMI-CEC bus component (part 1: bus core) esphome#9189 by @JosVanEijndhoven (new-component) (new-feature)
- [lsm6ds] Add the LSM6DSO and match all chips to their datasheets esphome#20733 by @bdraco (new-feature)
- [openthread] Add ESP32 OpenThread Border Router support esphome#18104 by @pputerla (new-feature) (breaking-change)
- [epaper_spi] Pass bits per pixel and plane count to the base constructor esphome#20683 by @exciton
- [lvgl] Implement menu widget esphome#18022 by @clydebarrow (new-feature)
- [apc_proteous] Cover component for APC Proteous gate motors esphome#13403 by @clydebarrow (new-component) (new-feature) (new-platform)
- [lvgl] Fix the menu test after lambdas gained a line reset esphome#20798 by @bdraco
- [fusb302b] Add sensors, contract text sensor and automations esphome#20796 by @remcom (new-feature)
- [display] Always treat 888 pixel blocks as b,g,r in memory esphome#20799 by @clydebarrow
- [core] Extend fast value formatting to four decimal places esphome#20800 by @jeroen85
- [wifi] Retry a failed fallback AP once per ap_timeout and start the captive portal once esphome#20784 by @bdraco
- [esp8266] Refuse two components that drive hardware timer 1 esphome#20794 by @bdraco
- [homeassistant] Share the Python list parser between the platforms esphome#20793 by @bdraco
- [shelly_dimmer] Keep the STM32 device table in flash esphome#20643 by @bdraco
- [improv_ble] Start Improv again after a session has stopped esphome#20808 by @albert-canfield
- [i2c] Let host unit tests with I2C build on macOS esphome#20738 by @albert-canfield
- [dfrobot_sen0609] Add DFRobot SEN0609/SEN0610 radar esphome#20809 by @remcom (new-component) (new-feature) (new-platform)
- [rx8111] Add basic RX8111CE real-time clock support esphome#20785 by @techdregs (new-component) (new-feature) (new-platform)
- [nrf52] nrf52840dongle support esphome#19009 by @adminy (new-feature)
- [as734x] [1/3] Add AS7341/AS7343/TCS3448 spectral sensor hub with counts sensors esphome#17038 by @latonita (new-component) (new-feature) (new-platform)
- [ld2410][ld2412] Move CONF_OUT_PIN_LEVEL to the shared constants esphome#20820 by @remcom
- [dfrobot_sen0609] Add number, switch and select settings esphome#20813 by @remcom (new-feature) (new-platform)
- [as734x] [2/3] Add basic counts, calibration and saturation level esphome#18011 by @latonita (new-feature)
- [usb_uart] Runtime modem pin control for USB and host esphome#20330 by @puddly (new-feature)
- [ci] Add hardware-test agent skill esphome#20817 by @bdraco
- [as734x] [3/3] Add illuminance, photopic irradiance, PAR, PPFD, colour temperature and RGB esphome#18012 by @latonita (new-feature) (new-platform)
- [mipi_spi] Honour show_test_card when pages or a lambda are set esphome#20807 by @albert-canfield
- [wifi] Leave the cooldown from the loop after a credential save, not from the caller’s context esphome#20802 by @bdraco
- [core] Make the YAML load listener hook public esphome#20805 by @bdraco
- [core] Add ESPHOME_strstr_P esphome#20811 by @bdraco
- [http_request] Allow a per-request timeout esphome#20821 by @p1ngb4ck (new-feature)
- [audio][i2s_audio] Fix 16-bit mono playback at 44.1 kHz on the original ESP32 esphome#20806 by @kahrendt
- [audio] Deprecate AudioSourceTransferBuffer esphome#20801 by @kahrendt
- [lp5562] Pin the test fixture to the shared I2C bus esphome#20856 by @swoboda1337
- [pca9505] Validate interrupt_pin with the shared expander validator esphome#20853 by @bdraco
- [display] Fall back per pixel when a bulk blit does not match the panel esphome#20652 by @bdraco
- [i2s_audio] Add full duplex support esphome#19959 by @remcom (new-feature)
- [image] Draw rows in the outer loop and hand opaque RGB565 and RGB blocks to the display esphome#20653 by @bdraco
- [components] Let core report communication failures in dump_config (1/5) esphome#20870 by @bdraco
- [components] Let core report communication failures in dump_config (2/5) esphome#20871 by @bdraco
- [core] Document passing the failure reason to mark_failed in AGENTS.md esphome#20879 by @bdraco
- [components] Let core report communication failures in dump_config (3/5) esphome#20872 by @bdraco
- [components] Let core report communication failures in dump_config (4/5) esphome#20873 by @bdraco
- [ld2410][ld2412] Move CONF_QUERY_PARAMS to the shared constants esphome#20878 by @remcom
- [dfrobot_sen0609] Add restart, factory reset and query buttons esphome#20877 by @remcom (new-feature) (new-platform)
- [ld2450] Handle footer bytes in zone query responses esphome#20852 by @fallenmi
- [web_server] Do not match internal entities by URL unless include_internal is set esphome#20883 by @sebo-b (breaking-change)
- [haier_water_heater] Initial water-heater implementation tested with Haier VH3W esphome#20765 by @TheLexus (new-component) (new-feature) (new-platform)
- [ci] Fail a hung integration test instead of waiting for the job limit esphome#20902 by @Bascht74
- [mics_5524] Add MiCS-5524 gas sensor platform (1/2) esphome#19721 by @nliaudat (new-component) (new-feature) (new-platform)
- [display] Drop the color order from draw_pixels_at() and ColorUtil esphome#20884 by @clydebarrow
- [dfrobot_sen0395] Forward trigger arguments in settings actions esphome#20885 by @fallenmi
- [lp5562] Add the current per channel and logarithmic dimming esphome#20903 by @Bascht74 (new-feature)
- [core] Parse unit values as one decimal so listed floats match, fixing at581x power consumption esphome#20889 by @fallenmi
- [tests] Set i2c_id in the component tests that clash with tca9548a esphome#20963 by @bdraco
- [mipi_rgb] direct-to-PSRAM rotated blitting for hardware rotation esphome#20905 by @gongloo
- [online_image] Report an error when a download can never complete esphome#20594 by @remcom
- [ci] Rename merge conflict label to has-conflicts esphome#20969 by @clydebarrow
- [teleinfo] Skip sensor values that are not numbers instead of publishing 0 esphome#20960 by @FredM67
- [core] Add options() to C++ enums esphome#20910 by @bdraco
- [components] Build enum option dicts with options() esphome#20911 by @bdraco
- [core] Add sign_extend helper esphome#20933 by @bdraco
- [components] Use sign_extend for raw sensor readings esphome#20934 by @bdraco
- [core][scheduler] add missing process_to_add call esphome#20961 by @luar123
- [i2c] Write 16-bit registers without a heap allocation esphome#20907 by @bdraco
- [core] Add ESP_LOGV_HEX, ESP_LOGVV_HEX and ESP_LOGD_HEX esphome#20931 by @bdraco
- [i2c] Add check_chip_id helper esphome#20941 by @bdraco
- [core] Add xor_bytes and sum16_bytes checksum helpers esphome#20921 by @bdraco
- [zephyr] Fix preference log levels and report settings read/save errors esphome#20810 by @rwrozelle
- [host] Define a no-op InterruptLock esphome#20974 by @bdraco
- [logger][usb_cdc_acm][core] Add CDC uart to NRF52 esphome#11634 by @tomaszduda23 (new-feature)
- [core] Move CONF_DRIVE_STRENGTH to the shared component constants esphome#20975 by @bdraco
- [web_server] Report numbers without a state as NA esphome#20973 by @r3wretrhy (breaking-change)
- [core] Add LineReader to collect lines in a fixed buffer esphome#20952 by @bdraco
- [components] Collect UART lines with LineReader esphome#20956 by @bdraco
- [kamstrup_kmp] Fix Kamstrup KMP reads with echoing optical heads esphome#20897 by @HugoPeters1024
- [i2s_audio] Fix speaker restart loop with full_duplex esphome#20984 by @remcom
- [mics_5524] Add datasheet model, diagnostics and advanced wiring (2/2) esphome#20521 by @nliaudat (new-feature)
- [dfrobot_sen0465] Add DFRobot SEN0465-SEN0476 electrochemical gas sensors esphome#20880 by @tzabbi (new-component) (new-feature) (new-platform)
- [core] Script improvements including
chooseesphome#20547 by @clydebarrow (new-feature) - [components] Use xor_bytes and sum16_bytes for checksums esphome#20922 by @bdraco
- [i2c][uart][spi] Add new_i2c_component, new_uart_component and new_spi_component esphome#20908 by @bdraco
- [esp32_ble] Test ble.enabled, ble.enable and ble.disable esphome#20838 by @bdraco
- [components] Create I2C devices with new_i2c_component esphome#20909 by @bdraco
- [esp32_ble] Build ble.enabled, ble.enable and ble.disable with the apply helpers esphome#20839 by @bdraco
- [button] Add factory reset, restart and query button schema presets esphome#20915 by @bdraco
- [core][scheduler] run process_to_add after component phase esphome#20993 by @luar123
- [i2c] Add write_registers for constant register tables esphome#20945 by @bdraco
- [uart] Add read_available helpers to drain available bytes in chunks esphome#20947 by @bdraco
- [pylontech] Parse each line as it arrives with one fixed buffer esphome#20959 by @bdraco
- [components] Log hex dumps with the ESP_LOG*_HEX macros esphome#20932 by @bdraco
- [components] Check I2C chip IDs with check_chip_id esphome#20943 by @bdraco
- [esp32] Remove trailing comment from ECDSA test signing key esphome#20988 by @swoboda1337
- [socket] Share the allow-list reject log and config lines through Ipv4Allow esphome#20983 by @bdraco
- [rtsp_server] Add an RTSP server that streams the esp32_camera picture esphome#17990 by @max246 (new-component) (new-feature)
- [api] Pre-reserve Home Assistant state subscriptions vector esphome#20986 by @gongloo
- [water_heater] Hand the component to the core team esphome#20999 by @dhoeben
- [epaper_spi] Fix partial refresh and port waveshare 2.90inv2 esphome#18959 by @danepowell
- [zigbee] bump esp-zigbee-sdk to 2.0.5 esphome#20998 by @luar123
- [core] Construct App once in the C++ unit test main esphome#21001 by @fallenmi
- [ci] Run the C++ unit tests on macOS without a sanitizer whose runtime aborts esphome#21000 by @bdraco
- [climate_ir_lg] Fix swing command to not include climate state esphome#17417 by @MatiasFernandez
- [zephyr_coredump] Store a coredump in flash on nRF52 and print it to the next log reader esphome#13122 by @tomaszduda23 (new-component) (new-feature)
- [pylontech] Add individual cell voltage and temperature sensors esphome#16852 by @functionpointer (new-feature)
- [remote_base] Add a protocol for 433MHz A-OK remotes esphome#20991 by @nagisa (new-feature)
- [remote_base] Send the 72-bit Jarolift TDEF group frame with transmit_keeloq esphome#20927 by @Bascht74 (new-feature)
- [wifi] Support hidden option in single-network shorthand esphome#18157 by @bharvey88 (new-feature)
- [hoermann_hcp] Add an actuator error binary sensor esphome#20299 by @RaHehl (new-feature)
- [deep_sleep] Honor nested wakeup_pin_mode on ESP32 single-pin configs esphome#16618 by @bharvey88
- [sen6x] Add CO2 configuration options esphome#18780 by @bharvey88 (new-feature)
- [epaper_spi] Add the UC8279 controller and the Xteink X4 Pro esphome#20545 by @exciton (new-feature)
- [sen6x] Add temperature compensation, acceleration and startup delay esphome#18781 by @bharvey88 (new-feature)
- [sen6x] Add PM number concentration sensors esphome#18782 by @bharvey88 (new-feature)
- [uart] Add a binary sensor that fires on a byte sequence esphome#14032 by @tomaszduda23 (new-feature) (new-platform)
- [epaper_spi] Run the loop continuously between the steps of an update esphome#20554 by @exciton
- [sen6x] Add device status binary sensors esphome#18784 by @bharvey88 (new-feature) (new-platform)
- [mt6701] Add MT6701 (MagnTek magnetic encoder) component esphome#17643 by @slimcdk (new-component) (new-feature) (new-platform)
- [libretiny] Emulate rtc preference storage on the Beken BK7231T, BK7231N and BK7238 with flash and the reset reason esphome#21007 by @porelli (new-feature)
- [tfluna] Recover from transient runtime reconfiguration failures esphome#20992 by @fallenmi
- [bq76972] Expose the sensors as a sensor platform esphome#21006 by @bdraco (new-platform)
- [fusb302b] Expose the sensors as platforms esphome#21004 by @bdraco (new-platform)
- [components] Create SPI devices with new_spi_component esphome#20920 by @bdraco
- [components] Create UART devices with new_uart_component esphome#20919 by @bdraco
- [i2c] Add little-endian and signed byte decoding helpers esphome#20938 by @bdraco
- [components] Let core report communication failures in dump_config (5/5) esphome#20874 by @bdraco
- [i2c] Add I2CDevice::update_register for register read-modify-write esphome#20854 by @bdraco
- [http_request] Test ota.http_request.flash with every field esphome#20829 by @bdraco
- [wifi] Test the wifi.connected and wifi.enabled conditions esphome#20841 by @bdraco
- [sensor][number] Test in_range with every bound combination esphome#20847 by @bdraco
- [ethernet] Test the ethernet.connected condition esphome#20844 by @bdraco
- [pylontech] Restore the CONF_ID import esphome#21013 by @bdraco
- [dfrobot_sen0609][http_request] Use ESPHOME_strstr_P esphome#20825 by @bdraco
- [light] Test light.toggle with a transition length esphome#20832 by @bdraco
- [api] Test api.connected without options and with a lambda esphome#20835 by @bdraco
- [airton] Add support to climate for Airton IR A/C units esphome#7753 by @Procsiab (new-component) (new-feature) (new-platform)
- [vevor_dtx] Add Vevor weather station component esphome#17224 by @Bofr5555 (new-component) (new-feature) (new-platform)
- [core] Add Component::status_comm_result esphome#20863 by @bdraco
- [core][time] Add BCD helpers and a shared RTC BCD calendar codec esphome#20860 by @bdraco
- [lock] Filter on_lock and on_unlock with when esphome#20858 by @bdraco
- [http_request] Only treat a URL as secure when its scheme is https esphome#20867 by @bdraco
- [micro_wake_word] Allow configurable capture buffer duration esphome#20942 by @mbrudka (new-feature)
- [components] Drop get_setup_priority overrides that return the default esphome#21014 by @bdraco
- [display] Add add_writer for display lambdas esphome#21027 by @bdraco
- [components] Set display lambdas with display.add_writer esphome#21028 by @bdraco
- [core] Let entities choose flash or RTC storage for their preferences esphome#21017 by @porelli
- [uart] Add discard_available to drop stale receive bytes esphome#21029 by @bdraco
- [ble_device_base][ble_client][modbus] Add new_ble_device_component, new_ble_node_component and new_modbus_client_component esphome#21025 by @bdraco
- [core] Add cg.add_pin and cg.add_variable for optional pins and ids esphome#21018 by @bdraco
- [core] Document that hub entities go in platforms in AGENTS.md esphome#21003 by @bdraco
- [components] Use cv.uint8_t and cv.uint16_t for full byte ranges esphome#21015 by @bdraco
- [components] Set pins with cg.add_pin esphome#21019 by @bdraco
- [components] Assemble 24-bit readings with encode_uint24 esphome#21016 by @bdraco
- [components] Decode little-endian I2C values with the new helpers esphome#20939 by @bdraco
- [components] Set referenced components with cg.add_variable and register_parented (m-z) esphome#21023 by @bdraco
- [light] Add
LightState::set_external_state()for outputs that mirror a light elsewhere esphome#20787 by @bdraco - [core] Add
progmem_string_table_find()esphome#20790 by @bdraco - [components] Drop stale UART receive bytes with discard_available esphome#21030 by @bdraco
- [components] Set referenced components with cg.add_variable and register_parented (a-l) esphome#21021 by @bdraco
- [light] Add power estimation and current limiting for addressable LED strips esphome#15348 by @mvoss96 (new-feature)
- [bl0906][kamstrup_kmp][ufm01] Drop stale receive bytes with discard_available esphome#21071 by @bdraco
- [bme68x_bsec2] disable loop esphome#20994 by @luar123
- [components] Create BLE and modbus devices with the new helpers esphome#21026 by @bdraco
- [homeassistant] Add the light platform esphome#11354 by @egormanga (new-feature) (new-platform)
- [epaper_spi] Add the UC8151D controller and the Waveshare 2.13” B V3 esphome#21022 by @clydebarrow (new-feature)
- [globals] Add RTC memory support esphome#13954 by @Rapsssito (new-feature)
- [usb_host] Size the FIFO split on ESP32-S2/S3 from periodic packet requests esphome#21081 by @ab-tools
- [audio] Compute frames_to_microseconds() in 64 bits esphome#21089 by @ab-tools
- [audio] Compute the remaining AudioStreamInfo conversions in 64 bits esphome#21092 by @ab-tools
- [const] Share CONF_VALUE_TYPE across components esphome#21062 by @labodj
- [tests] Add an esp32-s31-idf base file and shared i2c and i2s_audio packages esphome#21086 by @bdraco
- [components] Read UART bytes with read_available and discard_available esphome#21084 by @bdraco
- [components] Decode BLE fields with the shared helpers esphome#21082 by @bdraco
- [components] Decode bytes with the shared helpers esphome#21080 by @bdraco
- [components] Use the codegen helpers in the remaining components esphome#21078 by @bdraco
- [i2s_audio] Add ESP32-S31 support esphome#20115 by @cosmicDustOfLightLength (new-feature)
- [components] Report communication failures with status_comm_result in the remaining components esphome#21079 by @bdraco
- [core] Add final_validate.get_declaring_config esphome#20912 by @bdraco
- [sensor] Add SensorWithDedup for child sensors that skip repeated values esphome#20925 by @bdraco
- [core] Move CONF_PROVIDER and CONF_REMOTE_ID to components/const esphome#21096 by @clydebarrow
- [core][gpio_expander] Add a shared expander pin class and pin codegen helpers esphome#20866 by @bdraco
- [ota] Log why the upload switched to UDP esphome#20996 by @bdraco
- [ci] Extend the hardware-test skill with the flows learned since it was added esphome#21011 by @bdraco
- [light] Build light.toggle with register_apply_action esphome#20833 by @bdraco
- [rx8025t][rx8130][rx8111][ufm01] Use the shared BCD helpers esphome#20861 by @bdraco
- [components] Use Component::status_comm_result for communication failures esphome#20864 by @bdraco
- [ethernet] Build the ethernet automations with the apply helpers esphome#20845 by @bdraco
- [api] Build api.connected with register_apply_condition esphome#20836 by @bdraco
- [wifi] Build the wifi actions and conditions with the apply helpers esphome#20842 by @bdraco
- [gpio_expander][pcf8574][mpr121][ch422g][ch423][pcm5122][weikai] Move the GPIO expanders and pin providers onto the shared pin helpers esphome#20868 by @bdraco
- [mipi_spi] Fix GC9107 native size and add M5Stack AtomS3 model esphome#21087 by @jesserockz (new-feature)
- [core] Move CONF_MAX_PACKET_SIZE to components/const esphome#21102 by @clydebarrow
- [usb_audio] Add USB Audio Class (UAC) host support esphome#11728 by @ab-tools (new-component) (new-feature) (new-platform)
- [ci] Refresh integration test durations esphome#21105 by @esphome[bot]
- [core] Warn when the .esphome build tree is tracked by git esphome#18973 by @clydebarrow
- [scd4x] Fix ambient_pressure_compensation unit handling esphome#19888 by @zerafachris
- Bump aioesphomeapi from 46.12.0 to 46.14.0 esphome#21114 by @esphome[bot]
- [st7305] Add reflective LCD display driver esphome#21099 by @clydebarrow (new-component) (new-feature) (new-platform)
- [cst9220] Fix long press reported as several short presses esphome#21034 by @clydebarrow
- [web_server] Keep the remaining ESP8266 web server strings in flash esphome#21113 by @bdraco
- [homeassistant] Judge a light report against the transition it arrived during esphome#21100 by @bdraco
- [combination][speaker_source][const] Share CONF_SOURCES from components/const esphome#21129 by @swoboda1337
- [ci] Extend the hardware-test skill with the audio, globals, outgoing connection and Home Assistant light flows esphome#21104 by @bdraco
- [api] Send the device info strings from flash and keep the version out of RAM esphome#21106 by @bdraco
- [web_server] Pass the listing flag as a bool and share the state event send esphome#21112 by @bdraco
- [core] Add Apply entities so hub forwarding buttons, switches, numbers and selects need no class esphome#20935 by @bdraco
- [ld2420] Resume UART reads after a silent command timeout esphome#21131 by @fallenmi
- [ld2410s] Fix parameter writes after long uptime esphome#21121 by @fallenmi
- [ld2460] Preserve buffered frames across overflow esphome#21123 by @fallenmi
- [combination] Remove @Cat-Ion from codeowners esphome#21133 by @Cat-Ion
- [core] Support Python 3.15 esphome#21052 by @daeho-ro
- [espota2] Stop the fake OTA device once the client is done esphome#21134 by @swoboda1337
- [ld2410] Wait for complete query parameter acknowledgements esphome#21145 by @fallenmi
- [copy] Use an Apply button for the copy button esphome#21162 by @bdraco
- [atm90e32] Use Apply buttons for the calibration buttons esphome#21163 by @bdraco
- [tests] Add wait_or_fail for integration test timeouts esphome#21152 by @bdraco
- [dfrobot_sen0609][airton] Use Apply selects and switches for hub forwarding entities esphome#21147 by @bdraco
- [core] Log the build time at boot straight from flash esphome#21118 by @bdraco
- [core] Pass the LOG_PIN prefix to the log straight from flash esphome#21117 by @bdraco
- [sx126x][sx127x] Move CONF_RST_PIN to the shared component constants esphome#21174 by @jesserockz
- [remote_base] Add helpers to send and read IR frame bytes bit by bit esphome#21167 by @bdraco
- [tests] Use wait_or_fail in the sensor, text, loop and host integration tests esphome#21164 by @bdraco
- [tests] Use wait_or_fail in the api, light, script and other integration tests esphome#21165 by @bdraco
- [core] Document the new codegen, bus and Apply entity helpers in AGENTS.md esphome#21130 by @bdraco
- [st7305] Fix position of partial updates on landscape panels esphome#21172 by @clydebarrow
- [st25r] Add ST25R3916 NFC reader (SPI, ISO14443A) esphome#15608 by @JohnMcLear (new-component) (new-feature)
- [core] Add cg.add_optional for optional plain config values esphome#21180 by @bdraco
- [yashima][remote_base] Send IR frame bytes with item_bytes, including most significant bit first esphome#21171 by @bdraco
- [tcl112][zhlt01][heatpumpir][fujitsu_general] Send and read IR frame bytes with the remote_base helpers esphome#21168 by @bdraco
- [airton][ballu][delonghi][hitachi_ac424][mitsubishi] Send and read IR frame bytes with the remote_base helpers esphome#21169 by @bdraco
- [daikin][daikin_brc][daikin_arc][whirlpool][samsung] Send and read IR frame bytes with the remote_base helpers esphome#21170 by @bdraco
- [tests] Drop the external component path replacements the yaml_config fixture already does esphome#21149 by @bdraco
- [haier_tundra][tm1638][bl0940][micronova] Use Apply entities for hub forwarding buttons and switches esphome#21148 by @bdraco
- [components] Set optional plain values with cg.add_optional (a-m) esphome#21181 by @bdraco
- [components] Set optional plain values with cg.add_optional (n-z) esphome#21183 by @bdraco
- [ci] Add the SEN0395, LD2450 zone and held light report flows to the hardware-test skill esphome#21160 by @bdraco
- [ld2420][ld2450] Use Apply numbers for hub forwarding numbers esphome#21146 by @bdraco
- [tests] Add require_service, assert_device_name and exact entity lookups esphome#21150 by @bdraco
- [sx126x] Pass the sx1261 hardware version as a flag esphome#21202 by @bdraco
- [core] Replace flake8 with ruff docstring rules and drop unused scripts esphome#21176 by @jesserockz
- [nextion] Fix: Properly deliver numeric responses esphome#17744 by @happydasch
- [gree] Add sleep preset support for GREE YAC1FB9 esphome#18090 by @jrvd007 (new-feature)
- [core] Share one log_entity_header() for entity dump_config headers esphome#21116 by @bdraco
- [vbus] Discard P1 telegrams after a frame checksum error esphome#21045 by @labodj
- [apc1][systa_bus] Move CONF_ERROR_CODE to the shared component constants esphome#21230 by @epicRE
- [mqtt] Add MQTT over WebSocket transport for ESP32 IDF esphome#16056 by @ankur-paan (new-feature)
- [speaker][speaker_source] Add a set volume for announcements that start while nothing is playing esphome#21002 by @remcom (new-feature)
- [core] Add cv.only_when and cv.key_requires key validators esphome#21234 by @bdraco
- [components] Use cv.only_when and cv.key_requires for key dependencies esphome#21236 by @bdraco
- [ci] Add the speaker media player, web_server_idf and MQTT WebSocket flows to the hardware-test skill esphome#21229 by @bdraco
- [mqtt] Print the dump_config header in LOG_MQTT_COMPONENT esphome#21226 by @bdraco
- [tests] Use assert_device_name in the m-z integration tests esphome#21216 by @bdraco
- [tests] Use assert_device_name in the a-l integration tests esphome#21215 by @bdraco
- [display_menu_base] Stop copying the number format and switch texts esphome#21212 by @bdraco
- [graph] Stop copying the trace name esphome#21211 by @bdraco
- [bme680_bsec] Stop copying the device id esphome#21209 by @bdraco
- [key_collector] Stop copying the key strings esphome#21210 by @bdraco
- [tests] Use the exact entity lookups in the integration tests esphome#21213 by @bdraco
- [tests] Use require_service in the integration tests esphome#21214 by @bdraco
- [ac_dimmer] Pack members and drop the unused zero-cross ISR pin esphome#21193 by @bdraco
- [vl53l1x] Add VL53L1X time-of-flight distance sensor esphome#13605 by @will-tm (new-component) (new-feature) (new-platform)
- [epaper_spi] Only compile the driver sources the configured models need esphome#21228 by @jesserockz
- [font] Crop blank space from glyph bitmaps esphome#21235 by @jesserockz
- [sx126x][sx127x] Move CONF_MODULATION to the shared component constants esphome#21249 by @mrtoy-me
- [pca9554] Add a device option with the PCA953x/PCA955x/TCA955x names and the PCAL9538 and PCAL9555 expanders esphome#15449 by @ilikecake (new-feature)
- [sx126x][sx127x] Move CONF_BITRATE to the shared component constants esphome#21261 by @bboe
- [beken_spi_led_strip] Fix LED strip component for bk7231t esphome#21259 by @bbbert
- [ci] Bump clang-format from 13.0.1 to 22.1.8 esphome#20551 by @swoboda1337
- [esp32_ulp][esp32] Add component to run programs on the ULP coprocessor esphome#21127 by @swoboda1337 (new-component) (new-feature)
- [epaper_spi] Add SSD1681 model with differential partial refresh esphome#20332 by @exciton (new-feature)
- [epaper_spi] List the SSD1681 driver source on its model esphome#21270 by @swoboda1337
- [fan] Keep preset modes in a ConstVector; remove the deprecated traits setters esphome#20214 by @bdraco
- [climate] Keep custom fan modes and presets in a ConstVector; remove the deprecated traits setters esphome#20213 by @bdraco
- [ina226] Expand adc_time in the schema esphome#21196 by @bdraco
- [ina2xx_base] Expand adc_time in the schema esphome#21197 by @bdraco
- [slow_pwm] Group the bool members to drop padding esphome#21200 by @bdraco
- [gps] Size the listener list at compile time esphome#21201 by @bdraco
- [thermopro_ble] Pick the parser from the name without storing it esphome#21205 by @bdraco
- [tuya] Store the product text in an exact-size buffer esphome#21206 by @bdraco
- [mqtt_subscribe] Stop copying the topic esphome#21207 by @bdraco
- [nfc] Stop copying the binary sensor match string esphome#21208 by @bdraco
- [tests] Use assert_device_name in the remaining object_id tests esphome#21238 by @bdraco
- [tests] Use require_service and assert_device_name in the online_image and backpressure tests esphome#21240 by @bdraco
- [tests] Use require_entity and require_only_entity for the remaining entity lookups esphome#21243 by @bdraco
- [tests] Use wait_or_fail in the uart_mock integration tests esphome#21247 by @bdraco
- [tests] Use wait_or_fail in the scheduler and loop integration tests esphome#21241 by @bdraco
- [tests] Speed up the host OTA integration tests esphome#21248 by @bdraco
- [tests] Speed up the modbus uart_mock integration tests esphome#21250 by @bdraco
- [network][socket] Allow disabling IPV4 esphome#14526 by @rwrozelle (breaking-change)
- [tests] Fail the test when the integration state helpers time out esphome#21244 by @bdraco
- [tests] Drop the timeout wrappers around the integration state helpers esphome#21245 by @bdraco
- [i2s_audio] Convert audio to the configured slot width on the original ESP32 esphome#20893 by @kahrendt
- [tests] Clear testing_mode after every test esphome#21292 by @bdraco
- [tests] Let the offline probe finish before checking that the continuous modbus poll stopped esphome#21293 by @bdraco
- [ci] Ignore BUILD_ALWAYS external project byproducts in the idf.py check esphome#21291 by @swoboda1337
- [speaker] Build the pipeline task names on the stack esphome#21203 by @bdraco
- [mqtt] increase TLS options and compatibility esphome#14318 by @Rapsssito (new-feature)
- [waveshare_epaper] Set removal of the deprecated component for 2027.5.0 esphome#20692 by @bdraco
- Bump bundled esphome-device-builder to 1.26.0 esphome#21299 by @esphome[bot]
- [tests] Wait for the template sensor’s first reading before the Home Assistant service tests esphome#21302 by @bdraco
- [tests] Wait for the ld2410 query ACK log line instead of asserting it arrived esphome#21191 by @bdraco
- Bump aioesphomeapi from 46.14.0 to 46.15.1 esphome#21298 by @esphome[bot]
- [core] Update paho-mqtt to v2.1.0 esphome#18402 by @polyfloyd
- [veml6040] Add VEML6040 RGBW colour sensor esphome#20812 by @aalaei (new-component) (new-feature) (new-platform)
- [core] Keep entity names in flash on ESP8266 esphome#20423 by @bdraco
- [core] Move the remaining components to flash-safe entity names and deprecate get_name() esphome#20615 by @bdraco
- Bump aioesphomeapi from 46.15.1 to 46.16.0 esphome#21311 by @esphome[bot]
- [const][heatpumpir][mitsubishi] Move horizontal_default/vertical_default to shared constants esphome#21309 by @Komzpa
- [web_server] Read flash state strings PROGMEM-aware on ESP8266 esphome#21316 by @bdraco
- [core] Remove dead generated_files logic from copy_src_tree esphome#21312 by @jesserockz
- [core] Read entity icons and device classes straight from flash esphome#21111 by @bdraco
- Bump aioesphomeapi from 46.16.0 to 46.17.0 esphome#21322 by @esphome[bot]
- [core] Add unit tests for core modules and test the pure-Python YAML loader esphome#21314 by @jesserockz
- [core] Add relation option to sub-devices esphome#21232 by @jesserockz (breaking-change)
- [mt6701_i2c][as5600][const] Move CONF_PWM_FREQUENCY to the shared component constants esphome#21324 by @bdraco
- [core] Assert sub-device relations in integration test esphome#21326 by @jesserockz
- [cdc_acm_uart][serial_proxy][const] Move CONF_DTR_PIN and CONF_RTS_PIN to the shared component constants esphome#21325 by @bdraco
- [pulse_counter] Attach the software interrupt to the counted edges only esphome#21271 by @swoboda1337
- [ci] Label pull requests that change api.proto esphome#21294 by @bdraco
- [core] Fix the findings of clang-tidy 23 esphome#21301 by @bdraco
- [mt6701_i2c][opentherm][const] Move CONF_OUT_PIN to the shared component constants esphome#21329 by @bdraco
- [ci] Add the MQTT TLS, udp.write and entity icon flows to the hardware-test skill esphome#21264 by @bdraco
- Bump aioesphomeapi from 46.17.0 to 46.18.0 esphome#21332 by @esphome[bot]
- [cover] Add stop tilt support esphome#20248 by @piitaya (new-feature)
- [core] Fix the performance and modernize findings of clang-tidy 23 esphome#21336 by @swoboda1337
- [ci] Add display-test agent skill esphome#21098 by @clydebarrow
- [esp32_ble][esp32_ble_tracker][bluetooth_proxy][bluetooth_connection] Re-export ble_device_base types with using-declarations esphome#21337 by @swoboda1337
- [weikai][haier][zephyr_ble_server][wifi][improv_base] Fix the bugprone and diagnostic findings of clang-tidy 23 esphome#21334 by @swoboda1337
- [core] Drop IRAM_ATTR from interrupt handler declarations esphome#21335 by @swoboda1337
- [core] Add a default label to the switches clang-tidy 23 flags as not covering every path esphome#21338 by @swoboda1337
- [core] Add unit tests for the smaller core modules esphome#21333 by @jesserockz
- [sensor] Add Relative Humidity Correction Filter esphome#18287 by @damib (new-feature)
- [ld2410] Publish queried number values directly esphome#21346 by @bdraco
- Bump aioesphomeapi from 46.18.0 to 46.19.0 esphome#21345 by @esphome[bot]
- [epaper_spi] Support Good Display GDEY029Z95 2.9” 3-color e-paper (128x296, SSD1680) esphome#21218 by @candrews (new-feature)
- [api][cover] Expose toggle support in native API esphome#16506 by @felipecrs
- Bump aioesphomeapi from 46.19.0 to 46.20.0 esphome#21362 by @esphome[bot]
- [api] Let a media_player ask for a constant bitrate esphome#19962 by @bboe (new-feature)
- [wifi] [ethernet] Bridge the WISP access point to an ethernet upstream esphome#7147 by @oarcher (new-feature)
- [vnc] Add VNC client component esphome#20623 by @MindFreeze (new-component) (new-feature)
- [mipi_spi] Run the T-Display S3 Pro panel at 40 MHz esphome#21370 by @clydebarrow
- Bump aioesphomeapi from 46.20.0 to 46.21.0 esphome#21371 by @esphome[bot]
- [api] Add optional user-defined action variables with defaults esphome#18882 by @bharvey88 (new-feature)
- [core] Keep a library’s optimisation flags to its own component esphome#21375 by @clydebarrow
- [esp32_hosted] Download and cache pinned embedded firmware esphome#20065 by @Gunni (new-feature)
- [nrf52] Silence double promotion warnings for the app’s variadic log arguments esphome#21400 by @swoboda1337
- [hdmi_cec] Declare the always_inline atomic helpers inline esphome#21402 by @swoboda1337
- [light][homeassistant] Drop a held light report when any call comes after it esphome#21144 by @bdraco
- [core] Add ApplyBytes for apply actions that forward a byte payload esphome#21262 by @bdraco
- [time] Make the BCD calendar helpers a template over the chip’s layout esphome#21190 by @bdraco
- [emontx] Initialise the line length before the reader fills it esphome#21404 by @swoboda1337
- [psram] Allow external task stacks through the Kconfig name ESP-IDF 5.4 uses esphome#21401 by @swoboda1337
- [wifi] Log the lease seconds with PRIu32 esphome#21403 by @swoboda1337
- [esp32] Require ESP-IDF 5.1 and set software coexistence through its Kconfig name esphome#21398 by @swoboda1337 (breaking-change)
- [tmp1075] Write the configuration register in datasheet bit order esphome#21399 by @swoboda1337
- [ms8607] Interpolate the humidity in float esphome#21405 by @swoboda1337
- [esp32_hosted] Move to esp_hosted 3.0.10 esphome#21394 by @swoboda1337 (breaking-change)
- [core] Add assign_bits to set or clear register bits from a bool esphome#21184 by @bdraco
- [tests] Match the format strings in test lambdas to their argument types esphome#21406 by @swoboda1337
- [esphome] Fix OTA build with IPv4 disabled esphome#21388 by @randybb
- [wifi] Allow WISP mode on the ESP32 Arduino framework esphome#21410 by @swoboda1337 (new-feature)
- [sx127x][sx126x][cc1101][udp][uart] Send byte payloads with ApplyBytes esphome#21263 by @bdraco
- [core] Let Apply entities run a free statement without a parent hub esphome#21157 by @bdraco
- [restart][shutdown][factory_reset][safe_mode] Use Apply buttons esphome#21158 by @bdraco
- [voice_assistant] Allow IPv4 to be disabled esphome#21389 by @randybb
- [ci] Add the UART loopback, WISP bridge, raw API action and LD2412 flows to the hardware-test skill esphome#21356 by @bdraco
- [spi] Gate psram_dma on the ESP-IDF version rather than the framework esphome#21411 by @swoboda1337
- [mqtt] Support stop tilt on covers esphome#20251 by @piitaya (new-feature)
- [wifi] Allow the lease cache and a second WISP DNS server on the ESP32 Arduino framework esphome#21412 by @swoboda1337
- [usb_uart] Read the channel limit when the config is validated, not at import esphome#21331 by @bdraco
- [runtime_image] Decode JPEG a step at a time from a source, using a JPEGDEC fork esphome#21341 by @clydebarrow
- [esp32] Share one validator for options that need a newer ESP-IDF esphome#21422 by @swoboda1337
- [switch] Add initial_state and restore_state, with flash or RTC storage esphome#20978 by @porelli (new-feature)
- [deep_sleep] Add woke_from_deep_sleep() and build get_wakeup_cause() without on_wake esphome#21425 by @exciton
- [lock] Pack the lock traits flags into one byte esphome#21344 by @bdraco
- [valve] Pack the valve traits flags into one byte esphome#21343 by @bdraco
- [cover] Pack the cover traits flags into one byte esphome#21339 by @bdraco
- [ds3231] Add time platform, alarms, binary sensors and output control esphome#21054 by @miloit (new-feature) (new-platform)
- [weikai] Keep the register name tables in flash esphome#20712 by @bdraco
- [tests] Use wait_or_fail for the remaining integration test timeouts esphome#21304 by @bdraco
- [tests] Use LineWaiter for the integration tests that only wait on log lines esphome#21305 by @bdraco
- [unicode] Stop reading past a truncated UTF-8 sequence esphome#21374 by @bdraco
- [tests] Use LineWaiter for the integration tests that parse or count log lines esphome#21306 by @bdraco
- [rx8111] Add alarm and wake-up timer support esphome#21217 by @techdregs (new-feature)
- [teleinfo] Fix default units of unitless, text and PMAX tags esphome#21367 by @FredM67
- [weikai] Share print_buffer between the SPI and I2C drivers esphome#20721 by @bdraco
- [vnc] Add the Hextile encoding and skip unchanged tiles esphome#20625 by @MindFreeze (new-feature)
- [ethernet] Check the RGMII ESP-IDF floor with the shared validator esphome#21430 by @bdraco
- [m5stack_4relay] m5stack 4relay switch implementation esphome#7234 by @KoenBreeman (new-component) (new-feature) (new-platform)
- [light] Add
effecttoinitial_stateesphome#18795 by @backcountrymountains (new-feature) - [components] Restore switches with Switch::restore() esphome#21428 by @bdraco
- [usb_uart] Implement hardware flow control esphome#20823 by @puddly (new-feature)
- [spi] Add nRF52 (Zephyr) hardware SPI support esphome#18214 by @aalaei (new-feature)
- [ln882x_spi_led_strip] Add SPI DMA addressable LED strip for LN882x esphome#21409 by @sebo-b (new-component) (new-feature) (new-platform)
- [islandaire] Add Islandaire PTAC climate IR component esphome#20153 by @ipopov (new-component) (new-feature) (new-platform)
- [cw2017] Add CW2017 battery fuel gauge esphome#21369 by @exciton (new-component) (new-feature) (new-platform)
- [seeed_multi_channel_relay] Add the Seeed Studio Grove multi-channel relay boards esphome#7233 by @KoenBreeman (new-component) (new-feature) (new-platform)
- Bump aioesphomeapi from 46.21.0 to 46.22.0 esphome#21434 by @esphome[bot]
- [esp32_hosted] Accept a verified image another build cached when Windows refuses the rename esphome#21431 by @bdraco
- [ota] Fit UDP OTA datagrams in Thread’s 1280-byte IPv6 MTU esphome#21429 by @rwrozelle
- [tests] Add helpers to subscribe after initial states and wait for the next state esphome#21151 by @bdraco
- [tests] Let LineWaiter wait for several log patterns at once esphome#21153 by @bdraco
- [online_image] Decode a JPEG as it downloads esphome#21342 by @clydebarrow (new-feature)
- [online_image] Add on_download_started and on_download_progress esphome#21355 by @clydebarrow (new-feature)
- [runtime_image] Decode a JPEG at the smallest JPEGDEC scale that covers the buffer esphome#21386 by @clydebarrow
- [syslog] Redact LOG_SECRET values before sending a message esphome#21444 by @swoboda1337
- [core][hmac_sha256] Compare digests in constant time esphome#21443 by @swoboda1337
- [packet_interface] Add packet interface component esphome#21037 by @clydebarrow (new-component) (new-feature) (new-platform)
- [duco] Component for Duco ventilation system esphome#7993 by @kokx (new-component) (new-feature) (new-platform)
- [max170xx] Shared helper; retry setup and fix sleep for max17043 and max17048 esphome#18594 by @ryansch (new-component) (new-feature)
- [st7305] Put model defaults in the per-model schema esphome#21436 by @bdraco
- [components] Set or clear display, audio and climate bits with assign_bits esphome#21187 by @bdraco
- [components] Set or clear GPIO expander bits with assign_bits esphome#21185 by @bdraco
- [epaper_spi] Skip the refresh when the frame is unchanged esphome#20333 by @exciton
- [voice_assistant] Wait for microphone to stop before speaking response esphome#21380 by @javitonino
- [core] Add final-validate helpers for a platform’s entries and unique keys esphome#21462 by @bdraco
- [weikai] Use StaticRingBuffer for the receive buffer esphome#21478 by @bdraco
- [tests] Name the I2C bus in two relay test configs so they group with multiplexers esphome#21485 by @bdraco
- [tests] Use LineWaiter expect and count in the remaining integration tests esphome#21439 by @bdraco
- [core] Gate ESP32 features on the ESP-IDF version, not the framework esphome#21415 by @bdraco
- [tests] Use subscribe_after_initial_states and next_state in the integration tests esphome#21438 by @bdraco
- [ci] Add the store_yaml, http_request update, modem and BLE MIDI flows to the hardware-test skill esphome#21414 by @bdraco
- [binary_sensor] Defer integration imports out of module scope esphome#18337 by @bdraco
- [core] Use the final-validate platform helpers in components esphome#21465 by @bdraco
- [output] Reject two outputs on the same channel of a hub esphome#21467 by @bdraco
- [sensor] Defer integration imports out of module scope esphome#18353 by @bdraco
- [ads1118][libretiny_pwm][statsd] Add missing component tests and fix statsd test dir name esphome#21496 by @swoboda1337
- [libretiny_pwm] Accept frequency units in set_frequency action esphome#21497 by @swoboda1337
- [pn7160_i2c] Fix test configuring pn7150_i2c instead of pn7160_i2c esphome#21502 by @swoboda1337
- [tests] Rename test files the runner never matched and drop orphaned common files esphome#21504 by @swoboda1337
- [delta_wallbox] Delta AC wallbox esphome#21231 by @epicRE (new-component) (new-feature) (new-platform)
- [tests] Share the sntp id in the delta_wallbox test so it groups with other sntp users esphome#21510 by @bdraco
- [tests] Cover untested entity platforms, automations and platform-gated code esphome#21506 by @swoboda1337
- [modem] Add PPPoS networking over a UART cellular modem on ESP32 esphome#6721 by @oarcher (new-component) (new-feature) (new-platform)
- [ecocomfort2] Only compile the fan when a fan platform is configured esphome#21517 by @swoboda1337
- [ezo_pmp] Guard entity pointer uses so the hub builds without sensors esphome#21516 by @swoboda1337
- [libretiny_pwm] Reject LN882H at config time esphome#21498 by @swoboda1337
- [esphome] Reject the esphome OTA platform on targets without an OTA backend esphome#21515 by @swoboda1337
- [remote_base] Let BitTimings vary the mark per bit and send the space first esphome#21511 by @bdraco
- [light] Keep strobe and color wipe colors in flash tables esphome#20222 by @bdraco
- [light] Add shared helpers for addressable LED strip drivers esphome#21445 by @bdraco
- [light] Use the shared LED strip helpers in five addressable drivers esphome#21447 by @bdraco
- [safe_mode] Avoid a duplicated branch when partition access is enabled esphome#21526 by @swoboda1337
- [ota] Name the protected partition table method per convention and mark the cache statics esphome#21525 by @swoboda1337
- [lvgl] Declare the log callback’s strchr result as a pointer esphome#21523 by @swoboda1337
- [midea] Clamp the follow-me temperature before rounding esphome#21524 by @swoboda1337
- [core] Declare component defines missing from defines.h so clang-tidy parses the code behind them esphome#21521 by @swoboda1337
- [tuya] fan optimistic mode esphome#18525 by @bkbartk (new-feature)
- [core] Write esp-idf-sbom manifests into ESP-IDF builds esphome#21454 by @kbx81
- [toshiba] Add support for RAS-25J2KVSG-ND esphome#21413 by @magnusoverli (new-feature) (new-platform)
- [mqtt] Reject subscribed topics longer than the ESP8266 and LibreTiny MQTT client accepts esphome#20768 by @bdraco
- [tas58xx] Add an activate switch esphome#21458 by @mrtoy-me (new-feature) (new-platform)
- [gpio_expander] Add a shared component base for cached expanders with an interrupt pin esphome#21468 by @bdraco
- [gpio_expander] Move eight expanders onto the shared interrupt and loop base esphome#21469 by @bdraco
- [lvgl] Skip the creation handler when updating widgets without update options esphome#21535 by @swoboda1337
- [mqtt] Rebuild subscription topics when needed instead of storing them esphome#20762 by @bdraco
- [tests] Cover remaining untested triggers and lvgl update actions esphome#21530 by @swoboda1337
- [mqtt] Honor publish_nan_as_none for climate target states esphome#20598 by @jaaviercr
- [text_sensor] Publish PROGMEM strings without copying them at the call site esphome#21536 by @bdraco
- [alarm_control_panel] Reject a code on the pending and triggered actions esphome#21539 by @swoboda1337
- [tests] Exercise unused options on core entity actions esphome#21532 by @swoboda1337
- [core] Add esphome.project.sbom for SBOM supplier and contact esphome#21455 by @kbx81 (new-feature)
- [sim800l] Add on_dtmf_received trigger esphome#21495 by @glmnet (new-feature)
- [hitachi_ac344] Add mildew-proof switch esphome#18230 by @eoleedi (new-feature) (new-platform)
- [tests] Drive the clock in the UDP OTA no-progress test esphome#21192 by @bdraco
- [hitachi_ac344] Add quiet and vertical swing mode esphome#18229 by @eoleedi (new-feature)
- [core] Tighten SBOM source detection for local installs esphome#21529 by @kbx81
- [duco] Use the shared sntp_time id in the component test esphome#21548 by @bdraco
- [core] Do not warn that ESPHome’s own core is an unmatched SBOM component esphome#21546 by @kbx81
- [demo][lvgl][const] Move CONF_BUTTONS to the shared component constants esphome#21551 by @MindFreeze
- [http_request] Run requests from the action without blocking the loop esphome#21486 by @clydebarrow (new-feature) (breaking-change)
- [mqtt] mqtt_client does not honor name_add_mac_suffix for default log_topic, birth_message, will_message, shutdown_message esphome#9315 by @peter-valkov
- [runtime_image] Draw each target pixel once, with integer maths esphome#21387 by @clydebarrow
- [runtime_image] Work out grayscale pixels with integer maths esphome#21390 by @clydebarrow
- [runtime_image] Limit how long one PNG decode call runs esphome#21391 by @clydebarrow
- [runtime_image] Limit how long one BMP or QOI decode call runs esphome#21392 by @clydebarrow
- [runtime_image] Write any opaque RGB565 image straight into the buffer esphome#21393 by @clydebarrow
- [as7341] Read channel data as little-endian esphome#21494 by @cpruijsen
- [runtime_image] Draw BMP pixels opaque esphome#21424 by @clydebarrow
- [udp] Add UDP packet interface link esphome#21042 by @clydebarrow (new-feature)
- [packet_interface] Add layer registry and HDLC reliability layer esphome#21044 by @clydebarrow (new-feature)
- [packet_interface] Add session and XXTEA encryption layers esphome#21088 by @clydebarrow (new-feature)
- [esp32_hosted] Keep hosted task stacks in internal RAM with use_psram esphome#21583 by @swoboda1337
- [const] Add CONF_MODEM esphome#21589 by @bdraco
- [remote_base] Reject delta on the pronto transmit action esphome#21578 by @swoboda1337
- [modem] [wifi] allow wifi AP for modem (WISP) esphome#21584 by @oarcher (new-feature)
- [const] Move CONF_DEVICE_TYPE to the shared component constants esphome#21592 by @bdraco
- [modem] Add signal sensors and a network type text sensor esphome#14683 by @oarcher (new-feature) (new-platform)
- [pcf8563] Don’t trust the time after a power loss esphome#20735 by @albert-canfield
- [gree] Fix YX1FF and YAC IR transmit frames esphome#20881 by @juriyivanov
- [es7243] Add ES7243 audio ADC driver esphome#19335 by @Chorty (new-component) (new-feature) (new-platform)
- [gree] Add yaw1f model for YAW1F remotes esphome#19722 by @Marvinthebored (new-feature)
- [mqtt][core] Wait for the broker to confirm the shutdown message before disconnecting esphome#21566 by @bdraco
- [wifi] Leave the AP before a BK72xx reboots esphome#21590 by @bdraco
- [as7341] Deprecate in favour of as734x, removal in 2027.5.0 esphome#21569 by @bdraco
- [web_server_base] Answer captive portal DNS queries with a 60 s TTL esphome#21597 by @bdraco
- [am43] Test the packet encoder and decoder esphome#21570 by @bdraco
- [wifi_info][ethernet_info] Test the IP address child sensors esphome#21558 by @bdraco
- [ci] Add UART simulation, remote_base loopback, online_image decode, http_request and MQTT flows to the hardware-test skill esphome#21549 by @bdraco
- [libretiny] Flag a BK72xx board layout that misses the RF calibration esphome#21550 by @bdraco
- [bq25186] Apply inverted to the PG/GPO pin level esphome#21547 by @bdraco
- [tests] Let SensorTracker wait for text sensor values esphome#21540 by @bdraco
- [tests] Run the integration test TCP servers through a tcp_server context manager esphome#21541 by @bdraco
- [http_request] Test the OTA component’s setters and getters from a lambda esphome#21555 by @bdraco
- [remote_base] Test dumper dispatch and registration esphome#21560 by @bdraco
- [core] Add ConstVector::append_copy and prepend_copy that read flash tables safely esphome#21561 by @bdraco
- [am43] Build and decode packets on the stack instead of heap objects esphome#21571 by @bdraco
- [remote_base] Give each receiver an exact dumper table esphome#21562 by @bdraco
- [rx8111] Add backup, FOUT, and EVIN events esphome#21490 by @techdregs (new-feature)
- [wifi] Add ap_mode: ALWAYS_ON and allow a captive portal with ap_mode: WISP esphome#20077 by @nliaudat (new-feature)
- [adafruit_ble][nrf52][zephyr_ble_server] Initial adafruit ble dfu ota support esphome#20481 by @omersiar (new-component) (new-feature) (new-platform)
- [delta_wallbox] Added ability to set the max current esphome#21587 by @epicRE (new-feature) (new-platform)
- [climate][water_heater] Add unit_of_measurement to the template climate and water heater esphome#20759 by @jhenkens (new-feature)
- [mqtt] fix/implement session persistence esphome#12426 by @Rapsssito (new-feature)
- [ble_midi] Add BLE MIDI component esphome#18508 by @bogdanr (new-component) (new-feature)
- [nextion] Add tft_upload_http_buffer_size_tx option for TFT upload redirects esphome#21435 by @samsonovss (new-feature)
- [lvgl] Apply opa on indicator.update esphome#21579 by @swoboda1337
- [core][display] Let users take over a display model’s default enable pins esphome#21605 by @clydebarrow (new-feature)
- [lvgl] Make canvas gradient and dashed line options compile esphome#21580 by @swoboda1337
- [copy] Add an integration test for the sensor, binary sensor and text sensor platforms esphome#21608 by @bdraco
- [tests] Cover device and lvgl action options esphome#21617 by @swoboda1337
- [espota2] Stop waiting when the device closes mid-reply esphome#21624 by @swoboda1337
- [lightwaverf] Stop requiring the unused name on send_raw esphome#21620 by @swoboda1337
- [core] Keep components that failed before setup out of the loop esphome#21622 by @swoboda1337
- [tests] Cover network and scripting action options esphome#21615 by @swoboda1337
- [tests] Cover remote, modbus and bus action options esphome#21616 by @swoboda1337
- [core] Add follow helpers for plain sensors and text sensors esphome#21609 by @bdraco
- [copy] Follow the source with plain sensors and text sensors esphome#21610 by @bdraco
- [switch][number][text] Follow the source with plain binary sensors, sensors and text sensors esphome#21612 by @bdraco
- [core][scheduler] Count a cancelled item on a failed component as removed esphome#21626 by @swoboda1337
- [runtime_image] Allocate the JPEG decoder state from PSRAM and tolerate a failed allocation esphome#21629 by @JoHoenk
- [gree] Add use_fahrenheit for Fahrenheit display on the unit’s panel esphome#20751 by @KD5RYN (new-feature)
- [ci] Include dependencies added by overrides of dependency components esphome#21635 by @clydebarrow
- [esp32] Check that code is mapped before reading it in the crash report esphome#21630 by @clydebarrow
- [remote_base] Add support for Cardin S438 remotes esphome#21507 by @manuelm (new-feature)
- [ci] Refresh integration test durations esphome#21640 by @esphome[bot]
- [modbus_client] Pass the request’s address to the send handlers esphome#20461 by @Bascht74 (new-feature)
- [esp32_camera] Fix lost single image requests esphome#21613 by @RaHehl
- [runtime_image] Fix LVGL widgets on image resize, add double_buffer esphome#21368 by @clydebarrow (new-feature)
- [api] Keep an entity’s events in order under backpressure esphome#21567 by @Bascht74
- [remote_base] Keep the stateless dumpers in flash esphome#21563 by @bdraco
- [http_request] Keep the OTA request strings out of RAM until a flash esphome#21556 by @bdraco
- [libretiny] Bump LibreTiny to 1.14.0 and build BK7231N and BK7231T with BDK 3.0.78 esphome#21531 by @bdraco (breaking-change)
- [components] Publish PROGMEM table strings on text sensors directly esphome#21537 by @bdraco
- [switch] Add get_initial_write_state for hubs that restore their switches esphome#21542 by @bdraco
- [core] Add publish=“momentary” for Apply switches that trigger an action esphome#21518 by @bdraco
- [remote_base] Use the byte helpers in roomba, dooya and magiquest esphome#21513 by @bdraco
- [restart][shutdown][factory_reset][safe_mode] Use momentary Apply switches esphome#21519 by @bdraco
- [xiaomi_ble] Add a shared XiaomiDevice base for MiBeacon devices esphome#21481 by @bdraco
- [ld6002b] Use StaticRingBuffer for the command queue esphome#21479 by @bdraco
- [i2c] Put the device address after the bus pointer so derived classes reuse its padding esphome#21473 by @bdraco
- [core] Add bulk push and pop to FixedRingBuffer esphome#21474 by @bdraco
- [haier] Use Apply switches esphome#21251 by @bdraco
- [output] Add ApplyFloatOutput and ApplyBinaryOutput esphome#21255 by @bdraco
- [fan] Pack the fan traits flags and narrow the speed count to 16 bits esphome#21340 by @bdraco
- [ltr390] Wait the full integration time at 17, 16 and 13 bit esphome#21194 by @bdraco
- [libretiny] Apply a level written before a pin becomes an output esphome#21603 by @bdraco
- [components] Read hub-restored switch levels with get_initial_write_state esphome#21543 by @bdraco
- [bedjet] Keep the device name in a fixed buffer esphome#21204 by @bdraco
- [airton] Use an Apply select for the vane direction esphome#21252 by @bdraco
- [sen6x] Drop the product and serial strings esphome#21199 by @bdraco
- [xiaomi_ble] Move the Xiaomi sensors onto XiaomiDevice and fix the shared duplicate filter esphome#21483 by @bdraco
- [dfrobot_sen0395] Queue commands by value instead of allocating them on the heap esphome#20906 by @bdraco
- [ltr390] Pack members, drop the float tables and expand gain and resolution in the schema esphome#21195 by @bdraco
- [usb_uart] Use FixedRingBuffer for the receive buffer esphome#21476 by @bdraco
- [ld2410] Split frames by their length instead of scanning for footer bytes esphome#21361 by @bdraco
- [esp32] Add a data driven pin spec for the variant GPIO validators esphome#21461 by @bdraco
- [components] Apply inverted when restoring gree, hbridge, lvgl, opentherm and haier_tundra switches esphome#21544 by @bdraco
- [haier_water_heater] Move child entities to sensor, binary_sensor and text_sensor platforms esphome#21437 by @bdraco (new-platform)
- [ld2450] Split frames by their length instead of scanning for footer bytes esphome#21357 by @bdraco
- [ld2412] Split frames by their length instead of scanning for footer bytes esphome#21360 by @bdraco
- [core] Add FrameReader to collect fixed length binary frames esphome#21446 by @bdraco
- [ld24xx] Keep the unknown MAC text and version format in flash esphome#21352 by @bdraco
- [ld2450] Keep the baud rate, direction and zone type names in flash esphome#21349 by @bdraco
- [ld2420] Use fixed size storage and keep the mode strings in flash esphome#21347 by @bdraco
- [dfrobot_sen0395] Use Apply switches esphome#21253 by @bdraco
- [web_server] Pass entity domain names from flash esphome#21115 by @bdraco
- [components] Use update_register and write_registers in the remaining I2C components esphome#21083 by @bdraco
- [components] Use shared helpers in recently added components esphome#21024 by @bdraco
- [esp32] Describe each variant’s GPIO rules with a pin spec esphome#21463 by @bdraco
- [components] Use Apply outputs for hub channel outputs esphome#21257 by @bdraco
- [core] Add the YAML loader helpers store_yaml builds on esphome#21432 by @bdraco
- [libretiny] Reboot and report the previous boot’s crash on BK7238 and BK7231N esphome#21012 by @bdraco (new-feature)
- [http_request] Build ota.http_request.flash with register_apply_action esphome#20830 by @bdraco
- [speaker][i2s_audio][es8156] Allow a list of audio DACs on one speaker esphome#21260 by @mrtoy-me (new-feature)
- [sensor][number] Build in_range with register_apply_condition esphome#20848 by @bdraco
- [i2c] Move 18 components to I2CDevice::update_register esphome#20855 by @bdraco
- [fusb302b] Filter the state triggers with when esphome#20859 by @bdraco
- [components] Look up declaring configs with get_declaring_config esphome#20913 by @bdraco
- [ld2410][ld2412][ld2450][tfluna][dfrobot_sen0609] Use the button schema presets esphome#20916 by @bdraco
- [ld2410][ld2410s][ld2412][ld2450][ld2460][dfrobot_sen0609] Use sensor::SensorWithDedup esphome#20926 by @bdraco
- [ld2412] Keep the select option names in flash esphome#21350 by @bdraco
- [wifi_info][ethernet_info] Size the IP address child sensor array from the configured addresses esphome#21559 by @bdraco
- [esp32] Enable ESP-IDF Log V2 on IDF 6.1+ esphome#17343 by @bdraco
- [usb_audio] Flush the speaker’s tail when the bus idles so a stream can stop and restart esphome#21103 by @bdraco
- [logger] Add optional boot log buffer replayed over the API esphome#17666 by @bdraco (new-feature)
- [bl0939] Keep the init command table in flash esphome#20663 by @bdraco
- [rtttl] Keep the note frequency table in flash esphome#20664 by @bdraco
- [ezo_pmp] Keep the dosing mode names in flash esphome#20665 by @bdraco
- [shelly_dimmer] Drop the device table fields that are never read esphome#20671 by @bdraco
- [nfc] Keep the URI prefix table in flash esphome#20709 by @bdraco
- [logger] Defer platform imports out of module scope esphome#18336 by @bdraco
- [i2c] Add software I2C bus for BK72xx esphome#21586 by @Korkuttum (new-feature)
- [components] Use Apply buttons for hub forwarding buttons esphome#20964 by @bdraco
- [components] Use Apply numbers for hub forwarding numbers esphome#20965 by @bdraco
- [uart] Collect fixed length frames with FrameReader in five components esphome#21449 by @bdraco
- [components] Use Apply switches for hub forwarding switches esphome#20967 by @bdraco
- [ld2410] Keep the select option names in flash esphome#21351 by @bdraco
- [components] Drain UART bytes with read_available esphome#20948 by @bdraco
- [core] Defer mqtt, web_server and zigbee imports in sixteen entity components esphome#21508 by @bdraco
- [ld2412] Send the output pin level when its select changes esphome#21353 by @bdraco
- [sx126x] Keep the bandwidth and ramp tables in flash esphome#20647 by @bdraco
- [ld2410] Format the gate threshold test esphome#21649 by @bdraco
- [sx127x] Keep the bandwidth and ramp tables in flash esphome#20650 by @bdraco
- [cc1101] Keep the modulation name table in flash esphome#20716 by @bdraco
- [epaper_spi] Keep the state name table in flash esphome#20713 by @bdraco
- [seeed_mr24hpc1] Keep the text sensor state tables in flash esphome#20711 by @bdraco
- [haier] Keep the protocol phase names in flash esphome#20710 by @bdraco
- [pulse_counter] Keep the edge mode name table in flash esphome#20660 by @bdraco
- [bme680_bsec] Keep the IAQ accuracy names in flash esphome#20656 by @bdraco
- [ezo] Keep the command and calibration type tables in flash esphome#20655 by @bdraco
- [micronova] Keep the stove state table in flash esphome#20645 by @bdraco
- [kamstrup_kmp] Keep the unit name table in flash esphome#20642 by @bdraco
- [uart] Keep debug delimiters and event patterns in flash esphome#20109 by @bdraco
- [components] Use Apply selects for hub forwarding selects esphome#20966 by @bdraco
- [tx20] Keep the wind direction table in flash esphome#20657 by @bdraco
- [nextion] Keep the queue type name table in flash esphome#20658 by @bdraco
- [veml7700] Keep the gain and integration time tables in flash esphome#20719 by @bdraco
- [seeed_mr60fda2] Keep the parameter value tables in flash esphome#20720 by @bdraco
- [esp32_rmt_led_strip] Stop blocking the main loop while waiting for the previous frame esphome#19337 by @bdraco
- [ld6002b] Use Apply entities and find the setting by entity pointer esphome#20937 by @bdraco
- [components] Write constant codec register tables with write_registers esphome#20946 by @bdraco
- [microphone] Pass each audio buffer as an AudioCapture esphome#21645 by @kahrendt
- [components] Build the remaining enum option dicts with options() esphome#20972 by @bdraco
- [components] Set or clear entity, socket and sensor bits with assign_bits esphome#21188 by @bdraco
- [core] Let the yaml editor insert lines, write with a rollback and restore esphome#20602 by @bdraco
- [dfrobot_sen0395] Collect lines with LineReader esphome#20979 by @bdraco
- [openthread] Resolve IPv6 literal addresses when the DNS64 client is enabled esphome#19269 by @bdraco
- [core] Add pulse_reset for active-low reset pins esphome#21470 by @bdraco
- [components] Use pulse_reset for blocking reset pin pulses esphome#21472 by @bdraco
- [core] Defer integration imports in ir_rf_base and media_player esphome#21601 by @bdraco
- [libretiny] Send only the UF2 images the device writes over OTA esphome#21642 by @bdraco
- [wifi] Hand the DPP bootstrapping key to the supplicant DER encoded esphome#20882 by @bdraco
- [logger] Enable Log V2 only on the native ESP-IDF toolchain esphome#21652 by @swoboda1337
- [core] Percent-encode ”/” in git credentials esphome#21653 by @swoboda1337
- [tas58xx] Add fault_output and modulation options esphome#21242 by @mrtoy-me (new-feature)
- [microphone] Zero muted audio in place before publishing esphome#21646 by @kahrendt
- [dlms_meter] Update parser to latest version to fix bogus error message on some smart meters esphome#21657 by @PolarGoose
- [core][esp32] Reject git refs and github:// shorthands with unmatched text esphome#21656 by @swoboda1337
- [core] Report missing dependencies of a component as an import error esphome#21670 by @swoboda1337
- [ld2420] Switch the module to simple reporting when the select picks Simple esphome#21651 by @bdraco
- [pipsolar] Test the switch commands esphome#21655 by @bdraco
- [core] Load !include_dir_* files in a fixed order esphome#21678 by @swoboda1337
- [demo] Set the cover to idle when it is stopped esphome#21600 by @Bascht74
- [display] Warn when show_test_card is used with update_interval: never esphome#20887 by @albert-canfield
- [copy] Forward cover toggle and lock open to the source esphome#21598 by @Bascht74
- [template] Stop a running position action on the next cover command esphome#21599 by @Bascht74
- [esp32] Split and quote build flags in native ESP-IDF builds esphome#21680 by @swoboda1337
- [integration] Test state_class on the integration sensor esphome#21489 by @christophmertins
- Bump aioesphomeapi from 46.22.0 to 46.23.0 esphome#21700 by @esphome[bot]
- [api] Fix compile of responding actions with array args esphome#21672 by @adamsthws
- [nextion] Keep a queued command when an unrelated response arrives esphome#19019 by @PeterLinuxOSS
- [esp32] fix rtcio handling esphome#21576 by @luar123
- [vnc] Add input actions and touchscreen forwarding esphome#20627 by @MindFreeze (new-feature)
- [modbus_monitor] Add modbus_monitor with on_request and on_response for server and client hubs esphome#20256 by @Bascht74 (new-component) (new-feature)
- [core] Fix a pylint false positive in idedata.py esphome#21706 by @swoboda1337
- [core][nrf52] Make sdk-nrf a native toolchain esphome#21704 by @swoboda1337
- [core] Split AGENTS.md detail into skills, add schema extraction rule esphome#21606 by @clydebarrow
- [ld2410s] Test the select and number writes esphome#21661 by @bdraco
- [ld2410s] Use Apply entities for the select and numbers esphome#21662 by @bdraco
- [pipsolar] Use Apply switches esphome#21659 by @bdraco
- [sendspin] Test the enabled switch codegen esphome#21671 by @bdraco
- [esp32_ble] Keep LL_TERMINATE_IND going until acknowledged on ESP32-C3/S3 esphome#20232 by @dbuezas
- [core] Move shared BLE pairing constants to components/const esphome#21710 by @david-collett
- [tests] Drive the clock in the UDP OTA ping test esphome#21715 by @bdraco
- [ethernet] Keep manual IP settings in flash esphome#21712 by @bdraco
- [web_server] Make web OTA’s request handler part of its component esphome#21711 by @bdraco
- [esp32_ble] Warn once for repeated connection parameter update failures esphome#21698 by @bdraco
- [libretiny] Report the previous boot’s crash on RTL8720C esphome#21648 by @bdraco (new-feature)
- [ci] Build integration tests without debug symbols, re-run failures with them esphome#21702 by @bdraco
- [ci] Persist a bounded integration test ccache seed esphome#21701 by @bdraco
- [text_sensor] Add throttle, throttle_with_priority and timeout filters esphome#21669 by @bdraco (new-feature)
- [ci] Add the Xiaomi BLE, WPA3 AP, BLE terminate, I2C slave, OTA timing and RTL8720C crash flows to the hardware-test skill esphome#21636 by @bdraco
- [core] Add publish=“on_success” for Apply entities whose hub call can fail esphome#21663 by @bdraco
- [bq25186] Test the PG/GPO switch esphome#21654 by @bdraco
- [bq25186] Use an Apply switch for the PG/GPO switch esphome#21675 by @bdraco
- [sendspin] Use an Apply switch for the enabled switch esphome#21673 by @bdraco
- [pcm5122] Use Apply switches for the power switches esphome#21677 by @bdraco
- [debug] Log per-thread CPU usage on nRF52 esphome#13938 by @tomaszduda23 (new-feature)
- [tas58xx] Add mixer mode select esphome#21637 by @mrtoy-me (new-feature) (new-platform)
- [gree] Add IR receiver support and YB1FA model esphome#18435 by @juriyivanov (new-feature)
- [ld24xx] Show radar MAC addresses that have the multicast bit set esphome#21731 by @dcb
- [ld2450] Add a text sensor with the position of each target esphome#21416 by @fornellas (new-feature)
- [ld2450] Write an edited polygon zone to flash right away esphome#21732 by @dcb
- [bk72xx_ble] Add BK7238 support esphome#21735 by @chbgdn
- [ld2450] Allow a presence_timeout of 0 esphome#21733 by @dcb
- [runtime_image] Hold the JPEG decoder state in a RAMUniquePtr esphome#21717 by @bdraco
- [tinyusb] Only declare the IAD device class when a class needs it esphome#21719 by @AdamVig
- [prometheus] Add prometheus datetime metrics esphome#9941 by @jzucker2 (new-feature)
- [core][scheduler] Log a new interval before taking the scheduler lock esphome#21721 by @swoboda1337
- [core] Allow esphome upload without a configuration esphome#21738 by @heythisisnate (new-feature)
- [delta_wallbox] Swapped the power and energy readings esphome#21628 by @epicRE
- [resampler] Carry capture times through the resampler microphone esphome#21682 by @kahrendt
- [zephyr_ble_server] Keep the stored connection right when disconnect runs first esphome#21723 by @swoboda1337
- [components] Declare hub entity pointers with the SUB_* macros esphome#21726 by @bdraco
- [core] Read the OS from sys.platform instead of querying it at import esphome#21736 by @bdraco
- [bluetooth_connection] Hold the RP2 service table in a RAMUniquePtr esphome#21730 by @bdraco
- [i2c] Print the bus scan results from one shared helper esphome#21718 by @bdraco
- [rx8111] Add event timestamp text sensor and capture storage modes esphome#21604 by @techdregs (new-feature) (new-platform)
- [libretiny] Report the previous boot’s crash on LN882H esphome#21728 by @bdraco (new-feature)
- [binary_sensor] Reset filters when the state becomes unknown esphome#21740 by @bdraco
- [ecocomfort2] Add the configuration entities (Part 3) esphome#20783 by @gledian (new-feature) (new-platform)
- [ring_buffer] Respect waits for oversized partial writes esphome#21058 by @n-IA-hane
- [vnc] Add VNC password authentication esphome#20626 by @MindFreeze (new-feature)
- [ld2450] Detect a lost radar link esphome#21734 by @dcb (new-feature)
- [esp32_camera] Add sensor windowing (digital zoom) esphome#20480 by @nliaudat (new-feature)
- [esp32_camera] Add capture_delay and capture triggers for single images esphome#21614 by @RaHehl (new-feature)
- [speaker_source] Stop pending sources without advancing the playlist esphome#19501 by @n-IA-hane
- [i2s_audio] Stamp microphone buffers with the DMA capture time esphome#21664 by @kahrendt
- [voice_assistant] Ensure microphone is stopped at STT_END esphome#21755 by @javitonino
- [nrf52] do not show cdc_acm in device builder esphome#21737 by @tomaszduda23
- [core] Reject a 0 K color temperature instead of crashing esphome#21756 by @b84330808
- [http_request] Close the connection when an OTA download is refused esphome#21762 by @arthurkomatsu
- [cs5460a] Fix nested SPI enable() deadlock on ESP32 esphome#21753 by @lobo67
- [nrf52] apply ThreadModel.MULTI_ATOMICS esphome#21761 by @tomaszduda23
- [rx8111] Add optional binary sensors esphome#21744 by @techdregs (new-feature) (new-platform)
- [nrf52] clean-up comments esphome#21769 by @tomaszduda23
- [binary_sensor] Add on_raw_value trigger esphome#21126 by @elpollodiablo (new-feature)
- [core][nrf52] Drop build flags holding ’;’, keep linker groups whole, and quote nRF52 build flags esphome#21699 by @swoboda1337
- [i2s_audio] Let stop() cancel a microphone start that has not run yet esphome#21759 by @kahrendt
- [sound_level] Allow more than one microphone channel esphome#21760 by @kahrendt
- [core][socket] Add an idle timeout to TcpClientLink esphome#21365 by @Bascht74
- [sendspin] Add the source role, streaming a microphone to the server esphome#21696 by @kahrendt (new-feature)
- [pcf85063] Read 12-hour mode and set 24-hour mode on every write esphome#21221 by @thomasfw
- [hdc1080][hdc2010][hdc2080][hdc302x] Declare child sensors with SUB_SENSOR esphome#21778 by @bdraco
- [components] Declare child entities with SUB_* macros (8/8) esphome#21777 by @bdraco
- [components] Declare child entities with SUB_* macros (7/8) esphome#21776 by @bdraco
- [components] Declare child entities with SUB_* macros (6/8) esphome#21775 by @bdraco
- [components] Declare child entities with SUB_* macros (5/8) esphome#21774 by @bdraco
- [components] Declare child entities with SUB_* macros (3/8) esphome#21772 by @bdraco
- [components] Declare child entities with SUB_* macros (2/8) esphome#21771 by @bdraco
- [components] Declare child entities with SUB_* macros (1/8) esphome#21770 by @bdraco
- [http_request] Remove the unused HttpRequestResponseTrigger esphome#21797 by @bdraco
- [remote_base] Drop the unused Component base from RawTrigger esphome#21796 by @bdraco
- [platformio] Use ccache for compiles PlatformIO moved to a response file on Windows esphome#21819 by @swoboda1337
- [nrf52] Patch west build so a project on another Windows drive than the SDK builds esphome#21798 by @swoboda1337
- [ci] Compile each build path ESPHome ships on Windows on a Windows runner esphome#21791 by @swoboda1337
- [components] Declare child entities with SUB_* macros (10/10) esphome#21849 by @bdraco
- [components] Declare child entities with SUB_* macros (9/10) esphome#21848 by @bdraco
- [core] Add PUBLISH_STATE esphome#21805 by @bdraco
- [hydreon_rgxx] Remove the empty binary sensor component esphome#21862 by @bdraco
- [template] Drop the unused Component base from the template event esphome#21860 by @bdraco
- [vbus] Drop the unused Component base from the custom sub-sensors esphome#21859 by @bdraco
- [modbus_controller] Drop the unused Component base from the outputs esphome#21857 by @bdraco
- [esp32_rmt_led_strip] Reorder members to fill base class tail padding esphome#21838 by @bdraco
- [ble_device_base] Cover the service and manufacturer data advertise triggers esphome#21822 by @bdraco
- [sensor][number] Add tests for the on_value_range trigger esphome#21814 by @bdraco
- [sensor] Fix codegen crash for a delta baseline given as a number esphome#21811 by @bdraco
- [wifi] Run the connection retry phases in a host unit test esphome#21746 by @bdraco
- [ci] Add GPIO hold, BLE, light sleep, manual IP, web handler, LD2450, BK72xx flash, Prometheus and OTA upload flows to the hardware-test skill esphome#21724 by @bdraco
- [ble_client] Cover text sensor on_notify in the build test esphome#21820 by @bdraco
- [ld2420] Remove the unfinished gate energy sensor plumbing esphome#21850 by @bdraco
- [components] Publish child entities with PUBLISH_STATE (1/5) esphome#21808 by @bdraco
- [components] Publish child entities with PUBLISH_STATE (2/5) esphome#21809 by @bdraco
- [components] Publish child entities with PUBLISH_STATE (3/5) esphome#21810 by @bdraco
- [components] Publish child entities with PUBLISH_STATE (4/5) esphome#21851 by @bdraco
- [components] Publish child entities with PUBLISH_STATE (5/5) esphome#21852 by @bdraco
- [sun] Add unit tests for on_sunrise and on_sunset crossing esphome#21802 by @bdraco
- [time] Add tests for on_time schedules and time jump handling esphome#21793 by @bdraco
- [matrix_keypad][rc522][rdm6300][sx1509][wiegand] Build hub triggers with two automations each in tests esphome#21787 by @bdraco
- [mitsubishi_cn105] Add horizontal vane direction select esphome#21863 by @crnjan (new-feature)
- [ld2410] Add automatic background noise correction esphome#21460 by @bhuveshm29 (new-feature)
- [esp32][ota][esp32_ble_tracker] Prepare for ESP-IDF 6.2 esphome#21891 by @swoboda1337
- [ir_rf_base] Reject infrared and radio_frequency entities sharing a key esphome#21886 by @abmantis
- [mitsubishi_cn105] Add the horizontal vane to the vane trigger and action esphome#21870 by @crnjan (new-feature)
- [dlms_meter] Allow multiple dlms_meter instances esphome#21585 by @FuNK3Y (new-feature)
- [mitsubishi_cn105] Add climate action support esphome#21650 by @kboone (new-feature)
- [ledc] Fix pulse truncation when setting zero duty esphome#21179 by @tommat01
- [mitsubishi_cn105] Hold the climate action through wind-down and keep the AUTO direction esphome#20819 by @DavidWAbrahams (new-feature)
- [airton_serial] Add Airton serial climate component esphome#21872 by @guiguid (new-component) (new-feature) (new-platform)
- [wifi] Handle intentional ESP32 disconnects during roaming esphome#21758 by @rusitschka
- [zephyr_mcumgr] Add SMP UDP OTA transport for nRF52 esphome#17245 by @Ardumine (new-feature)
- [mqtt] Add value and command templates to time, date and datetime dis… esphome#21956 by @syssi
- [ufire_ec][ufire_ise] Move CONF_TEMPERATURE_SENSOR to the shared component constants esphome#21919 by @clydebarrow
- [time] Reject invalid ’/’ step and offset in cron expressions esphome#21962 by @huangkongsheng
- [core] Reject trailing garbage in cv.dimensions esphome#21963 by @huangkongsheng
- [mipi] Document that init sequence delays require a time unit esphome#21873 by @huangkongsheng
- [core] Validate strings in cv.percentage_int instead of passing them through esphome#21877 by @huangkongsheng
- [time] Fix cron ranges wrapping around the end of the scale esphome#21961 by @huangkongsheng
- [sun] Reject garbage and truncated latitude/longitude instead of parsing 0.0 esphome#21876 by @huangkongsheng
- [core] Measure cv.ssid length in UTF-8 bytes, not characters esphome#21965 by @huangkongsheng
- [core] Reject empty domain/object parts in cv.entity_id esphome#21964 by @huangkongsheng
- [xiaomi_ble] Add LYWSD02MMC product ID 0x16E4 esphome#21955 by @koszoaron
- [ld600x] Add shared TinyFrame parser and use it in ld6002b esphome#19836 by @wolph (new-component)
- [mipi_rgb] Update pins for Lilygo boards esphome#21917 by @clydebarrow
- [components] Use encode_uint16 and encode_uint24 in 13 more drivers esphome#21949 by @bdraco
- [components] Use encode_uint16 in sensor drivers esphome#21940 by @bdraco
- [components] Use encode_uint16 and encode_uint24 in more drivers esphome#21941 by @bdraco
- [ld600x] Move the LD6002B component into a shared LD600XComponent base esphome#19837 by @wolph
- [components] Use sum_bytes for checksums in ufm01, bq76972, cm1106, pzem004t and pd_pioneer esphome#21942 by @bdraco
- [components] Pass the failure reason to mark_failed in ee895, hte501, tee501 and mt6701_i2c esphome#21943 by @bdraco
- [senseair] Use discard_available to drain after a bad preamble esphome#21945 by @bdraco
- [climate] Use celsius_to_fahrenheit in toshiba and daikin_brc esphome#21944 by @bdraco
- [sensor] Add source_value for reading a compensation input esphome#21937 by @bdraco
- [mhz19] Keep reading after the uptime counter wraps esphome#21926 by @bdraco
- [ccs811] Round environment data once esphome#21927 by @bdraco
- [tee501] Drop the stray read before the identification command esphome#21928 by @bdraco
- [hte501][tee501] Decode temperature as a signed 16-bit value esphome#21930 by @bdraco
- [syslog] Pack the settings into one word esphome#21896 by @bdraco
- [ezo] Add tests for the command text, reply callbacks and address change esphome#21865 by @bdraco
- [components] Declare child entities with SUB_* macros (4/8) esphome#21773 by @bdraco
- [uart] Use ApplyButton for the UART button esphome#21906 by @bdraco
- [ota] Add tests for the OTA on_* automations esphome#21902 by @bdraco
- [output] Let final_validate_unique_channel take the channel key esphome#21899 by @bdraco
- [components] Add parser tests for a01nyub, a02yyuw, jsn_sr04t, gcja5, pm1006 and sds011 esphome#21920 by @bdraco
- [network] Fix inet_ntop link failure on Zephyr esphome#21909 by @bdraco
- [bp5758d] Keep the channel values in fixed arrays esphome#21905 by @bdraco
- [hte501][tee501] Check I2C transfer results esphome#21929 by @bdraco
- [mitsubishi_cn105] Make the unit tests build with Apple clang esphome#21900 by @bdraco
- [output] Use ApplyButton for the output button esphome#21907 by @bdraco
- [ld600x] Share platform schemas and code generation with ld6002b esphome#19839 by @wolph
- [cm1106] Drop the duplicate helpers.h include esphome#21976 by @bdraco
- [core] Add publish_optional for optional entity values esphome#21921 by @bdraco
- [xiaomi] Publish optional parse results with publish_optional in the thermometers esphome#21923 by @bdraco
- [ld6004] Add Hi-Link LD6004 radar with binary_sensor platform esphome#19840 by @wolph (new-component) (new-feature) (new-platform)
- [xiaomi] Publish optional parse results with publish_optional in the plant, motion and other sensors and binary sensors esphome#21946 by @bdraco
- [gcja5] Do not publish frames that fail the checks esphome#21936 by @bdraco
- [components] Use PROGMEM_STRING_TABLE for pressure sensor oversampling and filter names esphome#21931 by @bdraco
- [ruuvitag][atc_mithermometer][pvvx_mithermometer][thermopro_ble] Publish optional parse results with publish_optional esphome#21924 by @bdraco
- [sensor][binary_sensor] Pin the output of stateless sensor filters and binary sensor delay filters esphome#21828 by @bdraco
- [ld6004] Add sensor platform esphome#19841 by @wolph (new-feature) (new-platform)
- [sm10bit_base] Clean up the driver base esphome#21843 by @bdraco
- [ld6004] Add text_sensor platform esphome#19842 by @wolph (new-feature) (new-platform)
- [core] Merge adjacent simple actions into one generated function esphome#21978 by @clydebarrow
- [core] Run callback automations directly when every action is inline esphome#21979 by @clydebarrow
- [core] Generate if, choose, while and repeat as C++ control flow esphome#21980 by @clydebarrow
- [ld6004] Add select platform esphome#19844 by @wolph (new-feature) (new-platform)
- Bump aioesphomeapi from 46.23.0 to 46.24.0 esphome#21983 by @esphome[bot]
- [ld6004] Add button platform esphome#19846 by @wolph (new-feature) (new-platform)
- [ld6004] Add number platform esphome#19843 by @wolph (new-feature) (new-platform)
- [ld6004] Add switch platform esphome#19845 by @wolph (new-feature) (new-platform)
- [atm90e32] Verify gain calibration writes esphome#18731 by @CircuitSetup
- [atm90e32] Add configurable thresholds esphome#15244 by @CircuitSetup (new-feature)
- [remote_base] Add tests for transmit_raw and rc_switch transmit code generation esphome#22000 by @bdraco
- [light] Add tests for dim_relative and effect next/previous code generation esphome#21999 by @bdraco
- [deep_sleep] Add tests for deep_sleep.enter code generation esphome#21997 by @bdraco
- [display] Add tests for display.page.show code generation esphome#21995 by @bdraco
- [core] Add tests for on_boot code generation and ordering esphome#21988 by @bdraco
- [ethernet] Bump ESP-IDF ethernet driver components esphome#21982 by @swoboda1337
- [panasonic_ir] Add Panasonic AC IR climate component esphome#21631 by @Duckle29 (new-component) (new-feature) (new-platform)
- [ms8607] Fix a crash without a humidity sensor and skip unconfigured readings esphome#16487 by @e28eta
- [xgzp68xx] Add XGZP6899DC variant esphome#21779 by @gcormier (new-feature)
- Bump aioesphomeapi from 46.24.0 to 46.25.0 esphome#22046 by @esphome[bot]
- [ms8607] Use the global App in the lifecycle test esphome#22071 by @bdraco
- [rtttl] Build speaker samples in single precision esphome#22059 by @clydebarrow
- [m5stack_unit_bldc] Add M5Stack M5Unit-BLDC platform support esphome#18086 by @lboue (new-component) (new-feature) (new-platform)
- [components] Turn platform packages with only init.py into modules esphome#22061 by @bdraco
- [ledc] Add hardware duty dithering for supported ESP32 variants esphome#21320 by @Kubuxu (new-feature)
- [rtttl] Build speaker samples from a sine table esphome#22073 by @clydebarrow
- [light] Refactor ESPColorView and related types esphome#21577 by @j9brown
- [mipi_dsi] Mark the screen dirty in fill(), raise the panel DMA priority, run the Tab5 ST7123 at 70MHz esphome#21638 by @clydebarrow
- [rtttl] Fade speaker notes in and out to stop clicks esphome#22075 by @clydebarrow
- [fujitsu_general] Add buttons for the vane step and economy commands esphome#14271 by @wiiaam (new-feature) (new-platform)
- [light] Tidy up addressable light setup esphome#22078 by @j9brown
- [audio] Release partial HTTP audio reads during synthesis gaps esphome#21090 by @andytrofimov
- [esp32_ble_server] Add secure connection support esphome#17562 by @david-collett (new-feature)
- [es8388] Add configurable ADC PGA gain esphome#21363 by @ishai-levy (new-feature)
- [lis2dw12][msa3xx] Move the tap constants to the shared component constants esphome#22087 by @chunckus-aurelius
- [lis3dh][esp32_hosted] Move CONF_ACTIVE_HIGH to the shared component constants esphome#22088 by @bdraco
- [usb_host] Size the USB FIFO for periodic packets on the ESP32-P4 esphome#21739 by @Doridian
- [runtime_image] Decode progressive and SOF1 JPEGs with JPEGDEC esphome#21784 by @remcom (new-feature)
- [mipi_rgb] Add GC9503V and ZX3D95CE01S-TR-4848 esphome#21588 by @GiorgioAresu (new-feature)
- [lvgl] Make a scrollable container automatically clickable esphome#22094 by @clydebarrow
- [mipi_spi] Add generic SPD2010 model and SenseCAP Watcher board esphome#21354 by @jesserockz (new-feature)
- [nrf52][zephyr] Fix building LVGL on nRF52 esphome#21554 by @tomaszduda23
- [nrf52] Warn when the Adafruit bootloader is older than 0.11.0 esphome#22119 by @tomaszduda23
- [epaper_spi] - Add support for the XSRUPB-7.5in-bwr panel esphome#19654 by @candrews (new-feature) (breaking-change)
- [nrf52] Deprecate framework versions older than 2.9.2 esphome#22122 by @tomaszduda23
- [host] Add use_address so OTA and logs can reach a host device esphome#22115 by @swoboda1337
- [mipi_spi] Remove redundant pca9554 requires from Waveshare SPD2010 model esphome#22125 by @jesserockz
- [core] Build the follow entity publish statement from codegen expressions esphome#22103 by @bdraco
- [socket] Size Zephyr’s poll table from the socket budget esphome#22089 by @bdraco
- [components] Use the global App in the remaining test fixtures esphome#22085 by @bdraco
- [pipsolar] Publish an unknown state instead of a bogus value for missing fields esphome#22084 by @bdraco
- [tmp102][packet_interface] Use the global App in the test fixtures esphome#22083 by @bdraco
- [api] Add tests pinning homeassistant.action and event code generation esphome#22030 by @bdraco
- [binary_sensor] Add tests for the click and double click triggers esphome#22031 by @bdraco
- [script] Add tests for script code generation and synchronous scripts esphome#22036 by @bdraco
- [thermopro_ble] Add parser unit tests esphome#22047 by @bdraco
- [light] Use cg.add_optional for optional setters in cwww, rgbww and tuya esphome#22048 by @bdraco
- [thermostat] Add tests pinning validation messages and codegen order esphome#22049 by @bdraco
- [components] Add tests for the touchscreen key binary sensors esphome#22063 by @bdraco
- [components] Publish the remaining child entities with PUBLISH_STATE esphome#22079 by @bdraco
- [mqtt] Add tests for mqtt.publish_json code generation esphome#22025 by @bdraco
- [api] Add tests for user service code generation esphome#22009 by @bdraco
- [core] Add tests for how apply actions call user lambdas esphome#22007 by @bdraco
- [core] Add tests for component.update, suspend and resume codegen esphome#21985 by @bdraco
- [ade7880] Build the channels from a table in code generation esphome#22076 by @bdraco
- [components] Declare entity pointers with the SUB_* macros esphome#22051 by @bdraco
- [thermostat] Build triggers, settings and mode checks from tables esphome#22050 by @bdraco
- [components] Publish child entities guarded by a bare pointer check with PUBLISH_STATE esphome#22082 by @bdraco
- [sdp3x] Print the model once in dump_config and quiet the runtime logs esphome#22045 by @bdraco
- [cst816][ft5x06] Remove unused button listener declarations esphome#22065 by @bdraco
- [sensor] Test delta filter with min and max together and a percentage max esphome#21812 by @bdraco
- [binary_sensor] Put the settle filter flag in the base class padding esphome#21800 by @bdraco
- [interval] Compile the startup delay out of intervals that don’t use it esphome#21799 by @bdraco
- [canbus] Add an integration test for on_frame filtering esphome#21792 by @bdraco
- [core] Add StringRef::find for std::string and StringRef needles esphome#21895 by @bdraco
- [output] Let final_validate_unique_channel check a hub’s channel count esphome#21854 by @bdraco
- [my9231][sm16716] Reject channels past num_channels esphome#21855 by @bdraco
- [core] Move owning_args from nextion into automation esphome#21893 by @bdraco
- [core] Let module platforms inherit their component’s FILTER_SOURCE_FILES esphome#22072 by @bdraco
- [core] Explain a failed clone of a missing or private repository esphome#22074 by @bdraco
- [udp] Add Zephyr/nRF52 IPv6 support esphome#17838 by @Ardumine (new-feature)
- [libretiny] Flag a BK7238 board layout its bootloader will not apply updates from esphome#21743 by @bdraco
- [ht16k33_char] Add support for HT16K33 based character displays esphome#8520 by @ilikecake (new-component) (new-feature) (new-platform)
- Bump aioesphomeapi from 46.25.0 to 46.25.1 esphome#22137 by @esphome[bot]
- [epaper_spi] Add Good Display GDEY029T94 2.9” model esphome#22128 by @jesserockz (new-feature)
- [espectre] Update to SDK 3.1.0; add runtime config entities and CSI diagnostics esphome#22132 by @francescopace (new-feature) (new-platform)
- [mipi_rgb] Update pins for ZX3D95CE01S-TR-4848 esphome#22134 by @GiorgioAresu
- [motion] Add shared tap and double tap support esphome#22144 by @chunckus-aurelius
- [ci] Refresh integration test durations esphome#22150 by @esphome[bot]
- [ci] Show why a C++ unit test build raised esphome#22140 by @bdraco
- [uptime] Add unit tests for the uptime text sensor format esphome#22146 by @bdraco
- [components] Log byte dumps with format_hex_pretty_to esphome#22149 by @bdraco
- [uptime] Keep the text sensor format in flash esphome#22147 by @bdraco
- [const] Move shared charger config keys to components/const esphome#22161 by @bdraco
- [api] Add tests for Home Assistant state subscriptions esphome#22155 by @bdraco
- [esp32_ble] Parse Bluedroid hex strings without sscanf esphome#22081 by @bdraco
- [ledc] Correct PWM duty scaling esphome#22160 by @Kubuxu
- [epaper_spi] Fix SSD1681 partial updates alternating between two images esphome#22145 by @jesserockz
- [CI] Adopt gh actions-lock for workflow action pinning esphome#22138 by @jesserockz
- [sht4x] Increase serial number response wait to 10 ms esphome#22183 by @iskyguy
- [sht4x] Expose serial number as a text sensor esphome#22176 by @iskyguy (new-feature)
- [core] Add setup_check() esphome#22177 by @bdraco
- [m5stack_unit_bldc] Declare child entities with the SUB_* macros esphome#22181 by @bdraco
- [components] Build enum options with options(prefix=) in ld600x and rx8111 esphome#22180 by @bdraco
- [rx8111] Keep the scheduled event poll out of the unit tests esphome#22179 by @bdraco
- [ai] Point reviewers at existing helpers esphome#22178 by @bdraco
- [wifi] Keep scans working after a join with a BSSID on RTL87xx esphome#21754 by @bdraco
- [core] Add AutomationList for hubs that trigger their own automations esphome#21788 by @bdraco
- [libretiny] Report the previous boot’s crash on RTL8710B esphome#21752 by @bdraco (new-feature)
- [wifi] Keep manual IP settings in flash esphome#21708 by @bdraco
- [daikin_madoka] Add new Daikin Madoka integration esphome#5951 by @Petapton (new-component) (new-feature) (new-platform)
- [speaker] Reduce startup buffering for announcements esphome#21091 by @andytrofimov
- [cse7766] Log the clamped power factor and reactive power at verbose level esphome#22224 by @adamsthws
- [i2s_audio] Fix sample-rate-dependent microphone DC correction esphome#22130 by @kVinsom
- [core] Add put_be and put_le helpers to write integers into byte buffers esphome#22211 by @bdraco
- [components] Replace local byte-order write helpers with put_be and put_le esphome#22212 by @bdraco
- [cap1188] Use update_register and check the touch status read esphome#22220 by @bdraco
- [lps22] Use update_register for the one-shot trigger esphome#22219 by @bdraco
- [xl9535] Use update_register and status_comm_result for pin access esphome#22217 by @bdraco
- [sim800l] Add integration test for the on_* automation arguments esphome#22202 by @bdraco
- [bme680_bsec] Add unit tests for publishing readings esphome#22190 by @bdraco
- [bme68x_bsec2] Add unit tests for publishing readings esphome#22189 by @bdraco
- [espota2] Make the probe deadline test deterministic esphome#22234 by @bdraco
- [web_server] Keep a custom js_url/css_url on AP only WiFi esphome#21879 by @bdraco
- [esp32_ble_client] Ignore a disconnect event from the previous link during a new connection esphome#21918 by @bdraco
- [core] Give apply action lambdas their arguments by value again esphome#22011 by @bdraco
- [esp32_rmt] Check that RMT components fit the chip’s RMT channels esphome#22172 by @zeroflow (breaking-change)
- [sim800l] Pass callback strings by const reference esphome#22203 by @bdraco
- [web_server_idf] Send a default header once when a response sets it esphome#21974 by @bdraco
- [web_server_base] Count the HTTP server’s sockets in one place esphome#21971 by @bdraco
Dependency Changes
Section titled “Dependency Changes”- Bump prek from 0.5.4 to 0.5.5 esphome#20370 by @dependabot[bot]
- Bump filelock from 4.0.10 to 4.0.12 esphome#20371 by @dependabot[bot]
- Bump j178/prek-action from 3.0.0 to 3.0.1 esphome#20372 by @dependabot[bot]
- Bump platformdirs from 4.12.3 to 4.12.4 esphome#20697 by @dependabot[bot]
- Bump astral-sh/setup-uv from 10.2.0 to 10.3.0 in /.github/actions/restore-python esphome#20700 by @dependabot[bot]
- Bump pyupgrade from 3.21.2 to 3.22.0 esphome#20698 by @dependabot[bot]
- Bump filelock from 4.0.12 to 4.1.0 esphome#20696 by @dependabot[bot]
- Bump backports-zstd from 1.7.0 to 1.8.0 esphome#20695 by @dependabot[bot]
- Bump actions/download-artifact from 8.0.1 to 8.0.2 esphome#20703 by @dependabot[bot]
- Bump actions/upload-artifact from 7.0.1 to 7.0.2 esphome#20702 by @dependabot[bot]
- Bump github/codeql-action/analyze from 4.38.2 to 4.38.3 esphome#20699 by @dependabot[bot]
- Bump CodSpeedHQ/action from 5.4.0 to 5.4.2 esphome#20705 by @dependabot[bot]
- Bump astral-sh/setup-uv from 10.2.0 to 10.3.0 esphome#20704 by @dependabot[bot]
- Bump github/codeql-action/init from 4.38.2 to 4.38.3 esphome#20701 by @dependabot[bot]
- Bump esptool from 5.4.0 to 5.5.0 esphome#20693 by @dependabot[bot]
- Bump ruff from 0.16.10 to 0.17.0 esphome#20694 by @dependabot[bot]
- Bump platformdirs from 4.12.4 to 4.13.0 esphome#20772 by @dependabot[bot]
- Bump pylint from 4.1.2 to 4.1.3 esphome#20773 by @dependabot[bot]
- Bump filelock from 4.1.0 to 4.1.1 esphome#20778 by @dependabot[bot]
- Bump actions/create-github-app-token from 3.2.0 to 3.3.0 esphome#20815 by @dependabot[bot]
- Bump py7zr from 1.1.3 to 1.1.4 esphome#20816 by @dependabot[bot]
- Bump yamlrocks from 0.6.1 to 0.7.0 esphome#20904 by @dependabot[bot]
- Bump esptool from 5.5.0 to 5.6.0 esphome#21135 by @dependabot[bot]
- Bump github/codeql-action/init from 4.38.3 to 4.39.0 esphome#21140 by @dependabot[bot]
- Bump esphome/workflows/.github/workflows/stale.yml from 4fbce13026c393d6eb6b247e394dcd9ef1af76c2 to 31d160e5f0ffa0ee65d5b27cb55c153d415f2abe esphome#21141 by @dependabot[bot]
- Bump github/codeql-action/analyze from 4.38.3 to 4.39.0 esphome#21139 by @dependabot[bot]
- Bump filelock from 4.1.1 to 4.2.0 esphome#21138 by @dependabot[bot]
- Bump platformdirs from 4.13.0 to 4.13.3 esphome#21136 by @dependabot[bot]
- Bump CodSpeedHQ/action from 5.4.2 to 5.5.0 esphome#21143 by @dependabot[bot]
- Bump esphome/workflows/.github/workflows/lock.yml from 2026.9.0 to 2026.10.2 esphome#21142 by @dependabot[bot]
- Bump ruff from 0.17.0 to 0.17.1 esphome#21137 by @dependabot[bot]
- Bump filelock from 4.2.0 to 4.2.1 esphome#21222 by @dependabot[bot]
- Bump pytest-mock from 3.16.0 to 3.17.0 esphome#21225 by @dependabot[bot]
- Bump pillow from 12.3.0 to 13.0.0 esphome#21224 by @dependabot[bot]
- Bump yamlrocks from 0.7.0 to 0.7.1 esphome#21223 by @dependabot[bot]
- Bump filelock from 4.2.1 to 4.2.2 esphome#21295 by @dependabot[bot]
- Bump platformdirs from 4.13.3 to 4.13.4 esphome#21297 by @dependabot[bot]
- Bump clang-tidy + clang-format from 22.1.8 to 23.1.3 esphome#21296 by @dependabot[bot]
- Bump j178/prek-action from 3.0.1 to 3.0.2 esphome#21420 by @dependabot[bot]
- Bump filelock from 4.2.2 to 4.2.4 esphome#21417 by @dependabot[bot]
- Bump platformdirs from 4.13.4 to 4.13.5 esphome#21418 by @dependabot[bot]
- Bump prek from 0.5.5 to 0.5.6 esphome#21419 by @dependabot[bot]
- Bump pypa/gh-action-pypi-publish from 1.14.2 to 1.14.3 esphome#21501 by @dependabot[bot]
- Bump j178/prek-action from 3.0.2 to 3.1.0 esphome#21500 by @dependabot[bot]
- Bump setuptools from 84.0.0 to 84.2.1 esphome#21499 by @dependabot[bot]
- Bump github/codeql-action/analyze from 4.39.0 to 4.39.1 esphome#21691 by @dependabot[bot]
- Bump docker/login-action from 4.6.0 to 4.7.0 in the docker-actions group esphome#21687 by @dependabot[bot]
- Bump github/codeql-action/init from 4.39.0 to 4.39.1 esphome#21693 by @dependabot[bot]
- Bump cryptography from 48.0.1 to 50.0.2 esphome#21684 by @dependabot[bot]
- Bump astral-sh/setup-uv from 10.3.0 to 10.3.2 in /.github/actions/restore-python esphome#21688 by @dependabot[bot]
- Bump actions/setup-python from 7.0.0 to 7.1.0 in /.github/actions/restore-python esphome#21690 by @dependabot[bot]
- Bump smp from 4.1.0 to 4.2.0 esphome#21685 by @dependabot[bot]
- Bump tzlocal from 5.4.4 to 5.4.5 esphome#21686 by @dependabot[bot]
- Bump ruff from 0.17.1 to 0.17.2 esphome#21683 by @dependabot[bot]
- Bump prek from 0.5.6 to 0.5.7 esphome#21689 by @dependabot[bot]
- Bump CodSpeedHQ/action from 5.5.0 to 5.6.0 esphome#21692 by @dependabot[bot]
- Bump astral-sh/setup-uv from 10.3.0 to 10.3.2 esphome#21695 by @dependabot[bot]
- Bump actions/setup-python from 7.0.0 to 7.1.0 esphome#21694 by @dependabot[bot]
- Bump pytest-asyncio from 1.4.0 to 1.4.1 esphome#21883 by @dependabot[bot]
- Bump clang-tidy from 23.1.3 to 23.1.4 esphome#21884 by @dependabot[bot]
- Bump ruff from 0.17.2 to 0.17.3 esphome#21969 by @dependabot[bot]
- Bump platformdirs from 4.13.5 to 4.13.6 esphome#21970 by @dependabot[bot]
- Update tzdata requirement from >=2026.5 to >=2026.6 esphome#22041 by @dependabot[bot]
- Bump platformdirs from 4.13.6 to 4.14.0 esphome#22042 by @dependabot[bot]
- Bump pytest from 9.1.1 to 9.2.0 esphome#22040 by @dependabot[bot]
- Bump astral-sh/setup-uv from 10.3.2 to 10.3.3 esphome#22170 by @dependabot[bot]
- Bump CodSpeedHQ/action from 5.6.0 to 5.6.1 esphome#22166 by @dependabot[bot]
- Bump prek from 0.5.7 to 0.5.9 esphome#22165 by @dependabot[bot]
- Bump astral-sh/setup-uv from 10.3.2 to 10.3.3 in /.github/actions/restore-python esphome#22167 by @dependabot[bot]
- Bump esphome/workflows/.github/workflows/stale.yml from 2026.10.2 to 2026.10.3 esphome#22169 by @dependabot[bot]
- Bump esphome/workflows/.github/workflows/lock.yml from 2026.10.2 to 2026.10.3 esphome#22168 by @dependabot[bot]
- Bump platformdirs from 4.14.0 to 4.14.2 esphome#22225 by @dependabot[bot]
- Bump zeroconf from 0.151.5 to 0.152.0 esphome#22226 by @dependabot[bot]
- Bump pytest-codspeed from 5.0.3 to 5.0.4 esphome#22227 by @dependabot[bot]
- Bump filelock from 4.2.4 to 4.2.6 esphome#22228 by @dependabot[bot]
- Bump docker/setup-buildx-action from 4.4.0 to 4.4.1 in the docker-actions group esphome#22229 by @dependabot[bot]