- [haier] ``text_sensor`` and ``button`` platforms :esphomepr:`6780` by :ghuser:`paveldn` (new-integration)
- LTR-303, LTR-329, LTR-553, LTR-556, LTR-559, LTR-659 Series of Lite-On Light (ALS) and Proximity(PS) sensors :esphomepr:`6076` by :ghuser:`latonita` (new-integration)
- Add host time platform; remove host support from sntp. :esphomepr:`6854` by :ghuser:`clydebarrow` (new-integration)
- [ota] http_request update platform :esphomepr:`5586` by :ghuser:`oarcher` (new-integration)
- [core] Update Entities :esphomepr:`6885` by :ghuser:`jesserockz` (new-integration)
- New 1-wire component :esphomepr:`6860` by :ghuser:`ssieb` (new-integration) (breaking-change)
- [display] SDL2 display driver for host platform :esphomepr:`6825` by :ghuser:`clydebarrow` (new-integration)
New Platforms
^^^^^^^^^^^^^
- BedJet: expose the outlet temperature on the climate and as a sensor :esphomepr:`6633` by :ghuser:`javawizard` (new-platform)
- mpr121: Add GPIO support :esphomepr:`6776` by :ghuser:`polyfloyd` (new-platform)
Breaking Changes
^^^^^^^^^^^^^^^^
- Separate ``OTABackend`` from OTA component :esphomepr:`6459` by :ghuser:`kbx81` (new-integration) (breaking-change)
- SPI and I2C for ENS160 :esphomepr:`6369` by :ghuser:`latonita` (new-integration) (breaking-change)
- Uncouple safe_mode from OTA :esphomepr:`6759` by :ghuser:`kbx81` (breaking-change)
- Fix incorrect naming of the AdaFruit MagTag display. :esphomepr:`6810` by :ghuser:`sasodoma` (breaking-change)
- [http_request] Add esp-idf and rp2040 support :esphomepr:`3256` by :ghuser:`jesserockz` (breaking-change)
- Allow parse_json to return a boolean result :esphomepr:`6884` by :ghuser:`jesserockz` (breaking-change)
- New 1-wire component :esphomepr:`6860` by :ghuser:`ssieb` (new-integration) (breaking-change)
- [nextion] Fix type on sprintf for IDF v5 :esphomepr:`6758` by :ghuser:`edwardtfn`
- [core] Remove references to deleted setup.py :esphomepr:`6757` by :ghuser:`jesserockz`
- Fix pip3 install :esphomepr:`6771` by :ghuser:`syssi`
- [tests] make test_build_components work with venv without installing esphome :esphomepr:`6761` by :ghuser:`tomaszduda23`
- separate deep_sleep component for each platform in different file :esphomepr:`6762` by :ghuser:`tomaszduda23`
- Bump actions/checkout from 4.1.5 to 4.1.6 :esphomepr:`6764` by :ghuser:`dependabot[bot]`
- add rp2040 support to the wizard :esphomepr:`6239` by :ghuser:`fodfodfod`
- [ili9xxx] Add 18bit mode selection and custom init sequence :esphomepr:`6745` by :ghuser:`clydebarrow`
- Tiny fix in automation.h - unused return value removed :esphomepr:`6760` by :ghuser:`latonita`
- Uncouple safe_mode from OTA :esphomepr:`6759` by :ghuser:`kbx81` (breaking-change)
- Add support for acting as Modbus server :esphomepr:`4874` by :ghuser:`JeroenVanOort`
- Add on_safe_mode trigger :esphomepr:`6790` by :ghuser:`kbx81`
- [sx1509] Output open drain pin mode :esphomepr:`6788` by :ghuser:`Swamp-Ig`
- [ledc] Change some logging lines from debug to verbose :esphomepr:`6796` by :ghuser:`jesserockz`
- [haier] ``text_sensor`` and ``button`` platforms :esphomepr:`6780` by :ghuser:`paveldn` (new-integration)
- mpr121: Add GPIO support :esphomepr:`6776` by :ghuser:`polyfloyd` (new-platform)
- [nextion] Add basic functions to Intelligent series :esphomepr:`6791` by :ghuser:`edwardtfn`
- Fix incorrect naming of the AdaFruit MagTag display. :esphomepr:`6810` by :ghuser:`sasodoma` (breaking-change)
- [tuya] add support for extended services :esphomepr:`6808` by :ghuser:`augs`
- fix libretiny regression from #6715 :esphomepr:`6806` by :ghuser:`augs`
- Make i2s_audio compatible with IDF 5+ :esphomepr:`6534` by :ghuser:`pimdo`
- Fix compile errors on ESP32-C6 with latest ESP-IDF :esphomepr:`6822` by :ghuser:`DAVe3283`
- Use uint8_t instead of uint32_t for 8-bit values on mitsubishi :esphomepr:`6824` by :ghuser:`DAVe3283`
- Make SPI Ethernet (W5500) compatible with ESP-IDF v5 :esphomepr:`6778` by :ghuser:`fightforlife`
- [wake_on_lan] Make component platform independent :esphomepr:`6815` by :ghuser:`clydebarrow`
- Fix a bunch of components for IDF 5 compatibility and #6802 :esphomepr:`6805` by :ghuser:`kbx81`
- Bump docker/login-action from 3.1.0 to 3.2.0 :esphomepr:`6823` by :ghuser:`dependabot[bot]`
- Bump pytest-cov from 4.1.0 to 5.0.0 :esphomepr:`6580` by :ghuser:`dependabot[bot]`
- Bump peter-evans/create-pull-request from 6.0.4 to 6.0.5 :esphomepr:`6635` by :ghuser:`dependabot[bot]`
- Bump black from 24.4.0 to 24.4.2 :esphomepr:`6646` by :ghuser:`dependabot[bot]`
- [voice_assistant] Timers :esphomepr:`6821` by :ghuser:`jesserockz` (new-feature)
- [web_server] add entity sorting for v3 :esphomepr:`6445` by :ghuser:`RFDarter`
- [micro_wake_word] Ensure model string is Path :esphomepr:`6826` by :ghuser:`synesthesiam`
- Fix DHT reading timing for SI7021 on ESP32 :esphomepr:`6604` by :ghuser:`erdembey`
- [core] Const-ify some Component fields :esphomepr:`6831` by :ghuser:`jesserockz`
- LTR-303, LTR-329, LTR-553, LTR-556, LTR-559, LTR-659 Series of Lite-On Light (ALS) and Proximity(PS) sensors :esphomepr:`6076` by :ghuser:`latonita` (new-integration)
- Update const.py added missing millimeter :esphomepr:`6834` by :ghuser:`NonaSuomy`
- Fix log message in VA for IDF 5 :esphomepr:`6839` by :ghuser:`kbx81`
- Replace random non-ascii-print characters with standard substitutes :esphomepr:`6840` by :ghuser:`ptr727`
- Wireguard support for bk72 microcontrollers :esphomepr:`6842` by :ghuser:`droscy`
- Add messages when WiFi and Ethernet components set 'warning' flag. :esphomepr:`6850` by :ghuser:`kpfleming`
- [sntp] fix for ESP-IDF > 5.0 :esphomepr:`6769` by :ghuser:`HeMan`
- Avoid unsafe git error when container user and file config volume permissions don't match :esphomepr:`6843` by :ghuser:`ptr727`
- Add Ethernet MAC address to ethernet_info :esphomepr:`6835` by :ghuser:`ptr727`
- Add host time platform; remove host support from sntp. :esphomepr:`6854` by :ghuser:`clydebarrow` (new-integration)
- [wireguard] Implement workaround for crash on IDF 5+ :esphomepr:`6846` by :ghuser:`kbx81`
- [ft5x06] Interrupt pin and code quality improvements :esphomepr:`6851` by :ghuser:`jesserockz`
- [ethernet] Add config option to set arbitrary PHY register values :esphomepr:`6836` by :ghuser:`heythisisnate`
- Add carrier_frequency option to remote_transmitter.transmit_aeha :esphomepr:`6792` by :ghuser:`svxa`
- Add ``invert_position_report`` to ``tuya.cover``:esphomepr:`6020` by :ghuser:`wrouesnel`
- [Tuya Climate] Support both datapoint and pins for active state :esphomepr:`6789` by :ghuser:`zry98`
- [config] Allow file: scheme for git external components :esphomepr:`6844` by :ghuser:`clydebarrow`
- [ota] http_request update platform :esphomepr:`5586` by :ghuser:`oarcher` (new-integration)
- [logger] Fix defines for development :esphomepr:`6870` by :ghuser:`jesserockz`
- [docker] Avoid unsafe git error when container user and file config volume permissions don't match :esphomepr:`6873` by :ghuser:`ptr727`
- [datetime] Add logs on DateCall perform :esphomepr:`6868` by :ghuser:`RFDarter`
- fix: arduino media player sets wrong state for announcements :esphomepr:`6849` by :ghuser:`gnumpi`
- [datetime] datetime-datetime strptime support value string without seconds :esphomepr:`6867` by :ghuser:`RFDarter`
- Update webserver local assets to 20240608-093147 :esphomepr:`6874` by :ghuser:`esphomebot`
- fix: arduino media player still sets wrong state. :esphomepr:`6875` by :ghuser:`gnumpi`
- [http_request] Add esp-idf and rp2040 support :esphomepr:`3256` by :ghuser:`jesserockz` (breaking-change)
- [i2s_speaker] A few fixes :esphomepr:`6872` by :ghuser:`jesserockz`
- [voice_assistant] Write less data to speaker each loop :esphomepr:`6877` by :ghuser:`jesserockz`
- Bump docker/build-push-action from 5.3.0 to 5.4.0 in /.github/actions/build-image :esphomepr:`6883` by :ghuser:`dependabot[bot]`
- Allow parse_json to return a boolean result :esphomepr:`6884` by :ghuser:`jesserockz` (breaking-change)
- Update webserver local assets to 20240610-230854 :esphomepr:`6886` by :ghuser:`esphomebot`
- [core] Update Entities :esphomepr:`6885` by :ghuser:`jesserockz` (new-integration)
- [Dockerfile] Sync platformio version with requirements.txt :esphomepr:`6888` by :ghuser:`ptr727`
- [Deep sleep] Compilation error with IDF >= 5.* :esphomepr:`6879` by :ghuser:`asergunov`
- [animation] Allow loading external url at build time :esphomepr:`6876` by :ghuser:`landonr`
- [waveshare_epaper] Add support for 13.3in-k :esphomepr:`6443` by :ghuser:`pgericson`
- Climate IR LG - Support fan only mode and all "on" commands :esphomepr:`3712` by :ghuser:`danieldabate`
- [safe_mode] Allow user-defined interval for successful boot :esphomepr:`6882` by :ghuser:`NMartin354`
- New 1-wire component :esphomepr:`6860` by :ghuser:`ssieb` (new-integration) (breaking-change)
- [he60r] Don't publish state unless it has changed. [BUGFIX] :esphomepr:`6869` by :ghuser:`clydebarrow`
- [image] Make PIL import local :esphomepr:`6864` by :ghuser:`guillempages`
- [config] Retain path information in validated configuration :esphomepr:`6785` by :ghuser:`clydebarrow`
- WebSocket overrides check_origin for reverse proxy configuration :esphomepr:`6845` by :ghuser:`gabest11`
- [config] Early termination of validation steps on error :esphomepr:`6837` by :ghuser:`clydebarrow`
- Fix media_player.volume_set when media player is not started :esphomepr:`6859` by :ghuser:`tetele`
- [display] SDL2 display driver for host platform :esphomepr:`6825` by :ghuser:`clydebarrow` (new-integration)
- [ili9xxx] Implement st7735 support :esphomepr:`6838` by :ghuser:`clydebarrow`