Full changelog for Home Assistant Core 2024.5
These are all the changes included in the Home Assistant Core 2024.5 release.
For a summary in a more readable format: Release notes blog for this release.
All changes
- Update SignalType imports (@cdce8p
- #114287 )  - Bump version to 2024.5.0dev0 (@frenck
- #114324 )  - Remove suggested_uom from frequency in Enphase (@catsmanac
- #114340 )  - Add additional coverage to the ESPHome manager (@bdraco
- #114265 )  - Define PARALLEL_UPDATES for APCUPSD (@yuxincs
- #114134 )  - Enable Ruff TRY201 (@autinerd
- #114269 )  - Set fastdotcom to gold quality (@erwindouna
- #105598 )  - Fix ruff error (@cdce8p
- #114364 )  - Add translation support to Config Entry errors (@gjohansson-ST
- #106305 )  - Mark core as codeowner for some folders (@edenhaus
- #114357 )  - Update pyudev to 0.24.1 (@cdce8p
- #114359 )  - Update aioazuredevops to 1.4.3 (@cdce8p
- #114361 )  - Update aprslib to 0.7.2 (@cdce8p
- #114365 )  - Update ovoenergy to 1.3.1 (@cdce8p
- #114367 )  - Update aiogithubapi to 23.11.0 (@cdce8p
- #114362 )  - Update boschshcpy to 0.2.91 (@cdce8p
- #114366 )  - Update pytest-xdist to 3.4.0 (@cdce8p
- #114377 )  - SunWEG reauth flow (@rokam
- #105861 )  - Use 
setup_test_component_platformhelper for switch entity component tests instead ofhass.components(@jpbede- #114305 )  - Update boto3 to 1.34.51 and aiobotocore to 2.12.1 (@cdce8p
- #114379 )  - Add SharkIQ room targeting (@funkybunch
- #89350 )  - Add matter zeroconf (@MartinHjelmare
- #114385 )  - Replace partial annotations (@cdce8p
- #114177 )  - Set ruff requires-version to 0.3.4 (@autinerd
- #114388 )  - Use 
setup_test_component_platformhelper for text entity component tests instead ofhass.components(@jpbede- #114400 )  - Migrate moon to use single_config_entry (@jpbede
- #114404 )  - Migrate nina to use single_config_entry (@jpbede
- #114408 )  - Add eq3btsmart integration (@EuleMitKeule
- #109291 )  - Use 
mock_platformfor device_tracker entity component tests instead ofhass.components(@jpbede- #114398 )  - Enable ruff TRY401 (@autinerd
- #114395 )  - Use 
setup_test_component_platformhelper for fan entity component tests instead ofhass.components(@jpbede- #114409 )  - Use 
setup_test_component_platformhelper for time entity component tests instead ofhass.components(@jpbede- #114411 )  - Use 
setup_test_component_platformhelper for date entity component tests instead ofhass.components(@jpbede- #114413 )  - Use 
setup_test_component_platformhelper for datetime entity component tests instead ofhass.components(@jpbede- #114415 )  - Address late review comments for fan entity component test (@jpbede
- #114425 )  - Add single config entry to Mullvad (@joostlek
- #114426 )  - Add Integration for Energenie Power-Sockets (@gnumpi
- #113097 )  - Use 
setup_test_component_platformhelper for select entity component tests instead ofhass.components(@jpbede- #114412 )  - Refactor conversation mock_agent (@autinerd
- #114428 )  - Add 
uidattribute toimap_contentevent data (@luca-angemi- #114432 )  - Remove stale test for mqtt climate (@jbouwh
- #114443 )  - Don’t store analytics insights info on entry level (@joostlek
- #114429 )  - Address late code review comment of Prusa MK3 support (@the-ress
- #114455 )  - Unignore Ruff PLE, PLW in tests (@autinerd
- #114406 )  - Enable Ruff TRY300 (@autinerd
- #114437 )  - Rework opensky tests (@joostlek
- #114441 )  - Add hourly forecast to open_meteo (@Tommatheussen
- #113622 )  - Add UniFi WLAN regenerate password button (@brunohenriquy
- #114422 )  - Add UniFi WLAN Password sensor (@brunohenriquy
- #114419 )  - Avoid call to 
hass.helpers.storein CategoryRegistry (@jpbede- #114485 )  - Fix ZHA websocket API test (@TheJulianJES
- #114495 )  - Add pytest rewrite for wemo tests that use entity_test_helpers (@bdraco
- #114516 )  - Conversation to unsubscribe when no cache to invalidate (@balloob
- #114515 )  - Re-organize conversation integration (@balloob
- #114502 )  - Detect blocking module imports in the event loop (@bdraco
- #114488 )  - Use entity & device registry mocks instead of 
hass.helpersin airthings_ble tests (@jpbede- #114520 )  - Enable first batch of Ruff RET rules (@autinerd
- #114480 )  - Deprecate 
hass.helpers(@jpbede- #114484 )  - Add single config entry to Analytics insights (@joostlek
- #114427 )  - Bump aiodns to 3.2.0 (@bdraco
- #114527 )  - Add uptime sensor to Glances (@wittypluck
- #111402 )  - Add error sensor for Husqvarna Automower (@Thomas55555
- #113165 )  - Avoid use of 
hass.helpersin _mqtt_mock_entry fixture (@jpbede- #114536 )  - Use device registry mock instead of 
hass.helpersin dsmr tests (@jpbede- #114535 )  - Avoid use of 
hass.helpersin plugwise test (@jpbede- #114534 )  - Use device registry mock instead of 
hass.helpersin traccar_server tests (@jpbede- #114532 )  - Fix flakey sonos test test_creating_entry_sets_up_media_player (@bdraco
- #114539 )  - Bump python-songpal to 0.16.2 (@rytilahti
- #114525 )  - Unignore Ruff PLR in tests (@autinerd
- #114470 )  - Fix missing mocking in blink tests (@bdraco
- #114540 )  - Ensure coverage entries are sorted (@epenet
- #114424 )  - Automatic cleanup of entity and device registry in Tankerkoenig (@mib1185
- #114573 )  - Upgrade aioazuredevops to 2.0.0 (@timmo001
- #114537 )  - Fix missing mocking in nextdns tests (@bdraco
- #114541 )  - Apply late review of tankerkoenig (@mib1185
- #114582 )  - Small cleanups to zone to reduce startup time (@bdraco
- #114587 )  - Unignore Ruff PLC in tests (@autinerd
- #114572 )  - Reduce hassio startup time (@bdraco
- #114588 )  - Migrate uptime to use single_config_entry (@jpbede
- #114586 )  - Use dict comprehension in honeywell diagnostics (@jpbede
- #114598 )  - Add conversation entity (@balloob
- #114518 )  - Fix flakey cast discovery stop test (@bdraco
- #114605 )  - Use switch entities instead of toggle entities in tests (@jpbede
- #114585 )  - Bump Wandalen/wretry.action from 2.1.0 to 3.0.0 (@dependabot - #114554
)  - Tweak integration sensor (@emontnemery
- #114384 )  - Fix ruff issue in sonos (@edenhaus
- #114616 )  - Update ring quality scale to silver (@sdb9696
- #113146 )  - Add sensor entities to Traccar Server (@ludeeus
- #111374 )  - Raise ServiceValidationError on number out of range exception (@jbouwh
- #114589 )  - Improve DeviceInfo for Total Connect (@austinmroczek
- #114509 )  - Bump uv to 0.1.27 (@edenhaus
- #114629 )  - Remove YAML configuration from Withings (@joostlek
- #114626 )  - Bump ruff to 0.3.5 (@joostlek
- #114634 )  - Clean up unnecessary setup calls in tests (@balloob
- #114644 )  - Fix Google translate TTS test race condition (@edenhaus
- #114656 )  - Add icon to command_line cover config (@atlflyer
- #114645 )  - Don’t overwrite target temperature by setting hvac mode in AVM Fritz!SmartHome (@jayme-github
- #112119 )  - Fix Rpi_power test race condition (@edenhaus
- #114662 )  - Add typing to Roomba config flow (@joostlek
- #114624 )  - Azure DevOps integration tests (@timmo001
- #114577 )  - Add extra sensors to Swiss Public Transport (@miaucl
- #114636 )  - Refactor setup code in command_line (@gjohansson-ST
- #114661 )  - Add tests for Roomba Options flow (@joostlek
- #114666 )  - Remove old device tracker device cleanup code & test (@pnbruckner
- #114668 )  - Use is in enum comparison in config flow tests F-J (@joostlek
- #114670 )  - Add IMAP seen, move and delete service (@jbouwh
- #114501 )  - Use is in enum comparison in config flow tests U-Z (@joostlek
- #114677 )  - Bump solax to 3.1.0 (@Darsstar
- #114617 )  - Use is in enum comparison in config flow tests K-O (@joostlek
- #114672 )  - Use is in enum comparison in config flow tests P-T (@joostlek
- #114675 )  - Use is in enum comparison in config flow tests A-E (@joostlek
- #114669 )  - Bump yalexs to 3.0.1 (@bdraco
- #114678 )  - Small speed ups to ambient_station (@bdraco
- #114698 )  - Small speed up to starting and stopping cloud (@bdraco
- #114696 )  - Reduce code for registry items with a base class (@bdraco
- #114689 )  - Add service homeworks.send_command (@emontnemery
- #114059 )  - Bump Wandalen/wretry.action from 3.0.0 to 3.0.1 (@dependabot - #114714
)  - Migrate homeassistant_sky_connect to use eager_start for tasks (@bdraco
- #114706 )  - Use FlowResultType enum in config flow tests A-M (@joostlek
- #114681 )  - Simplify homekit_controller cache clear (@bdraco
- #114692 )  - Use FlowResultType enum in config flow tests N-Z (@joostlek
- #114682 )  - Use eager_start to load utility_meter platforms (@bdraco
- #114699 )  - Fix synology_dsm test side effects (@edenhaus
- #114722 )  - Avoid useless done check in config entries async_create_task (@bdraco
- #114695 )  - Migrate legacy device_tracker task creation to use eager_start (@bdraco
- #114703 )  - Simplify core state cache clear (@bdraco
- #114694 )  - Simplify config entry cache clear (@bdraco
- #114691 )  - Use eager_start to create async_update_alerts task in homeassistant_alerts (@bdraco
- #114707 )  - Create bond fallback polling tasks eagerly (@bdraco
- #114705 )  - Make creation of capabilities_updated_at deque in Entity lazy (@bdraco
- #114711 )  - Migrate sabnzbd to use data update coordinator (@jpbede
- #114745 )  - Replace pytest-test-groups by custom tests splitter (@edenhaus
- #114381 )  - Revert the logger level in the Shelly update platform (@bieniu
- #114749 )  - Fix CI after splitting tests (@edenhaus
- #114754 )  - Add wake on LAN via Fritz!Box for tracked devices (@chrisbraucker
- #106778 )  - Correct imap services setup (@jbouwh
- #114760 )  - Use eager_start to forward wemo config entry platforms (@bdraco
- #114702 )  - Rework update_data starlink coordinator (@Fexiven
- #114642 )  - Dispatch the same ReceiveMessage object if the subscription topic is the same (@bdraco
- #114769 )  - Improve performance of extracting entities by label (@bdraco
- #114720 )  - Load mailbox integration platforms in tracked tasks (@bdraco
- #114774 )  - Add index for area/config_entry/label to the device registry (@bdraco
- #114776 )  - Adjust async_load_platform comment to remove dead lock reference (@bdraco
- #114771 )  - Avoid executor job to start http if server_host is unspecified (@bdraco
- #114609 )  - Speed up logger setup (@bdraco
- #114610 )  - Bump Wandalen/wretry.action from 2.1.0 to 3.0.1 (@dependabot - #114805
)  - Avoid linear search of the device registry in deconz (@bdraco
- #114803 )  - Add index for floor/label to the area registry (@bdraco
- #114777 )  - Avoid linear search in traccar to find devices (@bdraco
- #114817 )  - Load template platforms with eager_start (@bdraco
- #114701 )  - Load mobile_app notify platform with eager_start (@bdraco
- #114700 )  - Remove unnecessary functools.cached_property backport (@cdce8p
- #114239 )  - Avoid linear search in hassio to find devices (@bdraco
- #114806 )  - Avoid linear search in homekit to find devices (@bdraco
- #114808 )  - Avoid linear search in ibeacon to find devices (@bdraco
- #114809 )  - Avoid linear search in purpleair to find devices (@bdraco
- #114816 )  - Avoid linear search in ps4 to find devices (@bdraco
- #114814 )  - Ensure async_test_home_assistant is passed a str in storage tests (@bdraco
- #114813 )  - Improve generic event typing [rfxtrx] (@cdce8p
- #114733 )  - Avoid linear search to clear a config entry in the device registry (@bdraco
- #114802 )  - Avoid linear search in owntracks to find devices (@bdraco
- #114812 )  - Avoid linear search in geofency to find devices (@bdraco
- #114810 )  - Avoid linear search in gpslogger to find devices (@bdraco
- #114811 )  - Use EventStateChangedData type when firing state changed event (@cdce8p
- #114740 )  - Add “conversation” key to translations (@synesthesiam
- #114887 )  - Validate unique_id in entity registry (@emontnemery
- #114648 )  - Fix Sonos Tests failing intermittently on CI (@PeteRager
- #114873 )  - Address late review comments on homeworks PRs (@emontnemery
- #114867 )  - Migrate more sonos tasks to use eager_start (@bdraco
- #114697 )  - Update import for EventStateChangedData [i-z] (@cdce8p
- #114900 )  - Update import for EventStateChangedData [a-h] (@cdce8p
- #114899 )  - Bump hass-nabucasa from 0.79.0 to 0.80.0 (@ludeeus
- #114818 )  - Always run keyed event trackers immediately (@bdraco
- #114709 )  - Avoid timestamp conversion in core State when equal to last_updated (@bdraco
- #114911 )  - Use is in FlowResultType enum comparison in tests (@epenet
- #114917 )  - Bump Wandalen/wretry.action from 3.0.1 to 3.1.0 (@dependabot - #114916
)  - Update 
personto use_attr_*and thus cached properties (@jpbede- #114590 )  - Use is in ConfigEntryState enum comparison in tests (A-M) (@epenet
- #114925 )  - Bump python-MotionMount to 1.0.0 (@RJPoelstra
- #114945 )  - Include serial number in HomeKit device info (@ashottonoyan
- #114688 )  - Use is in ConfigEntryState enum comparison in tests (N-Z) (@epenet
- #114926 )  - SIngle entry for Fastdotcom (@erwindouna
- #114963 )  - Add new OUI for Axis products (@bengtsir
- #114923 )  - Allow single entry in Downloader (@joostlek
- #114957 )  - Start async_schedule_update_ha_state task eagerly (@bdraco
- #114704 )  - Make config flow imports consistent (@joostlek
- #114962 )  - Add current_humidity to Ecobee humidifier (@bjpetit
- #114753 )  - Run storage final write listener immediately (@bdraco
- #114976 )  - Run device_registry stop listener immediately (@bdraco
- #114978 )  - Avoid useless stat() syscalls for every logger record (@bdraco
- #114987 )  - Make run_immediately the default for core EventBus listeners (@bdraco
- #113752 )  - Migrate torque to use async platform setup (@bdraco
- #114994 )  - Improve performance of system_log traceback handling (@bdraco
- #114992 )  - Switch configurator to use async_run_hass_job (@bdraco
- #114993 )  - Switch to using the AsyncResolver with aiohttp (@bdraco
- #114529 )  - Brand name typo in swiss_public_transport (@lunmay
- #115000 )  - Add Swing Mode Feature to Modbus integration (@crug80
- #113710 )  - Enable Ruff RET504 (@autinerd
- #114528 )  - Bump ring_doorbell to 0.8.10 (@sdb9696
- #114865 )  - Migrate generic_hygrostat to use async_track_state_change_event (@bdraco
- #115001 )  - Migrate proximity to use async_track_state_change_event (@bdraco
- #115002 )  - Move Color extractor service to async_setup (@joostlek
- #115013 )  - Update glances-api to 0.6.0 (@wittypluck
- #114929 )  - Update aioairzone-cloud to v0.5.0 (@Noltari
- #114928 )  - Fix placeholder quotes (@oyvindwe
- #114974 )  - Improve generic event typing [voip] (@cdce8p
- #114738 )  - Improve generic event typing [cloud] (@cdce8p
- #114728 )  - Improve generic event typing [conversation] (@cdce8p
- #114729 )  - Improve generic event typing [device_tracker] (@cdce8p
- #114730 )  - Fix ruff error (@joostlek
- #115023 )  - Improve generic event typing [tasmota] (@cdce8p
- #114737 )  - Improve generic event typing [EventComponentLoaded] (@cdce8p
- #114739 )  - Improve generic event typing [mqtt_statestream] (@cdce8p
- #114732 )  - Improve generic event typing [google_pubsub] (@cdce8p
- #114731 )  - Update typing extensions to 4.11.0 (@cdce8p
- #114985 )  - Refactor Vilfo tests (@joostlek
- #115020 )  - Sort coveragerc again (@joostlek
- #115017 )  - Add adax on/off functionality for local heaters (@larsvinc
- #114557 )  - Deprecate aux heat from Honeywell (@mkmer
- #114110 )  - Correct typo in IMAP translation (@jbouwh
- #115032 )  - Make eager_start default to True for async_create_task (@bdraco
- #114995 )  - Correct changes hassfest coverage backports (@jbouwh
- #115044 )  - Improve generic event typing [recorder] (@cdce8p
- #114736 )  - Make eager_start default to True for async_create_background_task (@bdraco
- #114996 )  - Make eager_start default to True for config entry async_create_background_task (@bdraco
- #115050 )  - Make eager_start default to True for config entry async_create_task (@bdraco
- #115047 )  - Update aioairzone-cloud to v0.5.1 (@Noltari
- #115029 )  - Remove @StevenLooman from dlna_dmr codeowners (@StevenLooman
- #115028 )  - Update Ambient Weather to include Lightning Strike Time and Distance (@strawgate
- #114255 )  - Add reconfigure step for waze_travel_time (@eifinger
- #114885 )  - Add Glances DiskIO read/write sensors (@wittypluck
- #114933 )  - Migrate start helper to use run_immediately (@bdraco
- #115055 )  - Bump aiolifx to 1.0.2 and aiolifx-themes to 0.4.15 (@Djelibeybi
- #115059 )  - Fix sonos switch test failures (@PeteRager
- #115052 )  - Fix flakey cast discovery test (@bdraco
- #115063 )  - Deprecated old backports and typing aliases (@cdce8p
- #114883 )  - Remove prepare override in HomeAssistantQueueHandler (@bdraco
- #115064 )  - Use identity checks for EntityPlatformState enum (@bdraco
- #115067 )  - Improve registry store data typing (@cdce8p
- #115066 )  - Fix flakey tests using the _get_diagnostics_for_config_entry helper (@bdraco
- #115069 )  - Simplify invalidating the User cache (@bdraco
- #115074 )  - Add snapshot tests to Bluemaestro (@joostlek
- #115094 )  - Add more base entities to netatmo (@joostlek
- #107862 )  - Enable entities in Netatmo snapshot test (@joostlek
- #115105 )  - Add GPU sensor to Glances (@fhoekstra
- #106322 )  - Add Water Heater support for Airzone Cloud (@Noltari
- #115097 )  - Add device removal capability for Netatmo (@cgtobi
- #107630 )  - Add an event filter to the alexa state report state change listener (@bdraco
- #115076 )  - Add entity translations to Bluemaestro (@joostlek
- #102424 )  - Add Glances network sensors (@wittypluck
- #114546 )  - Correct duplicate word in IMAP translations (@jbouwh
- #115132 )  - Remove Color extractor import flow (@joostlek
- #115015 )  - Add first batch of Ruff PYI rules (@autinerd
- #115100 )  - Add additional Sonos integration code-owner (@PeteRager
- #115157 )  - Add improved typing for event fire and listen methods (@cdce8p
- #114906 )  - Bump pyoverkiz to 1.13.10 (@iMicknl
- #115154 )  - Fix flakey fritz image test (@bdraco
- #115161 )  - Bump fibaro to 0.7.7 (@rappenze
- #115152 )  - Deprecate async_add_hass_job (@bdraco
- #115061 )  - Add an event_filter to google_assistant state reporting (@bdraco
- #115160 )  - Migrate matrix to use run_immediately for start listener (@bdraco
- #115167 )  - Switch async_track_state_change to use run_immediately (@bdraco
- #115164 )  - Remove remaining run_immediately=False from tests (@bdraco
- #115168 )  - Improve microBees code quality (@FedDam
- #114939 )  - Address late review of TP-Link Omada (@MarkGodwin
- #115121 )  - Refactor BMW entity availability (@rikroe
- #110294 )  - Add reauth to Teslemetry (@Bre77
- #114726 )  - Add IMAP fetch service (@jbouwh
- #115127 )  - Bump github/codeql-action from 3.24.9 to 3.24.10 (@dependabot - #115179
)  - Update build system dependencies (@cdce8p
- #115102 )  - Remove condition from ecobee humidifier attribute test (@jbouwh
- #115197 )  - Fix Downloader test cases and error title (@erwindouna
- #114847 )  - Enable Ruff PGH rules (@autinerd
- #115091 )  - Enable Ruff INP001 (@autinerd
- #115082 )  - Add Arve integration (@ikalnyi
- #113156 )  - Add migration logic to assist_pipeline (@balloob
- #115172 )  - Add sensor for CPU and memory utilization for unifi device (@kimdv
- #114986 )  - Add config message items selector to imap option flow (@luca-angemi
- #115108 )  - Change scan interval for Husqvarna Automower (@Thomas55555
- #115225 )  - Always include old_state in EventStateChangedData [tests] (@cdce8p
- #115098 )  - Use EventType for system events (@cdce8p
- #115190 )  - Use EventType for remaining registry events (@cdce8p
- #115189 )  - Use EventType for device_registry_updated (@cdce8p
- #115188 )  - Migrate rfxtrx to use run_immediately=True for the device registry listener (@bdraco
- #115165 )  - Add 
__slots__to NodeClass classes (@autinerd- #115079 )  - Use EventType for entity_registry_updated (@cdce8p
- #115187 )  - Remove @skgsergio from foscam and qingping codeowners (@skgsergio
- #115210 )  - Enable Ruff PYI036 (@autinerd
- #115228 )  - Enable Ruff PYI041 (@autinerd
- #115229 )  - Add a service to get maps for Roborock (@Lash-L
- #111478 )  - Deprecate calling async_listen and async_listen_once with run_immediately (@bdraco
- #115169 )  - Fix failing escea test in connection with greeneye_monitor (@jpbede
- #115237 )  - Increase discovery flow init concurrency limit to 20 (@bdraco
- #115230 )  - Migrate group to use shorthand attributes for name and icon (@bdraco
- #115244 )  - Improve recorder event typing (@cdce8p
- #115253 )  - Add tests to Home Connect integration (@beastie29a
- #114214 )  - Bump ring_doorbell library to 0.8.11 (@sdb9696
- #115263 )  - Wrap tplink exceptions caused by user actions inside HomeAssistantError (@sdb9696
- #114919 )  - Remove Epson Workforce integration (@joostlek
- #115201 )  - Update and migrate ring non string unique ids (@sdb9696
- #115265 )  - Add additional Vital 100S model to vesync (@pleum
- #113838 )  - Remove pip jemalloc config from dockerfile (@konstin
- #115206 )  - Send/receive Voice Assistant audio via ESPHome native API (@jesserockz
- #114800 )  - Add OpenAI conversation entity (@balloob
- #114942 )  - Remove Twitch YAML import (@joostlek
- #115278 )  - Remove Nextbus YAML import (@joostlek
- #115277 )  - Migrate hyperion to use async_update_reload_and_abort (@bdraco
- #115238 )  - Use shorthand attributes in automation for name (@bdraco
- #115246 )  - Migrate script entities to use more shorthand attrs (@bdraco
- #115245 )  - Optimize _async_track_event for the single key common case (@bdraco
- #115242 )  - Migrate elkm1 to use async_schedule_reload (@bdraco
- #115240 )  - Migrate apple_tv to use async_schedule_reload (@bdraco
- #115241 )  - Improve error reporting when an integration tries to create a task in a thread (@bdraco
- #115307 )  - Bump codecov/codecov-action to v4.3.0 (@jpbede
- #115317 )  - Bump python-roborock to 1.0.0 (@Lash-L
- #115324 )  - Use dict instead of MutableMapping [extra_state_attributes] (@cdce8p
- #115319 )  - Use dict instead of MutableMapping [recorder] (@cdce8p
- #115318 )  - Fix flakiness of test_measure_sliding_window (@cpfair
- #115322 )  - Enable Ruff SLOT rules (@autinerd
- #115043 )  - Add entity translations to Netatmo (@joostlek
- #115104 )  - Enable Ruff RUF013 (@autinerd
- #115333 )  - Update pytest-xdist to 3.5.0 (@cdce8p
- #111266 )  - Add documentation link for custom integrations in diagnostics (@ludeeus
- #115336 )  - Stop scripts with eager tasks (@bdraco
- #115340 )  - Add missing oauth2 error strings to myuplink (@astrandb
- #115315 )  - Fix type on known_object_ids in _entity_id_available and async_generate_entity_id (@bdraco
- #115378 )  - Fix zha test by tweaking the log level (@jbouwh
- #115368 )  - Fix flakey tessie media_player test (@bdraco
- #115391 )  - Fix duplicate automation entity state writes (@bdraco
- #115386 )  - Avoid calling valid_entity_id when adding entities if they are already registered (@bdraco
- #115388 )  - Adjust importlib helper to avoid leaking memory on re-raise (@bdraco
- #115377 )  - Add PYTHONASYNCIODEBUG to the dev container env (@bdraco
- #115392 )  - Add binary sensor to Netatmo (@joostlek
- #115119 )  - Use freezer on diagnostics test (@jbouwh
- #115398 )  - Add strict typing to ring integration (@sdb9696
- #115276 )  - Make ring device generic in RingEntity (@sdb9696
- #115406 )  - Add notify entity component (@jbouwh
- #110950 )  - Reduce scope of diagnostics tests for rtsp_to_webrtc to not depend on global state (@allenporter
- #115422 )  - Fix Codecov upload with token (@TheJulianJES
- #115384 )  - Convert async_setup calls for auth sub-modules to callback functions (@bdraco
- #115443 )  - Update pytest warnings filter (@cdce8p
- #115275 )  - Use library classes instead of namedtuple in ipma tests (@autinerd
- #115372 )  - Fix flakey mobile app webhook test (@bdraco
- #115447 )  - Bump python-roborock to 2.0.0 (@Lash-L
- #115449 )  - Fix flakey influxdb test (@bdraco
- #115442 )  - Add py.typed file (@cdce8p
- #115446 )  - Improve FlowHandler menu_options typing (@cdce8p
- #115296 )  - Bypass ConfigEntry setattr in init (@bdraco
- #115405 )  - Avoid falling back to event loop import on ModuleNotFound (@bdraco
- #115404 )  - Use enum device class in Netatmo wind direction (@joostlek
- #115413 )  - Use enum device class in Netatmo health index sensor (@joostlek
- #115409 )  - Enable Ruff FLY002 rule (@autinerd
- #115112 )  - Switch imap push coordinator to use eager_start (@bdraco
- #115454 )  - Add service schema tests for notify entity platform (@jbouwh
- #115457 )  - Fix ci Python cache key (@cdce8p
- #115467 )  - Add strict connection (@edenhaus
- #112387 )  - Bump ruff to 0.3.7 (@autinerd
- #115451 )  - Ignore coverage for aiohttp_resolver backport helper (@epenet
- #115177 )  - Add diagnostics to Teslemetry (@Bre77
- #115195 )  - Allow customizing display name for energy device (@karwosts
- #112834 )  - Add re-auth-flow to fyta integration (@dontinelli
- #114972 )  - Update strict connection static page (@bramkragten
- #115473 )  - Set Ruff RUF001-003 to ignore (@autinerd
- #115477 )  - Remove eager_start=False from zeroconf (@bdraco
- #115498 )  - Move out demo notify tests to the notify platform (@jbouwh
- #115504 )  - Fix race in influxdb test (@bdraco
- #115514 )  - Ignore Ruff RUF015 (@autinerd
- #115481 )  - Enable Ruff RUF018 (@autinerd
- #115485 )  - Isolate legacy notify tests (@jbouwh
- #115470 )  - Add Balboa spa temperature range state control (high/low) (@kotope
- #115285 )  - Revert mypy_config formatting (@cdce8p
- #115518 )  - Make legacy notify group tests independent of demo platform (@jbouwh
- #115494 )  - Make color extractor single config entry (@joostlek
- #115016 )  - Migrate demo notify platform (@jbouwh
- #115448 )  - Set up notify group with the notify services in test (@jbouwh
- #115526 )  - Remove unused CI code (@edenhaus
- #115300 )  - Bump py-synologydsm-api to 2.4.2 (@bdraco
- #115499 )  - Avoid removing websocket_api subscription in mobile_app teardown (@bdraco
- #115540 )  - Hold the reload lock while attempting config entry setup retry (@bdraco
- #115538 )  - Migrate homekit ffmpeg task to use eager_start (@bdraco
- #115543 )  - Migrate EntityRegistryDisabledHandler to use async_schedule_reload (@bdraco
- #115544 )  - Fix unmocked remote socket calls in sunweg tests (@bdraco
- #115546 )  - Add forecast subscription failure test case to nws (@bdraco
- #115541 )  - Update ollama config_flow task to use eager_start (@bdraco
- #115455 )  - Enable eager_start for weather platform update (@bdraco
- #115496 )  - Ensure test async_create_task eager start behavior matches production (@bdraco
- #115517 )  - Complete ESPHome media_player coverage (@bdraco
- #114352 )  - Add additional cached_property to camera entities (@bdraco
- #115075 )  - Fix advantage_air disabled entity tests (@bdraco
- #115548 )  - Add exception translations to Bring integration (@tr4nt0r
- #115547 )  - Only calculate native_value once in mobile_app (@bdraco
- #115550 )  - Avoid double dict conversion in bluetooth serialize_entity_description (@bdraco
- #115551 )  - Migrate config entry reauth to use eager_start (@bdraco
- #115549 )  - Remove sleep in async_setup_component (@bdraco
- #115515 )  - Remove attr usage in event helper (@bdraco
- #115554 )  - Refactor _async_setup_component to remove need for C901 (@bdraco
- #115553 )  - Migrate rfxtrx to use async_track_state_change_event (@bdraco
- #115556 )  - Fix missing Home in listener deprecation message (@bdraco
- #115559 )  - Enable Ruff B905 (@autinerd
- #114197 )  - Unignore Ruff E731 (@autinerd
- #115564 )  - Unignore Ruff UP006, UP007 (@autinerd
- #115533 )  - Remove unused legacy state translations (@bdraco
- #112023 )  - Bump aioshelly to 9.0.0 (@thecode
- #114025 )  - For new installs make enphase_envoy phase entities default disabled (@catsmanac
- #115577 )  - Replace lambda by attrgetter in enphase_envoy platform value_fn (@catsmanac
- #115569 )  - Small cleanups to script (@bdraco
- #115565 )  - Only calculate the tplink emeter values once per update cycle (@bdraco
- #115587 )  - Move Alexa entity id generation into abstract config class (@mback2k
- #115593 )  - Set follow_imports to normal [mypy] (@cdce8p
- #115521 )  - Bump soco to 0.30.3 (@PeteRager
- #115607 )  - Bump emulated-roku to 0.3.0 to fix Sofabaton Support (@shawnweeks
- #115452 )  - Fix flaky zwave update entity delay test (@bdraco
- #115552 )  - Small cleanups to the rate limit helper (@bdraco
- #115621 )  - Set platform for mypy (@cdce8p
- #115638 )  - Bump vacuum-map-parser-roborock to 0.1.2 (@Lash-L
- #115579 )  - Avoid update calls in state writes when attributes are empty (@bdraco
- #115624 )  - Migrate websocket_api sensor to use shorthand attrs (@bdraco
- #115620 )  - Make aiohttp_cors a top level import (@bdraco
- #115563 )  - Update switchbot_api to 2.1.0 (@miterion
- #115529 )  - Create base class for Rachio smart hose timer entities (@brg468
- #115475 )  - Enable Ruff B017 (@autinerd
- #115335 )  - Remove pihole codeowner (@johnluetke
- #110384 )  - Remove cloud dependency from 
islamic-prayer-times(@cpfair- #115146 )  - Small speed up to async_prepare_setup_platform (@bdraco
- #115662 )  - Add dataclass to store AdGuard data (@cdce8p
- #115668 )  - Fix typo in modbus integration strings.json (@theminer3746
- #115685 )  - Move Insteon configuration panel to config entry (@teharris1
- #105581 )  - New BMW sensor for climate activity (@brave0d
- #110287 )  - Add Config Flow to LG Netcast (@splinter98
- #104913 )  - Add a new “Ambient Weather Network” integration (@thomaskistler
- #105779 )  - Fix ambient network test linting (@MartinHjelmare
- #115691 )  - Remove Adafruit-BBIO from commented requirements (@MartinHjelmare
- #115689 )  - Bump github/codeql-action from 3.24.10 to 3.25.0 (@dependabot - #115686
)  - Don’t reload other automations when saving an automation (@emontnemery
- #80254 )  - Add extract media url service to media extractor (@joostlek
- #100780 )  - Add select hold to AppleTVs remote entity as possible command (@myMartek
- #105764 )  - Correct spelling of “Wi-Fi” in devolo_home_network (@Shutgun
- #106167 )  - Add Sound Mode selection in soundpal components (@BestPig
- #106589 )  - Unsupported if wrong image used on virtualization (@mdegat01
- #113882 )  - Fix check for missing parts on incoming SMS (@Mallonbacka
- #105068 )  - Correct unit for total usage in rfxtrx (@elupus
- #115719 )  - Use separate data coordinators for AccuWeather observation and forecast (@bieniu
- #115628 )  - Bump habluetooth to 2.5.2 (@bdraco
- #115721 )  - Bump aioesphomeapi to 24.1.0 (@jesserockz
- #115729 )  - Fix stale comment in wheels.yml (@emontnemery
- #115736 )  - Multiple data disks detected: tweak strings (@c0ffeeca7
- #115713 )  - Bump orjson to 3.10.1 (@bdraco
- #115728 )  - Remove stale packages from uncommenting when building wheels (@emontnemery
- #115700 )  - Correct normalize_package_name (@emontnemery
- #115750 )  - Remove useless any in gen_requirements_all.comment_requirement (@emontnemery
- #115751 )  - Fix hassfest requirements check (@emontnemery
- #115744 )  - Keep track of top level components (@bdraco
- #115586 )  - Improve standard library violation check in hassfest (@emontnemery
- #115752 )  - Add Sanix integration (@tomaszsluszniak
- #106785 )  - Fix flaky qld_bushfire test (@emontnemery
- #115757 )  - Add config flow to enigma2 (@autinerd
- #106348 )  - Avoid linear search to remove labels and floors from area registry (@bdraco
- #115675 )  - Avoid linear search to clear labels and areas in the device registry (@bdraco
- #115676 )  - Avoid linear search to remove a label from the entity registry (@bdraco
- #115674 )  - Reduce duplicate code in the device registry (@bdraco
- #115677 )  - Add repairs to hassio manifest (@mdegat01
- #115486 )  - Remove obsolete translation keys in Sanix (@joostlek
- #115764 )  - Include hash of requirements.txt in venv cache key (@emontnemery
- #115759 )  - Bump habluetooth to 2.6.0 (@bdraco
- #115724 )  - Simplify config_entries entity registry filter (@bdraco
- #115678 )  - Add secondary temperature sensor for DHW in ViCare (@CFenner
- #106612 )  - Allow selecting Air Quality mode for Airzone Cloud (@Noltari
- #106769 )  - Use aiohttp-zlib-ng[isal] (@emontnemery
- #115767 )  - Fix unrecoverable error when fetching airthings_ble data (@LaStrada
- #115699 )  - Cleanup modbus test mocks (@janiversen
- #115412 )  - Guard negative values for IPP states (@isXander
- #107446 )  - Replace aiohttp-zlib-ng[isal] with aiohttp-isal (@bdraco
- #115777 )  - Add mqtt notify platform (@jbouwh
- #115653 )  - Address late reviews for the enigma2 config flow (@autinerd
- #115768 )  - Add sanix sensor tests (@joostlek
- #115763 )  - Bump google-nest-sdm to 3.0.4 (@allenporter
- #115731 )  - Simplify labels and areas template calls (@bdraco
- #115673 )  - Bump Broadlink to 0.19.0 (@felipediel
- #115742 )  - Migrate snooze config flow to use eager_start (@bdraco
- #115658 )  - Bump habluetooth to 2.7.0 (@bdraco
- #115783 )  - Bump bluetooth-auto-recovery to 1.4.1 (@bdraco
- #115792 )  - Add valve entity support for ESPHome (@kbx81
- #115341 )  - Fix failing sanix tests (@bdraco
- #115793 )  - Bump github/codeql-action from 3.25.0 to 3.25.1 (@dependabot - #115796
)  - Bump connect-box to 0.3.1 (@krzysztof-kwitt
- #107852 )  - Ambient Weather: Check for key existence before checking value (@strawgate
- #115776 )  - Add script to compare alexa locales with upstream (@MartinHjelmare
- #114247 )  - Handle connection error in honeywell (@mkmer
- #108168 )  - Add state class to mobile_app restore entity (@luca-angemi
- #115798 )  - Add diagnostics platform to DSMR Reader (@erwindouna
- #115805 )  - Translate service validation errors (@jbouwh
- #115024 )  - Clarify cover toggle logic; prevent opening when already open (@vexofp
- #107920 )  - Add support for payload_template in rest component (@ptashek
- #107464 )  - Add hvac_action attribute to iAqualink Thermostat climate entities (@mwielgoszewski
- #107803 )  - Bump arris-tg2492lg to 2.2.0 (@vanbalken
- #107905 )  - Bump habluetooth to 2.8.0 (@bdraco
- #115789 )  - Add bluetooth adapter model and manufacturer to config flow (@bdraco
- #115780 )  - Add reauth support to oncue (@bdraco
- #115667 )  - Skip processing websocket_api schema if it has no arguments (@bdraco
- #115618 )  - Small cleanups to translation loading (@bdraco
- #115583 )  - Migrate device_sun_light_trigger to use async_track_state_change_event (@bdraco
- #115555 )  - Deprecate async_track_state_change in favor of async_track_state_change_event (@bdraco
- #115558 )  - Add battery binary sensor to Rachio hose timer (@brg468
- #115810 )  - Add zhimi.fan.za3 to xiaomi_miio workaround unable to discover device (@orevron
- #108310 )  - Add support for room sensor accessories assigned to a Honeywell (Lyric) Thermostat (@dalinicus
- #104343 )  - Handle Bluetooth adapters in a crashed state (@bdraco
- #115790 )  - Bump yolink-api to 0.4.3 (@matrixd2
- #115794 )  - Bump 
accuweatherto version 3.0.0 (@bieniu- #115820 )  - Add get_torrents service to qBittorrent integration (@finder39
- #106501 )  - Show default profiles in homematic cloud climate entity (@hahn-th
- #107348 )  - Bump aiodiscover to 2.1.0 (@bdraco
- #115823 )  - Bump actions/upload-artifact from 4.3.1 to 4.3.2 (@dependabot - #115842
)  - Bump actions/download-artifact from 4.1.4 to 4.1.5 (@dependabot - #115841
)  - Add group tests with mixed domain entities (@jbouwh
- #115849 )  - Bump 
giosto version 4.0.0 (@bieniu- #115822 )  - Add reauth flow to Google Tasks (@joostlek
- #109517 )  - Fix mutable objects in group registry class (@jbouwh
- #115797 )  - Bump 
nextdnsto version 3.0.0 (@bieniu- #115854 )  - Bump 
nettigo_air_monitorto version 3.0.0 (@bieniu- #115853 )  - Bump bluetooth-adapters to 0.19.0 (@bdraco
- #115864 )  - Automatic cleanup of entity and device registry in AVM FRITZ!SmartHome (@mib1185
- #114601 )  - Use snapshot testing in NextDNS (@bieniu
- #115879 )  - Use snapshot testing in GIOS sensor (@bieniu
- #115876 )  - Use snapshot testing in Brother sensor (@bieniu
- #115875 )  - Use snapshot testing in NAM sensor and diagnostics (@bieniu
- #115877 )  - Bump pylitterbot to 2023.5.0 (@natekspencer
- #115856 )  - Add test helper to snapshot a platform (@joostlek
- #115880 )  - Use snapshot test helper in Brother (@joostlek
- #115885 )  - Use snapshot test helper in Accuweather (@joostlek
- #115884 )  - Use snapshot test helper in GIOS (@bieniu
- #115893 )  - Use snapshot test helper in NAM (@bieniu
- #115894 )  - Use snapshot test helper in NextDNS (@bieniu
- #115895 )  - Fix Wolf Smart Set Authentication and Session Management (@mtielen
- #115815 )  - Use snapshot test helper in AO Smith (@joostlek
- #115890 )  - Make release channel a hardcoded enum rather than a free form string (@albertomontesg
- #115595 )  - Use snapshot test helper in Analytics insights (@joostlek
- #115889 )  - Use snapshot test helper in Ambient Network (@joostlek
- #115887 )  - Bump ruff to 0.4.1 (@autinerd
- #115873 )  - Add tls support for AVM Fritz!Tools (@r-binder
- #112714 )  - Fix flaky history stats test (@bdraco
- #115824 )  - Fix Roborock status not correctly mapping for some devices (@Lash-L
- #115646 )  - Improve debug logging for evohome (@zxdavb
- #110256 )  - Add test for prometheus export of entities becoming unavailable and available again (@agoode
- #112157 )  - Improve service validation exception test and translation key (@jbouwh
- #115843 )  - Allow manual delete of stale Unifi device from UI (@wittypluck
- #115267 )  - Refactor Totalconnect binary sensor (@joostlek
- #115629 )  - Remove sensor exposing UniFi WLAN password (@Kane610
- #115929 )  - Bump total_connect_client to 2023.12.1 (@austinmroczek
- #115928 )  - Add error translations to Blink (@mkmer
- #115924 )  - Make use of snapshot testing in Synology DSM (@mib1185
- #115931 )  - Convert MQTT to use asyncio (@bdraco
- #115910 )  - Temporarily pickup mqtt codeowner (@bdraco
- #115934 )  - Enable Ruff A001 (@autinerd
- #115654 )  - Introduce base entity for totalconnect (@joostlek
- #115936 )  - Add optional location based region to dwd_weather_warnings (@andarotajo
- #96027 )  - Add type hints in fibaro device (@rappenze
- #106874 )  - Refactor fibaro connect (@rappenze
- #106875 )  - Bump actions/checkout from 4.1.2 to 4.1.3 (@dependabot - #115945
)  - Add Epic Games Store integration (@Quentame
- #104725 )  - Bump aioesphomeapi to 24.2.0 (@jesserockz
- #115943 )  - Introduce base location entity for totalconnect (@joostlek
- #115938 )  - Move NextDNS data update coordinators to the coordinator module (@bieniu
- #115919 )  - Update ovoenergy to 2.0.0 (@timmo001
- #115921 )  - Add snapshot tests to Totalconnect (@joostlek
- #115952 )  - ESPHome: Add datetime entities (@jesserockz
- #115942 )  - Address late review for AVM Fritz!Smarthome (@mib1185
- #115960 )  - Reduce ecobee throttle (@marcolivierarsenault
- #115968 )  - Improve reliability of homeassistant_alerts updates (@bdraco
- #115974 )  - Small fixes for processing integration requirements (@bdraco
- #115973 )  - Remove YAML support from Hydrawise (@dknowles2
- #115966 )  - Generate requirements per supported architecture (@emontnemery
- #115708 )  - Revert “Reduce ecobee throttle (#115968)” (@marcolivierarsenault
- #115981 )  - Migrate MQTT EnsureJobAfterCooldown to use eager start (@bdraco
- #115977 )  - Make recorder.purge_entities require at least one entity filter value (@karwosts
- #110066 )  - Bump holidays to 0.47 (@gjohansson-ST
- #115992 )  - Add bandwidth sensor for unifi device ports (@kimdv
- #115362 )  - Bump aiounifi to v76 (@Kane610
- #116005 )  - Bump uv to 0.1.35 (@edenhaus
- #115985 )  - Add config flow to Folder Watcher (@gjohansson-ST
- #105605 )  - Update Hydrawise from the legacy API to the new GraphQL API (@thomaskistler
- #106904 )  - Add coordinator to 17Track (@shaiu
- #115057 )  - Bump actions/download-artifact from 4.1.4 to 4.1.6 (@dependabot - #116017
)  - Bump actions/upload-artifact from 4.3.1 to 4.3.3 (@dependabot - #116015
)  - Use generator expression in totalconnect (@joostlek
- #116020 )  - Improve Vodafone Station empty/unavailable phone number detection (@myhomeiot
- #115696 )  - Don’t raise errors when using datetime objects in 
as_datetimeJinja function/filter (@TheFes- #109062 )  - Deprecate modbus:restart service (@janiversen
- #115754 )  - Add uv version to wheels cache key [ci] (@cdce8p
- #116021 )  - Bump aioesphomeapi to 24.3.0 (@jesserockz
- #116004 )  - Add event platform to Lutron (@joostlek
- #109121 )  - Bump deebot-client to 7.0.0 (@edenhaus
- #116025 )  - Add number platform to Husqvarna Automower (@Thomas55555
- #115125 )  - Add additional zeroconf discovery coverage and logging to enphase_envoy (@catsmanac
- #114405 )  - Use location name on self hosted Ecovacs config entries (@edenhaus
- #115294 )  - Fix invalid tuple annotations (@cdce8p
- #116035 )  - Expose dynamic range status in Onkyo media player (@Spacetech
- #109099 )  - Velbus Cover: Assume state for VMBxBL modules (@Cereal2nd
- #109213 )  - Augment SyntaxError raised during dependency collection with offending filename (@VolkerStolz
- #109204 )  - Remove unnecessary type ignores (@cdce8p
- #116036 )  - Improve energy typing (@cdce8p
- #116034 )  - Use snapshot test helper in Husqvarna Automower (@Thomas55555
- #116039 )  - Bump python-fritzhome to 0.6.11 (@mib1185
- #115904 )  - Remove platform schema from Hydrawise (@dknowles2
- #116032 )  - Include libgammu-dev in devcontainer (@emontnemery
- #115983 )  - Add fan preset translations and icons to BAF (@mill1000
- #109944 )  - Allow plain text messages in telegram_bot (@malkstar
- #110051 )  - Bump mozart-api to 3.4.1.8.5 (@mj23000
- #113745 )  - Update pipdeptree to 2.17.0 (@frenck
- #116049 )  - Update coverage to 7.5.0 (@frenck
- #116048 )  - Pass the job type when setting up homekit state change listeners (@bdraco
- #116038 )  - Update requests_mock to 1.12.1 (@frenck
- #116050 )  - Breakout heartbeat monitor and poe command queue in UniFi (@Kane610
- #112529 )  - Add missing adapter data to Bluetooth config entry titles (@bdraco
- #115930 )  - Add entity translations to totalconnect (@joostlek
- #115950 )  - Deprecate Unify Circuit integration (@jbouwh
- #115528 )  - Convert solaredge to asyncio with aiosolaredge (@bdraco
- #115599 )  - Add Retry for C4 API due to flakiness (@nalin29
- #113857 )  - Add API scope checks to Teslemetry (@Bre77
- #113640 )  - Bump plugwise to v0.37.2 (@bouwew
- #115989 )  - Bump aioautomower to 2024.4.3 (@Thomas55555
- #114500 )  - Only work out job type once when setting up dispatcher (@bdraco
- #116030 )  - Fix ruff complaints in control4 (@bdraco
- #116058 )  - Add re-auth flow for MQTT broker username and password (@jbouwh
- #116011 )  - Rename bus._async_fire to bus.async_fire_internal (@bdraco
- #116027 )  - Add entity translations to 17track (@joostlek
- #116022 )  - Fix husqvarna_automower typing (@bdraco
- #116060 )  - Migrate legacy Ecobee notify service (@jbouwh
- #115592 )  - Update quality scale mqtt integration to platinum (@jbouwh
- #116059 )  - Complete test coverage for Tankerkonig (@mib1185
- #115920 )  - Bump github/codeql-action from 3.25.1 to 3.25.2 (@dependabot - #116016
)  - Fix non-thread-safe operations in media_extractor (@bdraco
- #116065 )  - Add Event support to ESPHome components (@nohat
- #116061 )  - Fix non-thread-safe operation in harmony (@bdraco
- #116070 )  - Fix non-thread-safe operations in wake_on_lan (@bdraco
- #116069 )  - Fix non-thread-safe operations in html5 (@bdraco
- #116068 )  - Add debug mode to catch unsafe thread operations using core helpers (@bdraco
- #115390 )  - Always do thread safety checks when calling async_fire (@bdraco
- #116055 )  - Enable Ruff RUF019 (@autinerd
- #115396 )  - Migrate KNX notify service to entity platform (@farmio
- #115665 )  - Add reconfigure flow to AVM Fritz!Tools (@mib1185
- #116057 )  - Add OSO Energy sensors (@osohotwateriot
- #108226 )  - Use display_precision if suggested_display_precision is None (@rikroe
- #110270 )  - Bump deebot-client to 7.1.0 (@edenhaus
- #116082 )  - Small speed up to async_track_event (@bdraco
- #116083 )  - Add strict connection for cloud (@edenhaus
- #115814 )  - Bump plugwise to v0.37.3 (@bouwew
- #116081 )  - Always do thread safety checks when writing state for custom components (@bdraco
- #116044 )  - Ecobee preset mode icon translations (@gagebenne
- #116072 )  - Bump zha-quirks to 0.0.115 (@TheJulianJES
- #116071 )  - Fix iotawatt warnings about “Detected new cycle for sensor.{sensorname}_wh_last” (@lyricnz
- #115909 )  - Rename strict connection static page to guard page (@edenhaus
- #116085 )  - Fix accuweather system_health after data change (@cdce8p
- #116063 )  - Move thread safety check in async_register/async_remove (@bdraco
- #116077 )  - Deprecate relative_time() in favor of time_since() and time_until() (@rlippmann
- #111177 )  - Migrate discovery debouncer callback to async_fire_internal (@bdraco
- #116078 )  - Temporary CI workaround for broken microsoft ubuntu repo (@bdraco
- #116091 )  - Remove duplicate async_write_ha_state thread safety check (@bdraco
- #116086 )  - Enable debug mode if asyncio debug is on at startup (@bdraco
- #116084 )  - Add reconfigure flow to AVM Fritz!SmartHome (@mib1185
- #116047 )  - Remove microsoft apt package list before update (@cdce8p
- #116097 )  - Mark Tankerkoenig as Platinum 🏆 integration (@mib1185
- #115917 )  - Extend options for ecovacs lifespans (@Augar
- #116094 )  - Mask current password in MQTT option flow (@jbouwh
- #116098 )  - Deprecate speed limit lock in Tessie (@Bre77
- #113848 )  - Fix Sonos music library play problems (@PeteRager
- #113429 )  - Add service to 17track to get packages (@shaiu
- #116067 )  - Return specific group state if there is one (@jbouwh
- #115866 )  - Always reload after a successful reauth flow (@jbouwh
- #116026 )  - Update frontend to 20240424.1 (@bramkragten
- #116103 )  - Update goodwe library to 0.3.2 (@mletenay
- #115309 )  - Add binary sensor platform to romy integration (@xeniter
- #112998 )  - Refactor ESPHome manager to avoid sending signals in tests (@bdraco
- #116033 )  - Add nfandroidtv type checking and allow for strings to be passed to the image and icon data (@miawgogo
- #108652 )  - Cancel timer on enphase_envoy config entry unload (@catsmanac
- #111406 )  - Fix removing suggested_display_precision from entity registry (@pnbruckner
- #110671 )  - Reduce duplicate code in enphase_envoy (@bdraco
- #116107 )  - Expose the SkyConnect integration with a firmware config/options flow (@puddly
- #115363 )  - Add sensor platform to romy integration (@xeniter
- #112388 )  - Add binary sensor entities to Traccar Server (@ludeeus
- #114719 )  - Bump ZHA dependencies (@TheJulianJES
- #116106 )  - Add quality scale to Comelit (@chemelli74
- #116041 )  - Add quality scale to Vodafone Station (@chemelli74
- #116040 )  - Add select platform to jvc_projector component (@SteveEasley
- #111638 )  - Bump intents to 2024.4.24 (@synesthesiam
- #116111 )  - Add notification service for Bring component (@tr4nt0r
- #109222 )  - Fix statistic bug in Tibber sensor (@Danielhiversen
- #116112 )  - Bump aiopegelonline to 0.0.10 (@mib1185
- #116114 )  - Split out event handling from Axis hub (@Kane610
- #113837 )  - Fix climate entity creation when Shelly WallDisplay uses external relay as actuator (@bieniu
- #115216 )  - Don’t create event entries for lighting4 rfxtrx devices (@elupus
- #115716 )  - Update rfxtrx to 0.31.1 (@elupus
- #116125 )  - Bump pyfibaro to 0.7.8 (@rappenze
- #116126 )  - Avoid blocking the event loop when unloading Monoprice (@OnFreund
- #116141 )  - Remove deprecation warnings for relative_time (@emontnemery
- #116144 )  - Fix lying docstring for relative_time template function (@emontnemery
- #116146 )  - Handle invalid device type in onewire (@epenet
- #116153 )  - Fix language in strict connection guard page (@emontnemery
- #116154 )  - Update unlocked icon for locks (@piitaya
- #116157 )  - Remove early return when validating entity registry items (@emontnemery
- #116160 )  - Revert orjson to 3.9.15 due to segmentation faults (@bdraco
- #116168 )  - Update Ollama model names list (@synesthesiam
- #116172 )  - Revert “Return specific group state if there is one” (@jbouwh
- #116176 )  - Bump govee-ble to 0.31.2 (@bdraco
- #116177 )  - Bump pyrisco to 0.6.1 (@OnFreund
- #116182 )  - Make Roborock listener update thread safe (@Lash-L
- #116184 )  - Fix smartthings doing I/O in the event loop to import platforms (@bdraco
- #116190 )  - Fix flaky traccar_server tests (@emontnemery
- #116191 )  - Bump bluetooth-auto-recovery to 1.4.2 (@bdraco
- #116192 )  - Reduce scope of bootstrap test fixture to module (@emontnemery
- #116195 )  - Breakfix to handle null value in Teslemetry (@Bre77
- #116206 )  - Restore default timezone after electric_kiwi sensor tests (@emontnemery
- #116217 )  - Use None as default value for strict connection cloud store (@edenhaus
- #116219 )  - Fix state classes for ovo energy sensors (@timmo001
- #116225 )  - Update frontend to 20240426.0 (@piitaya
- #116230 )  - Move thread safety check in entity_registry sooner (@bdraco
- #116263 )  - Move thread safety check in device_registry sooner (@bdraco
- #116264 )  - Move thread safety check in area_registry sooner (@bdraco
- #116265 )  - Bump zwave-js-server-python to 0.55.4 (@raman325
- #116278 )  - Improve error handling for HTTP errors on Growatt Server (@marcovtwout
- #110633 )  - Add matter during onboarding (@MartinHjelmare
- #116163 )  - Fix script in restart mode that is fired from the same trigger (@bdraco
- #116247 )  - Fix Aseko binary sensors names (@hopkins-tk
- #116251 )  - Fix no will published when mqtt is down (@jbouwh
- #116319 )  - Make discovery flow tasks background tasks (@bdraco
- #116327 )  - Prevent setup retry from delaying shutdown (@bdraco
- #116328 )  - Fix august delaying shutdown (@bdraco
- #116329 )  - Fix unifiprotect delaying shutdown if websocket if offline (@bdraco
- #116331 )  - Fix wemo push updates delaying shutdown (@bdraco
- #116333 )  - Fix bluetooth adapter discovery delaying startup and shutdown (@bdraco
- #116335 )  - Fix sonos events delaying shutdown (@bdraco
- #116337 )  - Add thread safety checks to async_create_task (@bdraco
- #116339 )  - Fix homeassistant_alerts delaying shutdown (@bdraco
- #116340 )  - Fix Netatmo indoor sensor (@joostlek
- #116342 )  - Fix some flapping sonos tests (@bdraco
- #116343 )  - Fix bond update delaying shutdown when push updated are not available (@bdraco
- #116344 )  - Fix shelly delaying shutdown (@bdraco
- #116346 )  - Fix another case of homeassistant_alerts delaying shutdown (@bdraco
- #116352 )  - Prevent Shelly raising in a task (@thecode
- #116355 )  - Fix usb scan delaying shutdown (@bdraco
- #116390 )  - Bump fyta_cli to 0.4.1 (@dontinelli
- #115918 )  - Store access token in entry for Fyta (@dontinelli
- #116260 )  - Deprecate YAML configuration of Habitica (@tr4nt0r
- #116374 )  - Fix jvcprojector command timeout with some projectors (@SteveEasley
- #116392 )  - Remove strict connection (@edenhaus
- #116396 )  - Update frontend to 20240429.0 (@bramkragten
- #116404 )  - Set Synology camera device name as entity name (@joostlek
- #109123 )  - Fix stale prayer times from 
islamic-prayer-times(@cpfair- #115683 )  - Bump smart_meter_texas to 0.5.5 (@grahamwetzler
- #116321 )  - Remove semicolon in Modbus (@joostlek
- #116399 )  - Fix error handling in Shell Command integration (@mib1185
- #116409 )  - Fix zoneminder async (@joostlek
- #116436 )  - Add user id to coordinator name in Withings (@joostlek
- #116440 )  - Some fixes for the Matter light discovery schema (@marcelveldt
- #116108 )  - Bump bimmer_connected to 0.15.2 (@rikroe
- #116424 )  - Fix zoneminder async v2 (@joostlek
- #116451 )  - Bump bluetooth-adapters to 0.19.1 (@bdraco
- #116465 )  - Ensure MQTT resubscribes happen before birth message (@bdraco
- #116471 )  - Fix local_todo blocking the event loop (@bdraco
- #116473 )  - Change SkyConnect integration type back to 
hardwareand fix multi-PAN migration bug (@puddly- #116474 )  - Fix non-thread-safe operation in roon volume callback (@bdraco
- #116475 )  - Add test MQTT subscription is completed when birth message is sent (@jbouwh
- #116476 )  - Update frontend to 20240430.0 (@bramkragten
- #116481 )  - Hold a lock to prevent concurrent setup of config entries (@bdraco
- #116482 )  - Fix roborock image crashes (@Lash-L
- #116487 )  - Bump opower to 0.4.4 (@max2697
- #116489 )  - Update frontend to 20240501.0 (@bramkragten
- #116503 )  - Bump ZHA dependencies (@puddly
- #116509 )  - Fix non-thread-safe operations in ihc (@bdraco
- #116513 )  - Bump python matter server library to 5.10.0 (@marcelveldt
- #116514 )  - Fix blocking I/O to import modules in mysensors (@bdraco
- #116516 )  - Improve scrape strings (@joostlek
- #116519 )  - Add blocklist for known Matter devices with faulty transitions (@marcelveldt
- #116524 )  - Fix stop event cleanup when reloading MQTT (@bdraco
- #116525 )  
Release 2024.5.1 - May 3
- Fix nws forecast coordinators and remove legacy forecast handling (@MatthewFlamm
- #115857 )  - Bump opentherm_gw to 2.2.0 (@GraceGRD
- #116527 )  - Add a lock to homekit_controller platform loads (@bdraco
- #116539 )  - Fix MQTT discovery cooldown too short with large setup (@jbouwh
- #116550 )  - Bump upb_lib to 0.5.6 (@gwww
- #116558 )  - Bump elkm1_lib to 2.2.7 (@gwww
- #116564 )  - Fix Matter startup when Matter bridge is present (@marcelveldt
- #116569 )  - Bump sanix to 1.0.6 (@tomaszsluszniak
- #116570 )  - Fix Airthings BLE model names (@LaStrada
- #116579 )  - Improve coordinator in Ondilo ico (@joostlek
- #116596 )  - Fix inheritance order for KNX notify (@farmio
- #116600 )  - Bump Airthings BLE to 0.8.0 (@LaStrada
- #116616 )  - Bump pywaze to 1.0.1 (@eifinger
- #116621 )  - Add constraint for tuf (@cdce8p
- #116627 )  - Bump aiounifi to v77 (@Kane610
- #116639 )  - Bump govee-light-local library and fix wrong information for Govee lights (@Galorhallen
- #116651 )  - Bump ZHA dependency bellows to 0.38.4 (@puddly
- #116660 )  - Bump habluetooth to 2.8.1 (@bdraco
- #116661 )  - Bump env_canada lib to 0.6.2 (@gwww
- #116662 )  - Block dreame_vacuum versions older than 1.0.4 (@bdraco
- #116673 )  - Fix fyta test timezone handling (@cdce8p
- #116689 )  - Fix BroadlinkRemote._learn_command() (@felipediel
- #116692 )  
Release 2024.5.2 - May 6
- Add workaround for data entry flow show progress (@emontnemery
- #116704 )  - Improve logging of _TrackPointUTCTime objects (@bdraco
- #116711 )  - Bump aiohttp-isal to 0.3.1 (@bdraco
- #116720 )  - Fix Bosch-SHC switch state (@joostlek
- #116721 )  - Remove suggested UoM from Opower (@joostlek
- #116728 )  - Refactor statistics to avoid creating tasks (@bdraco
- #116743 )  - Bump bluetooth-adapters to 0.19.2 (@bdraco
- #116785 )  - fix UnboundLocalError on modified_statistic_ids in compile_statistics (@pdecat
- #116795 )  - Ensure all synology_dsm coordinators handle expired sessions (@bdraco
- #116796 )  - Fix IMAP config entry setup (@jbouwh
- #116797 )  - Fix airthings-ble data drop outs when Bluetooth connection is flakey (@bdraco
- #116805 )  - Hide conversation agents that are exposed as agent entities (@balloob
- #116813 )  - Fix non-thread-safe state write in lutron event (@bdraco
- #116829 )  - Increase default timeout to 30 seconds in Synology DSM (@mib1185
- #116836 )  - Avoid duplicate data fetch during Synologs DSM setup (@mib1185
- #116839 )  - Bump androidtvremote2 to v0.0.15 (@tronikos
- #116844 )  - Bump goodwe to 0.3.4 (@mletenay
- #116849 )  - Fix non-thread-safe operations in amcrest (@bdraco
- #116859 )  - fix radarr coordinator updates (@tkdrob
- #116874 )  - Fix initial mqtt subcribe cooldown timeout (@jbouwh
- #116904 )  - Update frontend to 20240501.1 (@bramkragten
- #116939 )  
Release 2024.5.3 - May 10
- Fix Sonos select_source timeout error (@PeteRager
- #115640 )  - Update strings for Bring notification service (@tr4nt0r
- #116181 )  - Bump Yolink api to 0.4.4 (@matrixd2
- #116967 )  - Update jinja2 to 3.1.4 (@cdce8p
- #116986 )  - Simplify MQTT subscribe debouncer execution (@bdraco
- #117006 )  - Log an exception mqtt client call back throws (@jbouwh
- #117028 )  - Bump rokuecp to 0.19.3 (@ctalkington
- #117059 )  - Bump pyenphase to 1.20.3 (@catsmanac
- #117061 )  - Add a missing 
addon_nameplaceholder to the SkyConnect config flow (@puddly- #117089 )  - Goodwe Increase max value of export limit to 200% (@mletenay
- #117090 )  - Improve config entry has already been setup error message (@bdraco
- #117091 )  - Fix nws blocking startup (@MatthewFlamm
- #117094 )  - Make the mqtt discovery update tasks eager and fix race (@jbouwh
- #117105 )  - Bump goodwe to 0.3.5 (@mletenay
- #117115 )  - Handle tilt position being None in HKC (@bdraco
- #117141 )  - Fix typo in xiaomi_ble translation strings (@jbouwh
- #117144 )  - Bump pytrydan to 0.6.0 (@dgomes
- #117162 )  - Bump deebot-client to 7.2.0 (@edenhaus
- #117189 )  
Release 2024.5.4 - May 17
- Fix Fully Kiosk set config service (@amura11
- #112840 )  - Mark Duotecno entities unavailable when tcp goes down (@Cereal2nd
- #114325 )  - Catch auth exception in husqvarna automower (@Thomas55555
- #115365 )  - Avoid exceptions when Gemini responses are blocked (@tronikos
- #116847 )  - Reduce update interval in Ondilo Ico (@nijel
- #116989 )  - Add reauth for missing token scope in Husqvarna Automower (@Thomas55555
- #117098 )  - Fix issue changing Insteon Hub configuration (@teharris1
- #117204 )  - Bump SoCo to 0.30.4 (@jjlawren
- #117212 )  - Fix zwave_js discovery logic for node device class (@raman325
- #117232 )  - Increase MQTT broker socket buffer size (@jbouwh
- #117267 )  - Fix Aurora naming (@joostlek
- #117314 )  - Call Google Assistant SDK service using async_add_executor_job (@tronikos
- #117325 )  - Fix squeezebox blocking startup (@bdraco
- #117331 )  - Fix Lutron Serena Tilt Only Wood Blinds set tilt function (@wujiaqi
- #117374 )  - Fix Kodi on/off status (@mk-81
- #117436 )  - Update wled to 0.17.1 (@frenck
- #117444 )  - Bump pyduotecno to 2024.5.0 (@Cereal2nd
- #117446 )  - Fix non-thread-safe state write in tellduslive (@bdraco
- #117487 )  - Reolink fix not unregistering webhook during ReAuth (@starkillerOG
- #117490 )  - Fix API creation for passwordless pi_hole (@emontnemery
- #117494 )  - Bump reolink-aio to 0.8.10 (@starkillerOG
- #117501 )  - Handle uncaught exceptions in Analytics insights (@joostlek
- #117558 )  - Fix poolsense naming (@joostlek
- #117567 )  - Improve syncing light states to deCONZ groups (@Kane610
- #117588 )  
Release 2024.5.5 - May 24
- Fix Sonos album artwork performance (@PeteRager
- #116391 )  - Filter out HTML greater/less than entities from huawei_lte sensor values (@scop
- #117209 )  - Add options-property to Plugwise Select (@bouwew
- #117655 )  - Fix setting MQTT socket buffer size with WebsocketWrapper (@bdraco
- #117672 )  - Bump pyrisco to 0.6.2 (@OnFreund
- #117682 )  - Consider only active config entries as media source in Synology DSM (@mib1185
- #117691 )  - Bump aranet4 to 2.3.4 (@Anrijs
- #117738 )  - Bump crownstone-sse to 2.0.5, crownstone-cloud to 1.4.11 (@RicArch97
- #117748 )  - Block older versions of custom integration mydolphin_plus since they cause crashes (@bdraco
- #117751 )  - Fix race in config entry setup (@bdraco
- #117756 )  - Update wled to 0.18.0 (@frenck
- #117790 )  - Account for disabled ZHA discovery config entries when migrating SkyConnect integration (@puddly
- #117800 )  - Tesla Wall Connector fix spelling error/typo (@bajansen
- #117841 )  - Prevent time pattern reschedule if cancelled during job execution (@swoga
- #117879 )  - Update philips_js to 3.2.1 (@elupus
- #117881 )  - Bump pyrympro to 0.0.8 (@OnFreund
- #117919 )  - Add Shelly debug logging for async_reconnect_soon (@thecode
- #117945 )  - Update pySwitchbot to 0.46.0 to fix lock key retrieval (@bdraco
- #118005 )  - Improve async_get_issue_tracker for custom integrations (@emontnemery
- #118016 )  - Bump pySwitchbot to 0.46.1 (@bdraco
- #118025 )  - Extend the blocklist for Matter transitions with more models (@marcelveldt
- #118038 )  - Fix rc pylint warning in MQTT (@frenck
- #118050 )  - Add state check to config entry setup to ensure it cannot be setup twice (@bdraco
- #117193 )