diff --git a/source/_includes/installation/operating_system.md b/source/_includes/installation/operating_system.md
index 1ec96df004a..e9af36c2a5c 100644
--- a/source/_includes/installation/operating_system.md
+++ b/source/_includes/installation/operating_system.md
@@ -12,26 +12,26 @@ Follow this guide if you want to get started with Home Assistant easily or if yo
You will need a few things to get started with installing Home Assistant. The links below lead to Ameridroid. If you’re not in the US, you should be able to find these items in web stores in your country.
-To get started, we suggest the ODROID N2+, the board that powers our [Home Assistant Blue](/blue/), or the ODROID M1.
+To get started, we suggest the ODROID-N2+, the board that powers our [Home Assistant Blue](/blue/), or the ODROID-M1.
-If unavailable, we also recommend the [ODROID C4](https://ameridroid.com/products/odroid-c4?ref=eeb6nfw07e).
+If unavailable, we also recommend the [ODROID-C4](https://ameridroid.com/products/odroid-c4?ref=eeb6nfw07e).
Home Assistant bundles (US market):
The bundles come with Home Assistant pre-installed.
-- [ODROID N2+: 2 GB RAM / 16 GB eMMC](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44748729286935?ref=eeb6nfw07e)
-- [ODROID N2+: 4 GB RAM / 64 GB eMMC](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44748729221399?ref=eeb6nfw07e)
-- ODROID M1: 4 GB RAM / 256 GB NVMe / [16 GB µSD](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44929573028119?ref=eeb6nfw07e) or [16 GB eMMC](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44994940567831?ref=eeb6nfw07e)
-- ODROID M1: 8 GB RAM / 256 GB NVMe / [16 GB µSD](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44929573093655?ref=eeb6nfw07e) or [16 GB eMMC](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44994940633367?ref=eeb6nfw07e)
-- [ODROID M1: 8 GB RAM / 1 TB NVMe / 64 GB eMMC](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44994940698903?ref=eeb6nfw07e)
+- [ODROID-N2+: 2 GB RAM / 16 GB eMMC](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44748729286935?ref=eeb6nfw07e)
+- [ODROID-N2+: 4 GB RAM / 64 GB eMMC](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44748729221399?ref=eeb6nfw07e)
+- ODROID-M1: 4 GB RAM / 256 GB NVMe / [16 GB µSD](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44929573028119?ref=eeb6nfw07e) or [16 GB eMMC](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44994940567831?ref=eeb6nfw07e)
+- ODROID-M1: 8 GB RAM / 256 GB NVMe / [16 GB µSD](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44929573093655?ref=eeb6nfw07e) or [16 GB eMMC](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44994940633367?ref=eeb6nfw07e)
+- [ODROID-M1: 8 GB RAM / 1 TB NVMe / 64 GB eMMC](https://ameridroid.com/products/odroid-n2-home-assistant-blue-bundle-limited-edition?variant=44994940698903?ref=eeb6nfw07e)
Variants without pre-installed Home Assistant:
-- ODROID N2+, [2 GB RAM](https://ameridroid.com/products/odroid-n2-plus?variant=40371828719650?ref=eeb6nfw07e) or [4 GB RAM](https://ameridroid.com/products/odroid-n2-plus?variant=40371828752418?ref=eeb6nfw07e)
-- [ODROID C4](https://ameridroid.com/products/odroid-c4?ref=eeb6nfw07e)
-- [ODROID M1](https://ameridroid.com/products/odroid-M1?ref=eeb6nfw07e)
-
+- ODROID-N2+, [2 GB RAM](https://ameridroid.com/products/odroid-n2-plus?variant=40371828719650?ref=eeb6nfw07e) or [4 GB RAM](https://ameridroid.com/products/odroid-n2-plus?variant=40371828752418?ref=eeb6nfw07e)
+- [ODROID-C4](https://ameridroid.com/products/odroid-c4?ref=eeb6nfw07e)
+- [ODROID-M1](https://ameridroid.com/products/odroid-M1?ref=eeb6nfw07e)
+- ODROID-M1S, [4 GB RAM](https://ameridroid.com/products/odroid-m1s?variant=47425396474135?ref=eeb6nfw07e) or [8 GB RAM](https://ameridroid.com/products/odroid-m1s?variant=47425396506903?ref=eeb6nfw07e)
- [Power Supply](https://ameridroid.com/products/12v-2a-power-supply-plug?ref=eeb6nfw07e)
- [CR2032 Coin Cell](https://ameridroid.com/products/rtc-bios-battery?ref=eeb6nfw07e)
- [eMMC Module](https://ameridroid.com/products/emmc-module-n2-linux-red-dot?ref=eeb6nfw07e)
@@ -46,7 +46,7 @@ Variants without pre-installed Home Assistant:
Prerequisites
-This guide assumes that you have a dedicated {{ site.installation.types[page.installation_type].board }} PC to exclusively run the Home Assistant Operating System.
+This guide assumes that you have a dedicated {{ site.installation.types[page.installation_type].board }} PC to exclusively run the {% term "Home Assistant Operating System" %}.
- This is typically an Intel or AMD-based system.
- The system must be 64-bit capable and be able to boot using UEFI.
@@ -55,7 +55,7 @@ This guide assumes that you have a dedicated {{ site.installation.types[page.ins
Summary
1. First, you will need to configure your {{ site.installation.types[page.installation_type].board }} PC to use UEFI boot mode.
-2. Then, write the Home Assistant Operating System disk image to your boot medium.
+2. Then, write the {% term "Home Assistant Operating System" %} disk image to your boot medium.
@@ -88,7 +88,7 @@ Typically, an internal medium like S-ATA hard disk, S-ATA SSD, M.2 SSD, or a non
To write the HAOS image to the boot medium on your x86-64 hardware, there are 2 different methods:
- **Method 1 (recommended)**: Boot Ubuntu from a USB flash drive and install the Home Assistant Operating System from there. It also works on laptops and PCs with internal hard disks.
+ **Method 1 (recommended)**: Boot Ubuntu from a USB flash drive and install the {% term "Home Assistant Operating System" %} from there. It also works on laptops and PCs with internal hard disks.
**Method 2**: With this method, you write the Home Assistant Operating disk image directly onto a boot medium from your regular computer. The steps are a bit more complex. If you have non-removable internal mediums (for example because you are using a laptop) or do not have the necessary adapter (for example an USB to S-ATA adapter) use method 1 instead.
@@ -97,13 +97,13 @@ To write the HAOS image to the boot medium on your x86-64 hardware, there are 2
#### Required material
- Computer
-- The target x86-64 hardware, on which you want to install the Home Assistant Operating System (HAOS)
+- The target x86-64 hardware, on which you want to install the {% term "Home Assistant Operating System" %} (HAOS)
- USB flash drive (USB thumb drive is sufficient, it should be at least 4 GB in size)
- Internet connection
#### To install HAOS via Ubuntu from a USB flash drive
-1. **Notice**: This procedure will write the Home Assistant Operating System onto your device.
+1. **Notice**: This procedure will write the {% term "Home Assistant Operating System" %} onto your device.
- This means you will lose all the data as well as the previously installed operating system.
- Back up your data before carrying out this procedure.
2. Create a *live operating system* on a USB flash drive:
@@ -145,7 +145,7 @@ Use this method only if Method 1 does not work for you.
#### Required material
- Computer
-- The target x86-64 hardware, on which you want to install the Home Assistant Operating System (HAOS)
+- The target x86-64 hardware, on which you want to install the {% term "Home Assistant Operating System" %} (HAOS)
- Boot medium
- Internet connection
@@ -157,14 +157,16 @@ Use this method only if Method 1 does not work for you.
{% endif %}
-1. **Notice**: This procedure will write the Home Assistant Operating System onto your device.
+1. **Notice**: This procedure will write the {% term "Home Assistant Operating System" %} onto your device.
- This means you will lose all the data as well as the previously installed operating system.
- Back up your data before continuing with the next step.
2. Attach the Home Assistant boot medium ({{site.installation.types[page.installation_type].installation_media}}) to your computer.
{% if page.installation_type == 'odroid' %}
- If you are using ODROID M1, note that booting from NVMe is not supported. If you want to boot from eMMC, [update the firmware](https://github.com/home-assistant/operating-system/blob/dev/Documentation/boards/hardkernel/odroid-m1.md) before installing the image.
+ If you are using ODROID-M1, note that booting from NVMe is not supported. If you want to boot from eMMC, [update the firmware](https://github.com/home-assistant/operating-system/blob/dev/Documentation/boards/hardkernel/odroid-m1.md) before installing the image.
- If you are using a [Home Assistant Blue](/blue) or ODROID N2+, you can [attach your device directly](/common-tasks/os/#flashing-an-odroid-n2).
+ If you are using a [Home Assistant Blue](/blue) or ODROID-N2+, you can [attach your device directly](/installation/odroid#flashing-an-odroid-n2).
+
+ If you are using an ODROID-M1S, you need to follow this guide to [boot your device into UMS mode](/installation/odroid#flashing-an-odroid-m1s).
{% endif %}
3. Download and start
Balena Etcher. You may need to run it with administrator privileges on Windows.
4. Download the image to your computer.
@@ -182,7 +184,9 @@ Use this method only if Method 1 does not work for you.
```
{% if variant.key == "odroid-n2" %}
- [Guide: Flashing Odroid-N2 using OTG-USB](/hassio/flashing_n2_otg/)
+ [Guide: Flashing ODROID-N2 using OTG-USB](/installation/odroid#flashing-an-odroid-n2)
+ {% elsif variant.key == "odroid-m1s" %}
+ [Guide: Flashing ODROID-M1S using OTG-USB](/installation/odroid#flashing-an-odroid-m1s)
{% elsif variant.key == "rpi4" or variant.key == "rpi3" %}
*(64-bit is recommended)*
{% endif %}
@@ -212,7 +216,7 @@ Use this method only if Method 1 does not work for you.
9. Select **Flash!** to start writing the image.
- If the operation fails, decompress the .xz file and try again.

-1. When Balena Etcher has finished writing the image, you will see a confirmation.
+ - When Balena Etcher has finished writing the image, you will see a confirmation.

### Start up your {{site.installation.types[page.installation_type].board}}
@@ -223,7 +227,8 @@ Use this method only if Method 1 does not work for you.
- If you used method 2 for the installation, install the boot medium into your x86-64 hardware.
-1. Plug in an Ethernet cable that is connected to the network.
+1. Plug in an Ethernet cable that is connected to the network and to the internet.
+ - Note: Internet is required because the newly installed Home Assistant OS does not contain all Home Assistant components yet. It downloads the latest version of Home Assistant Core on first start.
2. Power the system on. If you have a screen connected to the {{site.installation.types[page.installation_type].board}} system, after a minute or so the Home Assistant welcome banner will appear in the console.
@@ -250,7 +255,8 @@ Or else, the BIOS might provide you with a tool to add boot options, there you c
{% else %}
1. Insert the boot medium ({{ site.installation.types[page.installation_type].installation_media }}) you just created.
-2. Plug in an Ethernet cable that is connected to the network and power the system on.
+2. Plug in an Ethernet cable that is connected to the network and to the internet and power the system on.
+ - Note: Internet is required because the newly installed Home Assistant OS does not contain all Home Assistant components yet. It downloads the latest version of Home Assistant Core on first start.
{% endif %}
@@ -468,6 +474,13 @@ With the Home Assistant Operating System installed and accessible, you can conti
{% include getting-started/next_step.html step="Onboarding" link="/getting-started/onboarding/" %}
+{% if page.installation_type == 'odroid' %}
+
+{% include common-tasks/flashing_n2_otg.md %}
+{% include common-tasks/flashing_m1s_otg.md %}
+
+{% endif %}
+
[generic-x86-64]: {{release_url}}/{{site.data.version_data.hassos['ova']}}/haos_generic-x86-64-{{site.data.version_data.hassos['generic-x86-64']}}.img.xz
[vmdk]: {{release_url}}/{{site.data.version_data.hassos['ova']}}/haos_ova-{{site.data.version_data.hassos['ova']}}.vmdk.zip
[vhdx]: {{release_url}}/{{site.data.version_data.hassos['ova']}}/haos_ova-{{site.data.version_data.hassos['ova']}}.vhdx.zip
diff --git a/source/_includes/installation/supervised.md b/source/_includes/installation/supervised.md
index decb6cde869..c3806b199c7 100644
--- a/source/_includes/installation/supervised.md
+++ b/source/_includes/installation/supervised.md
@@ -14,6 +14,6 @@ Unless you really need this installation type, you should install Home Assistant
supported). So, make sure you understand the requirements from step 1 above.
3. Then head over to
home-assistant/supervised-installer to set it up.
-Once the Home Assistant Supervised installation is running and Home Assistant is accessible you can continue with onboarding.
+Once the {% term "Home Assistant Supervised" %} installation is running and Home Assistant is accessible you can continue with onboarding.
{% include getting-started/next_step.html step="Onboarding" link="/getting-started/onboarding/" %}
diff --git a/source/_includes/integrations/building_block_integration.md b/source/_includes/integrations/building_block_integration.md
index d6a8240dbb1..e7b4df2cd39 100644
--- a/source/_includes/integrations/building_block_integration.md
+++ b/source/_includes/integrations/building_block_integration.md
@@ -5,6 +5,11 @@
**Building block integration**
-The {{ name | downcase }} integration cannot be directly used. You cannot create your own {{ domain | replace: "_", " " }} entities using this integration. This integration is a building block for other integrations to use, enabling them to create {{ domain | replace: "_", " " }} entities for you.
+This {{ name | downcase }} is a building block integration that cannot be added to your Home Assistant directly but is used and provided by other integrations.
+
+A building block integration differs from the typical integration that connects to a device or service. Instead, other integrations that do integrate a device or service into Home Assistant use this {{ name | downcase }} building block to provide entities, services, and other functionality that you can use in your automations or dashboards.
+
+If one of your integrations features this building block, this page documents the functionality the {{ name | downcase }} building block offers.
+
diff --git a/source/_includes/integrations/device_class_intro.md b/source/_includes/integrations/device_class_intro.md
new file mode 100644
index 00000000000..077adf6e25a
--- /dev/null
+++ b/source/_includes/integrations/device_class_intro.md
@@ -0,0 +1 @@
+A device class is a measurement categorization in Home Assistant. It influences how the entity is represented in the [dashboard](/dashboards/). This can be modified in the [customize section](/docs/configuration/customizing-devices/). For example, different states may be represented by different icons, colors, or text.
\ No newline at end of file
diff --git a/source/_includes/integrations/restart_ha_after_config_inclusion.md b/source/_includes/integrations/restart_ha_after_config_inclusion.md
new file mode 100644
index 00000000000..24b1c2502e5
--- /dev/null
+++ b/source/_includes/integrations/restart_ha_after_config_inclusion.md
@@ -0,0 +1 @@
+After changing the {% term "`configuration.yaml`" %} file, [restart Home Assistant](/docs/configuration/#reloading-the-configuration-to-apply-changes) to apply the changes. {% if page.ha_platforms %} {% if page.ha_quality_scale != "internal" or page.ha_domain contains 'generic' %} To view the changes, go to {% my entities title="**Settings** > **Devices & services** > **Entities**" %}. {% endif %}{% endif %}
diff --git a/source/_includes/javascripts/scripts.html b/source/_includes/javascripts/scripts.html
index aa54f12cd05..f2b630cf0a1 100644
--- a/source/_includes/javascripts/scripts.html
+++ b/source/_includes/javascripts/scripts.html
@@ -1,5 +1,7 @@
+
+
diff --git a/source/_posts/2022-12-20-year-of-voice.markdown b/source/_posts/2022-12-20-year-of-voice.markdown
index f8806665604..b109e172fd6 100644
--- a/source/_posts/2022-12-20-year-of-voice.markdown
+++ b/source/_posts/2022-12-20-year-of-voice.markdown
@@ -9,6 +9,7 @@ author_twitter: balloob
comments: true
categories:
- Announcements
+- Assist
og_image: /images/blog/2022-12-20-year-of-voice/conversation.png
---
@@ -21,6 +22,7 @@ _**TL;DR**: It is our goal for 2023 to let users control Home Assistant in their
- [Year of the Voice - Chapter 3](/blog/2023/07/20/year-of-the-voice-chapter-3/) (July 20, 2023)
- [Year of the Voice - Chapter 4](/blog/2023/10/12/year-of-the-voice-chapter-4-wakewords/) (October 12, 2023)
- [Year of the Voice - Chapter 5](/blog/2023/12/13/year-of-the-voice-chapter-5/) (December 13, 2023)
+ - [Voice - Chapter 6](/blog/2024/02/21/voice-chapter-6/) (February 21, 2024)
diff --git a/source/_posts/2023-09-17-a-refreshed-logo-for-home-assistant.markdown b/source/_posts/2023-09-17-a-refreshed-logo-for-home-assistant.markdown
index e542e736958..80745d1f6ec 100644
--- a/source/_posts/2023-09-17-a-refreshed-logo-for-home-assistant.markdown
+++ b/source/_posts/2023-09-17-a-refreshed-logo-for-home-assistant.markdown
@@ -16,6 +16,8 @@ Hello all, this is Madelena. You may know me from [some](https://www.reddit.com/
As you may have heard from our celebration for [the 10th anniversary of Home Assistant](/blog/2023/09/17/10-years-home-assistant/), we are making some tweaks to our logo! This is no small feat, as the logo is a big part of the identity of Home Assistant, and by extension a representation of the contributions of our community. This logo has served us well for 8 years. When we see the logo, it represents the culmination of work that we are all proud of.
+_For those who want to use our logo and for more details, the latest brand guidelines and logo assets can be found [at our design repository.](https://design.home-assistant.io/#brand/logo)_
+
## Humble beginnings
@@ -80,7 +82,7 @@ We have also changed our logotype to something more cozy and modern like a home.
We have also toned the blue color to be slightly more saturated to make it feel brighter and more utopian, and expanded the palette to a wider gamut.
-For those who want to use our logo and for more details, the latest brand guidelines can be found [at our design repository.](https://design.home-assistant.io/)
+For those who want to use our logo and for more details, the latest brand guidelines and logo assets can be found [at our design repository.](https://design.home-assistant.io/#brand/logo)
## There’s more to come!
diff --git a/source/_posts/2023-12-06-release-202312.markdown b/source/_posts/2023-12-06-release-202312.markdown
index f10b96fa52d..750f3a8b547 100644
--- a/source/_posts/2023-12-06-release-202312.markdown
+++ b/source/_posts/2023-12-06-release-202312.markdown
@@ -304,7 +304,7 @@ We welcome the following new integrations in this release:
[Devialet]: /integrations/devialet
[V2C]: /integrations/v2c
[Linear Garage Door]: /integrations/linear_garage_door
-[MyPermobil]: /integrations/mypermobil
+[MyPermobil]: /integrations/permobil
[OurGroceries]: /integrations/ourgroceries
## Integrations now available to set up from the UI
diff --git a/source/_posts/2024-01-03-release-20241.markdown b/source/_posts/2024-01-03-release-20241.markdown
index dcba115efbd..13c0cc350f1 100644
--- a/source/_posts/2024-01-03-release-20241.markdown
+++ b/source/_posts/2024-01-03-release-20241.markdown
@@ -53,6 +53,10 @@ Enjoy the release!
- [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui)
- [Release 2024.1.1 - January 5](#release-202411---january-5)
- [Release 2024.1.2 - January 6](#release-202412---january-6)
+- [Release 2024.1.3 - January 12](#release-202413---january-12)
+- [Release 2024.1.4 - January 19](#release-202414---january-19)
+- [Release 2024.1.5 - January 20](#release-202415---january-20)
+- [Release 2024.1.6 - January 30](#release-202416---january-30)
- [Need help? Join the community!](#need-help-join-the-community)
- [Backward-incompatible changes](#backward-incompatible-changes)
- [All changes](#all-changes)
@@ -491,6 +495,299 @@ The following integrations are now available via the Home Assistant UI:
[@thecode]: https://github.com/thecode
[@timmo001]: https://github.com/timmo001
+## Release 2024.1.3 - January 12
+
+- Add diagnostics to A. O. Smith integration ([@bdr99] - [#106343])
+- Catch missing inverter in Enphase Envoy ([@catsmanac] - [#106730])
+- Prevent toggle from calling stop on covers which do not support it ([@vexofp] - [#106848])
+- Fix missing unique_id for spt integration ([@miaucl] - [#107087])
+- Add support for the Spotify DJ ([@BTMorton] - [#107268])
+- Fix evohome high_precision temps not retreived consistently ([@zxdavb] - [#107366])
+- Reduce polling rate in Blink ([@mkmer] - [#107386])
+- Fix KNX telegram device trigger not firing after integration reload ([@farmio] - [#107388])
+- Fix language flavors in holiday ([@gjohansson-ST] - [#107392])
+- Handle OSError during setup for System Monitor ([@gjohansson-ST] - [#107396])
+- Remove name from faa_delays ([@joostlek] - [#107418])
+- Fix Swiss public transport initial data for attributes ([@miaucl] - [#107452])
+- Fix reauth flow for Comelit VEDO ([@chemelli74] - [#107461])
+- Fix asyncio.gather call ([@cdce8p] - [#107500])
+- Fix Luftdaten sensor id string ([@mrueg] - [#107506])
+- Bump zm-py version to v0.5.3 for zoneminder ([@nabbi] - [#107331])
+- Retry zoneminder connection setup ([@nabbi] - [#107519])
+- Don't include position in binary valve attributes ([@emontnemery] - [#107531])
+- Bump blinkpy to 0.22.5 ([@mkmer] - [#107537])
+- Bump reolink_aio to 0.8.6 ([@starkillerOG] - [#107541])
+- Bump mcstatus to v11.1.1 ([@elmurato] - [#107546])
+- Bump aioshelly to 7.1.0 ([@thecode] - [#107593])
+- Fix Tado unique mobile device dispatcher ([@erwindouna] - [#107631])
+- Fix tplink_lte setup ([@cdce8p] - [#107642])
+- Prevent overriding cached attribute as property ([@emontnemery] - [#107657])
+- Set max and min temp for flexit_bacnet climate entity ([@lellky] - [#107665])
+- Fix duplicated resource issue in System Monitor ([@gjohansson-ST] - [#107671])
+- Fix invalid alexa climate or water_heater state report with double listed targetSetpoint ([@jbouwh] - [#107673])
+- Redact sensitive data in alexa debug logging ([@jbouwh] - [#107676])
+- Fix `device_class` type for Shelly Gen1 sleeping sensors ([@bieniu] - [#107683])
+- Clamp tplink color temp to valid range ([@bdraco] - [#107695])
+- Fix cloud tts loading ([@MartinHjelmare] - [#107714])
+- Allow configuration of min_gradient from UI to be negative in Trend ([@jpbede] - [#107720])
+- Bump aioswitcher to 3.4.1 ([@YogevBokobza] - [#107730])
+- Fix mqtt text text min max config params can not be equal ([@jbouwh] - [#107738])
+- Fix "not-logged" edge cases for Comelit VEDO ([@chemelli74] - [#107741])
+- Fix Mac address check in kef integration ([@eugenet8k] - [#107746])
+- Fix ld2410_ble not being able to setup because it has a stale connection ([@bdraco] - [#107754])
+- Bump pyunifiprotect to 4.23.1 ([@AngellusMortis] - [#107758])
+- Bump pyunifiprotect to 4.23.2 ([@AngellusMortis] - [#107769])
+- Rework events for UniFi Protect ([@AngellusMortis] - [#107771])
+- Fix switcher kis logging incorrect property for device's name ([@idofl] - [#107775])
+- Bump bluetooth deps ([@bdraco] - [#107816])
+- Fix Tailwind cover stuck in closing state ([@frenck] - [#107827])
+- Fix for exception in screenlogic.set_color_mode ([@dieselrabbit] - [#107850])
+- Bump aio_geojson_generic_client to 0.4 ([@exxamalte] - [#107866])
+
+[#106343]: https://github.com/home-assistant/core/pull/106343
+[#106730]: https://github.com/home-assistant/core/pull/106730
+[#106848]: https://github.com/home-assistant/core/pull/106848
+[#106970]: https://github.com/home-assistant/core/pull/106970
+[#107087]: https://github.com/home-assistant/core/pull/107087
+[#107239]: https://github.com/home-assistant/core/pull/107239
+[#107268]: https://github.com/home-assistant/core/pull/107268
+[#107331]: https://github.com/home-assistant/core/pull/107331
+[#107365]: https://github.com/home-assistant/core/pull/107365
+[#107366]: https://github.com/home-assistant/core/pull/107366
+[#107386]: https://github.com/home-assistant/core/pull/107386
+[#107388]: https://github.com/home-assistant/core/pull/107388
+[#107392]: https://github.com/home-assistant/core/pull/107392
+[#107396]: https://github.com/home-assistant/core/pull/107396
+[#107418]: https://github.com/home-assistant/core/pull/107418
+[#107452]: https://github.com/home-assistant/core/pull/107452
+[#107461]: https://github.com/home-assistant/core/pull/107461
+[#107500]: https://github.com/home-assistant/core/pull/107500
+[#107506]: https://github.com/home-assistant/core/pull/107506
+[#107519]: https://github.com/home-assistant/core/pull/107519
+[#107531]: https://github.com/home-assistant/core/pull/107531
+[#107537]: https://github.com/home-assistant/core/pull/107537
+[#107541]: https://github.com/home-assistant/core/pull/107541
+[#107546]: https://github.com/home-assistant/core/pull/107546
+[#107593]: https://github.com/home-assistant/core/pull/107593
+[#107631]: https://github.com/home-assistant/core/pull/107631
+[#107642]: https://github.com/home-assistant/core/pull/107642
+[#107657]: https://github.com/home-assistant/core/pull/107657
+[#107665]: https://github.com/home-assistant/core/pull/107665
+[#107671]: https://github.com/home-assistant/core/pull/107671
+[#107673]: https://github.com/home-assistant/core/pull/107673
+[#107676]: https://github.com/home-assistant/core/pull/107676
+[#107683]: https://github.com/home-assistant/core/pull/107683
+[#107695]: https://github.com/home-assistant/core/pull/107695
+[#107714]: https://github.com/home-assistant/core/pull/107714
+[#107720]: https://github.com/home-assistant/core/pull/107720
+[#107730]: https://github.com/home-assistant/core/pull/107730
+[#107738]: https://github.com/home-assistant/core/pull/107738
+[#107741]: https://github.com/home-assistant/core/pull/107741
+[#107746]: https://github.com/home-assistant/core/pull/107746
+[#107754]: https://github.com/home-assistant/core/pull/107754
+[#107758]: https://github.com/home-assistant/core/pull/107758
+[#107769]: https://github.com/home-assistant/core/pull/107769
+[#107771]: https://github.com/home-assistant/core/pull/107771
+[#107775]: https://github.com/home-assistant/core/pull/107775
+[#107816]: https://github.com/home-assistant/core/pull/107816
+[#107827]: https://github.com/home-assistant/core/pull/107827
+[#107850]: https://github.com/home-assistant/core/pull/107850
+[#107866]: https://github.com/home-assistant/core/pull/107866
+[@AngellusMortis]: https://github.com/AngellusMortis
+[@BTMorton]: https://github.com/BTMorton
+[@MartinHjelmare]: https://github.com/MartinHjelmare
+[@YogevBokobza]: https://github.com/YogevBokobza
+[@bdr99]: https://github.com/bdr99
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@catsmanac]: https://github.com/catsmanac
+[@cdce8p]: https://github.com/cdce8p
+[@chemelli74]: https://github.com/chemelli74
+[@dieselrabbit]: https://github.com/dieselrabbit
+[@elmurato]: https://github.com/elmurato
+[@emontnemery]: https://github.com/emontnemery
+[@erwindouna]: https://github.com/erwindouna
+[@eugenet8k]: https://github.com/eugenet8k
+[@exxamalte]: https://github.com/exxamalte
+[@farmio]: https://github.com/farmio
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@idofl]: https://github.com/idofl
+[@jbouwh]: https://github.com/jbouwh
+[@joostlek]: https://github.com/joostlek
+[@jpbede]: https://github.com/jpbede
+[@lellky]: https://github.com/lellky
+[@miaucl]: https://github.com/miaucl
+[@mkmer]: https://github.com/mkmer
+[@mrueg]: https://github.com/mrueg
+[@nabbi]: https://github.com/nabbi
+[@starkillerOG]: https://github.com/starkillerOG
+[@thecode]: https://github.com/thecode
+[@vexofp]: https://github.com/vexofp
+[@zxdavb]: https://github.com/zxdavb
+
+## Release 2024.1.4 - January 19
+
+- Fix MatrixBot not resolving room aliases per-command ([@PaarthShah] - [#106347])
+- Bump Pyenphase to 1.16.0 ([@catsmanac] - [#107719])
+- Fix loading empty yaml files with include_dir_named ([@pedrolamas] - [#107853])
+- Bump openwebifpy to 4.2.1 ([@autinerd] - [#107894])
+- Bump aiohomekit to 3.1.3 ([@bdraco] - [#107929])
+- Skip disk types in System Monitor ([@gjohansson-ST] - [#107943])
+- Fix duplicate unique id in System Monitor (again) ([@gjohansson-ST] - [#107947])
+- Bump pyenphase to 1.17.0 ([@catsmanac] - [#107950])
+- Update sleep period for Shelly devices with buggy fw ([@chemelli74] - [#107961])
+- Reload ZHA only a single time when the connection is lost multiple times ([@puddly] - [#107963])
+- Don't load entities for docker virtual ethernet interfaces in System Monitor ([@gjohansson-ST] - [#107966])
+- Improve coordinator logic in Tessie to allow sleep ([@Bre77] - [#107988])
+- Fix Shelly Gen1 entity description restore ([@thecode] - [#108052])
+- Fix malformed user input error on MJPEG config flow ([@codyc1515] - [#108058])
+- Fix turning on the light with a specific color ([@marcelveldt] - [#108080])
+- Bump Jinja2 to 3.1.3 ([@edenhaus] - [#108082])
+- Use compat for supported features in media player ([@joostlek] - [#108102])
+- Speed up ZHA initialization and improve startup responsiveness ([@puddly] - [#108103])
+- Bump `aioridwell` to 2024.01.0 ([@bachya] - [#108126])
+- Bump flipr-api to 1.5.1 ([@cnico] - [#108130])
+- Send target temp to Shelly TRV in F when needed ([@jra3] - [#108188])
+- Use cache update for WIFI blinds ([@starkillerOG] - [#108224])
+- Bump reolink_aio to 0.8.7 ([@starkillerOG] - [#108248])
+- Bump PyTado to 0.17.4 ([@erwindouna] - [#108255])
+- Bump aiounifi to v69 to improve websocket logging ([@Kane610] - [#108265])
+- Bump ZHA dependency zigpy to 0.60.6 ([@puddly] - [#108266])
+
+[#106347]: https://github.com/home-assistant/core/pull/106347
+[#106970]: https://github.com/home-assistant/core/pull/106970
+[#107239]: https://github.com/home-assistant/core/pull/107239
+[#107365]: https://github.com/home-assistant/core/pull/107365
+[#107719]: https://github.com/home-assistant/core/pull/107719
+[#107853]: https://github.com/home-assistant/core/pull/107853
+[#107883]: https://github.com/home-assistant/core/pull/107883
+[#107894]: https://github.com/home-assistant/core/pull/107894
+[#107929]: https://github.com/home-assistant/core/pull/107929
+[#107943]: https://github.com/home-assistant/core/pull/107943
+[#107947]: https://github.com/home-assistant/core/pull/107947
+[#107950]: https://github.com/home-assistant/core/pull/107950
+[#107961]: https://github.com/home-assistant/core/pull/107961
+[#107963]: https://github.com/home-assistant/core/pull/107963
+[#107966]: https://github.com/home-assistant/core/pull/107966
+[#107988]: https://github.com/home-assistant/core/pull/107988
+[#108052]: https://github.com/home-assistant/core/pull/108052
+[#108058]: https://github.com/home-assistant/core/pull/108058
+[#108080]: https://github.com/home-assistant/core/pull/108080
+[#108082]: https://github.com/home-assistant/core/pull/108082
+[#108102]: https://github.com/home-assistant/core/pull/108102
+[#108103]: https://github.com/home-assistant/core/pull/108103
+[#108126]: https://github.com/home-assistant/core/pull/108126
+[#108130]: https://github.com/home-assistant/core/pull/108130
+[#108134]: https://github.com/home-assistant/core/pull/108134
+[#108188]: https://github.com/home-assistant/core/pull/108188
+[#108224]: https://github.com/home-assistant/core/pull/108224
+[#108248]: https://github.com/home-assistant/core/pull/108248
+[#108255]: https://github.com/home-assistant/core/pull/108255
+[#108265]: https://github.com/home-assistant/core/pull/108265
+[#108266]: https://github.com/home-assistant/core/pull/108266
+[@Bre77]: https://github.com/Bre77
+[@Kane610]: https://github.com/Kane610
+[@PaarthShah]: https://github.com/PaarthShah
+[@allenporter]: https://github.com/allenporter
+[@autinerd]: https://github.com/autinerd
+[@bachya]: https://github.com/bachya
+[@bdraco]: https://github.com/bdraco
+[@catsmanac]: https://github.com/catsmanac
+[@chemelli74]: https://github.com/chemelli74
+[@cnico]: https://github.com/cnico
+[@codyc1515]: https://github.com/codyc1515
+[@edenhaus]: https://github.com/edenhaus
+[@erwindouna]: https://github.com/erwindouna
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@joostlek]: https://github.com/joostlek
+[@jra3]: https://github.com/jra3
+[@marcelveldt]: https://github.com/marcelveldt
+[@pedrolamas]: https://github.com/pedrolamas
+[@puddly]: https://github.com/puddly
+[@starkillerOG]: https://github.com/starkillerOG
+[@thecode]: https://github.com/thecode
+
+## Release 2024.1.5 - January 20
+
+- Bump async-upnp-client to 0.38.1 ([@StevenLooman] - [#108382])
+- Fix empty files included by !include_dir_named ([@emontnemery] - [#108489])
+- Pin pandas to 2.1.4 ([@frenck] - [#108509])
+
+[#108382]: https://github.com/home-assistant/core/pull/108382
+[#108489]: https://github.com/home-assistant/core/pull/108489
+[#108509]: https://github.com/home-assistant/core/pull/108509
+[@StevenLooman]: https://github.com/StevenLooman
+[@emontnemery]: https://github.com/emontnemery
+[@frenck]: https://github.com/frenck
+
+## Release 2024.1.6 - January 30
+
+- Pass default SSLContext instances to Octoprint custom HTTP sessions ([@vexofp] - [#105351])
+- Reduce overhead for google calendar state updates ([@allenporter] - [#108133])
+- Fix SleepIQ setting FootWarmer timer ([@jmwaldrip] - [#108433])
+- Fix zha illuminance measured value mapping ([@floriankisser] - [#108547])
+- Bump yolink-api to 0.3.6 fix aiomqtt breaking changes ([@matrixd2] - [#108555])
+- Update openerz-api to 0.3.0 ([@misialq] - [#108575])
+- Bump aiovodafone to 0.5.4 ([@chemelli74] - [#108592])
+- Bump airthings-ble to 0.6.0 ([@LaStrada] - [#108612])
+- Fix alexa fails reporting the state in specific cases ([@jbouwh] - [#108743])
+- Reduce log level of ZHA endpoint handler init ([@puddly] - [#108749])
+- Fix google_assistant climate modes might be None ([@jbouwh] - [#108793])
+- Fix unhandled exception on humidifier intent when available_modes is None ([@jbouwh] - [#108802])
+- Fix processing supported color modes for emulated_hue ([@jbouwh] - [#108803])
+- Reduce log level for creating ZHA cluster handler ([@TheJulianJES] - [#108809])
+- Fix stalls in config flow of APCUPSD ([@yuxincs] - [#108931])
+- Add strings to Sensirion BLE ([@joostlek] - [#109001])
+- Fix entity naming for heatpump heatings in ViCare ([@CFenner] - [#109013])
+- Bump aiohttp to 3.9.3 ([@bdraco] - [#109025])
+- Bump ZHA dependency zigpy to 0.60.7 ([@puddly] - [#109082])
+- Add missing abort message for Spotify ([@joostlek] - [#109102])
+
+[#105351]: https://github.com/home-assistant/core/pull/105351
+[#106970]: https://github.com/home-assistant/core/pull/106970
+[#107239]: https://github.com/home-assistant/core/pull/107239
+[#107365]: https://github.com/home-assistant/core/pull/107365
+[#107883]: https://github.com/home-assistant/core/pull/107883
+[#108133]: https://github.com/home-assistant/core/pull/108133
+[#108379]: https://github.com/home-assistant/core/pull/108379
+[#108433]: https://github.com/home-assistant/core/pull/108433
+[#108502]: https://github.com/home-assistant/core/pull/108502
+[#108547]: https://github.com/home-assistant/core/pull/108547
+[#108555]: https://github.com/home-assistant/core/pull/108555
+[#108575]: https://github.com/home-assistant/core/pull/108575
+[#108592]: https://github.com/home-assistant/core/pull/108592
+[#108612]: https://github.com/home-assistant/core/pull/108612
+[#108743]: https://github.com/home-assistant/core/pull/108743
+[#108749]: https://github.com/home-assistant/core/pull/108749
+[#108793]: https://github.com/home-assistant/core/pull/108793
+[#108802]: https://github.com/home-assistant/core/pull/108802
+[#108803]: https://github.com/home-assistant/core/pull/108803
+[#108809]: https://github.com/home-assistant/core/pull/108809
+[#108931]: https://github.com/home-assistant/core/pull/108931
+[#109001]: https://github.com/home-assistant/core/pull/109001
+[#109013]: https://github.com/home-assistant/core/pull/109013
+[#109025]: https://github.com/home-assistant/core/pull/109025
+[#109082]: https://github.com/home-assistant/core/pull/109082
+[#109102]: https://github.com/home-assistant/core/pull/109102
+[@CFenner]: https://github.com/CFenner
+[@LaStrada]: https://github.com/LaStrada
+[@TheJulianJES]: https://github.com/TheJulianJES
+[@allenporter]: https://github.com/allenporter
+[@bdraco]: https://github.com/bdraco
+[@chemelli74]: https://github.com/chemelli74
+[@floriankisser]: https://github.com/floriankisser
+[@frenck]: https://github.com/frenck
+[@jbouwh]: https://github.com/jbouwh
+[@jmwaldrip]: https://github.com/jmwaldrip
+[@joostlek]: https://github.com/joostlek
+[@matrixd2]: https://github.com/matrixd2
+[@misialq]: https://github.com/misialq
+[@puddly]: https://github.com/puddly
+[@vexofp]: https://github.com/vexofp
+[@yuxincs]: https://github.com/yuxincs
+
## Need help? Join the community!
Home Assistant has a great community of users who are all more than willing
diff --git a/source/_posts/2024-01-17-voice-assistant-contest.markdown b/source/_posts/2024-01-17-voice-assistant-contest.markdown
new file mode 100644
index 00000000000..c2a8c0ae71e
--- /dev/null
+++ b/source/_posts/2024-01-17-voice-assistant-contest.markdown
@@ -0,0 +1,110 @@
+---
+layout: post
+title: "Voice Assistant Contest - Let's build and win some prizes!"
+description: "We are organizing a voice assistant contest between the 17th of January and the 10th of March. You can win some Home Assistant Green, some Home Assistant SkyConnect, and a chance to be on a livestream with us to talk about your creation."
+date: 2024-01-17 00:00:01
+date_formatted: "January 17, 2024"
+author: Jean-Loïc Pouffier
+comments: true
+categories: Assist
+og_image: /images/blog/2024-01-11-voice-assistant-contest/banner.png
+---
+
+

+
+TL;DR: We are organizing a voice assistant contest between the 17th of January and the 10th of March. You can win some [Home Assistant Green](/green/), [Home Assistant SkyConnect](/skyconnect/), and a chance to be on a livestream with us to talk about your work.
+
+
+
+2023 was the [Year of the Voice](/blog/2022/12/20/year-of-voice/). It was a yearly goal to **let users control Home Assistant in their own language**.
+We built some amazing things throughout the year, from a very powerful intent recognizer specifically optimized to run on a small computer like a Raspberry Pi 4, all the way to custom wake words created by our community.
+
+In fact, we believe that what we built during the Year of the Voice allows almost anyone to build a voice assistant that embodies our Open Home values perfectly: Personalized, Private, and Sustainable.
+Every component of our voice assistants can be heavily customized to fit your language, your style and your needs, fully local options exist for each of them, and finally you can retrofit voice assistant into anything, even a [1970s Walkie Talkie](https://www.youtube.com/shorts/HqYbhk6vq9E) found in a flea market
+
+This is why, after spending a year building great things, we want to celebrate what our voice assistants can enable with the community: We’re launching a voice assistant contest, with great prizes to win!
+
+
+## Contest specifics
+
+The contest will be held between Today (the **17th of January**) and the **10th of March**.
+
+We tried to be as inclusive as possible. The contest is not only about building voice assistant hardware, it is also about building voice experiences that can be used with any voice assistant (For example, [a blueprint that you can use to generate images from voice and cast them on your TV](https://my.home-assistant.io/redirect/blueprint_import?blueprint_url=https%3A%2F%2Fwww.home-assistant.io%2Fblueprints%2Fblog%2F2023-08%2Fcast_dall_e.yaml): “Show me a picture of an astronaut riding a unicorn!”)
+
+An entry in the contest can take any form: A video, a blog post, a website, an event, etc.
+
+The only requirement is for you to post on [this forum category](https://community.home-assistant.io/c/voice-assistant-contest/60), this is how you officially participate in the contest.
+
+Winners will be announced on the **15th of March**.
+
+A closing ceremony will take place on the **10th of April** in the form of a livestream. Winners will be invited!
+
+

+
+## Contest categories
+
+You can participate in the contest in four different categories.
+
+### Most creative satellite ideas
+
+We have all the ingredients to unleash creativity: Custom sentences, custom wake words, custom voices. This category is here to showcase your smartest ideas.
+We will be judging the creativity, uniqueness, and coherency of the whole package.
+
+Example: [Piitaya’s](https://github.com/piitaya) moving and talking droid.
+
+
+
+### Best starting guides
+
+Because our voice assistant can be heavily customized, starting can be daunting. This category showcases the easiest ways to create a voice assistant for a novice. From ordering parts, flashing the firmware, integrating it into Home Assistant, and using it.
+We will judge how easy the guide is to follow and how usable the final product is.
+
+Example: The amazingly complete guide to build a Wyoming Voice Assistant Satellite by YouTuber [FutureProofHome](https://www.youtube.com/@FutureProofHomes).
+
+
+
+### Best events organized, best group effort
+
+Building privacy-focused technology only makes sense if we can get people to use it. Go to a hackerspace, invite some people, and build some voice assistants together!
+We will be judging the impact of the event (Size, outcome, topics discussed, etc)
+
+### Best voice experiences
+
+This category is here for people who want to participate in the contest but not necessarily build a hardware product. This is all about creating the best experience using a voice assistant on Home Assistant.
+We support custom sentences, custom responses, and custom actions.
+Go crazy, be creative, and show us how to unlock the potential of our voice assistants.
+We will be judging how useful the experience is, how easy it is to integrate it, and of course, of fun it is.
+
+Example: [Play any music on any speaker in your home from a blueprint.](https://blog.jlpouffier.fr/chatgpt-powered-music-search-engine-on-a-local-voice-assistant/)
+
+## Contest prizes
+
+For each category, the winner will receive:
+
+- A [Home Assistant Green](/green/)
+- A [Home Assistant SkyConnect](/skyconnect/)
+- A spot on the closing ceremony livestream to present his/her work on the 10th of April
+
+Runners-up will receive a [Home Assistant SkyConnect](/skyconnect/).
+
+The community will also get a chance to vote for a favorite entry. The choice of the community will also receive the same prizes as a category winner (A [Home Assistant Green](/green/), A [Home Assistant SkyConnect](/skyconnect/), a spot on the livestream on the 10th of April).
+
+## How to get started
+
+- Watch the Voice Assistant Contest [launch live stream](https://www.youtube.com/watch?v=99lGuB4J-4o&ab_channel=HomeAssistant), we did a recap of Year of the Voice and created a few voice assistants live with you.
+- Learn more about the different chapters of Year of the Voice [here](https://www.home-assistant.io/blog/2022/12/20/year-of-voice/).
+- Learn more about Wyoming Satellite in the [launch live stream](https://www.youtube.com/watch?v=99lGuB4J-4o&ab_channel=HomeAssistant) and [here](https://github.com/rhasspy/wyoming-satellite).
+- Learn how to create a basic voice assistant within minutes for $13 [here](https://www.home-assistant.io/voice_control/thirteen-usd-voice-remote/).
+- Learn more about ESPHome-based voice assistant in the [launch live stream](https://www.youtube.com/watch?v=99lGuB4J-4o&ab_channel=HomeAssistant) and [here](https://github.com/jlpouffier/voice-assistant-esphome-tutorial/tree/main).
+- Learn how to create custom wake words [here](https://www.home-assistant.io/voice_control/create_wake_word/).
+- Learn how to create custom sentences [here](https://www.home-assistant.io/voice_control/custom_sentences/).
+
+## Thank you
+
+Thank you to the Home Assistant community for subscribing to Home Assistant Cloud to support Year of the Voice and the development of Home Assistant, ESPHome, and other projects in general.
+
+We are looking forward to seeing what you will build and we are looking forward to having you on the livestream with us on the 10th of April.
+
+Head over to the [forum category](https://community.home-assistant.io/c/voice-assistant-contest/60) to see the progress of the contest.
+
+Have fun building, learning, and sharing.
diff --git a/source/_posts/2024-01-25-matter-livestream-blog.markdown b/source/_posts/2024-01-25-matter-livestream-blog.markdown
new file mode 100644
index 00000000000..a4fb1e09a31
--- /dev/null
+++ b/source/_posts/2024-01-25-matter-livestream-blog.markdown
@@ -0,0 +1,138 @@
+---
+layout: post
+title: "The State of Matter"
+description: "Catch up on all of the highlights of the State of Matter livestream that we streamed on Wednesday, January 10, 2024."
+date: 2024-01-25 00:00:01
+date_formatted: "January 25, 2024"
+author: Marcel van der Veldt
+comments: true
+categories: Matter
+og_image: /images/blog/2024-01-matter/matter.png
+---
+During our State of Matter live stream two weeks ago, we explained what Matter is, how it relates to Thread, and how you can compare it with existing protocols you may already know, like Zigbee or Z-Wave.
+
+In this blog post, we’ve extracted the highlights of the stream for you. We also link to our updated [Matter](/integrations/matter/) and [Thread](/integrations/thread/) documentation where relevant.
+
+You can watch the entire live stream here:
+
+
+
+We’ll also highlight each segment of the live stream in this blog under each corresponding heading, so you can start watching the specific parts that interest you!
+
+
+
+## Why we believe in Matter
+
+
+
+We believe in Matter: it’s open source, and most importantly, it’s fully local by default. Matter will allow us to control devices ranging from lights, to robot vacuums, to TVs, and to many other IP-connected devices, all through a standardized protocol. It is a huge step forward towards having more sustainable and worry-free smart home products. For this reason, Nabu Casa uses the revenue we get from the subscribers to Home Assistant Cloud (thank you all!) to employ developers who are dedicated to implementing Matter. And we have even joined the Connectivity Standards Alliance (CSA) - the organization behind the Matter standard - as a participant to have a front-row seat and to defend the [Open Home values](/blog/2021/12/23/the-open-home/) during the development of the standard.
+
+Matter launched only one year ago, compared to twenty years for a standard like Zigbee, so it’s important to account for that in your expectations. If you’ve already invested heavily in an existing local standard, like Zigbee or Z-Wave, Matter is probably not your best choice at this point. We think there is no reason to throw these current smart home devices out, especially when they still work fine - after all, sustainability is one of our [Open Home values](/blog/2021/12/23/the-open-home/). But if you are new to the smart home scene and looking for devices with local, cloud-free standards that will still work even many years from now, keep an eye on Matter. The standard is rapidly evolving, with major updates twice a year where new device types and enhancements to existing ones are released.
+
+After this first year, the current selection of Matter devices is still a bit limited, but a lot of companies have been using this time to develop them, and we expect more to be released soon. More and more companies are [joining the CSA](https://csa-iot.org/members/) and taking up the standard every month. We think Matter is here to stay and is going to be widely adopted.
+
+## Demystifying Matter
+
+
+
+To really understand what we’re talking about when it comes to Matter, we recommend you read our [updated Matter documentation](/integrations/matter/) or watch this chapter from our live stream.
+
+

+
+In this segment, our product manager JLo explains Matter in an easy-to-understand, visual manner, using the diagram you see above. You’ll no longer have to wonder about Thread, Border routers, Bridges, or other Matter terminology after you’ve watched this video.
+
+## The current state of Matter in Home Assistant
+
+For the past year, we have been working on getting the foundation ready to support Matter devices in Home Assistant. Our implementation is based on the official Matter SDK, and we plan for it to become officially certified by the CSA to show that it will work problem-free with all products that carry the Matter logo. But we are not there yet; that is why we still label Matter as Beta in the integrations list. This will not change until our implementation has been certified.
+
+We are still ironing out bugs, writing documentation, adding missing features, and doing a lot of troubleshooting. We are not alone on this, as many manufacturers needed this first year to get comfortable with the new standard as well, resulting in some unstable early devices coming to the market. We’ve also had to tweak our Home Assistant Operating System to work well with Matter, Thread, and its IPv6 requirement.
+
+It has been a bumpy - sometimes even frustrating - ride, but everything is slowly getting into good shape. Vendors have ironed out bugs in their Matter device firmware, all kinds of new devices are popping up in stores, and the Matter 1.1 and 1.2 updates brought tons of stability fixes to the standard.
+
+From our perspective, it’s amazing that Matter is already in this state after being started only a couple of years ago. You can clearly see the enormous power of so many companies, from small to big, believing in Matter and working together to improve it.
+
+### Get started with Matter in Home Assistant
+
+
+
+If you want to get started with Matter in Home Assistant, it is really important that you read the [documentation](/integrations/matter/) or watch this chapter of our live stream, which covers it all.
+
+Matter has a few gotcha’s you should know about, and because we are still in the Beta stage, not everything is as polished as we want it to be.
+
+If you follow the requirements/recommendations in the documentation, you will see that there are four scenarios that are stable and work well in Home Assistant today:
+
+- Using WiFi-based Matter devices, like TP-Link (Matter) power plugs.
+- Using Matter bridges, like the Aqara M2 or SwitchBot Hub 2.
+- Using Thread-based Matter devices; if you have an Apple iPhone and one or more Apple devices that can be utilized by Home Assistant as a Thread Border router: HomePod gen2, HomePod Mini, Apple TV 4K (with ethernet).
+- Using Thread-based Matter devices; if you have an Android phone and one or more Google devices that can be utilized by Home Assistant as a Thread Border router:
+Google Nest Hub v2, Google Nest Hub Max, Google Nest WiFi Pro
+
+It’s *very* important to note here that for Thread-based devices, the current recommended setup utilizes border routers from Apple or Google that match the type of phone you have. Please don’t worry - this doesn’t mean you have to add your devices to their ecosystems. Home Assistant will just use them to get access to the Thread radio network. The communication between the Home Assistant Matter controller and your Matter devices is completely encrypted and secure.
+
+Using Home Assistant itself as a Thread border router (for example, by using the Thread radio in the Home Assistant Yellow or Home Assistant SkyConnect) is still under development at this point and is only recommended for the more technically experienced users. Currently, due to a bug, it can only be set up if you use an Android phone. Setting the Home Assistant SkyConnect or Home Assistant Yellow up as a Thread border router is not yet possible for users in the iOS/Apple ecosystem. We recommend that iOS users place, for example, a HomePod Mini or other Apple border router near their Thread devices to get the required Thread coverage. Alternatively, you can stay with WiFi-based Matter devices.
+
+### Important
+
+You do *not* need any additional hardware or radios to work with Matter devices. Any device that is running Home Assistant Operating System, be it a Home Assistant Green, a Raspberry Pi, or any other installation, is already a fully functional Matter Controller. You can connect to WiFi-based Matter devices straight out of the box. Only if you plan to use Thread-based Matter devices do you need additional hardware in the form of a Thread border router.
+
+### Our tips for a frustration-free Matter experience:
+
+- Read the [documentation](/integrations/matter/) for Matter.
+- The easiest devices to get started with are WiFi-based Matter devices and Matter bridges. Do note that many brands with Matter bridges also have excellent native integrations in Home Assistant, and these integrations may offer features not yet available in the Matter standard.
+- You need to run the Home Assistant Operating System. Other installation types are not supported.
+- You need a standard (flat) network. Enterprise-like network setups with VLANs, mDNS responders, etc., break the expectations that Matter has about the network and are not supported. Keep it simple, and it will just work.
+- Enable IPv6 on your home router and Home Assistant Operating System. You don’t need to get IPv6 from your internet provider, as the Matter devices operate locally. But you do need to make sure it’s enabled on your home network.
+- If you are planning on using Thread-based Matter devices, you will need one or more [Thread border routers](/integrations/thread/) in your home. Home Assistant can work with third-party Thread border routers from Google or Apple as well, without having to add your devices to their ecosystem.
+- Always check the device packaging to make sure it has a Matter badge. Thread is also used for other standards, so a device with a Thread badge on the packaging does not have to be a Matter device.
+- Note that Matter is still in an early stage, so not every advanced feature you are used to may currently be implemented in this standard.
+
+- Use the latest version of both Home Assistant and the Home Assistant Companion apps, as we are improving Matter support and fixing bugs continuously. Using the latest version can make the difference in being able to add a device to Home Assistant or not.
+
+### Support
+
+If you run into problems, please join our [Discord server](/join-chat/), where we have a dedicated Matter channel. Both our developers and many very experienced members of our community are active there to help you out with your Matter setup. Please only open an issue on our GitHub issue tracker if you encounter an actual bug.
+
+## The Future of Matter in Home Assistant
+
+
+
+In the near future, we are focusing on improving the user experience to onboard and manage Matter devices. Especially adding new Matter devices to Home Assistant should be as stress-free as possible.
+
+

+
+This is what we are focusing on now:
+- Functionality to 'share' a device from Home Assistant to another Matter controller.
+- Showing basic device information and diagnostics about a device in the Home Assistant interface, as well as adding some troubleshooting options such as forcing a full interview.
+
+This is what we will be focusing on next:
+- A simpler flow to add Matter devices (a process called commissioning), where we guide our users step-by-step all the way from unboxing a device to being able to control it in Home Assistant. For now, we are focusing on the stable scenarios we mentioned previously. This means that we are improving the commissioning flow in our companion apps, relying on the Matter functionality built into your phone, and using (if necessary) Thread networks managed by the vendor of your phone (Google or Apple).
+- A better handling of sharing of devices between controllers (a functionality called multi-admin). Adding a brand new Matter device (commissioning) and sharing a device that is already controlled by a Matter controller (multi-admin) are not part of the same flow. This difference is dictated by the Matter standard and its security features; a current controller (admin) has to allow a device to join another controller. This is often misunderstood today, and we are trying to create a better flow that guides our users toward the right path for their devices.
+- We want to implement some missing features in the current platforms, such as light transitions and scenes.
+
+This is what we want to achieve in the long run:
+- The ability to use the Home Assistant SkyConnect or Home Assistant Yellow as a Thread border router to connect to Thread-based Matter devices instead of using Apple or Google Border routers.
+
+On top of this, we will continuously focus on extending the support for new devices as new device types are added to the specification or existing ones are extended. In some cases, manufacturers even contribute to Home Assistant themselves to ensure a new device type is supported.
+
+We are also continuously keeping the quality of our Matter integration up to the standard of Home Assistant and fixing the most impactful issues our users are facing. For example, right now, we are making sure Matter devices that lose power are handled better in Home Assistant.
+
+## Using Home Assistant Yellow or Home Assistant SkyConnect
+
+
+
+As we mentioned while talking about the recommended scenarios earlier, using the Home Assistant Yellow or Home Assistant SkyConnect for Thread is still in development and only recommended for technically experienced users.
+
+That’s why our current recommendation for Home Assistant Yellow and Home Assistant SkyConnect is to use the Zigbee firmware to power your Zigbee network. This is a stable solution that has worked reliably since the introduction of these products and offers a great experience.
+
+As we continue to work on Matter in Home Assistant, we’re now focused on ensuring that the Thread experience will catch up and become a first-class citizen, making it easy to connect to your Thread-based devices in Home Assistant without a third-party Thread border router. The Thread firmware is already fully functional under the hood, but we still have some work to do to make the experience of using Thread-based devices in Home Assistant feel good. As we mentioned in our chapter on the future of Matter in Home Assistant, we expect great strides in this area within the following months. Once the experience has improved, we will recommend using this Thread firmware to power your Thread network as an alternative to using third-party Thread border routers from Apple or Google.
+
+There is a third, experimental, firmware option that supports multiprotocol, which allows the Silicon Labs chip in these products to connect to both Zigbee and Thread networks with one radio. We announced our intent to release a firmware supporting multiprotocol when we launched Home Assistant Yellow and Home Assistant SkyConnect, and this firmware has been available since December 2022. It integrates the Silicon Labs SDK, which adds this support for multiprotocol. During the further development and testing of the multiprotocol firmware, we have concluded that while Silicon Labs’ multiprotocol works, it comes with technical limitations. These limitations mean users will not have the best experience compared to using dedicated Zigbee and Thread radios. That is why we do not recommend using this firmware, and it will remain an experimental feature of Home Assistant Yellow and Home Assistant SkyConnect. If you currently have the multiprotocol firmware installed but don’t actively use it to connect to Thread devices, we recommend that you [disable multiprotocol](https://skyconnect.home-assistant.io/procedures/disable-multiprotocol/).
+
+Nothing changes for current users of the multiprotocol firmware who are happy with their experience. The experimental multiprotocol firmware will remain available, but we will not recommend it to new users. Instead, we will focus on making sure the dedicated Zigbee and Thread firmwares deliver the best experience to users.
+
+## Thank you
+
+After our first year of implementing Matter, we’re very happy that the technical foundation is in good shape. We can now take the next steps to ensure the entire Matter experience is as good as it can possibly be! Thank you to all of the users who have been on this journey with us, have provided us with valuable feedback and bug reports, and have shared their experiences so we know how we can make Matter in Home Assistant even better. And thank you to all of the viewers of the live stream and everyone who sent in questions beforehand and during the stream; your input helps us make these streams the best they can be. And if you made it all the way down here - thank you for reading!
+
+If you have any more questions or experience problems with Matter in Home Assistant, please join our [Discord server](/join-chat/)! We have a dedicated Matter channel there, and our developers and many experienced members of our community can help you out.
+
\ No newline at end of file
diff --git a/source/_posts/2024-01-29-companion-app-for-ios-20241-carplay.markdown b/source/_posts/2024-01-29-companion-app-for-ios-20241-carplay.markdown
new file mode 100644
index 00000000000..282d57d72c2
--- /dev/null
+++ b/source/_posts/2024-01-29-companion-app-for-ios-20241-carplay.markdown
@@ -0,0 +1,86 @@
+---
+layout: post
+title: "Companion app for iOS 2024.1: CarPlay is here!"
+description: "Home Assistant arrives in CarPlay; open your garage with a simple tap!"
+date: 2024-01-29 00:00:02
+date_formatted: "January 29, 2024"
+author: Bruno Pantaleão
+comments: true
+categories: iOS Release-Notes
+og_image: /images/blog/2024-01-ios-carplay/ios-og.png
+---
+
+Hey, this is Bruno. I have recently joined Nabu Casa to work full-time on the Home Assistant iOS app (thanks Home Assistant Cloud subscribers!). Today I have big news: Home Assistant is now available on Apple CarPlay! The release is rolling out and should be hitting your iOS devices soon (version 2024.1).
+
+CarPlay support now gives Home Assistant users easy access to their devices and areas and the ability to create custom actions. Custom actions allow users to create advanced action sequences like unlocking the front door and turning on the porch lights. And all of this works across the multiple Home Assistant servers that you have configured in the app.
+
+
+
+

Big thanks to DXspark for helping us make the foundation of CarPlay and kicking off the project.
+
+
+
+## CarPlay features
+
+The app is divided into four tabs to easily access the different functionality. We’ve followed Apple’s guidelines to give the user a familiar experience that they know from other CarPlay apps.
+
+You don’t have to configure the CarPlay app separately. It will automatically pick up your Home Assistant servers as configured in your app.
+
+## Actions
+
+Actions are a concept in the Home Assistant iOS app that allows you to execute automation in Home Assistant. This means that you can execute any automation you want, such as:
+
+- “Open the garage and start heating my home to 22 degrees Celsius”
+- “Close the garage and announce in the kitchen that I arrived”
+- “Turn the front yard lights on and unlock the front door”
+
+These actions have been available in the Home Assistant for Apple Watch app and can be called from the Home Assistant widgets. With today’s release, you can also easily trigger them from your CarPlay dashboard. This is the feature that has already become part of my daily routine.
+
+If you haven’t created an Action yet, the CarPlay App can send a notification to your phone to guide you to get started.
+
+
+
+
+## Controls
+
+The controls tab will group your devices and entities by their domain. We have started small and included the most useful domains first:
+
+- Button
+- Cover
+- Input boolean
+- Input button
+- Light
+- Lock
+- Scene
+- Script
+- Switch
+
+For these domains, you can toggle lights and switches, activate buttons, script, scene actions, and of course, toggle your garage door or gate.
+
+
+
+
+## Areas
+
+The areas tab allows you to find your devices and entities based on their area. Quickly scroll through an area to see the current states and toggle devices.
+
+
+
+## Servers
+
+When you’re driving to your parents, you might want to be able to notify them or open their garage door as you arrive. With the “Servers” tab, you will be able to quickly change and control a different Home Assistant server.
+
+This feature builds upon the multiple server support that has been part of the Home Assistant iOS app for a couple of years now.
+
+
+
+I hope you will enjoy using Home Assistant on CarPlay. Please let us know what else you would like to see available for CarPlay!
+
+## Release notes
+
+- The app is now available for iOS 15+
+- CarPlay support was added for iOS 16+
+- The Bulgarian language was added
+- Improvements for iOS Actions so they’re easier to use
+- In macOS, the window size will be restored when you open the app again
+
diff --git a/source/_posts/2024-02-07-release-20242.markdown b/source/_posts/2024-02-07-release-20242.markdown
new file mode 100644
index 00000000000..6d9b72b6dbd
--- /dev/null
+++ b/source/_posts/2024-02-07-release-20242.markdown
@@ -0,0 +1,1307 @@
+---
+layout: post
+title: "2024.2: More voice, more icons, more integrations, more... everything!"
+description: "Improved drag 'n drop in automations, proximity, custom Assist responses, export your data, ZHA firmware updates, Matter diagnostics and actions, icons everywhere, and more!"
+date: 2024-02-07 00:00:00
+date_formatted: "February 7, 2024"
+author: Franck Nijhof
+author_twitter: frenck
+comments: true
+categories:
+ - Release-Notes
+ - Core
+og_image: /images/blog/2024-02/social.png
+---
+
+

+
+Home Assistant Core 2024.2! 🥰
+
+Undoubtedly, you've heard about last year's ["The Year of the Voice"](/blog/2022/12/20/year-of-voice/).
+2023 might be over, but we are definitely not done with voice yet! This release
+contains some very cool new features for voice.
+
+Not just that, we've also launched a [voice assistant contest](/blog/2024/01/17/voice-assistant-contest/)
+that you could join, and I'm happy to inform you that we will have another voice-related
+live stream on 21 February 2024, at 12:00 PST / 21:00 CET: [Chapter 6](https://www.youtube.com/watch?v=NQIv3nsu7dE)!
+
+But there is more in this release besides voice! There's drag 'n drop magic for
+our automation editor, and you can now update Zigbee devices directly
+from Home Assistant. We also have icons in more places 🤩, and quite a lot of
+new functionalities for Matter devices.
+
+In general, contributions to our open-source project have been amazing this
+month. I've never seen so many contributed bug fixes, improvements, and new
+features in a single release. Like... 21 new integrations! This is,
+without a doubt, the largest release we've ever put out.
+A big shout-out to everyone who helped! ❤️
+
+Enjoy the release!
+
+../Frenck
+
+_Oh! And don't forget Valentine's Day is coming up!_ 😘
+
+
+
+- [Better drag \& drop support for automations](#better-drag--drop-support-for-automations)
+- [Export data from the history dashboard](#export-data-from-the-history-dashboard)
+- [Improved error responses when using Assist](#improved-error-responses-when-using-assist)
+- [Custom Assist responses in automations using the sentence trigger](#custom-assist-responses-in-automations-using-the-sentence-trigger)
+- [All known Assist devices](#all-known-assist-devices)
+- [Updating your Zigbee devices](#updating-your-zigbee-devices)
+- [Matter diagnostics and actions](#matter-diagnostics-and-actions)
+- [Icons everywhere](#icons-everywhere)
+- [Integrations with authentication issues are now shown in the repairs dashboards](#integrations-with-authentication-issues-are-now-shown-in-the-repairs-dashboards)
+- [Revamped Proximity integration](#revamped-proximity-integration)
+- [Shipping on a new Python version](#shipping-on-a-new-python-version)
+- [Other noteworthy changes](#other-noteworthy-changes)
+- [New integrations](#new-integrations)
+- [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui)
+- [Release 2024.2.1 - February 9](#release-202421---february-9)
+- [Release 2024.2.2 - February 16](#release-202422---february-16)
+- [Release 2024.2.3 - February 22](#release-202423---february-22)
+- [Release 2024.2.4 - February 25](#release-202424---february-25)
+- [Release 2024.2.5 - February 27](#release-202425---february-27)
+- [Need help? Join the community!](#need-help-join-the-community)
+- [Backward-incompatible changes](#backward-incompatible-changes)
+- [Farewell to the following](#farewell-to-the-following)
+- [All changes](#all-changes)
+
+Don't forget to [join our release party live stream on YouTube](https://www.youtube.com/watch?v=8-YwXkgD3CY)
+7 February 2024, at 12:00 PST / 21:00 CET!
+
+
+
+## Better drag & drop support for automations
+
+Let's start with some old-fashioned drag 'n drop magic! 🪄
+
+As of this release, dragging and dropping triggers, conditions, and actions in
+the automation editor are _always_ enabled. Previously, you had to explicitly
+enable re-ordering in the automation editor settings, but now, it is just
+always active.
+
+But even more exciting is that you can now drag and drop elements into other
+nested elements! For example, you can now drag a condition into
+the condition of an if-then or choose action. 🤯
+
+

+
+## Export data from the history dashboard
+
+The following feature might be small, but it is a big deal for many. Home
+Assistant stores your data privately and locally; it is **your data**. To make
+this data more accessible, we've added a new feature to the history dashboard.
+
+You can now download the data you are viewing in the history dashboard. This
+allows you to further analyze the data in, for example, Excel or to visualize
+it in other ways.
+
+The button will export and download the data you currently view in the history
+dashboard as a [CSV file](https://en.wikipedia.org/wiki/Comma-separated_values).
+
+

+
+Thanks for this one [@balloob]!
+
+[@balloob]: https://github.com/balloob
+
+## Improved error responses when using Assist
+
+If you use [Assist](/voice_control/), our private voice assistant, you may have
+noticed that its responses were not meaningful when something was not understood.
+
+Some of the errors encountered while using Assist can easily be fixed on your
+side by adding aliases to entities or areas, exposing entities to Assist,
+or assigning entities and devices to the correct areas.
+
+So we are taking the first step to help you fix these errors: as of this release,
+Assist provides much better errors in case your intention is understood,
+but something else is missing (An unknown name, area, device class, or domain).
+
+

+
+## Custom Assist responses in automations using the sentence trigger
+
+Like almost every other component and feature of Home Assistant, Assist can be
+customized and extended to understand more sentences.
+
+A few releases ago, we introduced a very simple way to extend what Assist
+understands: The [sentence trigger](/docs/automation/trigger/#sentence-trigger)
+in our automation engine.
+
+Up until now, using a sentence trigger always led to the same Assist response:
+“Done”. In fact, the only way to define a custom response was to write complex
+custom sentences in YAML.
+
+This release introduces a new action to set a custom response in your
+sentence-triggered automations directly inside the automation editor.
+
+

+
+The response field accepts templates, so it can be used to build complex
+responses, for example, listing all your room temperatures.
+
+

+
+A very cool feature that might come in handy if you build an automation
+blueprint to submit as an entry for our [voice assistant contest](/blog/2024/01/voice-assistant-contest/)!
+
+## All known Assist devices
+
+Last addition for voice, we've added a small additional page to give you an
+overview of all the Assist devices you have active in your Home. You can find
+this on the {% my voice_assistants title="Assist configuration dashboard" %}
+by selecting the new "Assist devices" button.
+
+

+
+Or, use this My Home Assistant button below to navigate to the voice assistants
+configuration dashboard:
+
+{% my voice_assistants badge %}
+
+## Updating your Zigbee devices
+
+[ZHA](/integrations/zha) (Zigbee Home Automation, our built-in Zigbee integration)
+now provides update entities to Home Assistant!
+
+This means you can get notified when a device has a firmware update available,
+and you can trigger the update from Home Assistant!
+
+

+
+Noticed the weird version numbers? Unfortunately, that is how version numbers
+in the Zigbee standard work and look. We haven't figured out a way to translate
+them to something more human-readable format that matches what the manufacturer
+communicates.
+
+Currently, it supports updating Inovelli, OSRAM/Ledvance, Sonoff, and
+ThirdReality devices, and we are looking at adding support for more brands
+in the future. Be aware, Zigbee is a slow protocol, and firmware updates can
+take a long time (sometimes hours).
+
+## Matter diagnostics and actions
+
+Home Assistant works actively to provide the best support for [Matter](/integrations/matter)
+devices out of the box. To help with that, we have added more information and
+controls for your Matter devices in the UI.
+
+On the device page of the Matter device in Home Assistant, we will now show
+additional diagnostic information about the device. This information can be
+used to troubleshoot issues with the device or when reporting issues. Some
+examples include the network type the device uses, its addresses, and IDs,
+device types and its connected [fabrics](/integrations/matter#multi-fabric-join-to-multiple-controllers).
+
+

+
+Besides more information, you can also take new actions on the device.
+For example, ping the device to check if it is available, force a full
+device interview to sync all its information, remove it from another controller,
+and even a new button to share your Matter device from Home Assistant with
+another Matter controller.
+
+

+
+## Icons everywhere
+
+We completely changed how Home Assistant handles icons under the hood.
+A big effort from many people, with almost... no change! That is
+right, _almost_ everything looks just the same as before. 😁
+
+We did make some improvements! For example, integrations can now
+provide icons for things like fan speeds or thermostat presets. Also,
+service call actions can now have their own icon as well:
+
+

+
+Areas now have icons too! You can set them in the area configuration. They show
+up in the area selectors and in the area dashboard itself
+(in case you didn't upload a picture).
+
+

+
+## Integrations with authentication issues are now shown in the repairs dashboards
+
+When one of your integrations has authentication issues, Home Assistant
+will now report this in the {% my repairs title="repairs dashboard" %}.
+
+Previously, this was only visible on the integration dashboard, but now it shows
+up in the repairs dashboard, as this is the place where Home Assistant reports
+all issues with your system.
+
+

+
+## Revamped Proximity integration
+
+For this release, [@mib1185] completely revamped our [Proximity] integration.
+In case you are unfamiliar with it, it allows you to monitor the proximity of
+persons to a particular [zone]. It provides information on how close one is
+to a zone and if they are traveling towards or away from it.
+
+It is an extremely powerful tool for automations. It allows you to create
+automations based on the proximity of people. For example, if you are within
+a certain range from your home and traveling towards it, you could use
+Home Assistant to turn on the lights, open the garage door, turn up the heating,
+and start your favorite playlist in the living room. Welcome home! 🤗
+
+The best part? This integration is now available to set up from the UI!
+Not just that, but it now uses normal sensor entities that we are all already
+familiar with. This will make automating and displaying the data a breeze!
+
+

+
+Thanks [@mib1185]! You did an outstanding job on this one!
+
+If you are already using this integration, this change will come with the
+deprecation of the old entities. See our [backwards-incompatible changes](#backwards-incompatible-changes)
+for more information.
+
+[@mib1185]: https://github.com/mib1185
+[Proximity]: /integrations/proximity
+[zone]: /integrations/zone
+
+## Shipping on a new Python version
+
+This release ships running on Python 3.12! In case you are wondering, what is
+that? Well, Python is the programming language Home Assistant is written in.
+
+Why it matters? It provides many improvements to the foundation we are building
+Home Assistant on, most notably: It is faster! 🚀
+
+Don't worry! If you run the Home Assistant Operating System or are using the
+Home Assistant Container installation type: You won’t have to do anything, as we
+handle the upgrade to Python 3.12 for you. Just upgrade Home Assistant as
+you normally would, and you are good to go! 😎
+
+## Other noteworthy changes
+
+There are many more improvements in this release; here are some of the other
+noteworthy changes this release:
+
+- [@edenhaus] improved how we handle errors in our form fields. We no longer
+ show the technical coding gibberish that often showed up in the past. Nice!
+- When you [change the type of a switch entity] to, for example, a garage door
+ entity, you will now have the option to invert its behavior.
+ Thanks, [@emontnemery]!
+- The [Ecovacs] integration received lots of love from [@edenhaus] and now
+ has support for many Deebot vacuum models with tons of entities to automate
+ with. Nice job!
+- [@mib1185] added automatic cleanups of old/unused refresh tokens 🧹. This
+ means you will be logged out on a device that hasn't used Home Assistant for
+ 90 days. Clean and tidy!
+- The [Tuya] integration can now be set up directly using the Tuya Smart
+ or Smart Life app. No more need for developer accounts or complicated
+ procedures!
+- Using the [utility meter] integration on, for example, your solar inverter,
+ which turns off at night? You can now set the sensor to always be available,
+ even when the source entity is unavailable. Thanks, [@dougiteixeira]!
+- The [TP-Link Smart Home] integration now supports newer devices,
+ including [Tapo-branded] devices! Awesome job [@sdb9696], [@bdraco],
+ and [@rytilahti]!
+- [@AngellusMortis] added new sound event sensors introduced in
+ UniFi Protect version 2.11 to the [UniFi Protect] integration. Nice!
+- Are you a Jinja templating Ninja? [@TNTLarsn] added a new `bitwise_xor`
+ filter for you to use. Awesome!
+- The [Google Generative AI Conversation] allows using the [new Gemini Pro models](https://blog.google/products/bard/google-bard-gemini-pro-image-generation/),
+ including support for the Vision models. This allows you to use images in your
+ prompts too! See an example in the screenshot down below. Super impressive,
+ thanks [@tronikos]!
+
+
+
+The Google Generative AI Conversation integration using the new Gemini Pro Vision models to describe what is seen on the doorbell camera.
+
+
+[Google Generative AI Conversation]: /integrations/google_generative_ai_conversation
+[@tronikos]: https://github.com/tronikos
+[@AngellusMortis]: https://github.com/AngellusMortis
+[@bdraco]: https://github.com/bdraco
+[@dougiteixeira]: https://github.com/dougiteixeira
+[@edenhaus]: https://github.com/edenhaus
+[@emontnemery]: https://github.com/emontnemery
+[@mib1185]: https://github.com/mib1185
+[@rytilahti]: https://github.com/rytilahti
+[@sdb9696]: https://github.com/sdb9696
+[@TNTLarsn]: https://github.com/TNTLarsn
+[change the type of a switch entity]: /integrations/switch_as_x
+[Ecovacs]: /integrations/ecovacs
+[Tapo-branded]: /integrations/tplink_tapo
+[TP-Link Smart Home]: /integrations/tplink
+[Tuya]: /integrations/tuya
+[UniFi Protect]: /integrations/unifiprotect
+[utility meter]: /integrations/utility_meter
+
+## New integrations
+
+We welcome the following new integrations in this release:
+
+- **[AirTouch 5]**, added by [@danzel]
+ Control your AirTouch 5 ducted air conditioning systems.
+- **[Bang & Olufsen]**, added by [@mj23000]
+ Control your Bang & Olufsen Beolab and Beosound devices.
+- **[Bring]**, added by [@miaucl]
+ Use Bring to create shopping lists and share them with your family.
+- **[Elvia]**, added by [@ludeeus]
+ Import your historic energy usage from an Elvia-operated grid.
+- **[Epion]**, added by [@lhgravendeel]
+ Monitor your Epion air quality sensors.
+- **[Govee lights local]**, added by [@Galorhallen]
+ Control your Govee lights locally.
+- **[Home Assistant Analytics Insights]**, added by [@joostlek]
+ This integration allows you to monitor information from the public and open [Home Assistant Analytics](https://analytics.home-assistant.io/).
+- **[Hong Kong Observatory]**, added by [@MisterCommand]
+ Get weather information from the Hong Kong Observatory.
+- **[Huum]**, added by [@frwickst]
+ Control your Huum smart sauna heaters.
+- **[La Marzocco]**, added by [@zweckj]
+ Control your La Marzocco espresso machines.
+- **[LeaOne]**, added by [@bdraco]
+ Monitor your LeaOne health device under the Xiaogui and BAGAIL brands.
+- **[myUplink]**, added by [@pajzo]
+ Monitor myUplink-supported devices in Home Assistant.
+- **[Rabbit Air]**, added by [@al-s]
+ Locally control and monitor your Rabbit Air air purifiers.
+- **[Rainforest RAVEn]**, added by [@cottsay]
+ Pull in energy data from your Rainforest RAVEn energy monitor.
+- **[Romy]**, added by [@xeniter]
+ Control your Romy vacuum cleaners.
+- **[Tedee]**, added by [@zweckj]
+ Use your Tedee smart locks in Home Assistant.
+- **[Teslemetry]**, added by [@Bre77]
+ Pull in live telemetry data from your Tesla vehicle via the Tesla Fleet API.
+- **[TechnoVE]**, added by [@Moustachauve]
+ Control of TechnoVE Smart Charging Station using a local API.
+- **[Traccar server]**, added by [@ludeeus]
+ Track your GPS devices by pulling data from a Traccar server.
+
+[@al-s]: https://github.com/al-s
+[@bdraco]: https://github.com/bdraco
+[@Bre77]: https://github.com/Bre77
+[@cottsay]: https://github.com/cottsay
+[@danzel]: https://github.com/danzel
+[@frwickst]: https://github.com/frwickst
+[@Galorhallen]: https://github.com/Galorhallen
+[@joostlek]: https://github.com/joostlek
+[@lhgravendeel]: https://github.com/lhgravendeel
+[@ludeeus]: https://github.com/ludeeus
+[@miaucl]: https://github.com/miaucl
+[@MisterCommand]: https://github.com/MisterCommand
+[@mj23000]: https://github.com/mj23000
+[@Moustachauve]: https://github.com/Moustachauve
+[@pajzo]: https://github.com/pajzo
+[@xeniter]: https://github.com/xeniter
+[@zweckj]: https://github.com/zweckj
+[AirTouch 5]: /integrations/airtouch5
+[Bang & Olufsen]: /integrations/bang_olufsen
+[Bring]: /integrations/bring
+[Elvia]: /integrations/elvia
+[Epion]: /integrations/epion
+[Govee lights local]: /integrations/govee_light_local
+[Home Assistant Analytics Insights]: /integrations/analytics_insights
+[Hong Kong Observatory]: /integrations/hko
+[Huum]: /integrations/huum
+[La Marzocco]: /integrations/lamarzocco
+[LeaOne]: /integrations/leaone
+[myUplink]: /integrations/myuplink
+[Rabbit Air]: /integrations/rabbitair
+[Rainforest RAVEn]: /integrations/rainforest_raven
+[Romy]: /integrations/romy
+[TechnoVE]: /integrations/technove
+[Tedee]: /integrations/tedee
+[Teslemetry]: /integrations/teslemetry
+[Traccar server]: /integrations/traccar_server
+
+This release also has a new virtual integration. Virtual integrations are stubs
+that are handled by other (existing) integrations to help with findability.
+The following virtual integrations have been added:
+
+- **[City of Austin Utilities]**, provided by [Opower]
+- **[Tapo]**, provided by [TP-Link Smart Home]
+
+[City of Austin Utilities]: /integrations/coautilities
+[Opower]: /integrations/opower
+[Tapo]: /integrations/tplink_tapo
+[TP-Link Smart Home]: /integrations/tplink
+
+## Integrations now available to set up from the UI
+
+The following integrations are now available via the Home Assistant UI:
+
+- **[Ecovacs]**, done by [@edenhaus]
+- **[GPSD]**, done by [@jrieger]
+- **[Lupus Electronics LUPUSEC]**, done by [@suaveolent]
+- **[Lutron]**, done by [@wilburCforce]
+- **[Proximity]**, done by [@mib1185]
+- **[Time & Date]**, done by [@gjohansson-ST]
+
+[@edenhaus]: https://github.com/edenhaus
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@jrieger]: https://github.com/jrieger
+[@mib1185]: https://github.com/mib1185
+[@suaveolent]: https://github.com/suaveolent
+[@wilburCforce]: https://github.com/wilburCforce
+[Ecovacs]: /integrations/ecovacs
+[GPSD]: /integrations/gpsd
+[Lupus Electronics LUPUSEC]: /integrations/lupusec
+[Lutron]: /integrations/lutron
+[Proximity]: /integrations/proximity
+[Time & Date]: /integrations/time_date
+
+## Release 2024.2.1 - February 9
+
+- Catch APIRateLimit in Honeywell ([@mkmer] - [#107806])
+- Allow disabling home assistant watchdog ([@mdegat01] - [#109818])
+- Assist fixes ([@synesthesiam] - [#109889])
+- Bump Python matter server to 5.5.0 ([@marcelveldt] - [#109894])
+- Bump aioelectricitymaps to 0.4.0 ([@jpbede] - [#109895])
+- Skip polling of unavailable Matter nodes ([@marcelveldt] - [#109917])
+- Bump aio-geojson-geonetnz-volcano to 0.9 ([@exxamalte] - [#109940])
+- Handle Matter nodes that become available after startup is done ([@marcelveldt] - [#109956])
+- Allow modbus "scale" to be negative. ([@janiversen] - [#109965])
+- Don't blow up if config entries have unhashable unique IDs ([@emontnemery] - [#109966])
+- Bump pyMicrobot to 0.0.12 ([@spycle] - [#109970])
+- Allow modbus min/max temperature to be negative. ([@janiversen] - [#109977])
+- Bump deebot-client to 5.1.1 ([@edenhaus] - [#109994])
+- Allow modbus negative min/max value. ([@janiversen] - [#109995])
+- Bump aioecowitt to 2024.2.1 ([@edenhaus] - [#109999])
+- Avoid key_error in modbus climate with non-defined fan_mode. ([@janiversen] - [#110017])
+- Update frontend to 20240207.1 ([@bramkragten] - [#110039])
+- Matching duplicate named entities is now an error in Assist ([@synesthesiam] - [#110050])
+- Log error and continue on parsing issues of translated strings ([@mib1185] - [#110046])
+- Bump evohome-async to 0.4.18 ([@zxdavb] - [#110056])
+- Bump py-aosmith to 1.0.8 ([@bdr99] - [#110061])
+
+[#107806]: https://github.com/home-assistant/core/pull/107806
+[#109818]: https://github.com/home-assistant/core/pull/109818
+[#109883]: https://github.com/home-assistant/core/pull/109883
+[#109889]: https://github.com/home-assistant/core/pull/109889
+[#109894]: https://github.com/home-assistant/core/pull/109894
+[#109895]: https://github.com/home-assistant/core/pull/109895
+[#109917]: https://github.com/home-assistant/core/pull/109917
+[#109940]: https://github.com/home-assistant/core/pull/109940
+[#109956]: https://github.com/home-assistant/core/pull/109956
+[#109965]: https://github.com/home-assistant/core/pull/109965
+[#109966]: https://github.com/home-assistant/core/pull/109966
+[#109970]: https://github.com/home-assistant/core/pull/109970
+[#109977]: https://github.com/home-assistant/core/pull/109977
+[#109994]: https://github.com/home-assistant/core/pull/109994
+[#109995]: https://github.com/home-assistant/core/pull/109995
+[#109999]: https://github.com/home-assistant/core/pull/109999
+[#110017]: https://github.com/home-assistant/core/pull/110017
+[#110039]: https://github.com/home-assistant/core/pull/110039
+[#110046]: https://github.com/home-assistant/core/pull/110046
+[#110050]: https://github.com/home-assistant/core/pull/110050
+[#110056]: https://github.com/home-assistant/core/pull/110056
+[#110061]: https://github.com/home-assistant/core/pull/110061
+[@bdr99]: https://github.com/bdr99
+[@bramkragten]: https://github.com/bramkragten
+[@edenhaus]: https://github.com/edenhaus
+[@emontnemery]: https://github.com/emontnemery
+[@exxamalte]: https://github.com/exxamalte
+[@frenck]: https://github.com/frenck
+[@janiversen]: https://github.com/janiversen
+[@jpbede]: https://github.com/jpbede
+[@marcelveldt]: https://github.com/marcelveldt
+[@mdegat01]: https://github.com/mdegat01
+[@mib1185]: https://github.com/mib1185
+[@mkmer]: https://github.com/mkmer
+[@spycle]: https://github.com/spycle
+[@synesthesiam]: https://github.com/synesthesiam
+[@zxdavb]: https://github.com/zxdavb
+
+## Release 2024.2.2 - February 16
+
+- Better teardown and setup of Roborock connections ([@Lash-L] - [#106092])
+- Fix freebox pairing in bridge mode ([@agrenott] - [#106131])
+- Update pytechnove to 1.2.2 ([@Moustachauve] - [#110074])
+- Bump aio-geojson-usgs-earthquakes to 0.3 ([@exxamalte] - [#110084])
+- Bump yalexs to 1.11.1, fixing camera snapshots from Yale Home ([@abjorck] - [#110089])
+- Fix typo in sensor icons configuration ([@bieniu] - [#110133])
+- Only schedule august activity update when a new activity is seen ([@bdraco] - [#110141])
+- Bump yalexs to 1.11.2 ([@bdraco] - [#110144])
+- Properly report cover positions to prometheus ([@agoode] - [#110157])
+- Fix device class repairs issues placeholders in Group ([@silamon] - [#110181])
+- Bump datapoint to 0.9.9 + re-enable Met Office Integration ([@DustyArmstrong] - [#110206])
+- Bump evohome-async to 0.4.19 ([@zxdavb] - [#110225])
+- Fix state classes issue translation in Group ([@silamon] - [#110238])
+- Handle no data error in Electricity Maps config flow ([@jpbede] - [#110259])
+- Fix cpu percentage in System Monitor ([@gjohansson-ST] - [#110268])
+- Bump aiopegelonline to 0.0.8 ([@mib1185] - [#110274])
+- Bump PySwitchbot to 0.45.0 ([@bdraco] - [#110275])
+- Update xknxproject to 3.6.0 ([@farmio] - [#110282])
+- Fix TDBU naming in Motionblinds ([@starkillerOG] - [#110283])
+- Bump linear-garage-door to 0.2.9 ([@IceBotYT] - [#110298])
+- Fix Starline GPS count sensor ([@Anonym-tsk] - [#110348])
+- Fix zone radius calculation when radius is not 0 ([@bdraco] - [#110354])
+- Bump py-sucks to 0.9.9 ([@mib1185] - [#110397])
+- Bump async-upnp-client to 0.38.2 ([@StevenLooman] - [#110411])
+- Mitigate session closed error in Netgear LTE ([@tkdrob] - [#110412])
+- Update pylutron to 0.2.11 ([@wilburCforce] - [#109853])
+- Update pylutron to 0.2.12 ([@wilburCforce] - [#110414])
+- Fix Raspberry Pi utilities installation on Alpine 3.19 ([@agners] - [#110463])
+- Coerce to float in Sensibo climate react custom service ([@gjohansson-ST] - [#110508])
+- Bump orjson to 3.9.14 ([@bdraco] - [#110552])
+- Fix tplink not updating IP from DHCP discovery and discovering twice ([@bdraco] - [#110557])
+- Modbus, allow received int to be a float. ([@janiversen] - [#110648])
+- Fix elkm1 service calls running in the executor ([@bdraco] - [#110655])
+- Bump aiounifi to v71 ([@Kane610] - [#110658])
+- Bump deebot-client to 5.2.1 ([@edenhaus] - [#110683])
+
+[#106092]: https://github.com/home-assistant/core/pull/106092
+[#106131]: https://github.com/home-assistant/core/pull/106131
+[#109853]: https://github.com/home-assistant/core/pull/109853
+[#109883]: https://github.com/home-assistant/core/pull/109883
+[#110074]: https://github.com/home-assistant/core/pull/110074
+[#110078]: https://github.com/home-assistant/core/pull/110078
+[#110084]: https://github.com/home-assistant/core/pull/110084
+[#110089]: https://github.com/home-assistant/core/pull/110089
+[#110133]: https://github.com/home-assistant/core/pull/110133
+[#110141]: https://github.com/home-assistant/core/pull/110141
+[#110144]: https://github.com/home-assistant/core/pull/110144
+[#110157]: https://github.com/home-assistant/core/pull/110157
+[#110181]: https://github.com/home-assistant/core/pull/110181
+[#110206]: https://github.com/home-assistant/core/pull/110206
+[#110225]: https://github.com/home-assistant/core/pull/110225
+[#110238]: https://github.com/home-assistant/core/pull/110238
+[#110259]: https://github.com/home-assistant/core/pull/110259
+[#110268]: https://github.com/home-assistant/core/pull/110268
+[#110274]: https://github.com/home-assistant/core/pull/110274
+[#110275]: https://github.com/home-assistant/core/pull/110275
+[#110282]: https://github.com/home-assistant/core/pull/110282
+[#110283]: https://github.com/home-assistant/core/pull/110283
+[#110298]: https://github.com/home-assistant/core/pull/110298
+[#110348]: https://github.com/home-assistant/core/pull/110348
+[#110354]: https://github.com/home-assistant/core/pull/110354
+[#110397]: https://github.com/home-assistant/core/pull/110397
+[#110411]: https://github.com/home-assistant/core/pull/110411
+[#110412]: https://github.com/home-assistant/core/pull/110412
+[#110414]: https://github.com/home-assistant/core/pull/110414
+[#110463]: https://github.com/home-assistant/core/pull/110463
+[#110508]: https://github.com/home-assistant/core/pull/110508
+[#110552]: https://github.com/home-assistant/core/pull/110552
+[#110557]: https://github.com/home-assistant/core/pull/110557
+[#110648]: https://github.com/home-assistant/core/pull/110648
+[#110655]: https://github.com/home-assistant/core/pull/110655
+[#110658]: https://github.com/home-assistant/core/pull/110658
+[#110683]: https://github.com/home-assistant/core/pull/110683
+[@Anonym-tsk]: https://github.com/Anonym-tsk
+[@DustyArmstrong]: https://github.com/DustyArmstrong
+[@IceBotYT]: https://github.com/IceBotYT
+[@Kane610]: https://github.com/Kane610
+[@Lash-L]: https://github.com/Lash-L
+[@Moustachauve]: https://github.com/Moustachauve
+[@StevenLooman]: https://github.com/StevenLooman
+[@abjorck]: https://github.com/abjorck
+[@agners]: https://github.com/agners
+[@agoode]: https://github.com/agoode
+[@agrenott]: https://github.com/agrenott
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@edenhaus]: https://github.com/edenhaus
+[@exxamalte]: https://github.com/exxamalte
+[@farmio]: https://github.com/farmio
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@janiversen]: https://github.com/janiversen
+[@jpbede]: https://github.com/jpbede
+[@mib1185]: https://github.com/mib1185
+[@silamon]: https://github.com/silamon
+[@starkillerOG]: https://github.com/starkillerOG
+[@tkdrob]: https://github.com/tkdrob
+[@wilburCforce]: https://github.com/wilburCforce
+[@zxdavb]: https://github.com/zxdavb
+
+## Release 2024.2.3 - February 22
+
+- Fix reauth in Overkiz for config entries created prior to 2022.12 ([@iMicknl] - [#106251])
+- Handle deep standby and poweroffs of enigma2 devices gracefully ([@autinerd] - [#107462])
+- Add wake up timeout to Teslemetry ([@Bre77] - [#109037])
+- Fix set_temperature in Tessie climate platform ([@Bre77] - [#110445])
+- Fix uuid issue in Lutron ([@wilburCforce] - [#110524])
+- Update rokuecp to 0.19.1 ([@ctalkington] - [#110670])
+- Fix scene activation with climate entities with `None` attribute values ([@mib1185] - [#110684])
+- Remove matplotlib pinning due to Python 3.12 incompatibility ([@sbyx] - [#110706])
+- Bump roombapy to 1.6.12 ([@mib1185] - [#110762])
+- Ensure Tile timestamps are reported as UTC ([@bachya] - [#110773])
+- Detect reached API rate limit in Tankerkoenig ([@mib1185] - [#110432])
+- Bump aiotankerkoenig to 0.4.1 ([@jpbede] - [#110840])
+- Update govee-local-api library to 1.4.4 ([@Galorhallen] - [#110854])
+- Allow loading of more then 1 defined Apprise URL ([@caronc] - [#110868])
+- Reolink continue setup when internet blocked ([@starkillerOG] - [#110888])
+- Bump deluge-client to 1.10.0 ([@tkdrob] - [#110663])
+- Bump deluge-client to 1.10.2 ([@dsander] - [#110905])
+- Bump reolink-aio to 0.8.8 ([@starkillerOG] - [#110959])
+- Reset error state when Ecovacs bot is operational again ([@mib1185] - [#110962])
+- Bump motionblinds to 0.6.21 ([@starkillerOG] - [#110970])
+- Bump holidays to 0.43 ([@gjohansson-ST] - [#111039])
+- Fixes UniFi Protect light state check ([@AngellusMortis] - [#111058])
+- Bump pywebpush to 1.14.1 ([@thecode] - [#111082])
+- Bump aioairzone to v0.7.4 ([@Noltari] - [#111105])
+- Bump deebot-client to 5.2.2 ([@edenhaus] - [#111112])
+- Ignore cloudhook already removed in mobile app ([@joostlek] - [#111122])
+
+[#106251]: https://github.com/home-assistant/core/pull/106251
+[#107462]: https://github.com/home-assistant/core/pull/107462
+[#109037]: https://github.com/home-assistant/core/pull/109037
+[#109883]: https://github.com/home-assistant/core/pull/109883
+[#110078]: https://github.com/home-assistant/core/pull/110078
+[#110432]: https://github.com/home-assistant/core/pull/110432
+[#110445]: https://github.com/home-assistant/core/pull/110445
+[#110524]: https://github.com/home-assistant/core/pull/110524
+[#110663]: https://github.com/home-assistant/core/pull/110663
+[#110670]: https://github.com/home-assistant/core/pull/110670
+[#110684]: https://github.com/home-assistant/core/pull/110684
+[#110706]: https://github.com/home-assistant/core/pull/110706
+[#110720]: https://github.com/home-assistant/core/pull/110720
+[#110762]: https://github.com/home-assistant/core/pull/110762
+[#110773]: https://github.com/home-assistant/core/pull/110773
+[#110840]: https://github.com/home-assistant/core/pull/110840
+[#110854]: https://github.com/home-assistant/core/pull/110854
+[#110868]: https://github.com/home-assistant/core/pull/110868
+[#110888]: https://github.com/home-assistant/core/pull/110888
+[#110905]: https://github.com/home-assistant/core/pull/110905
+[#110959]: https://github.com/home-assistant/core/pull/110959
+[#110962]: https://github.com/home-assistant/core/pull/110962
+[#110970]: https://github.com/home-assistant/core/pull/110970
+[#111035]: https://github.com/home-assistant/core/pull/111035
+[#111039]: https://github.com/home-assistant/core/pull/111039
+[#111058]: https://github.com/home-assistant/core/pull/111058
+[#111082]: https://github.com/home-assistant/core/pull/111082
+[#111105]: https://github.com/home-assistant/core/pull/111105
+[#111112]: https://github.com/home-assistant/core/pull/111112
+[#111122]: https://github.com/home-assistant/core/pull/111122
+[@AngellusMortis]: https://github.com/AngellusMortis
+[@Bre77]: https://github.com/Bre77
+[@Galorhallen]: https://github.com/Galorhallen
+[@Noltari]: https://github.com/Noltari
+[@autinerd]: https://github.com/autinerd
+[@bachya]: https://github.com/bachya
+[@caronc]: https://github.com/caronc
+[@ctalkington]: https://github.com/ctalkington
+[@dsander]: https://github.com/dsander
+[@edenhaus]: https://github.com/edenhaus
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@iMicknl]: https://github.com/iMicknl
+[@joostlek]: https://github.com/joostlek
+[@jpbede]: https://github.com/jpbede
+[@mib1185]: https://github.com/mib1185
+[@sbyx]: https://github.com/sbyx
+[@starkillerOG]: https://github.com/starkillerOG
+[@thecode]: https://github.com/thecode
+[@tkdrob]: https://github.com/tkdrob
+[@wilburCforce]: https://github.com/wilburCforce
+
+## Release 2024.2.4 - February 25
+
+- Return group unit of measurement when device_class is None ([@PoppyPop] - [#110973]) ([group docs])
+- Bump roombapy to 1.6.13 ([@Orhideous] - [#111187]) ([roomba docs])
+- Bump orjson to 3.9.15 ([@bdraco] - [#111233])
+- Set Lutron switch to device name ([@joostlek] - [#111293]) ([lutron docs])
+- Bump opower to 0.3.0 ([@swartzd] - [#109248]) ([opower docs])
+- Bump opower to 0.3.1 ([@benhoff] - [#111307])
+- Fix another name missing in wyoming getLogger ([@llluis] - [#111390]) ([wyoming docs])
+- Update caldav to 1.3.9 ([@cdce8p] - [#111429]) ([caldav docs])
+- Update guppy3 to 3.1.4.post1 ([@cdce8p] - [#111430]) ([profiler docs])
+- Bump openwebifpy to 4.2.4 ([@autinerd] - [#110676]) ([enigma2 docs])
+
+[@autinerd]: https://github.com/autinerd
+[enigma2 docs]: /integrations/enigma2/
+[#110676]: https://github.com/home-assistant/core/pull/110676
+[#109248]: https://github.com/home-assistant/core/pull/109248
+[#109883]: https://github.com/home-assistant/core/pull/109883
+[#110078]: https://github.com/home-assistant/core/pull/110078
+[#110720]: https://github.com/home-assistant/core/pull/110720
+[#110973]: https://github.com/home-assistant/core/pull/110973
+[#111133]: https://github.com/home-assistant/core/pull/111133
+[#111187]: https://github.com/home-assistant/core/pull/111187
+[#111233]: https://github.com/home-assistant/core/pull/111233
+[#111293]: https://github.com/home-assistant/core/pull/111293
+[#111307]: https://github.com/home-assistant/core/pull/111307
+[#111390]: https://github.com/home-assistant/core/pull/111390
+[#111429]: https://github.com/home-assistant/core/pull/111429
+[#111430]: https://github.com/home-assistant/core/pull/111430
+[@Orhideous]: https://github.com/Orhideous
+[@PoppyPop]: https://github.com/PoppyPop
+[@bdraco]: https://github.com/bdraco
+[@benhoff]: https://github.com/benhoff
+[@cdce8p]: https://github.com/cdce8p
+[@frenck]: https://github.com/frenck
+[@joostlek]: https://github.com/joostlek
+[@llluis]: https://github.com/llluis
+[@swartzd]: https://github.com/swartzd
+[abode docs]: /integrations/abode/
+[caldav docs]: /integrations/caldav/
+[group docs]: /integrations/group/
+[lutron docs]: /integrations/lutron/
+[opower docs]: /integrations/opower/
+[profiler docs]: /integrations/profiler/
+[roomba docs]: /integrations/roomba/
+[wyoming docs]: /integrations/wyoming/
+
+## Release 2024.2.5 - February 27
+
+- Add title to reauthenticate integration issue ([@timmo001] - [#111275])
+
+[#111275]: https://github.com/home-assistant/core/pull/111275
+[@timmo001]: https://github.com/timmo001
+
+## Need help? Join the community!
+
+Home Assistant has a great community of users who are all more than willing
+to help each other out. So, join us!
+
+Our very active [Discord chat server](/join-chat) is an excellent place to be
+at, and don't forget to join our amazing [forums](https://community.home-assistant.io/).
+
+Found a bug or issue? Please report it in our [issue tracker](https://github.com/home-assistant/core/issues),
+to get it fixed! Or, check [our help page](/help) for guidance for more
+places you can go.
+
+Are you more into email? [Sign-up for our Building the Open Home Newsletter](/newsletter)
+to get the latest news about features, things happening in our community and
+other news about building an Open Home; straight into your inbox.
+
+## Backward-incompatible changes
+
+{% details "Authentication" %}
+
+We changed the way refresh tokens are handled. Refresh tokens are part of what
+keeps you logged in to Home Assistant.
+
+Refresh tokens will be automatically deleted when unused. A refresh token
+is considered unused if it has not been used for a login within 90 days.
+
+If your logged-in session hasn’t been used for 90 days, you will be logged out.
+You will need to log in again.
+
+We recommend using [Long-lived access tokens](https://developers.home-assistant.io/docs/auth_api/#long-lived-access-token)
+if you need a permanent token.
+
+([@mib1185] - [#108428]) ([documentation](/docs/authentication/))
+
+[@mib1185]: https://github.com/mib1185
+[#108428]: https://github.com/home-assistant/core/pull/108428
+
+{% enddetails %}
+
+{% details "Blink" %}
+
+The options flow that gave the option to set a custom scan interval has been
+removed.
+
+Adjustable scan interval is no longer allowed, but the option has
+had no effect on the integration since 2023.11.
+
+You can use an automation as an alternative to create a custom polling rate
+([documentation](/common-tasks/general/#defining-a-custom-polling-interval)).
+Updating one entity in a blink configuration will update all entities in each
+blink configuration.
+
+([@mkmer] - [#106735]) ([documentation](/integrations/blink))
+
+[@mkmer]: https://github.com/mkmer
+[#106735]: https://github.com/home-assistant/core/pull/106735
+
+---
+
+Update Wi-Fi diagnostic to match new API units - previously Blink reported RSSI
+dBm, now they report generic 0-5 for signal strength.
+
+([@mkmer] - [#107539]) ([documentation](/integrations/blink))
+
+[@mkmer]: https://github.com/mkmer
+[#107539]: https://github.com/home-assistant/core/pull/107539
+
+{% enddetails %}
+
+{% details "Cisco Webex Teams" %}
+
+This integration has been disabled. The upstream libraries used by
+Home Assistant are not compatible with Python 3.12.
+
+This compatibility issue has been [reported upstream](https://github.com/WebexCommunity/WebexPythonSDK/issues/139).
+
+([@frenck] - [#108163]) ([documentation](/integrations/cisco_webex_teams))
+
+[@frenck]: https://github.com/frenck
+[#108163]: https://github.com/home-assistant/core/pull/108163
+
+{% enddetails %}
+
+{% details "EZVIZ" %}
+
+The services `ezviz.ptz`, `ezviz.sound_alarm`, and `alarm_sound` have been moved
+to button and select entities in release 2023.8. Support for the deprecated
+services has now been completely removed.
+
+If you are using these services in automations or scripts, you will need to
+update them to match this change.
+
+([@jpbede] - [#107582]) ([documentation](/integrations/ezviz))
+
+[@jpbede]: https://github.com/jpbede
+[#107582]: https://github.com/home-assistant/core/pull/107582
+
+{% enddetails %}
+
+{% details "Google Generative AI Conversation" %}
+
+Any previous integration setups might have to be recreated or reconfigured with
+the new `models/gemini-pro` instead of the legacy `models/chat-bison-001`.
+
+([@tronikos] - [#105789]) ([documentation](/integrations/google_generative_ai_conversation))
+
+[@tronikos]: https://github.com/tronikos
+[#105789]: https://github.com/home-assistant/core/pull/105789
+
+{% enddetails %}
+
+{% details "HomeWizard Energy" %}
+
+The Gas meter ID sensor is removed and the meter ID is now shown as a serial
+number in the device info panel instead.
+
+([@DCSBL] - [#100684]) ([documentation](/integrations/homewizard))
+
+[@DCSBL]: https://github.com/DCSBL
+[#100684]: https://github.com/home-assistant/core/pull/100684
+
+{% enddetails %}
+
+{% details "Honeywell Total Connect Comfort (US)" %}
+
+The preset mode was returning "unknown" rather than "none".
+Any references to `preset_mode` may need to be updated.
+
+([@mkmer] - [#108599]) ([documentation](/integrations/honeywell))
+
+[@mkmer]: https://github.com/mkmer
+[#108599]: https://github.com/home-assistant/core/pull/108599
+
+{% enddetails %}
+
+{% details "Huawei LTE" %}
+
+The services `huawei_lte.clear_traffic_statistics` and `huawei_lte.reboot` have
+been moved to button entities in release 2023.8. Support for the deprecated
+services has now been completely removed.
+
+If you are using these services in automations or scripts, you will need to
+update them to match this change.
+
+([@jpbede] - [#107578]) ([documentation](/integrations/huawei_lte))
+
+[@jpbede]: https://github.com/jpbede
+[#107578]: https://github.com/home-assistant/core/pull/107578
+
+{% enddetails %}
+
+{% details "JustNimbus" %}
+
+The following sensors have been removed from the JustNimbus integration
+since they're no longer available through JustNimbus' API:
+
+- Pump starts
+- Pump hours
+- Error code
+- Total replenished
+- Pump flow
+- Drink flow
+
+The following sensors have been renamed:
+
+- Total saved (`total_saved`) -> Total saved (`water_saved`)
+- Total use (`totver`) -> Total use (`water_used`)
+- Maximum reservoir content (`reservoir_content_max`) -> Reservoir capacity (`reservoir_capacity`)
+
+Automations or scripts using any of the removed or renamed entities should be
+updated. Once updated, the old entities can be safely removed.
+
+([@kvanzuijlen] - [#99212]) ([documentation](/integrations/justnimbus))
+
+[@kvanzuijlen]: https://github.com/kvanzuijlen
+[#99212]: https://github.com/home-assistant/core/pull/99212
+
+{% enddetails %}
+
+{% details "Litter-Robot" %}
+
+The services `vacuum.turn_on` and `vacuum.turn_off` were deprecated in 2023.11.
+Support for the deprecated services has now been completely removed.
+
+If you are still using them, please adjust your automations and scripts and
+use `vacuum.start` and `vacuum.stop` instead.
+
+([@jpbede] - [#107882]) ([documentation](/integrations/litterrobot))
+
+[@jpbede]: https://github.com/jpbede
+[#107882]: https://github.com/home-assistant/core/pull/107882
+
+{% enddetails %}
+
+{% details "Lutron" %}
+
+The Lutron integration previously created fans as light entities. This has been
+changed to create actual fan entities instead.
+
+If you have automations, scripts, scenes, or dashboards that used these light
+entities, you will need to update them to use the new fan entities.
+
+([@wilburCforce] - [#107402]) ([documentation](/integrations/lutron))
+
+[@wilburCforce]: https://github.com/wilburCforce
+[#107402]: https://github.com/home-assistant/core/pull/107402
+
+{% enddetails %}
+
+{% details "MELCloud" %}
+
+The daily energy sensors have been removed to prevent being throttled by the
+external API. This mostly affects ATW devices.
+
+For ATA devices, this sensor is also removed. However, the total energy consumed
+(if your device supports that) remains available. The latter supports long-term
+statistics, providing insights into daily energy usage via the energy dashboard
+or statistic card.
+
+([@vilppuvuorinen] - [#109832]) ([documentation](/integrations/melcloud))
+
+[@vilppuvuorinen]: https://github.com/vilppuvuorinen
+[#109832]: https://github.com/home-assistant/core/pull/109832
+
+{% enddetails %}
+
+{% details "Met Office" %}
+
+This integration has been disabled. The upstream libraries used by
+Home Assistant are not compatible with Python 3.12.
+
+This compatibility issue has been [reported upstream](https://github.com/EJEP/datapoint-python/issues/183).
+
+([@frenck] - [#108163]) ([documentation](/integrations/metoffice))
+
+[@frenck]: https://github.com/frenck
+[#108163]: https://github.com/home-assistant/core/pull/108163
+
+{% enddetails %}
+
+{% details "MQTT" %}
+
+MQTT `sensor` or `binary_sensor` configuration with an `entity_category`
+explicitly set to `config` will fail to set up. Maintainers should set the
+`entity_category` attribute to `diagnostic` or omit the config attribute.
+
+[Related developer blogpost](https://developers.home-assistant.io/blog/2021/10/26/config-entity/)
+
+([@jbouwh] - [#107199]) ([documentation](/integrations/mqtt))
+
+[@jbouwh]: https://github.com/jbouwh
+[#107199]: https://github.com/home-assistant/core/pull/107199
+
+---
+
+When an MQTT entity has a device name equal to the entity name or starts with
+the device name, this will no longer be corrected.
+
+When entities like these are created, they will have device and entity names in
+the friendly name. Suppose the device name is omitted because it is the same
+as the entity name. In that case, the entity name attribute should be null
+in the JSON payload or YAML configuration.
+
+[Related developer blogpost](https://developers.home-assistant.io/blog/2023/07/21/change-naming-mqtt-entities)
+
+([@jbouwh] - [#107188]) ([documentation](/integrations/mqtt))
+
+[@jbouwh]: https://github.com/jbouwh
+[#107188]: https://github.com/home-assistant/core/pull/107188
+
+---
+
+The support for MQTT vacuum entities with a `legacy` schema is removed after 6
+months of deprecation. Users can use the `state` schema instead,
+which is now the default.
+
+([@jbouwh] - [#107274]) ([documentation](/integrations/mqtt))
+
+[@jbouwh]: https://github.com/jbouwh
+[#107274]: https://github.com/home-assistant/core/pull/107274
+
+{% enddetails %}
+
+{% details "Proximity" %}
+
+The proximity entity (`proximity.*`) is deprecated and will be removed in 2024.8.
+It is superseded by sensor entities.
+
+For each tracked person or device, one sensor for the distance and the
+direction of travel to/from the monitored zone is created. Further, for each
+Proximity configuration, one sensor that shows the nearest device or person
+and its distance and direction of travel to the monitored zone is created.
+
+([@mib1185] - [#108730]) ([documentation](/integrations/proximity))
+
+[@mib1185]: https://github.com/mib1185
+[#108730]: https://github.com/home-assistant/core/pull/108730
+
+{% enddetails %}
+
+{% details "Renson" %}
+
+The start time of day and start time of night sensors have been replaced by
+time entities. If you used these sensors in automations or scripts, you will
+need to update them to use the new time entities.
+
+([@jimmyd-be] - [#105031]) ([documentation](/integrations/renson))
+
+[@jimmyd-be]: https://github.com/jimmyd-be
+[#105031]: https://github.com/home-assistant/core/pull/105031
+
+{% enddetails %}
+
+{% details "RESTful Command" %}
+
+Call to RESTful command services will no longer silently fail and will raise an
+exception on, for example, timeout or decoding errors.
+
+You could consider using [`continue_on_error`](/docs/scripts/#continuing-on-error)
+for scripts and automations that use RESTful commands that are allowed to fail
+occasionally.
+
+([@RoboMagus] - [#97208]) ([documentation](/integrations/rest_command))
+
+[@RoboMagus]: https://github.com/RoboMagus
+[#97208]: https://github.com/home-assistant/core/pull/97208
+
+{% enddetails %}
+
+{% details "Roborock" %}
+
+The service `vacuum.start_pause` was deprecated in 2023.8. Support for the
+deprecated service has now been completely removed.
+
+If you are still using this service, please adjust your automations and scripts,
+to use `vacuum.pause` or `vacuum.start` instead.
+
+([@jpbede] - [#107895]) ([documentation](/integrations/roborock))
+
+[@jpbede]: https://github.com/jpbede
+[#107895]: https://github.com/home-assistant/core/pull/107895
+
+{% enddetails %}
+
+{% details "Sensors" %}
+
+Setting `last_reset` for entities with a `state_class` other than `total` is
+no longer supported. Please update your configuration if `state_class`
+is manually configured (for example, in templates or when using customize to
+override this attribute).
+
+([@jpbede] - [#108391]) ([documentation](/integrations/sensor))
+
+[@jpbede]: https://github.com/jpbede
+[#108391]: https://github.com/home-assistant/core/pull/108391
+
+{% enddetails %}
+
+{% details "Swiss public transport" %}
+
+The state value of the sensor is now a standardized timestamp.
+Further, all `timestamps` and `durations` in the additional fields are now also
+proper datetime/durations.
+
+([@miaucl] - [#12341064855]) ([documentation](/integrations/swiss_public_transport))
+
+[@miaucl]: https://github.com/miaucl
+[#106485]: https://github.com/home-assistant/core/pull/106485
+
+{% enddetails %}
+
+{% details "TP-Link Smart Home" %}
+
+To prevent overloading the power strips, the energy data is now polled every
+60 seconds. If you need to poll the data faster, please use an automation that
+calls the `homeassistant.update_entity` service.
+
+([@bdraco] - [#104208]) ([documentation](/integrations/tplink))
+
+[@bdraco]: https://github.com/bdraco
+[#104208]: https://github.com/home-assistant/core/pull/104208
+
+{% enddetails %}
+
+{% details "Traccar" %}
+
+The YAML configuration for the Traccar integration has been deprecated
+and will be removed in Home Assistant 2024.8.0. Your YAML configuration will
+be automatically imported to the new [Traccar Server](/integrations/traccar_server)
+integration.
+
+If you previously used the `scan_interval` option, this is not being imported.
+If you are in need of a custom polling interval, you can use an automation
+to define your own custom polling behavior.
+[Learn more about that here.](/common-tasks/general/#defining-a-custom-polling-interval)
+
+([@ludeeus] - [#109226]) ([documentation](/integrations/traccar_server))
+
+[@ludeeus]: https://github.com/ludeeus
+[#109226]: https://github.com/home-assistant/core/pull/109226
+
+{% enddetails %}
+
+{% details "Tuya" %}
+
+Tuya has provided an easier and improved login method for Home Assistant users.
+
+Having a developer account with Tuya is no longer required; instead, you can
+scan a QR code with your Tuya Smart or Smart Life app to authenticate it
+with Home Assistant.
+
+After updating to this release, Home Assistant will ask you to re-authenticate
+your Tuya Smart or Smart Life account using this new method.
+
+([@frenck] - [#109155]) ([documentation](/integrations/tuya))
+
+[@frenck]: https://github.com/frenck
+[#109155]: https://github.com/home-assistant/core/pull/109155
+
+---
+
+The services `vacuum.turn_on` and `vacuum.turn_off` were deprecated in 2023.8.
+Support for the deprecated services has now been completely removed.
+
+If still use them, please adjust your automations and scripts and
+use `vacuum.start` and `vacuum.stop` instead.
+
+([@jpbede] - [#107896]) ([documentation](/integrations/tuya))
+
+[@jpbede]: https://github.com/jpbede
+[#107896]: https://github.com/home-assistant/core/pull/107896
+
+---
+
+Previously, Tuya would fall back to using the metric system if the temperature
+unit was not reported by a climate device. This behavior has been changed to
+use the default unit configured on your system instead.
+
+([@DellanX] - [#108050]) ([documentation](/integrations/tuya))
+
+[@DellanX]: https://github.com/DellanX
+[#108050]: https://github.com/home-assistant/core/pull/108050
+
+{% enddetails %}
+
+{% details "Webhooks" %}
+
+Since version 2023.7 you have been informed that the "local only" option of
+webhooks will become the default. With this release this change is now put
+into effect. Please, if needed, adjust your automation triggers.
+
+([@jpbede] - [#107670]) ([documentation](/integrations/webhook))
+
+[@jpbede]: https://github.com/jpbede
+[#107670]: https://github.com/home-assistant/core/pull/107670
+
+{% enddetails %}
+
+{% details "Withings" %}
+
+In withings, the unit of measurement of all duration-related sensors
+(for example, sleep, goal, and active time today) has been changed from
+measuring in seconds to measuring in either hours or minutes.
+
+If you want to measure in a different unit, please change the
+preferred unit of measurement in the entity settings.
+
+([@joostlek]) ([documentation](/integrations/withings))
+
+[@joostlek]: https://github.com/joostlek
+
+{% enddetails %}
+
+{% details "Z-Wave" %}
+
+The default rounding of numeric sensors to two decimals has been removed.
+
+We now let the device and driver decide what precision should be reported. This
+allows devices with greater precision to report accurately.
+
+You can change the display precision in the UI for the sensor or use a template
+sensor if you want to change the precision.
+
+([@MartinHjelmare] - [#107100]) ([documentation](/integrations/zwave_js))
+
+[@MartinHjelmare]: https://github.com/MartinHjelmare
+[#107100]: https://github.com/home-assistant/core/pull/107100
+
+---
+
+Set suggested precision to 0 decimals for voltage sensors with a native unit in V.
+This will uniform the display precision of voltage sensors where there otherwise
+seems to be a variety of precision reported from different devices.
+
+If you want to change the precision, you can do that in the sensor options in the
+UI or with a template sensor.
+
+([@MartinHjelmare] - [#107116]) ([documentation](/integrations/zwave_js))
+
+[@MartinHjelmare]: https://github.com/MartinHjelmare
+[#107116]: https://github.com/home-assistant/core/pull/107116
+
+---
+
+The Fan and Dry climate Preset modes have been removed after a period of
+deprecation. If you haven't done so, you should update your automations or
+scripts to use the corresponding Dry and Fan **HVAC modes** instead.
+
+([@jbouwh] - [#108124]) ([documentation](/integrations/zwave_js))
+
+[@jbouwh]: https://github.com/jbouwh
+[#108124]: https://github.com/home-assistant/core/pull/108124
+
+{% enddetails %}
+
+If you are a custom integration developer and want to learn about breaking
+changes and new features available for your integration: Be sure to follow our
+[developer blog][devblog]. The following are the most notable for this release:
+
+- [Changes to FlowManager.async_show_progress](https://developers.home-assistant.io/blog/2024/01/11/async-show-progress-changes)
+- [Changes to light color mode when lights display an effect](https://developers.home-assistant.io/blog/2024/01/23/light-color-mode-changes/)
+- [Deprecate invalid use of sensor unit of measurement and state class](https://developers.home-assistant.io/blog/2024/01/17/deprecate-invalid-sensor-uom-state-class-use)
+- [Enumerating services](https://developers.home-assistant.io/blog/2024/01/22/async_services_for_domain)
+- [Icon translations](https://developers.home-assistant.io/blog/2024/01/19/icon-translations)
+- [Introducing entity translation placeholders](https://developers.home-assistant.io/blog/2024/01/19/entity-translations-placeholders)
+- [New entity features in Climate entity](https://developers.home-assistant.io/blog/2024/01/24/climate-climateentityfeatures-expanded)
+- [Properties changes for ha-state-icon](https://developers.home-assistant.io/blog/2024/01/30/ha-state-icon-properties-changes)
+
+[devblog]: https://developers.home-assistant.io/blog/
+
+## Farewell to the following
+
+The following integrations are also no longer available as of this release:
+
+- **Facebox** has been removed. It is no longer possible to get API keys,
+ and thus, it is no longer possible to use this integration.
+ ([@reedy] - [#107005])
+- **Legrand Home+ Control** has been removed as their API shut down in December.
+ Use [the Netatmo integration](/integrations/netatmo/) as an alternative to
+ integrate your Legrand Home+ Control devices.
+ ([@jpbede] - [#107587])
+- **Life360** has been removed. They are now actively blocking third-party
+ access, including Home Assistant. The [Home Assistant Companion app](https://companion.home-assistant.io/)
+ is a good and (above all) privacy-friendly alternative.
+ ([@pnbruckner] - [#107805])
+
+[@jpbede]: https://github.com/jpbede
+[@pnbruckner]: https://github.com/pnbruckner
+[@reedy]: https://github.com/reedy
+[#107005]: https://github.com/home-assistant/core/pull/107005
+[#107587]: https://github.com/home-assistant/core/pull/107587
+[#107805]: https://github.com/home-assistant/core/pull/107805
+
+## All changes
+
+Of course, there is a lot more in this release. You can find a list of
+all changes made here: [Full changelog for Home Assistant Core 2024.2](/changelogs/core-2024.2)
diff --git a/source/_posts/2024-02-15-nabu-casa-joins-z-wave-alliance.markdown b/source/_posts/2024-02-15-nabu-casa-joins-z-wave-alliance.markdown
new file mode 100644
index 00000000000..5b673f737d4
--- /dev/null
+++ b/source/_posts/2024-02-15-nabu-casa-joins-z-wave-alliance.markdown
@@ -0,0 +1,37 @@
+---
+layout: post
+title: "Nabu Casa joins the Z-Wave Alliance"
+description: "We have joined the Z-Wave Alliance, thanks to revenue from Home Assistant Cloud subscribers, and will start the certification process for Z-Wave JS."
+date: 2024-02-15 00:00:01
+date_formatted: "February 15, 2024"
+author: Paulus Schoutsen
+comments: true
+categories: Z-Wave
+og_image: /images/blog/2024-02-zwave/nabucasa-zwa.png
+---
+
+TL;DR: We have joined the Z-Wave Alliance, thanks to revenue from Home Assistant Cloud subscribers, and will start the certification process for Z-Wave JS.
+
+

+
+Z-Wave is a local smart home standard that has been around since 1999. Thanks to operating on sub-Ghz frequencies, it is able to create a reliable mesh network that can span your whole house. Its reliability also made it popular to power brands like Yale locks and Amazon Ring. The Z-Wave standard is developed by a consortium of companies under the [Z-Wave Alliance](https://z-wavealliance.org/).
+
+With Home Assistant, we have integrated Z-Wave since our early days. We first relied on OpenZWave until we transitioned in 2021 to using [Z-Wave JS](https://github.com/zwave-js) created by Dominic Griesel. Z-Wave JS is a fully open-source implementation of the Z-Wave protocol. Combined with Home Assistant and a Z-Wave USB stick, it gives our users the best possible Z-Wave experience. Dominic is employed by Nabu Casa and can work full-time on Z-Wave JS thanks to the revenue generated from [Home Assistant Cloud](https://www.nabucasa.com/) subscribers (thank you!).
+
+
+
+We have thoroughly tested Z-Wave JS with the Home Assistant community. Our community is from all over the world and has access to a wide variety of Z-Wave devices from all generations. This has ensured that Z-Wave JS is able to deal with devices and their quirks all the way back to the original Z-Wave release.
+
+However, our ambitions for Z-Wave JS are bigger than just making sure we have a rock-solid Z-Wave implementation for you. We want to make it easier for companies to develop Z-Wave controllers and grow the Z-Wave ecosystem. A bigger ecosystem is more appealing for manufacturers to make Z-Wave devices, which results in more choices for our users. And as Z-Wave works locally, it is a local choice.
+
+Today, we are proud to announce that we have joined the Z-Wave Alliance to get Z-Wave JS officially certified. Certification shows other companies that Z-Wave JS is a full and correct implementation of the Z-Wave standard. It will allow other companies to feel confident that they can adopt Z-Wave JS to integrate Z-Wave into their products. HomeSeer, for example, [has announced](https://forums.homeseer.com/forum/hs4-products/hs4-plugins/lighting-primary-technology-plug-ins-aa/z-wave-plus-homeseer/1634034-new-z-wave-plus-plugin-under-development#post1634634%0A) that it is migrating its platform to Z-Wave JS. We hope this will open up new opportunities as more companies follow our lead in the future.
+
+## The Open Home
+
+With Home Assistant, we have a vision for the smart home that we call [the Open Home](/blog/2021/12/23/the-open-home/). It revolves around three core values: privacy, choice, and sustainability. Anything that lives up to those values is worthy of being adopted by our community. It’s why we have previously [joined the Connectivity Standards Alliance (CSA)](/blog/2023/12/04/nabu-casa-at-the-matter-member-meeting/) to take part in the development of Matter and Zigbee, and have now joined the Z-Wave Alliance.
+
+Z-Wave aligns with these three values: your data remains local, you can combine Z-Wave devices from any manufacturer, and devices will continue to operate even if the company behind them is no longer around. It is an important standard for the Open Home.
+
+This is why, even though Z-Wave, Zigbee, and Matter are competing standards, we have joined both the Z-Wave Alliance and the CSA and will keep supporting each standard. Not every smart home is the same. Users need to have choice and be able to pick the standard that works best for their home. And competing standards push each other to improve and innovate, ultimately leading to all standards becoming better for users.
+
+As part of the Z-Wave Alliance, we plan on bringing our unique insights as an open source community to the table. We want to make sure that the future direction of the Z-Wave standard continues to remain true to our Open Home values. Just like we do for Zigbee and Matter within the CSA.
diff --git a/source/_posts/2024-02-16-voice-chapter-6-livestream.markdown b/source/_posts/2024-02-16-voice-chapter-6-livestream.markdown
new file mode 100644
index 00000000000..e49ffe57f7c
--- /dev/null
+++ b/source/_posts/2024-02-16-voice-chapter-6-livestream.markdown
@@ -0,0 +1,19 @@
+---
+layout: post
+title: "Voice - Chapter 6 Livestream"
+description: "Our Year of the Voice has ended, but that does not mean development has stopped! In our Chapter 6 livestream we're excited to show you what we've been working on since last year."
+date: 2024-02-16 00:00:01
+date_formatted: "February 16, 2024"
+author: Michael Hansen
+comments: true
+categories: Assist
+og_image: /images/blog/2024-02-voice-chapter-6/banner.png
+---
+
+Even though our Year of the Voice has ended, that does not mean the development of our voice assistant has stopped! We're excited to show you what we've been working on since [Chapter 5](https://www.youtube.com/live/djEkgoS5dDQ) last year during our Chapter 6 livestream on Wednesday, February 21st, at 21:00 CET / 3:00 PM ET / 12:00 PM PT.
+
+Want to get a sneak peek of what you can expect from this chapter? Well, remember the hype around chapter 4? Get ready for more of that!
+
+
+
+If you can’t wait to get more hands-on with our voice assistants, join the [Voice Assistant contest](https://www.home-assistant.io/blog/2024/01/17/voice-assistant-contest/)! You can win Home Assistant Green, Home Assistant SkyConnect, and a chance to be on a livestream with us to talk about your work. Watch our [contest livestream](https://www.youtube.com/live/99lGuB4J-4o), where we explain how each component of our voice technology works and guide you through building your own voice assistant, and take a look at the [current entries](https://community.home-assistant.io/c/voice-assistant-contest/60)!
diff --git a/source/_posts/2024-02-21-voice-chapter-6.markdown b/source/_posts/2024-02-21-voice-chapter-6.markdown
new file mode 100644
index 00000000000..307bb7ad549
--- /dev/null
+++ b/source/_posts/2024-02-21-voice-chapter-6.markdown
@@ -0,0 +1,145 @@
+---
+layout: post
+title: "On device wake word on ESP32-S3 is here - Voice: Chapter 6"
+description: "This chapter brings on-device wake word detection (microWakeWord), customization for sentence triggers, additional intents for controlling devices, and better error messages."
+date: 2024-02-21 00:00:00
+date_formatted: "February 21, 2024"
+author: Michael Hansen
+comments: true
+categories: Assist
+og_image: /images/blog/2024-02-21-voice-chapter-6/social.jpg
+---
+
+**TL;DR:** We have added on-device wake word detection (microWakeWord)! It's faster and more scalable than processing the wake word in Home Assistant. We will keep supporting wake word processing in Home Assistant. Also new is more customization for sentence triggers, additional intents for controlling more devices, and better error messages and debugging tools.
+
+
+
+Watch the full Voice chapter 6 livestream
+
+
+2023's [Year of the Voice] built a solid foundation for letting users control Home Assistant by speaking in their own language.
+
+We continue with improvements to [Assist], including:
+
+- More customization options for [sentence triggers]
+- Better error messages and [debugging tools]
+- Additional [intents] for controlling valves, vacuums, and media players
+
+Oh, and "one more thing": **on-device, open source wake word detection in ESPHome!** 🥳🥳🥳
+
+Check out this video of the new [microWakeWord] system running on an [ESP32-S3-BOX-3] alongside one doing wake word detection inside Home Assistant:
+
+
+
+On-device vs. streaming wake word
+
+
+
+
+## microWakeWord
+
+Thanks to the incredible [microWakeWord] created by [Kevin Ahrendt], ESPHome can now perform wake word detection on devices like the [ESP32-S3-BOX-3].
+You can [install it on your S3-BOX-3 today][s3-box-tutorial] to try it out.
+
+Back in [Chapter 4], we added wake word detection using [openWakeWord]. Unfortunately, openWakeWord was too large to run on low power devices like S3-BOX-3.
+So we chose to run wake word detection inside Home Assistant instead.
+
+

+
+Doing wake word detection in HA allows tiny devices like the [M5 ATOM Echo Development Kit][m5-tutorial] to simply stream audio and let all of the processing happen elsewhere. This is great, as it allows low-powered devices using a simple ESP32 chip to be transformed into a voice assistant even if they do not pack the necessary power to detect wake words.
+The downside is that adding more voice assistants requires more CPU usage in HA as well as more network traffic.
+
+Enter microWakeWord. After listening to an interview with Paulus Schoutsen (founder of Home Assistant) on the [Self Hosted](https://selfhosted.show/) podcast, Kevin Ahrendt created a model based on [Google's Inception neural network](https://towardsdatascience.com/a-simple-guide-to-the-versions-of-the-inception-network-7fc52b863202). As an existing contributor to [ESPHome], Kevin was able to get this new model running on the ESP32-S3 chip inside the S3-BOX-3! _(It also works on the, now discontinued, S3-BOX and S3-BOX-Lite)_
+
+Kevin has trained [three models](https://github.com/esphome/micro-wake-word-models/tree/main/models) for the launch of microWakeWord:
+
+* "okay nabu"
+* "hey jarvis"
+* "alexa"
+
+You can try these out yourself now by following the [ESP32-S3-BOX tutorial][s3-box-tutorial]. Changing the default "okay nabu" wake word will require adjusting your [ESPHome configuration](https://beta.esphome.io/components/micro_wake_word.html) and recompiling the firmware, which may take a long time and requires a machine with more than 2GB of RAM.
+
+We're grateful to Kevin for developing microWakeWord, and making it a part of the open home!
+
+## Sentence trigger responses
+
+Adding custom sentences to Assist is as easy as adding a [sentence trigger][sentence triggers] to an automation. This allows you to trigger any action in Home Assistant with whatever sentences you want.
+
+Now with the new [conversation response] action in HA 2024.2, you can also customize the response spoken or printed back to you. Using [templating](/docs/automation/templating/#sentence), your response can refer to the current state of your home.
+
+

+
+You can also refer to [wildcards](/docs/automation/trigger/#sentence-wildcards) in your sentence trigger. For example, the sentence trigger:
+
+```
+play {album} by {artist}
+```
+
+could have the response:
+
+{% raw %}
+```
+Playing {{ trigger.slots.album }} by {{ trigger.slots.artist }}
+```
+{% endraw %}
+
+in addition to calling a media service.
+
+You can experiment now with sentence triggers, and custom conversation responses in our automation editor by clicking here:
+[](https://my.home-assistant.io/redirect/automations/)
+
+## Improved errors and debugging
+
+Assist users know the phrase "Sorry, I couldn't understand that" all too well. This generic error message was given for a variety of reasons, such as:
+
+* The sentence didn't match any known [intent](https://github.com/home-assistant/intents)
+* The device/area names didn't match
+* There weren't any devices of a specific type in an area (lights, windows, etc.)
+
+Starting in HA 2024.2, Assist provides different error messages for each of these cases.
+
+

+
+Now if you encounter errors, you will know where to start looking! The first thing to check is that your device is [exposed to Assist](/voice_control/voice_remote_expose_devices/). Some types of devices, such as lights, are exposed by default. Other, like locks, are not and must be manually exposed.
+
+Once your devices are exposed, make sure you've added an appropriate [alias](/voice_control/aliases) so Assist will know exactly how you'll be referring to them. Devices and areas can have multiple aliases, even in multiple languages, so everyone's preference can be accommodated.
+
+If you are still having problems, the [Assist debug tool][debugging tools] has also been improved. Using the tool, you see how Assist is interpreting a sentence, including any missing pieces.
+
+

+
+[](https://my.home-assistant.io/redirect/developer_assist/)
+
+Our community [language leaders](https://developers.home-assistant.io/docs/voice/language-leaders) are hard at work translating sentences for Assist. If you have suggestions for new sentences to be added, please create an issue on [the intents repository](https://github.com/home-assistant/intents) or drop us a line at voice@nabucasa.com
+
+
+## Thank you
+
+Thank you to the Home Assistant community for subscribing to [Home Assistant Cloud][nabucasa] to support voice and development of Home Assistant, ESPHome and other projects in general.
+
+Thanks to our language leaders for extending the sentence support to all the various languages.
+
+
+
+
+
+[Year of the Voice]: /blog/2022/12/20/year-of-voice/
+[Assist]: /voice_control/
+[exposed]: /voice_control/voice_remote_expose_devices/
+[alias]: /voice_control/aliases
+[wyoming]: https://github.com/rhasspy/wyoming
+[openWakeWord]: https://github.com/dscripka/openWakeWord
+[Piper]: https://github.com/rhasspy/piper/
+[wyoming-satellite]: https://github.com/rhasspy/wyoming-satellite
+[s3-box-tutorial]: /voice_control/s3_box_voice_assistant/
+[ESP32-S3-BOX-3]: https://www.espressif.com/en/news/ESP32-S3-BOX-3
+[ESPHome]: https://esphome.io
+[nabucasa]: https://www.nabucasa.com
+[sentence triggers]: /docs/automation/trigger/#sentence-trigger
+[conversation response]: /docs/scripts/#respond-to-a-conversation
+[microWakeWord]: https://github.com/kahrendt/microWakeWord
+[Kevin Ahrendt]: https://www.kevinahrendt.com/
+[debugging tools]: /voice_control/troubleshooting/#test-a-sentence-per-language-without-voice-without-executing-commands
+[intents]: https://developers.home-assistant.io/docs/intent_builtin
+[Chapter 4]: /blog/2023/10/12/year-of-the-voice-chapter-4-wakewords/
+[m5-tutorial]: /voice_control/thirteen-usd-voice-remote/
diff --git a/source/_posts/2024-02-22-what-about-grace-live-stream.markdown b/source/_posts/2024-02-22-what-about-grace-live-stream.markdown
new file mode 100644
index 00000000000..cf54daca215
--- /dev/null
+++ b/source/_posts/2024-02-22-what-about-grace-live-stream.markdown
@@ -0,0 +1,19 @@
+---
+layout: post
+title: "What about Grace? Tune in to our special livestream next week!"
+description: "Why is Grace important to us? Well, we have a habit of naming our projects after influential women in tech. And we have been working on a little something special and can’t wait to show you!"
+date: 2024-02-22 00:00:01
+date_formatted: "February 22, 2024"
+author: Madelena Mak
+comments: true
+categories: Announcements
+og_image: /images/blog/2024-02-grace-chapter-1/banner.png
+---
+
+Who is Grace? Grace Hopper was a computer scientist, mathematician, and US Navy admiral who had made significant contributions to the field of computer programming and technology, from her pioneering work on and contributions to the Harvard Mark I computer, COBOL, and UNIVAC I.
+
+
+
+Why is she important to us? Well, we have a habit of naming some of our projects after influential women in tech. And we have been working on a little something nice for the past year that we can’t wait to show you!
+
+For those who are interested in making your smart home easier to control and monitor for everyone in your home, tune in next week on the leap year day, February 29, 2024, at 20:00 GMT / 21:00 CET / 3:00 PM ET / 12:00 PM PT, for a [special livestream](https://www.youtube.com/live/XyBy0ckkiDU). We will walk you through the past, present, and future of this special project.
diff --git a/source/_posts/2024-02-26-home-assistant-os-12-support-for-raspberry-pi-5.markdown b/source/_posts/2024-02-26-home-assistant-os-12-support-for-raspberry-pi-5.markdown
new file mode 100644
index 00000000000..7b3de4a419f
--- /dev/null
+++ b/source/_posts/2024-02-26-home-assistant-os-12-support-for-raspberry-pi-5.markdown
@@ -0,0 +1,49 @@
+---
+layout: post
+title: "Raspberry Pi 5 support and more in Home Assistant OS release 12 & Supervisor update"
+description: "HAOS 12 adds support for Raspberry Pi 5 and ODROID-M1S boards, with the Linux kernel updated to 6.6. Additionally, backups have become faster, and add-ons can now signal when they should not be auto-updated."
+date: 2024-02-26 00:00:00
+date_formatted: "February 26, 2024"
+author: Stefan Agner
+comments: true
+categories: HAOS
+og_image: /images/blog/2024-02-haos12/haos12.png
+---
+
+**TL;DR:** Home Assistant OS 12 adds support for Raspberry Pi 5 and ODROID-M1S boards, with the Linux kernel updated to 6.6. Additionally, backups have become faster, and add-ons can now signal when they should not be auto-updated.
+
+

+
+## Raspberry Pi 5
+
+With the release of Home Assistant OS 12, we officially announce Raspberry Pi 5 support! Many Home Assistant OS users have extensively tested the preview releases during the last few months, and after some initial hiccups with the Raspberry Pi 5-specific update mechanism, things are stable and solid today. As a third of all Home Assistant users currently use a Raspberry Pi board as their dedicated Home Assistant system, we are sure this support will make many users very happy!
+
+Compared to other Raspberry Pi boards, HAOS does not use U-Boot as an extra bootloader. Instead, the Raspberry Pi's built-in “tryboot” functionality is used to automatically fall back to a previous release in case of an update failure. This new update mechanism integration required us to have a longer testing phase.
+
+In our testing, the higher CPU clock of the Raspberry Pi 5 (up to 2.4GHz) makes Home Assistant feel noticeably snappier compared to previous Raspberry Pi boards. Additionally, a Raspberry Pi HAT that provides NVMe SSD support allows you to extend your Raspberry Pi with fast, reliable, and cost-effective storage. We do recommend using an SD card as the boot medium and using the [data disk feature](/common-tasks/os/#using-external-data-disk) to move most of the Home Assistant installation onto the NVMe. This is easy to set up and guarantees a reliable boot.
+
+## ODROID-M1S
+
+The Raspberry Pi 5 is not the only new board that is supported with this release. We are happy to announce that the family of supported ODROID devices from the Korean manufacturer Hardkernel has become bigger thanks to a community contribution from Tim Lunn (darkxst), who implemented board support for the ODROID-M1S. The ODROID-M1S is the newest single-board computer from Hardkernel, which is similar to the already supported ODROID-M1, which was added in Home Assistant OS 10. This new board offers a slimmer form factor, 4 or 8 GB of RAM on board, and an embedded 64 GB eMMC storage. Home Assistant OS can be booted either from an SD card or the system can be flashed to the eMMC card using the procedure described in the [documentation](https://github.com/home-assistant/operating-system/blob/dev/Documentation/boards/hardkernel/odroid-m1s.md). While the board also has an NVMe slot for a solid-state drive, it is not supported as a boot device. However, just like on the Raspberry Pi 5, it can still be used as the data disk.
+
+Just like its larger brother, the ODROID-M1S is powered by a quad-core ARM Cortex-A55, but while ODROID-M1 has (very slightly) beefier Rockchip RK3568 SoC, this board sports the RK3566. Some of our more curious readers may notice this is the same processor that is found on our Home Assistant Green! While there are some similarities between those two boards, Home Assistant Green can offer you a seamless out-of-box experience, allowing you to set up your smart home in a matter of minutes. But Home Assistant is also about the freedom of choice, so if you are looking for a more DIY approach, ODROID-M1S might be the right choice for you.
+
+## Linux 6.6
+
+Home Assistant OS 12 now comes with Linux kernel 6.6! This is good news for those who want to run their Home Assistant on newer hardware that lacked support in the previous 6.1 kernel. This version update also allows us to extend the list of supported Wi-Fi and Bluetooth cards, including ones you may find in new mini-PCs, a popular platform for Home Assistant OS. Those who run their installations on a Raspberry Pi (including the CM4 in Home Assistant Yellow) may notice their kernel version still starts with 6.1. This is because we are not using the upstream kernel but the downstream one maintained by the Raspberry Pi developers. But this kernel was also updated to the latest stable version, which we hope will resolve some sporadic bugs.
+
+Home Assistant OS sticks to the LTS (long-term support) kernels, which are usually released once per year - just like Buildroot, the base system we use for Home Assistant OS. This time, we are slightly ahead of schedule, because usually the kernel update is done alongside the bump of the Buildroot version. But don't worry, the Buildroot update is coming soon as well, and we expect to include its update in one of the next minor Home Assistant OS releases coming in the following weeks. This will conclude this year's spring cleaning of Home Assistant OS, and we will be ready to focus on new features and improvements again!
+
+## Faster Backups
+
+Home Assistant Supervisor and Core’s built-in backup functionality has become much faster. Thanks to contributions from bdraco, the backup feature gained faster compression speeds due to a library named isal, which provides optimized low-level functions for compression and decompression. More importantly, the backup feature now avoids intermediate copies, making it faster on slower storage media especially. If you used uncompressed backups before because the backup used to be too slow for you, now is the time to give compressed backups a try again! 😀
+
+

+
+Home Assistant OS users’ backup functionality is part of Supervisor. You’ll have received the improvements incrementally over the releases of the past few weeks. At the time of writing, your installation should run on Home Assistant Supervisor 2024.02.0 with all these improvements built in.
+
+## Safer add-on auto-updates
+
+Last, but not least, the Supervisor features an auto-update flag for add-ons. However, depending on the nature of an update to the add-on, the new version might need user intervention or have breaking changes. Add-on developers now have the option to prevent auto-updates to such versions. Users of the auto-update feature might see an update notification despite auto-updates being enabled. This means that the author of the add-on decided that this particular update should not be auto-updated and instead be manually approved by the user.
+
+Note: We generally don’t recommend auto-updates for add-ons, as even safe updates might interfere with regular operation. For example, during the automatic update of an add-on like Z-Wave JS, your Z-Wave devices would unexpectedly become unavailable for a short time. The better approach for such add-ons is to plan some time to maintain your Home Assistant system every once in a while and update your add-ons in a batch.
diff --git a/source/_posts/2024-03-04-dashboard-chapter-1.markdown b/source/_posts/2024-03-04-dashboard-chapter-1.markdown
new file mode 100644
index 00000000000..054af96181f
--- /dev/null
+++ b/source/_posts/2024-03-04-dashboard-chapter-1.markdown
@@ -0,0 +1,266 @@
+---
+layout: post
+title: "A Home-Approved Dashboard chapter 1: Drag-and-drop, Sections view, and a new grid system design!"
+description: "Wow! At long last!! The stars have aligned, and our experimental drag-and-drop feature for dashboards is finally here!"
+date: 2024-03-04 00:00:01
+date_formatted: "March 4, 2024"
+author: Madelena Mak
+comments: true
+categories: Dashboard
+og_image: /images/blog/2024-03-dashboard-chapter-1/banner.png
+---
+
+Wow! At long last!! The stars have aligned, and our experimental drag-and-drop feature for dashboards is finally here! 🥲
+
+Home Assistant strives to be the best smart home platform, and a smart home allows its residents to automate, control, observe, and anticipate the comfort, security, and various conveniences of their home. Besides voice assistants, dashboards are also a great way to help users do just that!
+
+Therefore, we have been working hard to make customization and organization of dashboards as easy and intuitive as possible, and to create a default dashboard that will be more useful, user-friendly, and relevant right out of the box. [Matthias](https://github.com/matthiasdebaat) and [I](https://github.com/madelena) teamed up in April last year to tackle this problem together, and we called this series of improvements over our current dashboard “Project Grace”, named after the influential and brilliant late [Admiral Grace Hopper](https://www.nationalww2museum.org/war/articles/grace-hopper-woman-computer).
+
+After months of user research and ideation to ensure that our design is [“home-approved”](https://building.open-home.io/open-home-approval-factor/#home-approval-factor) - to be easy and intuitive to use for you, your family, your guests, your roommates, and more - we are happy to share the first fruit of our success in the upcoming release 2024.3, with the help of [Paul](https://github.com/piitaya) and of course the wonderful frontend team. We hope that these features will help you take the dream dashboard for you and your home from idea to reality much faster and much more easily.
+
+For those of you who are curious about the features and the design thinking behind them, read on and check out our [special livestream](https://www.youtube.com/watch?v=XyBy0ckkiDU) last week. You can also try out our updated [demo](https://demo.home-assistant.io/#/lovelace/home) and get involved by [joining the Home Assistant User Testing Group](http://home-assistant.io/join-research)! And last of all, thank you for supporting our efforts by [subscribing to Home Assistant Cloud](https://www.nabucasa.com)!
+
+
+
+
+
+Enjoy!
+
+~ Madelena 🥳
+
+
+
+## What is Project Grace?
+
+Grace was the codename we used for the series of improvements to be built on top of [Lovelace], the framework for our dashboards. We aim to preserve the strengths of Lovelace, such as its flexibility and extensibility, and to mitigate its weaknesses, such as its steep learning curve, its lack of scalability, as well as the poor responsiveness of its layouts.
+
+## The three-layout problem
+
+
+
+ The three basic view layouts: Panel, Sidebar, and Masonry
+
+
+Our dashboard came with 3 default [view layout types](https://www.home-assistant.io/dashboards/views/#type) by default: Panel, which is simply one card covering the entire view; Sidebar, which is a two-column layout for cards; and [Masonry], which is the most robust of them all.
+
+While it is excellent at creating a tightly-packed screen space-saving dashboard, Masonry lays out cards in a logic that may not be immediately clear and predictable to many users, which leads to a frustrating user experience to create and customize the layout of the cards. And as the layout logic depends on the height of each card, the varying heights of the cards available for our dashboards become a blessing and a curse: Even a difference in height of 1 pixel would mean a card one would guess to be displayed on the leftmost column getting shifted all the way to the right.
+
+
+
+ Masonry arranges cards based on size.
+
+
+What’s more, unlike most other smart home apps, Home Assistant prides itself on Choice. In terms of dashboard view layouts, Choice means that dashboards should be able to be displayed on any screens that are the most convenient to our users - whether it’s a phone, a tablet, a large monitor, or other display devices. While the Masonry layout is great at making neat walls of cards, as its name also implies, it is a wall of cards which does not care whether the bricks are laid, thus the muscle memory of where users remember the cards will be lost every time the dashboard is displayed on another screen.
+
+
+
+ Masonry does not care about where exactly cards are placed when the screen size changes.
+
+
+For the past few years, we tried to create a more intuitive solution to rearrange the cards laid out by Masonry but ultimately the solutions did not work well for multiple screen sizes. Meanwhile, our users come up with solutions of their own, with many avoiding our default view layouts so that they can create a more predictable and memorable dashboard. As it turns out, “drag and drop” is not just an engineering problem; it is also a design problem.
+
+To solve these problems with our layout, we realized that the Masonry layout, compatibility with multiple screen sizes, and easy “drag and drop” rearrangement of cards cannot co-exist. Over the past year, we ideated and identified a few solutions, namely:
+
+1. [a new Sections view layout](#the-new-sections-view)
+2. [a design grid system](#the-grid-system), and
+3. [a “Z-Grid” auto-rearranging pattern](#drag-and-drop-rearrangement-of-cards-and-sections).
+
+Let's dive in each solution and learn how they work together to make your dashboards easier to customize and use!
+
+## The new Sections view
+
+
+
+
+ Case studies of our users' dashboards
+
+
+Throughout this project, we have looked at dozens of different dashboards created by you and posted on our discussion boards. One thing we notice is that our more advanced users are all naturally drawn to creating “sections”, groups of different cards delineated by a group title, manually with [grids](https://www.home-assistant.io/dashboards/grid/) and [markdown](https://www.home-assistant.io/dashboards/markdown/) cards.
+
+Home Assistant dashboards are robust and packed with information, and our users often place dozens of cards for all sorts of buttons, switches, graphs, indicators, and more. By grouping cards into “sections”, our users can reduce the number of items they need to scan through when they are looking for a certain card, as they will be able to look for the relevant group title first and then reduce the scope to scan that particular group for the information. And by packing cards in a section into a grid card, the relative positions of the cards within a section are not affected by changes in screen sizes, and so the spatial memory of the cards are retained, leading to a faster and less cumbersome experience.
+
+
+
+ Example of a dashboard section
+
+
+For our new Sections view, we are making these sections as the base unit of the view and we are streamlining its creation and editing procedures. Users will not need to fiddle around with grid cards and markdown cards to assemble a section manually, and instead a section now comes with all those amenities and much more.
+
+### Getting started with Sections
+
+
+ The new Sections view is experimental! Please do not build your daily dashboard on top of it yet!
+
+
+
+
+ The Create New View configuration screen
+
+
+To get started with the new Sections view, create a new view on your dashboard and choose **Sections (experimental)** as the view type. We currently do not have the option to migrate your current dashboard over yet.
+
+
+
+
+
+ A new dashboard view laid out in Sections
+
+
+You will be greeted by a clean new dashboard view, with one section already created for you.
+
+* To add a new section, select the **Create Section** button.
+

+
+* To edit the name of a section, select the

**Edit** button on the top right of the section. (Tip: You can add any descriptive text for your section, including emojis!) When the section does not have a name, the section header will be hidden.
+
+* To delete a section, select the

**Delete** button on the top right of the section. You will be asked to confirm the deletion.
+
+### Filling it up
+
+
+
+ A fully populated dashboard in Sections view layout
+
+
+There are multiple ways to add cards into a section and populate your dashboard:
+
+{% details "Using the Add Card button" %}
+
+1. The easiest way to add cards is to select **Add Card** [Button icon] button inside the section.
+
+2. The Add Card dialog will appear, and there are two options:
+
+ * **By Card**
+
+
Add Card by Card type dialog
+
+
+ If you have a good idea of what card you want to use for an entity, browse the list of available cards on this screen. For the Sections view, we recommend the Tile card, which is now pinned to the top in a Suggested Cards section.
+
+ * **By Entity**
+
+
Add Card by Entity dialog
+
+
+ If you want to add a bunch of entities in one go, select one or multiple entities on this list.
+
+
+
Card suggestions
+
+ Home Assistant will show a preview of the cards to be added, which will be displayed in Tile cards as the default of the Sections view. Tap the “Add to Dashboard” button to complete the process.
+
+{% enddetails %}
+
+{% details "Using the Add to Dashboard button on device pages" %}
+
+
+
Add to Dashboard feature on the device page
+
+
+Another handy method for adding a bunch of sensors or controls belonging to the same device is to add them from the device’s page.
+
+1. Navigate to the page of the device through Settings.
+
+2. Tap the **Add to Dashboard** button on the screen.
+
+3. You will be prompted to choose which dashboard view you want to add them to. If you choose a view using the Sections view layout, the sensors or controls will be added as tile cards placed inside a new section.
+
+{% enddetails %}
+
+### Responsive design
+
+One major benefit of the new Sections view is that it is now much easier to build dashboards that work with multiple screen sizes.
+
+
+
+ Sections view adapt nicely to different screen sizes.
+
+
+The view will rearrange the sections according to the amount of space available horizontally, while the number of columns of cards within each section stays the same, thus preserving your muscle memory of where the cards are located.
+
+## The grid system
+
+Our current dashboard views are organized in columns with cards of varying heights, and with masonry layout by default. As cards can vary in height in small amounts, it becomes hard to predict where cards will "land" when one moves a card to another column, or when screen size changes and moves all the cards, such as when viewing a dashboard on tablet vs on mobile. This creates friction in the customization experience of the dashboards.
+
+Enter the grid system, a bastion of graphic design principles.
+
+
+
+ Examples of grid systems in use
+
+
+Typographic grid systems have a long history in modern graphic design and print publishing, starting from its rise in the early 20th Century during the Constructivist and Geometrical art movements in Europe, which concerns the hidden rhythm behind a visual image. They are easily repeatable and, therefore, practical for generating an infinite amount of pages, yet also ensure aesthetic proportions and consistency for printable matter. They also bring order to a page. It helps users understand the relationship between each element on the page and whether one element belongs to another.
+
+
+
+ The Home Assistant dashboard grid system
+
+
+When a UI is designed with a structured layout, that feeling of structure and organization comes through to the user in their first impression.
+
+By introducing a grid system with cards of regular row height and column width multiples, we can help users rearrange cards more easily in a predictable manner, make Home Assistant adapt the dashboards to different screen sizes more easily, and, of course, make dashboards look tidier and more aesthetically pleasing.
+
+
+
+ Cards currently optimized for the grid system: Sensor card, Tile card, and Button card
+
+
+To implement the grid system, we are now in the process of standardizing the widths and heights of our cards, starting with the Tile card, Button card, and Sensor card. These cards will occupy the right amount of space in the grid, while other cards will occupy the full width of a section by default at the moment.
+
+For card developers, we will have more information on how to adapt your custom cards to the grid system soon.
+
+## Drag-and-drop rearrangement of cards and sections
+
+With sections and a grid system in place, we can finally implement a way to arrange cards and sections that is intuitive with drag-and-drop, predictable with how the cards will rearrange, while creating a dashboard that is easy to navigate and remember by visualizing the information hierarchy and not disturbing the spatial relationship between cards. Users will not need to pray and guess where the cards will land when they change their orders anymore!
+
+
+
+ Comparison of four card arrangement methods
+
+
+Throughout the design process, we looked at a few different ways of how cards should be arranged. Ultimately, we chose the “Z-Grid” due to its simplicity, predictability, and memorability as the default, despite it may take up more space than other solutions. The Z-Grid works simply by laying out sections from left to right, and starting a new row when the row is full. The heights of the rows are determined by the tallest section on the row, while the width of the columns remain constant for responsive design.
+
+### How to drag and drop
+
+While your dashboard is in Edit Mode:
+
+
+
+ Rearranging sections with drag-and-drop
+
+
+* To rearrange sections, simply tap and hold the

**Move** handle and then move your cursor or finger towards your desired location. Other sections will move out of the way for where the selected section will drop.
+
+
+
+ Rearranging sections with drag-and-drop
+
+
+* To rearrange cards, tap and hold anywhere on the card and then move your cursor or finger towards your desired location.
+
+(Don’t you love when instructions are so short? Yay to simplicity! 🦄)
+
+## What’s next? Get involved!
+
+The new Sections view with drag-and-drop is just the first step of Project Grace, a Home-Approved Dashboard. We have a good idea of where we want to head next in our design and development process, but we want to hear from you first before we proceed so that we can prioritize and build a product that will help you the most.
+
+To get feedback from all of you and your household members, we decided to release this early in its incomplete form as an *experiment* for you to try out the new Sections view. For those who are curious, feel free to check out [our updated demo](https://demo.home-assistant.io/#/lovelace/home) to play around and have fun!
+
+We want to make sure that the new default dashboard will not only work for you, but also everyone who lives in your home. We would love to hear what they think as well. Please do not hesitate to leave your comments below!
+
+### Join the Home Assistant User Testing Group!
+
+From time to time, we will send out user tests to help us make the harder product and design decisions we identify. By joining our user testing group, you will help steer the direction of our product and will also get a sneak peak of potential designs that are work in progress.
+
+Please [fill out this form](http://home-assistant.io/join-research) to join the Home Assistant User Testing Group!
+
+Big thanks to all the folks who joined us for user interviews, [Lewis from Everything Smart Home](https://www.youtube.com/c/EverythingSmartHome) for sharing his treasure trove of dashboards for our case studies, and of course, the fabulous [Nabu Casa](https://nabucasa.com) team. 💖
+
+That’s all for now! Thank you for reading. Can’t wait to show you what’s next!
+
+~ Madelena
+
+[Lovelace]: https://www.home-assistant.io/blog/2019/01/23/lovelace-released/
+[Masonry]: https://www.home-assistant.io/dashboards/masonry/
diff --git a/source/_posts/2024-03-06-release-20243.markdown b/source/_posts/2024-03-06-release-20243.markdown
new file mode 100644
index 00000000000..cfb97237b57
--- /dev/null
+++ b/source/_posts/2024-03-06-release-20243.markdown
@@ -0,0 +1,833 @@
+---
+layout: post
+title: "2024.3: Drag 'n Drop it like it's hot! 🎉"
+description: "Drag 'n drop in your dashboards using a brand-new sections view and start up twice as fast! Run scripts with user input from your dashboards, a new energy graph for individual devices, new sentences for Assist, translate states in your templates, and more!"
+date: 2024-03-06 00:00:00
+date_formatted: "March 6, 2024"
+author: Franck Nijhof
+author_twitter: frenck
+comments: true
+categories:
+ - Release-Notes
+ - Core
+og_image: /images/blog/2024-03/social.png
+---
+
+

+
+Home Assistant Core 2024.3! 🎉
+
+Yes, you read the title right! I'm super stoked about this one. It has been
+talked about for ages... I promise it is real:
+
+**Drag 'n drop for dashboards is finally here! 🎉**
+
+A first experimental version of the section dashboard that supports drag 'n drop.
+A tremendous step forward and an even bigger milestone for Home Assistant!
+
+But don't be blinded by these Dungeons 'n Dragons; there is a lot more!
+
+New intents for Assist (I can finally tell my vacuum to start cleaning!), using
+script inputs/fields from the dashboard, and a new energy graph for individual
+devices. And that is just the tip of the iceberg!
+
+Enjoy the release!
+
+../Frenck
+
+PS: A big thanks and shoutout to [@bramkragten] & [@balloob] for organizing
+and running the beta and everyone who helped out making these release notes
+happen during my absence this beta. 🥰
+
+[@bramkragten]: https://github.com/bramkragten
+[@balloob]: https://github.com/balloob
+
+
+
+- [A new experimental sections view](#a-new-experimental-sections-view)
+- [Drag-and-drop rearrangement of cards and sections!](#drag-and-drop-rearrangement-of-cards-and-sections)
+- [Running script from your dashboard with user input](#running-script-from-your-dashboard-with-user-input)
+- [New energy graph for individual devices](#new-energy-graph-for-individual-devices)
+- [New sentences for Assist](#new-sentences-for-assist)
+- [Disabling the remote activation of the Home Assistant Remote UI](#disabling-the-remote-activation-of-the-home-assistant-remote-ui)
+- [Translating states in your templates](#translating-states-in-your-templates)
+- [Home Assistant boots twice as fast](#home-assistant-boots-twice-as-fast)
+- [Other noteworthy changes](#other-noteworthy-changes)
+- [New integrations](#new-integrations)
+- [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui)
+- [Release 2024.3.1 - March 14](#release-202431---march-14)
+- [Release 2024.3.2 - March 22](#release-202432---march-22)
+- [Release 2024.3.3 - March 22](#release-202433---march-22)
+- [Need help? Join the community!](#need-help-join-the-community)
+- [Backward-incompatible changes](#backward-incompatible-changes)
+- [All changes](#all-changes)
+
+Don't forget to [join our release party live stream on YouTube](https://www.youtube.com/watch?v=Jxup-fKFpfs)
+6 March 2024, at 20:00 GMT / 12:00 PST / 21:00 CET!
+
+
+
+## A new experimental sections view
+
+Our dashboard currently comes with three view layout types:
+[Panel](/dashboards/panel/), [Sidebar](/dashboards/sidebar/),
+and [Masonry](/dashboards/masonry/). Since the past year, we have been working
+hard to research and ideate on how to make dashboards easier to customize
+and use, and we learned that our current layouts are not the best for such
+purposes. Drag-and-drop rearrangement of cards cannot work well with the
+Masonry layout.
+
+We came up with a few solutions, and the first thing we would like to share
+with you is a new view layout type called "Sections".
+
+Home Assistant dashboards are robust and packed with information. Users will
+often place dozens of cards for all sorts of buttons, switches, graphs,
+indicators, and more.
+
+
+
+ Example of a dashboard section
+
+
+By grouping cards into “sections”, you can reduce the number of items you
+need to scan through when you are looking for a certain card, as you'll be
+able to look for the relevant group title first and then reduce the scope to
+scan that particular group for the information.
+
+By packing cards in a section into a grid with a fixed number of columns,
+the relative positions of the cards within a section are not affected by
+changes in screen sizes, and so the spatial memory of the cards is retained,
+leading to a faster and less cumbersome experience.
+
+
+
+ A fully populated dashboard in the Sections view layout
+
+
+Cards in the new sections view type are all aligned in a tidy grid to ensure
+consistency and predictability of their positions when the screen size changes.
+We currently have three cards reworked to fit the grid:
+[Tile](/dashboards/tile/), [Sensor](/dashboards/sensor/),
+and [Button](/dashboards/button/) cards. These cards will occupy the right
+amount of space in the grid, while other cards will occupy the full width
+of a section by default at the moment. Moreover, we have tweaked our
+"Add Cards" dialogs to recommend Tile cards by default when the sections
+view type is in use.
+
+
+ The new Sections view is experimental! Please do not build your daily dashboard on top of it yet! We are releasing this early so that we can collect your feedback.
+
+
+To get started with the new Sections view type, create a new view on your
+dashboard and select **Sections (experimental)** as the view type.
+We currently do not have the option to migrate your current dashboard over yet.
+
+For more information, check out our blog post about our new
+series [A Home-Approved Dashboard: Chapter 1](/blog/2024/03/04/dashboard-chapter-1/).
+
+Amazing work! Thanks [Paul](https://github.com/piitaya),
+[Matthias](https://github.com/matthiasdebaat),
+and [Madelena](https://github.com/madelena)!
+
+## Drag-and-drop rearrangement of cards and sections!
+
+Wow! At long last!! The stars have aligned, and our experimental drag-and-drop
+feature for dashboards is finally here! 🥲
+
+With the new sections view type, we can finally implement a way to arrange
+cards and sections that is intuitive with drag-and-drop gestures and predictable
+with how the cards will rearrange while creating a dashboard that is easy to
+navigate and remember. You will no longer need to pray and guess where the cards
+will land when they change their order!
+
+### How to drag and drop
+
+While your dashboard is in edit mode:
+
+
+
+ Rearranging sections with drag-and-drop
+
+
+- To rearrange sections, tap and hold the
+

+ **Move** handle and then move your cursor or finger towards your desired
+ location. Other sections will move out of the way for where the selected
+ section will drop.
+
+
+
+ Rearranging sections with drag-and-drop
+
+
+- To rearrange cards, tap and hold anywhere on the card and then move your
+ cursor or finger towards your desired location.
+
+Don’t you love it when instructions are so short? Simplicity FTW! 🦄
+
+Thanks again [Paul](https://github.com/piitaya),
+[Matthias](https://github.com/matthiasdebaat),
+and [Madelena](https://github.com/madelena)!
+
+## Running script from your dashboard with user input
+
+{% term Scripts %} in Home Assistant allow you to capture a sequence of actions
+and choices in a reusable way. Scripts are extra powerful because they can
+have input fields, allowing you to send in data for when the script runs.
+
+Script fields can be defined in the script editor and show up when you call the
+script in your automation. In this release, script fields will be available
+in the more info dialog when tapping a script on a dashboard.
+
+This allows you to provide the input fields and run the script, unlocking a
+whole new dimension of possibilities.
+
+
+
+To accompany this new functionality, we’ve created two blueprints to help you
+get started with using scripts on your dashboard:
+
+**Announce message**: This blueprint allows you to create an announce script for
+your dashboard pre-configured to a specific media player and text-to-speech
+engine. When activated, it will ask the user for the message to play.
+
+{% my blueprint_import badge blueprint_url="https://community.home-assistant.io/t/announce-text-to-speech-on-media-player/699186" %}
+
+**Add to to-do list**: This blueprint allows you to create a script to add an
+item to a to-do list pre-configured to a specific to-do list. When activated,
+it will ask the user for the item to add.
+
+{% my blueprint_import badge blueprint_url="https://community.home-assistant.io/t/add-to-do-item/699193" %}
+
+## New energy graph for individual devices
+
+Digging into your energy data is a very interesting way to find ways to reduce
+your household's energy usage and environmental footprint. 🌱
+
+One of the missing bricks was the ability to see the energy consumption
+of individual devices over time. Thanks to [@karwosts], we have a
+brand new graph on the energy dashboard that provides this insight!
+
+Using this new graph, you can now easily spot which devices are responsible
+for which part of your energy usage over time.
+
+

+
+For example, in the above picture, it is very easy to see that the dishwasher
+was responsible for the morning spike and the oven for the spike in the evening.
+
+[@karwosts]: https://github.com/karwosts
+
+## New sentences for Assist
+
+[Assist](/voice_control/), our private voice assistant, learned a few tricks this month.
+
+Support for valves has been added. You can now ask Assist to adjust the position
+of a valve, or just open or close a valve completely.
+
+Also, cover support has been extended to support the control of the position of
+your devices. Currently, most languages only support a single use-case as a
+starting point. Setting the position of a single device by targeting its
+name:
+
+> Set the curtain position to 80%
+
+We are working on extending the use-case coverage to set the position
+of multiple devices or complete areas, similar to what is possible with
+the open and close sentences.
+
+

+
+The next new trick could be considered a bug fix: Until today it was not
+possible to start or stop a vacuum cleaner by voice; Now it can! Assist knows
+how to start a vacuum and return it to its base. Here are some example
+sentences, in case you have a vacuum cleaner named Dusty:
+
+> Start Dusty
+
+> Return Dusty to base
+
+The biggest set of changes is for media players. Assist can now pause playback,
+resume playback, skip to the next media, and set the volume of media players!
+
+Be aware that currently, these sentences are limited to targeting a single
+device by its name, for example:
+
+> Skip to the next song on the TV
+
+We are actively working on extending the logic of these new intents to allow
+you to target areas and only affect the desired media player(s).
+
+## Disabling the remote activation of the Home Assistant Remote UI
+
+If you are using [Home Assistant Cloud](https://nabucasa.com), you can access
+your Home Assistant instance remotely using the Remote UI feature.
+
+Suppose this feature is, for some reason, disabled, and you are currently not
+at home. In that case, you can enable the Remote UI feature remotely by
+logging into your [Nabu Casa account](https://account.nabucasa.com/) and
+request your Home Assistant instance to turn it on.
+
+Feedback from the community has shown that this feature is not always desired,
+and this release adds a new option to disable the remote activation of the
+Remote UI feature. Once disabled, the Remote UI feature can only be enabled
+locally from your Home Assistant instance.
+
+

+
+## Translating states in your templates
+
+Are you using {% term templates %} to send notifications in automations? If so,
+[@PiotrMachowski] might just have added something new you need!
+
+A new template method, `state_translated`, to translate entity states directly
+from your templates! Consider this template example:
+
+{% raw %}
+```yaml
+# Untranslated
+{{ states("binary_sensor.movement_backyard") }} # Shows: on
+{{ states("sun.sun") }} # Shows: below_horizon
+```
+{% endraw %}
+
+The above example shows the raw state of two entities. However, with the
+new `state_translated` method, you can get the state in a human-readable form:
+
+{% raw %}
+```yaml
+# Translated
+{{ state_translated("binary_sensor.movement_backyard") }} # Shows: Detected
+{{ state_translated("sun.sun") }} # Shows: Below horizon
+```
+{% endraw %}
+
+Even better, it uses the default language of your Home Assistant instance. So,
+if you use Home Assistant in a different language, the translated state will
+be in that language.
+
+[@PiotrMachowski]: https://github.com/PiotrMachowski
+
+## Home Assistant boots twice as fast
+
+In case you didn't know, every release [@bdraco] improves the performance
+on some aspect of Home Assistant. He has been on it for a long time and keeps
+pushing to improve it.
+
+As a matter of fact, it has become so regular that we don't always highlight
+his enormous efforts toward this goal in our release notes. _Sorry! 🙏_
+
+However, in this release, his efforts are so noticeable that we wanted to
+call it out: **Home Assistant now boots on average twice as fast!** 🚀
+
+That is a huge improvement [@bdraco]!! Thank you for your continuous work on
+making Home Assistant faster and faster! ❤️
+
+[@bdraco]: https://github.com/bdraco
+
+## Other noteworthy changes
+
+There are many more improvements in this release; here are some of the other
+noteworthy changes this release:
+
+- The [climate entity] now has a toggle service (`climate.toggle`).
+ Thanks [@arturpragacz]!
+- [Matter] lights now support transitions, nice! Thanks, [@marcelveldt]!
+- We heard you like downloading CSVs! So, we added the ability to download
+ the energy dashboard data to a CSV file now as well! Thanks [@karwosts]!
+- After feedback and reports on the automatic Zigbee device firmware updates
+ introduced in a previous release, this release brings a stricter and
+ more robust update system to [ZHA]. Thanks [@dmulcahey] & [@puddly]!
+- The [Tessie] integration now provides charging and range sensors.
+ Thanks [@Bre77]!
+- [myUplink] devices can now be updated directly from Home Assistant.
+ Awesome [@astrandb]!
+- [DuneHD] media players now support browsing media files and playing them.
+ Thanks [@iliessens]!
+- The [Bring!] now brings in a new "recently" list. Nice [@miaucl]!
+- [@lellky] added setpoints as number entities for fans to the
+ [Flexit Nordic (BACnet)] integration, thanks!
+- The dialog to adjust long-term statistics now has automated outlier detection!
+ That is a very smart and helpful addition. Thanks [@karwosts]!
+
+[@arturpragacz]: https://github.com/arturpragacz
+[@astrandb]: https://github.com/astrandb
+[@Bre77]: https://github.com/Bre77
+[@dmulcahey]: https://github.com/dmulcahey
+[@iliessens]: https://github.com/iliessens
+[@karwosts]: https://github.com/karwosts
+[@lellky]: https://github.com/lellky
+[@marcelveldt]: https://github.com/marcelveldt
+[@miaucl]: https://github.com/miaucl
+[@puddly]: https:///github.com/puddly
+[Bring!]: /integrations/bring
+[climate entity]: /integrations/climate
+[DuneHD]: /integrations/dunehd
+[Flexit Nordic (BACnet)]: /integrations/flexit_bacnet
+[Matter]: /integrations/matter
+[myUplink]: /integrations/myuplink
+[Tessie]: /integrations/tessie
+[ZHA]: /integrations/zha
+
+## New integrations
+
+We welcome the following new integrations in this release:
+
+- **[Aprilaire]**, added by [@chamberlain2007]
+ Monitor and control your Aprilaire thermostats.
+- **[Husqvarna Automower]**, added by [@Thomas55555]
+ The Husqvarna Automower integration allows you to integrate and control
+ your lawn mower straight from Home Assistant.
+- **[microBees]**, added by [@marcolettieri]
+ Control your microBees devices, such as plugs and wall switches.
+- **[WeatherFlow Cloud]**, added by [@jeeftor]
+ The WeatherFlow Cloud is an alternative to the existing [local WeatherFlow]
+ integration and pulls in data from your Tempest Weather Station.
+- **[Webmin]**, added by [@autinerd]
+ Monitor the CPU and memory usage of your Webmin-managed server.
+
+[@autinerd]: https://github.com/autinerd
+[@chamberlain2007]: https://github.com/chamberlain2007
+[@jeeftor]: https://github.com/jeeftor
+[@marcolettieri]: https://github.com/marcolettieri
+[@Thomas55555]: https://github.com/Thomas55555
+[Aprilaire]: /integrations/aprilaire
+[Husqvarna Automower]: /integrations/husqvarna_automower
+[local WeatherFlow]: /integrations/weatherflow
+[microBees]: /integrations/microbees
+[WeatherFlow Cloud]: /integrations/weatherflow_cloud
+[Webmin]: /integrations/webmin
+
+This release also has new virtual integrations. Virtual integrations are stubs
+that are handled by other (existing) integrations to help with findability.
+The following virtual integrations have been added:
+
+- **[Acomax]**, provided by [Motionblinds]
+- **[Duquesne Light]**, provided by [Opower]
+- **[Krispol]**, provided by [Motionblinds]
+- **[Madeco]**, provided by [Motionblinds]
+- **[SamSam]**, provided by [EnergyZero]
+- **[ZonderGas]**, provided by [EnergyZero]
+
+[Acomax]: /integrations/acomax
+[Duquesne Light]: /integrations/duquesne_light
+[EnergyZero]: /integrations/energyzero
+[Krispol]: /integrations/krispol
+[Madeco]: /integrations/madeco
+[Motionblinds]: /integrations/motion_blinds
+[Opower]: /integrations/opower
+[SamSam]: /integrations/samsam
+[ZonderGas]: /integrations/zondergas
+
+## Integrations now available to set up from the UI
+
+The following integration us now available via the Home Assistant UI:
+
+- **[Velux]**, done by [@DeerMaximum]
+
+[@DeerMaximum]: https://github.com/DeerMaximum
+[Velux]: /integrations/velux
+
+## Release 2024.3.1 - March 14
+
+- Fix optional Jellyfin RunTimeTicks ([@j-stienstra] - [#108254])
+- Add auto fan mode icon ([@mattmccormack] - [#110185])
+- Ignore AussieBroadband services that don't support usage information ([@FieldofClay] - [#110253])
+- Use friendly name for camera media source ([@OnFreund] - [#110882])
+- Improve discovering upnp/igd device by always using the SSDP-discovery for the Unique Device Name ([@StevenLooman] - [#111487])
+- Update the numato-gpio dependency of the numato integration to v0.12.0 ([@clssn] - [#112272])
+- Disable updating ZHA coordinator path from discovery info ([@puddly] - [#112415])
+- Bump intents to 2024.3.6 ([@synesthesiam] - [#112515])
+- Weatherflow_cloud backing lib bump ([@jeeftor] - [#112262])
+- Bump weatherflow4py to 0.1.14 ([@jeeftor] - [#112554])
+- Restore the juicenet integration ([@emontnemery] - [#112578])
+- Fix incorrect filtering of unsupported locales in bring-api ([@tr4nt0r] - [#112589])
+- Include pytedee_async logger in tedee integration ([@zweckj] - [#112590])
+- Issue warning modbus configuration when modbus configuration is empty ([@janiversen] - [#112618])
+- modbus scan_interval: 0 is correct configuration ([@janiversen] - [#112619])
+- Update frontend to 20240307.0 ([@bramkragten] - [#112620])
+- Make hass-nabucasa a core requirement ([@emontnemery] - [#112623])
+- Bump aioautomower to 2024.3.0 ([@Thomas55555] - [#112627])
+- Bump pymodbus to v3.6.5 ([@janiversen] - [#112629])
+- Bump axis to v52 ([@Kane610] - [#112632])
+- Update Loqed helper for more logging ([@mikewoudenberg] - [#112646])
+- Bump weatherflow4py to 0.1.17 ([@jeeftor] - [#112661])
+- Bump `aionotion` to 2024.03.0 ([@bachya] - [#112675])
+- Make sure Notion saves new refresh token upon startup ([@bachya] - [#112676])
+- Fix tado climate service ([@alinbalutoiu] - [#112686])
+- Downgrade `pysnmp-lextudio` to version `5.0.34` ([@bieniu] - [#112696])
+- Allow duplicate names in different modbus entities ([@janiversen] - [#112701])
+- Guard against db corruption when renaming entities ([@bdraco] - [#112718])
+- Fix local calendar handling of empty recurrence ids ([@allenporter] - [#112745])
+- Bump pyenphase to 1.19.2 ([@catsmanac] - [#112747])
+- Bump bthome-ble to 3.7.0 ([@thecode] - [#112783])
+- Upgrade `pysnmp-lextudio` to version `6.0.9` ([@lextm] - [#112795])
+- Bump openwrt-luci-rpc version to 1.1.17 ([@mrchi] - [#112796])
+- Fix google_asssistant sensor state reporting ([@jbouwh] - [#112838])
+- Fix MJPEG fallback when still image URL is missing with basic auth ([@bdraco] - [#112861])
+- Bump boschshcpy to 0.2.82 ([@FlyingFeng2021] - [#112890])
+- Add missing translation placeholder in Hydrawise ([@dknowles2] - [#113007])
+- Bump bthome-ble to 3.8.0 ([@Ernst79] - [#113008])
+- Bump axis to v53 ([@Kane610] - [#113019])
+- Fix availability for GIOS index sensors ([@bieniu] - [#113021])
+- Bump ical to 7.0.1 and always use home assistant timezone for local todo dtstart ([@allenporter] - [#113034])
+- Fix some handle leaks in rainforest_raven ([@cottsay] - [#113035])
+- Fix hvac_mode for viessmann devices with heatingCooling mode ([@folke] - [#113054])
+- components/gardena_bluetooth: Improve avaliability reliability ([@alistair23] - [#113056])
+- Fix for controlling Hue switch entities ([@marcelveldt] - [#113064])
+- Bump rova to 0.4.1 ([@LukasdeBoer] - [#113066])
+- Fix colormode attribute on grouped Hue light ([@marcelveldt] - [#113071])
+- Bump axis to v54 ([@Kane610] - [#113091])
+- Bump aiodhcpwatcher to 0.8.1 ([@bdraco] - [#113096])
+- bump pytedee_async to 0.2.16 ([@zweckj] - [#113135])
+- Add message from Bad Request errors to HassioAPIError ([@agners] - [#113144])
+- Bump intents to 2023.3.12 ([@synesthesiam] - [#113160])
+- Bump airthings_ble to 0.7.1 ([@LaStrada] - [#113172])
+- Bump rokuecp to 0.19.2 ([@ctalkington] - [#113198])
+- Bump `brother` library to version `4.0.2` ([@bieniu] - [#113235])
+- Hotfix import error in ZHA for 2024.3.1 patch release ([@frenck] - [#113250])
+- Fix Twitch auth token refresh ([@jonnybergdahl] - [#112833])
+- Fix failing google diagnostics test ([@bdraco] - [#113095])
+- Add diagnostics for IPP ([@ctalkington] - [#113205])
+- Apply suggestion failures fail supervisor repair ([@mdegat01] - [#113372])
+- Supervisor issues update retries on failure ([@mdegat01] - [#113373])
+- Add loggers to Husqvarna Automower ([@Thomas55555] - [#113381])
+- Bump pyipp to 0.15.0 ([@ctalkington] - [#113204])
+
+[#108254]: https://github.com/home-assistant/core/pull/108254
+[#110185]: https://github.com/home-assistant/core/pull/110185
+[#110253]: https://github.com/home-assistant/core/pull/110253
+[#110882]: https://github.com/home-assistant/core/pull/110882
+[#111133]: https://github.com/home-assistant/core/pull/111133
+[#111441]: https://github.com/home-assistant/core/pull/111441
+[#111487]: https://github.com/home-assistant/core/pull/111487
+[#111648]: https://github.com/home-assistant/core/pull/111648
+[#112262]: https://github.com/home-assistant/core/pull/112262
+[#112272]: https://github.com/home-assistant/core/pull/112272
+[#112415]: https://github.com/home-assistant/core/pull/112415
+[#112515]: https://github.com/home-assistant/core/pull/112515
+[#112516]: https://github.com/home-assistant/core/pull/112516
+[#112554]: https://github.com/home-assistant/core/pull/112554
+[#112578]: https://github.com/home-assistant/core/pull/112578
+[#112589]: https://github.com/home-assistant/core/pull/112589
+[#112590]: https://github.com/home-assistant/core/pull/112590
+[#112618]: https://github.com/home-assistant/core/pull/112618
+[#112619]: https://github.com/home-assistant/core/pull/112619
+[#112620]: https://github.com/home-assistant/core/pull/112620
+[#112623]: https://github.com/home-assistant/core/pull/112623
+[#112627]: https://github.com/home-assistant/core/pull/112627
+[#112629]: https://github.com/home-assistant/core/pull/112629
+[#112632]: https://github.com/home-assistant/core/pull/112632
+[#112646]: https://github.com/home-assistant/core/pull/112646
+[#112661]: https://github.com/home-assistant/core/pull/112661
+[#112675]: https://github.com/home-assistant/core/pull/112675
+[#112676]: https://github.com/home-assistant/core/pull/112676
+[#112686]: https://github.com/home-assistant/core/pull/112686
+[#112696]: https://github.com/home-assistant/core/pull/112696
+[#112701]: https://github.com/home-assistant/core/pull/112701
+[#112718]: https://github.com/home-assistant/core/pull/112718
+[#112745]: https://github.com/home-assistant/core/pull/112745
+[#112747]: https://github.com/home-assistant/core/pull/112747
+[#112783]: https://github.com/home-assistant/core/pull/112783
+[#112795]: https://github.com/home-assistant/core/pull/112795
+[#112796]: https://github.com/home-assistant/core/pull/112796
+[#112833]: https://github.com/home-assistant/core/pull/112833
+[#112838]: https://github.com/home-assistant/core/pull/112838
+[#112861]: https://github.com/home-assistant/core/pull/112861
+[#112890]: https://github.com/home-assistant/core/pull/112890
+[#113007]: https://github.com/home-assistant/core/pull/113007
+[#113008]: https://github.com/home-assistant/core/pull/113008
+[#113019]: https://github.com/home-assistant/core/pull/113019
+[#113021]: https://github.com/home-assistant/core/pull/113021
+[#113034]: https://github.com/home-assistant/core/pull/113034
+[#113035]: https://github.com/home-assistant/core/pull/113035
+[#113054]: https://github.com/home-assistant/core/pull/113054
+[#113056]: https://github.com/home-assistant/core/pull/113056
+[#113064]: https://github.com/home-assistant/core/pull/113064
+[#113066]: https://github.com/home-assistant/core/pull/113066
+[#113071]: https://github.com/home-assistant/core/pull/113071
+[#113091]: https://github.com/home-assistant/core/pull/113091
+[#113095]: https://github.com/home-assistant/core/pull/113095
+[#113096]: https://github.com/home-assistant/core/pull/113096
+[#113135]: https://github.com/home-assistant/core/pull/113135
+[#113144]: https://github.com/home-assistant/core/pull/113144
+[#113160]: https://github.com/home-assistant/core/pull/113160
+[#113172]: https://github.com/home-assistant/core/pull/113172
+[#113198]: https://github.com/home-assistant/core/pull/113198
+[#113204]: https://github.com/home-assistant/core/pull/113204
+[#113205]: https://github.com/home-assistant/core/pull/113205
+[#113235]: https://github.com/home-assistant/core/pull/113235
+[#113250]: https://github.com/home-assistant/core/pull/113250
+[#113372]: https://github.com/home-assistant/core/pull/113372
+[#113373]: https://github.com/home-assistant/core/pull/113373
+[#113381]: https://github.com/home-assistant/core/pull/113381
+[@Ernst79]: https://github.com/Ernst79
+[@FieldofClay]: https://github.com/FieldofClay
+[@FlyingFeng2021]: https://github.com/FlyingFeng2021
+[@Kane610]: https://github.com/Kane610
+[@LaStrada]: https://github.com/LaStrada
+[@LukasdeBoer]: https://github.com/LukasdeBoer
+[@OnFreund]: https://github.com/OnFreund
+[@StevenLooman]: https://github.com/StevenLooman
+[@Thomas55555]: https://github.com/Thomas55555
+[@agners]: https://github.com/agners
+[@alinbalutoiu]: https://github.com/alinbalutoiu
+[@alistair23]: https://github.com/alistair23
+[@allenporter]: https://github.com/allenporter
+[@bachya]: https://github.com/bachya
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@bramkragten]: https://github.com/bramkragten
+[@catsmanac]: https://github.com/catsmanac
+[@clssn]: https://github.com/clssn
+[@cottsay]: https://github.com/cottsay
+[@ctalkington]: https://github.com/ctalkington
+[@dknowles2]: https://github.com/dknowles2
+[@emontnemery]: https://github.com/emontnemery
+[@folke]: https://github.com/folke
+[@frenck]: https://github.com/frenck
+[@j-stienstra]: https://github.com/j-stienstra
+[@janiversen]: https://github.com/janiversen
+[@jbouwh]: https://github.com/jbouwh
+[@jeeftor]: https://github.com/jeeftor
+[@jonnybergdahl]: https://github.com/jonnybergdahl
+[@lextm]: https://github.com/lextm
+[@marcelveldt]: https://github.com/marcelveldt
+[@mattmccormack]: https://github.com/mattmccormack
+[@mdegat01]: https://github.com/mdegat01
+[@mikewoudenberg]: https://github.com/mikewoudenberg
+[@mrchi]: https://github.com/mrchi
+[@puddly]: https://github.com/puddly
+[@synesthesiam]: https://github.com/synesthesiam
+[@thecode]: https://github.com/thecode
+[@tr4nt0r]: https://github.com/tr4nt0r
+[@zweckj]: https://github.com/zweckj
+
+## Release 2024.3.2 - March 22
+
+- Streamline Notion config entry updates (refresh token and user ID) ([@bachya] - [#112832])
+- Bump aioautomower to 2024.3.2 ([@Thomas55555] - [#113162])
+- Bump aioautomower to 2024.3.3 ([@Thomas55555] - [#113430])
+- Check for EA release channel for UniFi Protect ([@AngellusMortis] - [#113432])
+- Bump `pysnmp-lextudio` to version `6.0.11` ([@lextm] - [#113463])
+- Tado fix water heater ([@erwindouna] - [#113464])
+- Bump aiodhcpwatcher to 0.8.2 ([@bdraco] - [#113466])
+- Bump axis to v55 ([@Kane610] - [#113479])
+- Bump croniter to 2.0.2 ([@dgomes] - [#113494])
+- Revert setting communication delay in Risco init ([@OnFreund] - [#113497])
+- Bump pyrisco to 0.5.10 ([@OnFreund] - [#113505])
+- Fix missing context when running script from template entity ([@emontnemery] - [#113523])
+- Bump ical to 7.0.3 to fix local-todo persisted with invalid DTSTART values ([@allenporter] - [#113526])
+- Fix Airthings BLE illuminance sensor name ([@joostlek] - [#113560])
+- Ignore Shelly block update with cfgChanged None ([@thecode] - [#113587])
+- Catch `TimeoutError` in `Brother` config flow ([@bieniu] - [#113593])
+- Bump axis to v56 ([@Kane610] - [#113608])
+- Bump pyunifiprotect to 5.0.1 ([@AngellusMortis] - [#113630])
+- Bump pyunifiprotect to 5.0.2 ([@AngellusMortis] - [#113651])
+- Add removal condition to Shelly battery sensor ([@bieniu] - [#113703])
+- Bump aioraven to 0.5.2 ([@cottsay] - [#113714])
+- Fix unknown values in onewire ([@epenet] - [#113731])
+- Bump pymodbus v3.6.6 ([@janiversen] - [#113796])
+- Catch API errors in cast media_player service handlers ([@emontnemery] - [#113839])
+- Bump pychromecast to 14.0.1 ([@emontnemery] - [#113841])
+- Fix startup race in cast ([@emontnemery] - [#113843])
+- Redact the area of traccar server geofences ([@ludeeus] - [#113861])
+- Bump pytedee_async to 0.2.17 ([@zweckj] - [#113933])
+- Bump axis to v57 ([@Kane610] - [#113952])
+
+[#111133]: https://github.com/home-assistant/core/pull/111133
+[#111441]: https://github.com/home-assistant/core/pull/111441
+[#111648]: https://github.com/home-assistant/core/pull/111648
+[#112516]: https://github.com/home-assistant/core/pull/112516
+[#112832]: https://github.com/home-assistant/core/pull/112832
+[#113162]: https://github.com/home-assistant/core/pull/113162
+[#113249]: https://github.com/home-assistant/core/pull/113249
+[#113430]: https://github.com/home-assistant/core/pull/113430
+[#113432]: https://github.com/home-assistant/core/pull/113432
+[#113463]: https://github.com/home-assistant/core/pull/113463
+[#113464]: https://github.com/home-assistant/core/pull/113464
+[#113466]: https://github.com/home-assistant/core/pull/113466
+[#113479]: https://github.com/home-assistant/core/pull/113479
+[#113494]: https://github.com/home-assistant/core/pull/113494
+[#113497]: https://github.com/home-assistant/core/pull/113497
+[#113505]: https://github.com/home-assistant/core/pull/113505
+[#113523]: https://github.com/home-assistant/core/pull/113523
+[#113526]: https://github.com/home-assistant/core/pull/113526
+[#113560]: https://github.com/home-assistant/core/pull/113560
+[#113587]: https://github.com/home-assistant/core/pull/113587
+[#113593]: https://github.com/home-assistant/core/pull/113593
+[#113608]: https://github.com/home-assistant/core/pull/113608
+[#113630]: https://github.com/home-assistant/core/pull/113630
+[#113651]: https://github.com/home-assistant/core/pull/113651
+[#113703]: https://github.com/home-assistant/core/pull/113703
+[#113714]: https://github.com/home-assistant/core/pull/113714
+[#113731]: https://github.com/home-assistant/core/pull/113731
+[#113796]: https://github.com/home-assistant/core/pull/113796
+[#113839]: https://github.com/home-assistant/core/pull/113839
+[#113841]: https://github.com/home-assistant/core/pull/113841
+[#113843]: https://github.com/home-assistant/core/pull/113843
+[#113861]: https://github.com/home-assistant/core/pull/113861
+[#113933]: https://github.com/home-assistant/core/pull/113933
+[#113952]: https://github.com/home-assistant/core/pull/113952
+[@AngellusMortis]: https://github.com/AngellusMortis
+[@Kane610]: https://github.com/Kane610
+[@OnFreund]: https://github.com/OnFreund
+[@Thomas55555]: https://github.com/Thomas55555
+[@allenporter]: https://github.com/allenporter
+[@bachya]: https://github.com/bachya
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@cottsay]: https://github.com/cottsay
+[@dgomes]: https://github.com/dgomes
+[@emontnemery]: https://github.com/emontnemery
+[@epenet]: https://github.com/epenet
+[@erwindouna]: https://github.com/erwindouna
+[@frenck]: https://github.com/frenck
+[@janiversen]: https://github.com/janiversen
+[@joostlek]: https://github.com/joostlek
+[@lextm]: https://github.com/lextm
+[@ludeeus]: https://github.com/ludeeus
+[@thecode]: https://github.com/thecode
+[@zweckj]: https://github.com/zweckj
+
+## Release 2024.3.3 - March 22
+
+- Update cosign to 2.2.3 ([@frenck] - [#113996])
+- Bump axis to v58 ([@Kane610] - [#114008])
+
+[#113996]: https://github.com/home-assistant/core/pull/113996
+[#114008]: https://github.com/home-assistant/core/pull/114008
+[@frenck]: https://github.com/frenck
+[@Kane610]: https://github.com/Kane610
+
+## Need help? Join the community!
+
+Home Assistant has a great community of users who are all more than willing
+to help each other out. So, join us!
+
+Our very active [Discord chat server](/join-chat) is an excellent place to be
+at, and don't forget to join our amazing [forums](https://community.home-assistant.io/).
+
+Found a bug or issue? Please report it in our [issue tracker](https://github.com/home-assistant/core/issues),
+to get it fixed! Or, check [our help page](/help) for guidance for more
+places you can go.
+
+Are you more into email? [Sign-up for our Building the Open Home Newsletter](/newsletter)
+to get the latest news about features, things happening in our community and
+other news about building an Open Home; straight into your inbox.
+
+## Backward-incompatible changes
+
+{% details "AEMET" %}
+
+The daily data for the current day wasn't available after midday, and
+now it will be. Automations and scripts relying on `day[0]` for checking
+the next-day forecast will have to be adjusted to use `day[1]` instead.
+
+([@Noltari] - [#107795]) ([documentation](/integrations/aemet))
+
+[@Noltari]: https://github.com/Noltari
+[#107795]: https://github.com/home-assistant/core/pull/107795
+
+{% enddetails %}
+
+{% details "JuiceNet" %}
+
+The JuiceNet integration has been removed.
+
+Enel X has migrated from JuiceNet to JuicePass, rendering the JuiceNet
+integration useless. Background and alternative solutions to the juicenet
+integration can be found in the related
+[issue](https://github.com/home-assistant/core/issues/86588).
+
+([@emontnemery] - [#111477])
+
+[#111477]: https://github.com/home-assistant/core/pull/111477
+
+{% enddetails %}
+
+{% details "Met.no" %}
+
+The met.no integration previously created two entities for each configured
+location: one provided daily weather forecasts,
+and one provided hourly forecasts.
+
+The met.no integration now only creates a single entity that provides
+both daily and hourly weather forecasts.
+
+([@emontnemery] - [#97023]) ([documentation](/integrations/met))
+
+[@emontnemery]: https://github.com/emontnemery
+[#97023]: https://github.com/home-assistant/core/pull/97023
+
+{% enddetails %}
+
+{% details "MQTT" %}
+
+Aux heat, deprecated in Home Assistant Core 2023.9, is now removed from
+the MQTT climate.
+
+([@jbouwh] - [#109513]) ([documentation](/integrations/mqtt))
+
+[@jbouwh]: https://github.com/jbouwh
+[#109513]: https://github.com/home-assistant/core/pull/109513
+
+{% enddetails %}
+
+{% details "Z-Wave" %}
+
+For Z-Wave `climate` entities, the behavior of the `climate.turn_on` service
+has changed. Previously, the service would act in the following order depending
+on whether the corresponding conditions were met:
+
+1. If the entity supported the `off` mode and exactly one additional mode,
+ `climate.turn_on` would set the mode to the additional mode.
+2. If conditions for 1 were not met and at least one of the following modes were
+ available, the service would set the mode to the first mode it found
+ in the specified order: `heat_cool`, `heat`, `cool`.
+3. If conditions for 1 and 2 were not met, the service would silently do nothing.
+
+Now, the service follows the following behavior in order:
+
+1. If the entity supports the `resume` thermostat mode, it will be used to
+ restore the last mode you used before the entity was turned off.
+2. If the condition for 1 isn't met and the entity was turned off in
+ Home Assistant, and Home Assistant wasn't restarted, Home Assistant
+ remembers the last "on" mode and will set it to that mode. Home Assistant
+ will be unable to set the entity to the previous mode if Home Assistant
+ starts with the entity already in `off` mode since the integration will
+ not know what the previous mode was.
+3. If conditions for 1 and 2 are not met and at least one of the following
+ modes is available, the service sets the mode to the first mode it finds
+ in the specified order: `heat_cool`, `heat`, `cool`
+ (no change to condition 2 above).
+4. If conditions for 1, 2, and 3 are not met, the mode will be set to the first
+ supported mode it finds (like `dry` or `fan_only`).
+
+([@raman325] - [#109187]) ([documentation](/integrations/zwave_js))
+
+[@raman325]: https://github.com/raman325
+[#109187]: https://github.com/home-assistant/core/pull/109187
+
+{% enddetails %}
+
+If you are a custom integration developer and want to learn about breaking
+changes and new features available for your integration: Be sure to follow our
+[developer blog][devblog]. The following are the most notable for this release:
+
+- [Altering config entries](https://developers.home-assistant.io/blog/2024/02/12/async_update_entry/)
+- [Deprecate use of @bind_hass and hass.components](https://developers.home-assistant.io/blog/2024/02/27/deprecate-bind-hass-and-hass-components)
+- [Introducing device name translations](https://developers.home-assistant.io/blog/2024/02/28/device-name-translations)
+- [It is now required for lights to set color mode](https://developers.home-assistant.io/blog/2024/02/12/light-color-mode-mandatory/)
+- [New Climate entity toggle method](https://developers.home-assistant.io/blog/2024/02/25/Climate-toggle-service)
+- [New single instance only manifest option](https://developers.home-assistant.io/blog/2024/02/26/single-instance-only-manifest-option)
+- [Support for platform translations in separate files will be removed](https://developers.home-assistant.io/blog/2024/03/05/platform_entity_translations_deprecation)
+
+[devblog]: https://developers.home-assistant.io/blog/
+
+## All changes
+
+Of course, there is a lot more in this release. You can find a list of
+all changes made here: [Full changelog for Home Assistant Core 2024.3](/changelogs/core-2024.3)
diff --git a/source/_posts/2024-03-16-voice-assistant-community-contest-winners-annoucement.markdown b/source/_posts/2024-03-16-voice-assistant-community-contest-winners-annoucement.markdown
new file mode 100644
index 00000000000..5c649466421
--- /dev/null
+++ b/source/_posts/2024-03-16-voice-assistant-community-contest-winners-annoucement.markdown
@@ -0,0 +1,129 @@
+---
+layout: post
+title: "And the winners of our voice assistant community contest are 🥁 ..."
+description: "We organized a voice assistant contest. Here are the winners!"
+date: 2024-03-16 00:00:01
+date_formatted: "March 16, 2024"
+author: Jean-Loïc Pouffier
+comments: true
+categories: Assist
+og_image: /images/blog/2024-01-11-voice-assistant-contest/banner.png
+---
+
+

+
+2023 was the [Year of the Voice](/blog/2022/12/20/year-of-voice/). It was a yearly goal to let users control Home Assistant in their own language. We organized a contest to celebrate what our voice assistants could enable with the community. The contest entries have been all amazing, the work produced outstanding. Personally, I learnt so much just reviewing all the entries, I learnt that our community is so creative and relentless. My personal project list grew quite a lot as I want to implement half of the entries at home! Today is the day we announce the winners!
+
+
+
+It is important to note that while Year of the Voice is over, voice is now part of Home Assistant just like automations or dashboards.
+The sharp focus is over, but voice will get updates forever, just like every other part of Home Assistant.
+
+The contest was split into 4 categories:
+
+- Most creative satellite ideas
+- Best Starting Guides
+- Best events organized, best group effort
+- Best voice experiences
+
+You can read more about the contest specifics in the [blog post announcing the contest](/blog/2024/01/17/voice-assistant-contest/).
+
+Due to a lack of entries, we removed the category “Best events organized, best group effort”.
+
+
+## Most creative satellite ideas
+
+The competition was the most fierce in that category!
+
+On the one hand, it pleases me to see how many of you managed to create something unique, quirky, and creative using our voice assistant functionalities. This means that our voice assistant is indeed aligned with our value of Choice. On the other hand, it made picking a winner even more complex 😬.
+
+So without further ado, the winner of the “most creative satellite ideas” category is [dirtyharriv](https://community.home-assistant.io/u/dirtyharriv) and their [Bender Voice Assistant](https://community.home-assistant.io/t/bender-voice-assistant/682041).
+
+Congratulations on your entry! Your voice assistant embodies perfectly what we think when we talk about choice: Custom wake word, custom voice, in-character responses, a beautiful 3D printed case, LEDs… It’s perfect!
+
+
+
+**[Dirtyharriv](https://community.home-assistant.io/u/dirtyharriv) wins a Home Assistant Green, a Home Assistant SkyConnect, and a spot on our livestream on the 10th of April to present their project!**
+
+We also have a lot of runners-up in this category, **they all win a Home Assistant SkyConnect!**
+
+- [Smartsaver](https://community.home-assistant.io/u/smartsaver) with their [Assist Mirror Satellite](https://community.home-assistant.io/t/assist-mirror-satellite/699264).
+- [Abrakhim](https://community.home-assistant.io/u/abrakhim) with their [R2D2 Satellite](https://community.home-assistant.io/t/r2d2-satellite/690701).
+- [Journeywithlogan](https://community.home-assistant.io/u/journeywithlogan) with their [LOLA59 Voice Assistant](https://community.home-assistant.io/t/lola59-voice-assistant-multisensor-apple-airplay/701723).
+- [DaWheelz](https://community.home-assistant.io/u/DaWheelz) with their [Jarvis Assistant](https://community.home-assistant.io/t/jarvis-assistant/695720).
+- [Johnd126](https://community.home-assistant.io/u/johnd126) with their [Old timey radio](https://community.home-assistant.io/t/my-old-timey-radio-voice-assistant-satellite-contest-entry/698238).
+- [NonaSuomy](https://community.home-assistant.io/u/NonaSuomy) with their [Vector voice assistant](https://community.home-assistant.io/t/vector-home-assistant-control/675165).
+- [Tesat](https://community.home-assistant.io/u/Tesat) with their [SmoT robot](https://community.home-assistant.io/t/smot-your-homeassistant-companion-robot/696369).
+- [MetalOnes](https://community.home-assistant.io/u/MetalOnes) with their [Vintage Radio](https://community.home-assistant.io/t/vintage-radio-voice-assistant/699049).
+- [Ejlane](https://community.home-assistant.io/u/ejlane) with their [Death Star Voice Assistant](https://community.home-assistant.io/t/death-star-voice-assistant/701706).
+- [Tpage](https://community.home-assistant.io/u/tpage) with their [Egg Voice Assistant](https://community.home-assistant.io/t/egg-voice-assistant/698819).
+
+## Best Starting Guides
+
+Again, lots of entries in this category, it amazes me to see how many of you tried hard to provide something that could be re-used by other members of the community, whether it was a device that you can purchase, hack, or build yourself, or a series of videos you can follow to set something up in your own home.
+
+Building something is already hard, but building something to offer it to others is even harder. This category was, to me, the category with the biggest amount of work done by the contestants, congratulations to you all.
+
+The winner of the “best starting guides” category is [landonr](https://community.home-assistant.io/u/landonr) with their [homeThing S3](https://community.home-assistant.io/t/homething-s3-ipod-smart-home-remote-with-voice-control/702666).
+
+The homeThing blew us away, it's an iPod-style remote for your home that ticks so many boxes: Rotary dial, screen, IR blaster, microphone, speaker, battery ...
+
+Everything is open source, up to the custom PCB that [landonr](https://community.home-assistant.io/u/landonr) created. The ESPHome configuration is open source. This is the perfect device to have in your home!
+
+
+
+**[Landonr](https://community.home-assistant.io/u/landonr) wins a Home Assistant Green, a Home Assistant SkyConnect, and a spot on our livestream on the 10th of April to present their project!**
+
+We also have a few runners-up in this category, **they all win a Home Assistant SkyConnect!**
+
+- [FutureProofHomes](https://community.home-assistant.io/u/FutureProofHomes) and their [video series on the Wyoming protocol](https://community.home-assistant.io/t/futureproofhomes-wyoming-enhancements-yt-series-contest-entry/693723).
+- [Thorsten-voice](https://community.home-assistant.io/u/thorsten-voice) and their [tutorial series “Home Assistant ❤️ Voice”](https://community.home-assistant.io/t/yt-tutorial-series-home-assistant-voice-cooking-recipe-style/696644).
+- [Thatguy_za](https://community.home-assistant.io/u/thatguy_za) and their [simple ESP32 voice assistant](https://community.home-assistant.io/t/my-esp32-based-voice-assistant-with-wake-word/697153).
+
+## Best voice experiences
+
+This category was not about hardware, it was about providing the best software experience that elevates the voice experience in Home Assistant. I had the most fun reviewing this category because most of the entries can be re-used at home without any particular hardware! Instant improvement of my system!
+
+The winner of the “best voice experiences” category is [dinki](https://community.home-assistant.io/u/dinki) with their [View Assist](https://community.home-assistant.io/t/view-assist-visual-feedback-for-assist-voice-assistant-on-an-android-tablet-install-info-provided-on-wiki/699659).
+
+View Assist is a complete UI for Assist running on an old Android tablet that tries to replicate the UI of devices such as an Amazon Echo Show. It is very complete and well-documented, and I think can be a candidate for fully replacing a screen-based voice assistant such as an Amazon Echo Show or a Google Nest Hub.
+
+
+
+**[Dinki](https://community.home-assistant.io/u/dinki) wins a Home Assistant Green, a Home Assistant SkyConnect, and a spot on our livestream on the 10th of April to present their project!**
+
+We also have a lot of runners-up in this category, **they all win a Home Assistant SkyConnect!**
+
+- [ACiDGRiM](https://community.home-assistant.io/u/ACiDGRiM) and their [NodeRed ChatGPT-powered bedtime story agent](https://community.home-assistant.io/t/replace-yourself-with-ai-nodered-bedtime-story-from-chatgpt/699843).
+- [Lajos](https://community.home-assistant.io/u/Lajos) and their [improvement of the S3 Box firmware to display text](https://community.home-assistant.io/t/a-jrpg-style-conversation-with-the-voice-assistant-on-the-s3-box-3/697172).
+- [Amorfinv](https://community.home-assistant.io/u/amorfinv) and their [dice-activated voice assistant](https://community.home-assistant.io/t/dice-activated-voice-assistant/680506).
+- [JT1](https://community.home-assistant.io/u/JT1) and their [implementation of reminders in assist](https://community.home-assistant.io/t/local-voice-reminders-created-with-assist/698875).
+- [Nfragment](https://community.home-assistant.io/u/nfragment) and their [Linux UI using wyoming satellite](https://community.home-assistant.io/t/advanced-virtual-assistant-using-linux-as-a-wyoming-satellite/702013).
+- [DonNL](https://community.home-assistant.io/u/DonNL) and their [simple Assist goodnight routine](https://community.home-assistant.io/t/voice-assistent-contest-assist-goodnight-routine-for-everyone/676224).
+- [Richard_Albritton](https://community.home-assistant.io/u/Richard_Albritton) and their [cute Executive Dysfunction Automated Audio Medication Reminder monster](https://community.home-assistant.io/t/executive-dysfunction-automated-audio-medication-reminder-proof-of-concept/700668).
+- [Wishy](https://community.home-assistant.io/u/wishy) and their [food label printing solution](https://community.home-assistant.io/t/food-labels-via-a-dymo-label-printer/701986).
+
+I want to give a small shout-out to one of the runner-up: [Lajos](https://community.home-assistant.io/u/Lajos) and their [improvement of the S3 Box firmware to display text](https://community.home-assistant.io/t/a-jrpg-style-conversation-with-the-voice-assistant-on-the-s3-box-3/697172), you did something I personally considered impossible in the S3 box, and never tried to implement it because of this false assumption. Seeing your entry pushed me to give it a try and I am happy to announce that [very soon](https://github.com/esphome/firmware/pull/177), the official voice assistant firmware for the S3 boxes will allow everyone to display the spoken text of the request and the response on the screen.
+
+## Community choice
+
+We also asked you to vote for your favorite entry, the votes were fierce but one entry skyrocketed above the rest.
+
+It is my pleasure to announce that the community vote is [Rellu](https://community.home-assistant.io/u/Rellu) and their [HA-Visual-Voice-Assistant](https://community.home-assistant.io/t/voice-assistant-contest-ha-visual-voice-assistant/687593).
+
+HA-Visual-Voice-Assistant is an impressive voice experience that creates on-the-fly AI-generated videos of characters as visual feedback for Assist. The video that [Rellu](https://community.home-assistant.io/u/Rellu) provides in his entry is really complete, with the ability to change characters and language directly via voice. Great job!
+
+
+
+**[Rellu](https://community.home-assistant.io/u/Rellu) wins a Home Assistant Green, a Home Assistant SkyConnect, and a spot on our livestream on the 10th of April to present their project!**
+
+## Thank you
+
+Thank you to the Home Assistant community for subscribing to [Home Assistant Cloud](https://www.nabucasa.com/) to support Year of the Voice and the development of Home Assistant, ESPHome, and other projects in general.
+
+We will contact all winners and runners-up in the next few days to organize shipping.
+We are looking forward to having the winners on the livestream with us on the 10th of April.
+
+I hope you enjoyed this first Home Assistant contest, rest assured that it won’t be the last.
+
+JLo, Over and Out.
diff --git a/source/_posts/2024-04-03-release-20244.markdown b/source/_posts/2024-04-03-release-20244.markdown
new file mode 100644
index 00000000000..64d6213de5b
--- /dev/null
+++ b/source/_posts/2024-04-03-release-20244.markdown
@@ -0,0 +1,1052 @@
+---
+layout: post
+title: "2024.4: Organize all the things!"
+description: "Time for spring cleaning 🧹 Introducing new ways to organize your automations (and more) with floors, labels, and categories. Easily add Matter devices from other controllers, and two brand new map and webpage dashboards."
+date: 2024-04-03 00:00:00
+date_formatted: "April 3, 2024"
+author: Franck Nijhof
+author_twitter: frenck
+comments: true
+categories:
+ - Release-Notes
+ - Core
+og_image: /images/blog/2024-04/social.png
+---
+
+

+
+Home Assistant Core 2024.4! 🌱 🌻
+
+Are you ready for another massive release? This release addresses the most
+requested feature in Home Assistant history: grouping automations! 🎉
+
+But why stop there?
+
+This release brings excellent new features to our user interface that house not
+one, not two, but three! new ways to organize your Home Assistant setup!
+The best part is that it is not just for automations, but for everything! 🤯
+
+Perfect timing: spring is here! Time to spring clean your Home Assistant
+setup by adding some organization to your configuration! 🧹
+
+Enjoy the release! 🌞
+
+../Frenck
+
+
+
+- [Home Assistant spring cleaning! 🧹 New ways to get your automations (and more) organized](#home-assistant-spring-cleaning--new-ways-to-get-your-automations-and-more-organized)
+- [Upgraded tables!](#upgraded-tables)
+ - [A new toolbar](#a-new-toolbar)
+ - [Filter panel](#filter-panel)
+ - [Item grouping](#item-grouping)
+ - [Selection mode and batch actions](#selection-mode-and-batch-actions)
+- [Three new ways to organize](#three-new-ways-to-organize)
+ - [Floors: Help Home Assistant understand your house](#floors-help-home-assistant-understand-your-house)
+ - [Labels: Tag everything any way you want](#labels-tag-everything-any-way-you-want)
+ - [Categories: Make each settings page easier to browse](#categories-make-each-settings-page-easier-to-browse)
+ - [Time to clean up your Home Assistant!](#time-to-clean-up-your-home-assistant)
+- [Map dashboard](#map-dashboard)
+- [Webpage dashboard](#webpage-dashboard)
+- [Define the columns in the section view](#define-the-columns-in-the-section-view)
+- [Adding Matter devices from other controllers](#adding-matter-devices-from-other-controllers)
+- [Lock behavior improvements](#lock-behavior-improvements)
+- [Even more performance!](#even-more-performance)
+- [Other noteworthy changes](#other-noteworthy-changes)
+- [New integrations](#new-integrations)
+- [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui)
+- [Release 2024.4.1 - April 5](#release-202441---april-5)
+- [Release 2024.4.2 - April 8](#release-202442---april-8)
+- [Release 2024.4.3 - April 12](#release-202443---april-12)
+- [Release 2024.4.4 - April 23](#release-202444---april-23)
+- [Need help? Join the community!](#need-help-join-the-community)
+- [Backward-incompatible changes](#backward-incompatible-changes)
+- [Farewell to the following](#farewell-to-the-following)
+- [All changes](#all-changes)
+
+Don't forget to [join our release party live stream on YouTube](https://www.youtube.com/watch?v=Q1yHfqsVidw)
+3 April 2024, at 20:00 GMT / 12:00 PST / 21:00 CEST!
+
+
+
+## Home Assistant spring cleaning! 🧹 New ways to get your automations (and more) organized
+
+By far, the most requested feature in Home Assistant history would be:
+
+[_"Grouping Automations on frontend for organization"_](https://community.home-assistant.io/t/grouping-automations-on-frontend-for-organization/102771).
+
+We hear you! Today, in this release, we are going to give you tools to organize
+your Home Assistant setup, and we took it a few (well, many) steps further than
+just grouping {% term automations %}!
+
+We are introducing 3 (yes, you’ve read it correctly. It’s _three_) organization
+taxonomies, and we revamped our entire table user interface plus a few goodies
+along the way.
+
+## Upgraded tables!
+
+Adding more ways to organize your Home Assistant is great! But being able to
+easily view, filter, and navigate information is just as important. To achieve
+this, we have re-designed ALL the tables in Home Assistant.
+
+For an admin interface, tables are essential for visualizing and managing
+large datasets. Home Assistant has many tables in its settings pages.
+Previously, our UI provided the ability to search, sort, and filter for a few
+aspects, but it was relatively barebones.
+
+Today, we are rolling out a revamped table UI that will be standardized across
+**all** tables in the settings pages with new and improved features.
+
+### A new toolbar
+
+As we add more features to the tables, we need to keep the UI clean and its
+features easy to find. Therefore, we added descriptive text to the dropdown
+menus and standardized the look and feel of the toolbar buttons and text boxes.
+Shiny!
+
+
+
+ The new toolbar that is now on every table in Home Assistant.
+
+
+### Filter panel
+
+Previously, our automations page allowed you to filter by {% term areas %},
+{% term entities %}, or {% term devices %}, but only one at a time, and the
+filters were tucked away in a dropdown menu, which meant you needed to select
+a dropdown menu inside a dropdown menu to filter by area.
+
+A new filter panel fixes these issues by providing a new dual pane user
+interface that can let you check multiple filters across multiple filter
+types on the left that stay put and view the filtered results on the right.
+
+

+
+We also introduced multiple new filter types for each table. For example,
+{% term automations %} can now be filtered not only by {% term areas %},
+{% term entities %} , or {% term devices %}, but also by used
+{% term blueprints %}, labels, and categories (more on these later!).
+
+We didn’t stop at just that page! The devices and entities pages now also have
+a way to filter not only by state but also by integrations and areas. Almost all
+tables now have useful new filters to help you find what you are looking for.
+
+### Item grouping
+
+Browsing a list of hundreds of {% term automations %} or thousands of
+{% term entities %} can be overwhelming. While filters can help narrow the list,
+visually grouping the items into smaller chunks makes browsing easier.
+
+With the item grouping feature, we introduced a new dropdown menu to pick
+how you’d like the items on the table to be grouped. On the automations page,
+you can group automations by their {% term state %} - whether enabled
+or not - and custom categories (more on that later!). On the {% term devices %}
+page, you can even group them by manufacturers, {% term areas %},
+or {% term integrations %}, which is really cool because it makes the page much
+easier to browse. It gives you a new perspective on organizing your vast
+network of devices.
+
+

+
+### Selection mode and batch actions
+
+We removed the clutter of displaying a column of checkboxes by introducing
+a new selection mode. When it is toggled on, checkboxes will appear, and you
+can apply actions to all your selections with one click on the toolbar.
+
+
+
+ This button enables selection mode in the new tables.
+
+
+It allows you to, for example, enable or disable multiple selected
+{% term entities %} on the entities page at once. This new paradigm will allow
+us to introduce more batch management actions in the future.
+
+

+
+## Three new ways to organize
+
+Upon reading through and ideating on the feature request thread on
+[“Automation Grouping”](https://community.home-assistant.io/t/grouping-automations-on-frontend-for-organization/102771),
+we realized that organization can be done in multiple ways for different purposes.
+
+We learned that users who are proficient in making {% term automations %} have
+hundreds of them, which makes locating a particular automation hard. They often
+had to resort to using "hacks" such as emojis, bracketed “tags”, or numbering
+each automation to get the sort order they wanted. They needed a way to easily
+filter down and break down the giant list into more manageable chunks.
+
+We also noticed that users are stretching our areas feature beyond its
+intended purpose. For example, some users would create “{% term areas %}” such
+as “3D printer”, “Christmas decorations”, or even “Left side of my office desk”,
+to group different {% term devices %} and {% term entities %} together under
+one umbrella for dashboards or {% term automations %}.
+
+As we are developing our new dashboards and voice commands, this poses a
+big problem: We would be unable to provide specialized solutions if a dashboard
+{% term blueprint %} or automation blueprint cannot confidently assume the context of
+how it would be used. We need something more specialized.
+
+Therefore, to balance the basic goal of providing a more digestible UI for
+all users, the need for flexibility for our power users, and the future vision
+of Home Assistant, we are introducing 3 new organization structures to
+Home Assistant:
+
+**[Floors](#floors-help-home-assistant-understand-your-house)**,
+**[Labels](#labels-tag-everything-any-way-you-want)**,
+and **[Categories](#categories-make-each-settings-page-easier-to-browse)**
+
+### Floors: Help Home Assistant understand your house
+
+Let's talk about the new organizational structures, starting with **floors**.
+
+To become a truly intelligent home automation platform, Home Assistant needs
+to understand the context: Where exactly is a {% term device%}? How does one
+{%term area %} relate to another? What is the space used for?
+
+Currently, Home Assistant has {% term areas %}. Areas specify the physical
+location or vicinity of your devices per living space in your home
+(like the living room or kitchen). However, some users living in standalone
+houses might have multiple floors with their own areas.
+
+{% term Floors %} are a new way to organize your areas per level of floors in
+your home. The better Home Assistant knows your home and how it is spatially
+structured, the better it can help you. Especially when it comes to future
+features like generating dashboards, voice commands, and maybe even
+AI-related features.
+
+

+
+You can use floors in your {% term automations %} and {% term scripts %} as a
+target for your actions or control them with your voice. For example, you can
+turn off all the lights on the downstairs floor when you go to bed or ask
+[Assist](/voice_control/) to turn on the lights upstairs.
+
+For our power users, you can even use [floors in your templates](/docs/configuration/templating/#floors)
+to create the most advanced and creative automations.
+
+{% my areas badge %}
+
+### Labels: Tag everything any way you want
+
+{% term Floors %} and {% term areas %} are great for representing your actual
+home, but as everyone has their own ways of organizing their home, everyone
+has their own ways of organizing their Home Assistant, too!
+This is where **labels** 🏷️ come in!
+
+Labels is an organizational structure that is completely up to you. You can
+make as many labels with any naming structure, in any color 🌈 you want, and
+assign them to basically anything in Home Assistant. You assign labels to
+anything: {% term areas %}, {% term devices %}, {% term entities %},
+{% term automations %}, {% term scripts %}, helpers, you name it!
+You can even assign multiple labels to the same thing.
+
+

+
+Just like with floors, you can use labels in your automations and scripts as
+a target for your {% term actions %}. This gives you a lot of flexibility,
+not just in organizing your Home Assistant, but also in automating your home! 🤯
+
+For example, you could create a label "🎄 Christmas" to label all your
+Christmas decorations during the holiday season. You can then use this label to
+automate all of those decorations at once or to filter them in the new tables.
+
+More examples? You could create a label "🔒 Security" to label and control all
+your security-related devices and automations. Or, "🛌 Bedrooms" to label all
+your bedroom areas and simultaneously control all the devices in those areas.
+
+Do you have solar panels or home batteries? Create a label "⚡️ Heavy energy usage"
+to label devices that consume a lot of energy. You could switch them off when
+there is not enough battery or solar energy available.
+
+You decide how to use labels, and the possibilities are endless! And for our
+power users, you guessed it, you can use [labels in your templates](/docs/configuration/templating/#labels).
+
+{% my labels badge %}
+
+### Categories: Make each settings page easier to browse
+
+Last but not least, we are introducing **categories**. Categories are designed
+to be paired with the aforementioned [item grouping feature](#item-grouping),
+and it can be used to group things visually specific to a certain table
+in Home Assistant.
+
+This is great for those who have a particular way of displaying their
+{% term entities %} by separating them into multiple sections on a specific page.
+For example, on the {% term automations %} page, you can create categories only
+used for visually grouping automations but nowhere else, like "Notifications"
+or “NFC tags”. You can then view your automations grouped or filtered by
+those categories.
+
+

+
+As these categories are unique for each dashboard, you can have different
+sets of categories depending on the place you are organizing. This means
+you can have different categories on the automations page than the
+{% term scene %}, {% term scripts %}, or helpers settings page.
+
+### Time to clean up your Home Assistant!
+
+In summary, there are a total of 4 taxonomies for organizing your entities.
+It sounds like a lot, but they all serve a distinct purpose. We are extending
+and clarifying {% term areas %} with {% term floors %}, and we are introducing
+{% term labels %} and {% term categories %} to make your {% term automations %}
+and many other tables look more organized and be more manageable.
+
+What’s next? Time to dig in! Here are a few steps we recommend you take
+action on to organize your Home Assistant better:
+
+- **Migrate to labels**:
+ - If you have been grouping automations with emojis and bracketed text,
+ you can now create labels for each. Labels can have icons to replace the
+ emojis you had before.
+ - For areas that aren’t really physical spaces, switching them to labels will
+ provide you more flexibility in organizing your entities.
+- **Start using categories**:
+ If you have a favorite way of organizing a particular page, create those
+ categories and group the table by them. For example, you could create a
+ notification category for all your notification automations and put all
+ notification automations in that category.
+- **Group your areas into floors**:
+ If you live in a multi-story home, grouping areas into floors help with
+ organizing the areas as well as making them more compatible with future
+ features.
+
+Last of all, to help us to help you to perfect the design of these new features,
+we would love to hear your feedback and see how you use them! Please feel free
+to share them in the comments below and discuss them in our community.
+
+## Map dashboard
+
+Introducing a new dashboard this release: The **map**! 🗺️
+
+You might think, "Hey, we already have a map dashboard in Home Assistant!"
+and you are right! However, the map was an integration that was always there
+and didn't provide the flexibility and features that were wanted.
+
+With the map dashboard's introduction, you can now add multiple map dashboards
+with different entities and configuration settings. For example, create a
+dashboard to show the location of your family members, another to track your
+car, and another to show the location of your pets. 🐶
+
+

+
+On upgrade, Home Assistant will automatically migrate your existing map
+integration to a map dashboard.
+
+You don't like having the map in your sidebar? Well, that is no longer a
+problem. Since it is now a dashboard it means you can remove it in the dashboard
+settings.
+
+## Webpage dashboard
+
+Another new dashboard for this release is the **webpage**! 🌐
+
+The webpage dashboard allows you to add and embed a webpage to your dashboard.
+This could be a web page from the internet or a local web page from a local
+machine or device like your router or NAS.
+
+

+
+This dashboard replaces the old iFrame panel (`iframe_panel`). If you have
+existing panels configured in your YAML configuration, Home Assistant will
+automatically migrate them to the new webpage dashboard on upgrade.
+
+

+
+Note that not every webpage can be embedded due to security restrictions that
+some sites or pages have in place, enforced by your browser, that prevent
+embedding them into a Home Assistant dashboard.
+
+## Define the columns in the section view
+
+In the last release, we [introduced the section view](/blog/2024/03/06/release-20243/#a-new-experimental-sections-view)
+with drag and drop support. We are absolutely thrilled to see how many of you
+loved it! 🥰
+
+Many thanks for all the feedback and suggestions! We are prioritizing them and
+are working on making the section view even better in the upcoming releases.
+
+In this release, based on your feedback, we have added the ability for you to
+define the maximum number of columns that the section view uses. This allows you
+to limit the number of columns, regardless of the screen width on which you
+are viewing your dashboard.
+
+

+
+## Adding Matter devices from other controllers
+
+In the [February release](/blog/2024/02/07/release-20242/#matter-diagnostics-and-actions),
+we added support for sharing Matter devices tied to Home Assistant with other
+Matter controllers. This release, we are making the other way around easier.
+
+We have improved how you can add Matter devices from other controllers to
+Home Assistant. When you add a Matter device to Home Assistant, it will now
+ask you if you want to add a new Matter device or if you want to add a device
+that is already added to another controller (like Google Home or Apple Home).
+
+

+
+Suppose you choose to add a device that has already been added to another
+controller. In that case, Home Assistant will guide you through how to
+achieve this step by step.
+
+

+
+## Lock behavior improvements
+
+Some smart locks have an open (or unlatching) mechanism that can be triggered
+remotely. The door either pops out of the lock or can be opened by pushing
+against the door.
+
+We want to ensure you don't accidentally open the door when you miss-clicked
+the button (for example, while not at home 😬). Therefore, we have improved
+the behavior of locks in our user interface by requiring you to confirm the
+action.
+
+

+
+## Even more performance!
+
+Remember how we wrote last release that [Home Assistant now boots twice as fast](/blog/2024/03/06/release-20243/#home-assistant-boots-twice-as-fast)?
+Well, [@bdraco] wasn't done yet and teamed up with [@balloob]. If you thought
+the previous release was fast, you are in for a treat! 🚀 The difference is,
+yet again, very noticeable.
+
+Besides streamlining what is loaded at startup (and doing less loading), we
+have adjusted the startup time tracking. It used to be that one integration
+could push other integrations to be slow too; that should no longer be the case,
+making this a more accurate representation of the actual startup time.
+
+Want to learn about the individual startup times of your integrations? You can
+find them in the {% my repairs title="**Settings** -> **System** -> **Repairs**" %}
+page by selecting the three-dotted menu in the top right and selecting the
+**Integration startup time** item.
+
+{% my repairs badge %}
+
+[@bdraco]: https://github.com/bdraco
+[@balloob]: https://github.com/balloob
+
+## Other noteworthy changes
+
+There are many more improvements in this release; here are some of the other
+noteworthy changes this release:
+
+- [@karwosts] has improved your Home Assistant {% my profile title="user profile" %}
+ page, making navigating and finding the settings you are looking for easier.
+ Nice work!
+- If you use a [sentence trigger] in your automation to trigger it using
+ [Assist]. The trigger will now include the `device_id` in its trigger data
+ you can automate with. Thanks, [@synesthesiam]!
+- The [HomeWizard Energy] integration now supports the newest generation of
+ HomeWizard Energy Sockets! Thanks, [@DCSBL]!
+- We can now ship new releases of Home Assistant in waaay less time.
+ Building and shipping Home Assistant for you, went down from 1.5-2 hours to
+ just 20 minutes! 🚀 Thanks [@edenhaus]!
+ [Learn more about it in our developer blog](https://developers.home-assistant.io/blog/2024/04/03/build-images-with-uv/).
+- [Reolink] now supports PTZ patrol start/stop, package detection and controls
+ for playing quick reply messages. Thanks, [@starkillerOG]!
+- We have brand new template functions available to list [all the issues] in
+ your repairs dashboard. Thanks, [@RoboMagus]!
+- If you prefer your wind speed sensors to be in Beaufort, you are in luck!
+ You can now change the unit of measurement to Beaufort. Thanks, [@fwestenberg]!
+- The [Husqvarna Automower] integration development continues and has additional
+ new entities, including sensors, select entities, and a device tracker.
+ Thanks, [@Thomas55555]!
+- [@catsmanac] has added a sensor to monitor the battery storage attached
+ to your [Enphase Envoy]; it works with the energy dashboard! Nice!
+- The [Xiaomi BLE] integration now supports locks and fingerprint readers!
+ Awesome, [@Ernst79]!
+
+[@catsmanac]: https://github.com/catsmanac
+[@DCSBL]: https://github.com/DCSBL
+[@edenhaus]: https://github.com/edenhaus
+[@Ernst79]: https://github.com/Ernst79
+[@fwestenberg]: https://github.com/fwestenberg
+[@karwosts]: https://github.com/karwosts
+[@RoboMagus]: https://github.com/RoboMagus
+[@starkillerOG]: https://github.com/starkillerOG
+[@synesthesiam]: https://github.com/synesthesiam
+[@Thomas55555]: https://github.com/Thomas55555
+[all the issues]: /docs/configuration/templating/#issues
+[Assist]: /voice_control/
+[Enphase Envoy]: /integrations/enphase_envoy
+[HomeWizard Energy]: /integrations/homewizard
+[Husqvarna Automower]: /integrations/husqvarna_automower
+[Reolink]: /integrations/reolink
+[sentence trigger]: /docs/automation/trigger/#sentence-trigger
+[Xiaomi BLE]: /integrations/xiaomi_ble
+
+## New integrations
+
+We welcome the following new integrations in this release:
+
+- **[Fyta]**, added by [@dontinelli]
+ Monitor your plants with Fyta, a smart plant sensor that measures light,
+ temperature, humidity, and soil moisture.
+- **[Motionblinds Bluetooth]**, added by [@LennP]
+ Control your Bluetooth Low Energy Motionblinds motorized window coverings.
+- **[Ollama]**, added by [@synesthesiam]
+ Ollama a fully local AI conversation platform that can be used to create
+ custom voice assistants.
+
+[@dontinelli]: https://github.com/dontinelli
+[@LennP]: https://github.com/LennP
+[@synesthesiam]: https://github.com/synesthesiam
+[Fyta]: /integrations/fyta
+[Motionblinds Bluetooth]: /integrations/motionblinds_ble
+[Ollama]: /integrations/ollama
+
+This release also has new virtual integration. Virtual integrations are stubs
+that are handled by other (existing) integrations to help with findability.
+The following virtual integration have been added:
+
+- **[Sacramento Municipal Utility District (SMUD)]**, provided by [Opower]
+
+[Sacramento Municipal Utility District (SMUD)]: /integrations/smud
+[Opower]: /integrations/opower
+
+## Integrations now available to set up from the UI
+
+The following integrations are now available via the Home Assistant UI:
+
+- **[Lutron Homeworks]**, done by [@emontnemery]
+- **[17TRACK]**, done by [@shaiu]
+- **[Downloader]**, done by [@erwindouna]
+- **[ROVA]**, done by [@GidoHakvoort]
+
+[@emontnemery]: https://github.com/emontnemery
+[@erwindouna]: https://github.com/erwindouna
+[@GidoHakvoort]: https://github.com/GidoHakvoort
+[@shaiu]: https://github.com/shaiu
+[17TRACK]: /integrations/seventeentrack
+[Downloader]: /integrations/downloader
+[Lutron Homeworks]: /integrations/homeworks
+[ROVA]: /integrations/rova
+
+## Release 2024.4.1 - April 5
+
+- Update aioairzone-cloud to v0.4.7 ([@Noltari] - [#114761])
+- Bump myuplink dependency to 0.6.0 ([@astrandb] - [#114767])
+- Update romy to 0.0.9 ([@cdce8p] - [#114360])
+- Update romy to 0.0.10 ([@xeniter] - [#114785])
+- Fix unhandled `KeyError` during Notion setup ([@bachya] - [#114787])
+- Fix Lutron light brightness values ([@cdheiser] - [#114794])
+- Fix type cast in snmp ([@lextm] - [#114795])
+- Handle ambiguous script actions by using action map order ([@bdraco] - [#114825])
+- Bump opower to 0.4.3 ([@tronikos] - [#114826])
+- Refactor ConfigStore to avoid needing to pass config_dir ([@bdraco] - [#114827])
+- Avoid blocking IO in downloader initialization ([@joostlek] - [#114841])
+- Fix Downloader YAML import ([@joostlek] - [#114844])
+- Update frontend to 20240404.0 ([@bramkragten] - [#114859])
+- Fix Axis camera platform support HTTPS ([@Kane610] - [#114886])
+- Bump weatherflow4py to 0.2.20 ([@jeeftor] - [#114888])
+- Fix Axis reconfigure step not providing protocols as alternatives but as string ([@Kane610] - [#114889])
+- Update frontend to 20240404.1 ([@bramkragten] - [#114890])
+- Ensure all tables have the default table args in the db_schema ([@bdraco] - [#114895])
+- Reduce august polling frequency ([@bdraco] - [#114904])
+- Show correct model string in myuplink ([@astrandb] - [#114921])
+- Create right import issues in Downloader ([@joostlek] - [#114922])
+- Fix cast dashboard in media browser ([@joostlek] - [#114924])
+- Pin systembridgemodels to 4.0.4 ([@timmo001] - [#114842])
+- Fix ROVA validation ([@joostlek] - [#114938])
+
+[#114360]: https://github.com/home-assistant/core/pull/114360
+[#114761]: https://github.com/home-assistant/core/pull/114761
+[#114764]: https://github.com/home-assistant/core/pull/114764
+[#114767]: https://github.com/home-assistant/core/pull/114767
+[#114785]: https://github.com/home-assistant/core/pull/114785
+[#114787]: https://github.com/home-assistant/core/pull/114787
+[#114794]: https://github.com/home-assistant/core/pull/114794
+[#114795]: https://github.com/home-assistant/core/pull/114795
+[#114825]: https://github.com/home-assistant/core/pull/114825
+[#114826]: https://github.com/home-assistant/core/pull/114826
+[#114827]: https://github.com/home-assistant/core/pull/114827
+[#114841]: https://github.com/home-assistant/core/pull/114841
+[#114842]: https://github.com/home-assistant/core/pull/114842
+[#114844]: https://github.com/home-assistant/core/pull/114844
+[#114859]: https://github.com/home-assistant/core/pull/114859
+[#114886]: https://github.com/home-assistant/core/pull/114886
+[#114888]: https://github.com/home-assistant/core/pull/114888
+[#114889]: https://github.com/home-assistant/core/pull/114889
+[#114890]: https://github.com/home-assistant/core/pull/114890
+[#114895]: https://github.com/home-assistant/core/pull/114895
+[#114904]: https://github.com/home-assistant/core/pull/114904
+[#114921]: https://github.com/home-assistant/core/pull/114921
+[#114922]: https://github.com/home-assistant/core/pull/114922
+[#114924]: https://github.com/home-assistant/core/pull/114924
+[#114938]: https://github.com/home-assistant/core/pull/114938
+[@Kane610]: https://github.com/Kane610
+[@Noltari]: https://github.com/Noltari
+[@astrandb]: https://github.com/astrandb
+[@bachya]: https://github.com/bachya
+[@bdraco]: https://github.com/bdraco
+[@bramkragten]: https://github.com/bramkragten
+[@cdce8p]: https://github.com/cdce8p
+[@cdheiser]: https://github.com/cdheiser
+[@frenck]: https://github.com/frenck
+[@jeeftor]: https://github.com/jeeftor
+[@joostlek]: https://github.com/joostlek
+[@lextm]: https://github.com/lextm
+[@timmo001]: https://github.com/timmo001
+[@tronikos]: https://github.com/tronikos
+[@xeniter]: https://github.com/xeniter
+
+## Release 2024.4.2 - April 8
+
+- Fix hang in SNMP device_tracker implementation ([@nmaggioni] - [#112815])
+- Fix missing if statement in homematic ([@bbr111] - [#114832])
+- Bump pylitterbot to 2023.4.11 ([@natekspencer] - [#114918])
+- Fix Snapcast Config flow ([@joostlek] - [#114952])
+- Bump axis to v61 ([@Kane610] - [#114964])
+- Filter out fuzzy translations from Lokalise ([@joostlek] - [#114968])
+- Upgrade to pynobo 1.8.1 ([@oyvindwe] - [#114982])
+- Fix dictionary changed size during iteration in prometheus ([@bdraco] - [#115005])
+- Bump `brother` to version 4.1.0 ([@bieniu] - [#115021])
+- Bump yolink-api to 0.4.2 ([@matrixd2] - [#115026])
+- Update xknxproject to 3.7.1 ([@farmio] - [#115053])
+- Fix synology_dsm availablity ([@bdraco] - [#115073])
+- Downgrade hass-nabucasa from 0.80.0 to 0.78.0 ([@ludeeus] - [#115078])
+- Bump velbus-aio to 2024.4.1 ([@Cereal2nd] - [#115109])
+- Terminate scripts with until and while conditions that execute more than 10000 times ([@bdraco] - [#115110])
+- improve handling of incorrect values in fyta integration ([@dontinelli] - [#115134])
+- Bump fyta_cli to 0.3.5 ([@dontinelli] - [#115143])
+- Fix fibaro sensor additional sensor lookup ([@rappenze] - [#115148])
+- Write timer entity state before firing events ([@bdraco] - [#115151])
+- Avoid checking for polling if an entity fails to add ([@bdraco] - [#115159])
+- Only reset requested utility meter with no tariff ([@gibwar] - [#115170])
+
+[#112815]: https://github.com/home-assistant/core/pull/112815
+[#114764]: https://github.com/home-assistant/core/pull/114764
+[#114832]: https://github.com/home-assistant/core/pull/114832
+[#114918]: https://github.com/home-assistant/core/pull/114918
+[#114934]: https://github.com/home-assistant/core/pull/114934
+[#114952]: https://github.com/home-assistant/core/pull/114952
+[#114964]: https://github.com/home-assistant/core/pull/114964
+[#114968]: https://github.com/home-assistant/core/pull/114968
+[#114982]: https://github.com/home-assistant/core/pull/114982
+[#115005]: https://github.com/home-assistant/core/pull/115005
+[#115021]: https://github.com/home-assistant/core/pull/115021
+[#115026]: https://github.com/home-assistant/core/pull/115026
+[#115053]: https://github.com/home-assistant/core/pull/115053
+[#115073]: https://github.com/home-assistant/core/pull/115073
+[#115078]: https://github.com/home-assistant/core/pull/115078
+[#115109]: https://github.com/home-assistant/core/pull/115109
+[#115110]: https://github.com/home-assistant/core/pull/115110
+[#115134]: https://github.com/home-assistant/core/pull/115134
+[#115143]: https://github.com/home-assistant/core/pull/115143
+[#115148]: https://github.com/home-assistant/core/pull/115148
+[#115151]: https://github.com/home-assistant/core/pull/115151
+[#115159]: https://github.com/home-assistant/core/pull/115159
+[#115170]: https://github.com/home-assistant/core/pull/115170
+[@Cereal2nd]: https://github.com/Cereal2nd
+[@Kane610]: https://github.com/Kane610
+[@bbr111]: https://github.com/bbr111
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@dontinelli]: https://github.com/dontinelli
+[@farmio]: https://github.com/farmio
+[@frenck]: https://github.com/frenck
+[@gibwar]: https://github.com/gibwar
+[@joostlek]: https://github.com/joostlek
+[@ludeeus]: https://github.com/ludeeus
+[@matrixd2]: https://github.com/matrixd2
+[@natekspencer]: https://github.com/natekspencer
+[@nmaggioni]: https://github.com/nmaggioni
+[@oyvindwe]: https://github.com/oyvindwe
+[@rappenze]: https://github.com/rappenze
+
+## Release 2024.4.3 - April 12
+
+- Bump aiohttp to 3.9.4 ([@bdraco] - [#110730])
+- Add support for adopt data disk repair ([@mdegat01] - [#114891])
+- Improve Risco exception logging ([@OnFreund] - [#115232])
+- Configurable maximum concurrency in Risco local ([@OnFreund] - [#115226])
+- Fix misssing timeout in caldav ([@bdraco] - [#115247])
+- Fix Google Tasks parsing of remove responses ([@allenporter] - [#115258])
+- Bump forecast-solar lib to v3.1.0 ([@klaasnicolaas] - [#115272])
+- Support backup of add-ons with hyphens ([@agners] - [#115274])
+- Bump pymodbus v3.6.7 ([@janiversen] - [#115279])
+- Bump yt-dlp to 2024.04.09 ([@joostlek] - [#115295])
+- Fix Aranet failure when the Bluetooth proxy is not providing a device name ([@thecode] - [#115298])
+- Bump zha-quirks to 0.0.114 ([@TheJulianJES] - [#115299])
+- Ensure automations do not execute from a trigger if they are disabled ([@bdraco] - [#115305])
+- Bump bleak-retry-connector 3.5.0 ([@bdraco] - [#115328])
+- Secure against resetting a non active modbus ([@janiversen] - [#115364])
+- Solve modbus test problem ([@janiversen] - [#115376])
+- Fix deadlock in holidays dynamic loading ([@bdraco] - [#115385])
+- Bump whirlpool-sixth-sense to 0.18.8 ([@NodeJSmith] - [#115393])
+- Fix bug in rainbird switch when turning off a switch that is already off ([@allenporter] - [#115421])
+- Bump pybotvac to 0.0.25 ([@Santobert] - [#115435])
+- Update frontend to 20240404.2 ([@bramkragten] - [#115460])
+
+[#110730]: https://github.com/home-assistant/core/pull/110730
+[#114764]: https://github.com/home-assistant/core/pull/114764
+[#114891]: https://github.com/home-assistant/core/pull/114891
+[#114934]: https://github.com/home-assistant/core/pull/114934
+[#115186]: https://github.com/home-assistant/core/pull/115186
+[#115226]: https://github.com/home-assistant/core/pull/115226
+[#115232]: https://github.com/home-assistant/core/pull/115232
+[#115247]: https://github.com/home-assistant/core/pull/115247
+[#115258]: https://github.com/home-assistant/core/pull/115258
+[#115272]: https://github.com/home-assistant/core/pull/115272
+[#115274]: https://github.com/home-assistant/core/pull/115274
+[#115279]: https://github.com/home-assistant/core/pull/115279
+[#115295]: https://github.com/home-assistant/core/pull/115295
+[#115298]: https://github.com/home-assistant/core/pull/115298
+[#115299]: https://github.com/home-assistant/core/pull/115299
+[#115305]: https://github.com/home-assistant/core/pull/115305
+[#115328]: https://github.com/home-assistant/core/pull/115328
+[#115364]: https://github.com/home-assistant/core/pull/115364
+[#115376]: https://github.com/home-assistant/core/pull/115376
+[#115385]: https://github.com/home-assistant/core/pull/115385
+[#115393]: https://github.com/home-assistant/core/pull/115393
+[#115421]: https://github.com/home-assistant/core/pull/115421
+[#115435]: https://github.com/home-assistant/core/pull/115435
+[#115460]: https://github.com/home-assistant/core/pull/115460
+[@NodeJSmith]: https://github.com/NodeJSmith
+[@OnFreund]: https://github.com/OnFreund
+[@Santobert]: https://github.com/Santobert
+[@TheJulianJES]: https://github.com/TheJulianJES
+[@agners]: https://github.com/agners
+[@allenporter]: https://github.com/allenporter
+[@bdraco]: https://github.com/bdraco
+[@bramkragten]: https://github.com/bramkragten
+[@frenck]: https://github.com/frenck
+[@janiversen]: https://github.com/janiversen
+[@joostlek]: https://github.com/joostlek
+[@klaasnicolaas]: https://github.com/klaasnicolaas
+[@mdegat01]: https://github.com/mdegat01
+[@thecode]: https://github.com/thecode
+
+## Release 2024.4.4 - April 23
+
+- Bump slixmpp version to 1.8.5 ([@ravermeister] - [#114448])
+- Make Withings recoverable after internet outage ([@joostlek] - [#115124])
+- Fix Hyperion light not updating state ([@avee87] - [#115389])
+- Add scheduled mode to renault charge mode ([@slyoldfox] - [#115427])
+- Bump zeroconf to 0.132.1 ([@bdraco] - [#115501])
+- Bump zeroconf to 0.132.2 ([@bdraco] - [#115505])
+- Update pillow to 10.3.0 ([@cdce8p] - [#115524])
+- Fix race in TimestampDataUpdateCoordinator ([@bdraco] - [#115542])
+- Fix Teslemetry sensor values ([@Bre77] - [#115571])
+- Modbus: Bump pymodbus v3.6.8 ([@janiversen] - [#115574])
+- Fix sensor entity description in Teslemetry ([@Bre77] - [#115614])
+- Bump httpcore to 1.0.5 ([@bdraco] - [#115672])
+- Bump sqlparse to 0.5.0 ([@bdraco] - [#115681])
+- Bump aiohttp to 3.9.5 ([@bdraco] - [#115727])
+- Bump renault-api to 0.2.2 ([@epenet] - [#115738])
+- Fix homeworks import flow ([@emontnemery] - [#115761])
+- Allow [##:##:##] type keypad address in homeworks ([@emontnemery] - [#115762])
+- Add missing media_player features to Samsung TV ([@chemelli74] - [#115788])
+- Bump aiounifi to v75 ([@Kane610] - [#115819])
+- Ensure scripts with timeouts of zero timeout immediately ([@bdraco] - [#115830])
+- Fix KeyError error when fetching sensors (Airthings) ([@LaStrada] - [#115844])
+- Bump plexapi to 4.15.12 ([@jjlawren] - [#115872])
+- Bump ical to 8.0.0 ([@allenporter] - [#115907])
+- Fix geo location attributes of Tankerkoenig sensors ([@mib1185] - [#115914])
+- Use start helper in squeezebox for server discovery ([@rajlaud] - [#115978])
+
+[#114448]: https://github.com/home-assistant/core/pull/114448
+[#114764]: https://github.com/home-assistant/core/pull/114764
+[#114934]: https://github.com/home-assistant/core/pull/114934
+[#115124]: https://github.com/home-assistant/core/pull/115124
+[#115186]: https://github.com/home-assistant/core/pull/115186
+[#115389]: https://github.com/home-assistant/core/pull/115389
+[#115427]: https://github.com/home-assistant/core/pull/115427
+[#115463]: https://github.com/home-assistant/core/pull/115463
+[#115501]: https://github.com/home-assistant/core/pull/115501
+[#115505]: https://github.com/home-assistant/core/pull/115505
+[#115524]: https://github.com/home-assistant/core/pull/115524
+[#115542]: https://github.com/home-assistant/core/pull/115542
+[#115571]: https://github.com/home-assistant/core/pull/115571
+[#115574]: https://github.com/home-assistant/core/pull/115574
+[#115614]: https://github.com/home-assistant/core/pull/115614
+[#115672]: https://github.com/home-assistant/core/pull/115672
+[#115681]: https://github.com/home-assistant/core/pull/115681
+[#115727]: https://github.com/home-assistant/core/pull/115727
+[#115738]: https://github.com/home-assistant/core/pull/115738
+[#115761]: https://github.com/home-assistant/core/pull/115761
+[#115762]: https://github.com/home-assistant/core/pull/115762
+[#115788]: https://github.com/home-assistant/core/pull/115788
+[#115819]: https://github.com/home-assistant/core/pull/115819
+[#115830]: https://github.com/home-assistant/core/pull/115830
+[#115844]: https://github.com/home-assistant/core/pull/115844
+[#115872]: https://github.com/home-assistant/core/pull/115872
+[#115907]: https://github.com/home-assistant/core/pull/115907
+[#115914]: https://github.com/home-assistant/core/pull/115914
+[#115978]: https://github.com/home-assistant/core/pull/115978
+[@Bre77]: https://github.com/Bre77
+[@Kane610]: https://github.com/Kane610
+[@LaStrada]: https://github.com/LaStrada
+[@allenporter]: https://github.com/allenporter
+[@avee87]: https://github.com/avee87
+[@bdraco]: https://github.com/bdraco
+[@cdce8p]: https://github.com/cdce8p
+[@chemelli74]: https://github.com/chemelli74
+[@emontnemery]: https://github.com/emontnemery
+[@epenet]: https://github.com/epenet
+[@frenck]: https://github.com/frenck
+[@janiversen]: https://github.com/janiversen
+[@jjlawren]: https://github.com/jjlawren
+[@joostlek]: https://github.com/joostlek
+[@mib1185]: https://github.com/mib1185
+[@rajlaud]: https://github.com/rajlaud
+[@ravermeister]: https://github.com/ravermeister
+[@slyoldfox]: https://github.com/slyoldfox
+
+## Need help? Join the community!
+
+Home Assistant has a great community of users who are all more than willing
+to help each other out. So, join us!
+
+Our very active [Discord chat server](/join-chat) is an excellent place to be
+at, and don't forget to join our amazing [forums](https://community.home-assistant.io/).
+
+Found a bug or issue? Please report it in our [issue tracker](https://github.com/home-assistant/core/issues),
+to get it fixed! Or, check [our help page](/help) for guidance for more
+places you can go.
+
+Are you more into email? [Sign-up for our Building the Open Home Newsletter](/newsletter)
+to get the latest news about features, things happening in our community and
+other news about building an Open Home; straight into your inbox.
+
+## Backward-incompatible changes
+
+{% details "Python 3.11 support has been removed" %}
+
+Python 3.11 support has previously been deprecated and has now been removed.
+Home Assistant now requires Python 3.12 to run.
+
+You don’t have to do anything if you are using the Home Assistant Operating
+System, Home Assistant Container, or Home Assistant Supervised installation
+method. In those cases, we handle all of this for you. Your system has been
+using Python 3.12 for quite some time already.
+
+([@frenck] - [#114220])
+
+[@frenck]: https://github.com/frenck
+[#114220]: https://github.com/home-assistant/core/pull/114220
+
+{% enddetails %}
+
+{% details "AEMET OpenData" %}
+
+The AEMET OpenData integration previously created two entities for each
+configured location: one provided daily weather forecasts and the other hourly
+forecasts.
+
+The AEMET OpenData integration now only creates a single entity that provides
+both daily and hourly weather forecasts.
+
+([@gjohansson-ST] - [#110764]) ([documentation](/integrations/aemet))
+
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[#110764]: https://github.com/home-assistant/core/pull/110764
+
+{% enddetails %}
+
+{% details "Dexcom" %}
+
+The trend sensor now uses values that are using snake_case instead of a space
+in the middle:
+
+- `rising quickly` -> `rising_quickly`
+- `rising slightly` -> `rising_slightly`
+- `falling slightly` -> `falling_slightly`
+- `falling quickly` -> `falling_quickly`
+
+Please update your automations and scripts accordingly.
+
+([@joostlek] - [#112423]) ([documentation](/integrations/dexcom))
+
+[@joostlek]: https://github.com/joostlek
+[#112423]: https://github.com/home-assistant/core/pull/112423
+
+{% enddetails %}
+
+{% details "ecobee" %}
+
+The non-functional `away` preset mode has been replaced with the correct
+`away_indefinitely` preset mode.
+
+If any automation or script depends on the `away` preset mode,
+it needs to be updated.
+
+([@alexsydell] - [#108636]) ([documentation](/integrations/ecobee))
+
+[@alexsydell]: https://github.com/alexsydell
+[#108636]: https://github.com/home-assistant/core/pull/108636
+
+{% enddetails %}
+
+{% details "Environment Canada" %}
+
+The Environment Canada integration previously created two entities for each
+configured location: one provided daily weather forecasts and the other hourly
+forecasts.
+
+The Environment Canada integration now only creates a single entity that
+provides both daily and hourly weather forecasts.
+
+([@gjohansson-ST] - [#112447]) ([documentation](/integrations/environment_canada))
+
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[#112447]: https://github.com/home-assistant/core/pull/112447
+
+{% enddetails %}
+
+{% details "National Weather Service (NWS)" %}
+
+The National Weather Service integration previously created two entities for each
+configured location: one provided daily weather forecasts and the other hourly
+forecasts.
+
+The National Weather Service integration now only creates a single entity that
+provides both daily and hourly weather forecasts.
+
+([@gjohansson-ST] - [#112503]) ([documentation](/integrations/nws))
+
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[#112503]: https://github.com/home-assistant/core/pull/112503
+
+{% enddetails %}
+
+{% details "Met Éireann" %}
+
+The Met Éireann integration previously created two entities for each configured
+location: one provided daily weather forecasts and the other hourly forecasts.
+
+The Met Éireann integration now only creates a single entity that provides both
+daily and hourly weather forecasts.
+
+([@gjohansson-ST] - [#112449]) ([documentation](/integrations/met_eireann))
+
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[#112449]: https://github.com/home-assistant/core/pull/112449
+
+{% enddetails %}
+
+{% details "Met Office" %}
+
+The Met Office integration previously created two entities for each configured
+location: one provided daily weather forecasts and the other hourly forecasts.
+
+The Met Office integration now only creates a single entity that provides both
+daily and hourly weather forecasts.
+
+([@gjohansson-ST] - [#112452]) ([documentation](/integrations/metoffice))
+
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[#112452]: https://github.com/home-assistant/core/pull/112452
+
+{% enddetails %}
+
+{% details "Modbus" %}
+
+The Modbus integration does not allow a configuration with the device only
+(no entities); this will create an issue, and the entry will not be loaded.
+
+For the special cases (like some custom_components) where it is wanted,
+please add a dummy entity.
+
+([@janiversen] - [#113516]) ([documentation](/integrations/modbus))
+
+[@janiversen]: https://github.com/janiversen
+[#113516]: https://github.com/home-assistant/core/pull/113516
+
+{% enddetails %}
+
+{% details "MQTT" %}
+
+Support for `brightness` is now assumed for `mqtt` lights with the `json` schema
+unless only color modes `rgb`, `rgbw`, or `rgbww` are supported.
+
+For lights which only support color modes `rgb`, `rgbw`, or `rgbww`,
+the `brightness` option flag can still be set to `false` if brightness is not
+supported. In this case brightness support is emulated in Home Assistant by
+scaling the RGBx-values.
+
+For all other color modes except `ColorMode.ONOFF`, it is assumed brightness is
+supported, and the `brightness` attribute will be included in the MQTT payload
+when the `brightness` attribute is supplied to the `light.turn_on` service.
+
+([@jbouwh] - [#111676]) ([documentation](/integrations/mqtt))
+
+[@jbouwh]: https://github.com/jbouwh
+[#111676]: https://github.com/home-assistant/core/pull/111676
+
+{% enddetails %}
+
+{% details "myUplink" %}
+
+If you have a Nibe SMO 20 in your account, you will notice that some 550
+entities are no longer provided by the integration.
+
+You can safely remove these entities as the integration does not use them.
+
+([@astrandb] - [#113493]) ([documentation](/integrations/myuplink))
+
+[@astrandb]: https://github.com/astrandb
+[#113493]: https://github.com/home-assistant/core/pull/113493
+
+{% enddetails %}
+
+{% details "Waze Travel Time" %}
+
+The options `excl_filter` and `incl_filter` now filter for exact matches to
+street names in the route. Previously, they only filtered on the short
+description of the route.
+
+([@eifinger] - [#108613]) ([documentation](/integrations/waze_travel_time))
+
+[@eifinger]: https://github.com/eifinger
+[#108613]: https://github.com/home-assistant/core/pull/108613
+
+{% enddetails %}
+
+{% details "Weather" %}
+
+The previously deprecated `forecast` attribute of weather entities, has now been
+removed. Use the [`weather.get_forecasts`](/integrations/weather#service-weatherget_forecasts)
+service to get the forecast data instead.
+
+([@gjohansson-ST] - [#110761]) ([documentation](/integrations/metoffice))
+
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[#110761]: https://github.com/home-assistant/core/pull/110761
+
+{% enddetails %}
+
+If you are a custom integration developer and want to learn about breaking
+changes and new features available for your integration: Be sure to follow our
+[developer blog][devblog]. The following are the most notable for this release:
+
+- [Climate entity auxiliary heater is deprecated](https://developers.home-assistant.io/blog/2024/03/10/climate-aux-heater-deprecated)
+- [Config Entries can now provide a reconfigure step](https://developers.home-assistant.io/blog/2024/03/21/config-entry-reconfigure-step)
+- [Deprecate hass.helpers usage](https://developers.home-assistant.io/blog/2024/03/30/deprecate-hass-helpers/)
+- [Deprecating `async_run_job` and `async_add_job`](https://developers.home-assistant.io/blog/2024/03/13/deprecate_add_run_job)
+- [How uv saves Home Assistant 215 compute hours per month](https://developers.home-assistant.io/blog/2024/04/03/build-images-with-uv/)
+- [Integrations import in the executor to avoid blocking the event loop](https://developers.home-assistant.io/blog/2024/03/09/import_executor_default)
+- [New state timestamp State.last_reported](https://developers.home-assistant.io/blog/2024/03/20/state_reported_timestamp)
+- [Raising exceptions with translations](https://developers.home-assistant.io/blog/2024/03/15/exception-translations)
+
+[devblog]: https://developers.home-assistant.io/blog/
+
+## Farewell to the following
+
+The following integrations are also no longer available as of this release:
+
+- **OpenCV** has been removed. The integration has been in a broken state
+ for over a year and currently has no path forward.
+ ([@thecode] - [#113455])
+
+[@thecode]: https://github.com/thecode
+[#113455]: https://github.com/home-assistant/core/pull/113455
+
+## All changes
+
+Of course, there is a lot more in this release. You can find a list of
+all changes made here: [Full changelog for Home Assistant Core 2024.4](/changelogs/core-2024.4)
diff --git a/source/_posts/2024-04-24-state-of-the-open-home-2024.markdown b/source/_posts/2024-04-24-state-of-the-open-home-2024.markdown
new file mode 100644
index 00000000000..7b2359930ee
--- /dev/null
+++ b/source/_posts/2024-04-24-state-of-the-open-home-2024.markdown
@@ -0,0 +1,33 @@
+---
+layout: post
+title: "Thinking Bigger: State of the Open Home 2024"
+description: "The State of the Open Home 2024 stream includes a deep dive into the evolution of Home Assistant, and how it has now reached an estimated 1 million installations."
+date: 2024-04-24 00:00:01
+date_formatted: "April 24, 2024"
+author: Gordon Cameron
+comments: true
+categories: Announcements
+og_image: /images/blog/2024-04-24-state-of-the-open-home-2024/banner.jpg
+---
+
+We recently held our [State of the Open Home 2024 live stream](https://www.youtube.com/live/oa__fLArsFk?si=PzlfiHLUYE6uAEq3), where we revealed how we are thinking [even bigger](/blog/2018/09/17/thinking-big/) about securing the future of the smart home. During this stream we launched the [Open Home Foundation](https://www.openhomefoundation.org/), a new non-profit organization created to fight for the fundamental principles of the smart home — privacy, choice, and sustainability — focused on serving everyone that lives in one. To learn more about the Open Home Foundation read the full [announcement](https://www.openhomefoundation.org/blog/announcing-the-open-home-foundation/).
+
+The stream includes a deep dive into the evolution of Home Assistant and how it has now reached an estimated 1 million installations. There were other substantial updates on voice and hardware, including teasing our upcoming Z-Wave and voice assistant hardware. The first panel discussion featured the founders of Open Home Foundation collaborating projects WLED, Zigbee2MQTT, Rhasspy, and Z-Wave JS. A second panel gave a comprehensive overview of the state of open standards, featuring key open-source developers working on Zigbee, Z-Wave, Matter, and Bluetooth. The stream caps off with a look into the future of the open home, including the announcement of a roadmap full of exciting new features.
+
+
+
+
+
+Full list of chapters:
+
+- Introduction ([0:00:11](https://www.youtube.com/watch?v=oa__fLArsFk&t=11s))
+- Announcing the Open Home Foundation - Paulus Schoutsen ([0:02:36](https://www.youtube.com/watch?v=oa__fLArsFk&t=156s))
+- Panel with Open Home Foundation collaborators - WLED, Zigbee2MQTT, Rhasspy, Z-Wave JS ([0:18:31](https://www.youtube.com/watch?v=oa__fLArsFk&t=1111s))
+- Voice - Michael Hansen ([0:36:31](https://www.youtube.com/watch?v=oa__fLArsFk&t=2191s))
+- Home Assistant - Franck Nijhof ([0:53:08](https://www.youtube.com/watch?v=oa__fLArsFk&t=3188s))
+- Hardware - Uwe Bernitt ([1:21:37](https://www.youtube.com/watch?v=oa__fLArsFk&t=4897s))
+- Panel on Open Standards - Zigbee, Z-Wave, Matter, Bluetooth ([1:40:21](https://www.youtube.com/watch?v=oa__fLArsFk&t=6021s))
+- Future - Madelena Mak ([2:07:29](https://www.youtube.com/watch?v=oa__fLArsFk&t=7649s))
+- Closing ([2:37:33](https://www.youtube.com/watch?v=oa__fLArsFk&t=9453s))
+
+**The Open Home Foundation** now owns and governs over 240 open-source projects, standards, drivers, and libraries, including Home Assistant - protecting these projects from buy-out or becoming abandoned. To learn more about the Open Home Foundation, visit: [www.openhomefoundation.org](https://www.openhomefoundation.org/)
diff --git a/source/_posts/2024-05-01-release-20245.markdown b/source/_posts/2024-05-01-release-20245.markdown
new file mode 100644
index 00000000000..3c5a1c91fb0
--- /dev/null
+++ b/source/_posts/2024-05-01-release-20245.markdown
@@ -0,0 +1,852 @@
+---
+layout: post
+title: "2024.5: Just a little bit smaller"
+description: "New features for our new data tables, create helpers directly from the automation editor, the tile card now supports locks, easily adjust the name of a device on the energy dashboard, and improved audio with ESPHome for Assist."
+date: 2024-05-01 00:00:00
+date_formatted: "May 1, 2024"
+author: Franck Nijhof
+author_twitter: frenck
+comments: true
+categories:
+ - Release-Notes
+ - Core
+og_image: /images/blog/2024-05/social.png
+---
+
+

+
+Home Assistant Core 2024.5! 🎉
+
+The last two releases were massive! With our [new drag 'n drop dashboards](/blog/2024/03/06/release-20243/)
+and the tools to [organize your Home Assistant instance](/blog/2024/04/03/release-20244/),
+it is hard to top those releases... 😅
+
+So, this release is just a _tiny bit smaller_ than those two, but still epic! 🤘
+
+My personal favorite is the new features added to the data tables, which many
+of you requested since [the last update](/blog/2024/04/03/release-20244/#upgraded-tables).
+But the ability to change the names of the devices shown on the energy dashboard
+is a close second!
+
+Oh! We've held our [State of the Open Home 2024 live stream](https://www.youtube.com/watch?v=oa__fLArsFk)!
+In case you've missed it, I would definitely recommend watching it back. There are tons of cool things
+and spoilers in there!
+
+But more importantly, it launched the [Open Home Foundation](https://www.openhomefoundation.org/),
+which now governs our beloved Home Assistant project! ❤️ Read more in the [State of the Open Home 2024 blog post](/blog/2024/04/24/state-of-the-open-home-2024/).
+
+Anyway, I will not hold you any longer. Enjoy the release!
+
+../Frenck
+
+
+
+- [More features for our data tables](#more-features-for-our-data-tables)
+- [Create helpers directly from the automation editor](#create-helpers-directly-from-the-automation-editor)
+- [Lock features for the tile card](#lock-features-for-the-tile-card)
+- [Reorder features of the tile card](#reorder-features-of-the-tile-card)
+- [Adjust the device names on the energy dashboard](#adjust-the-device-names-on-the-energy-dashboard)
+- [Improved audio with ESPHome for Assist](#improved-audio-with-esphome-for-assist)
+- [Other noteworthy changes](#other-noteworthy-changes)
+- [New integrations](#new-integrations)
+- [Integrations now available to set up from the UI](#integrations-now-available-to-set-up-from-the-ui)
+- [Release 2024.5.1 - May 3](#release-202451---may-3)
+- [Release 2024.5.2 - May 6](#release-202452---may-6)
+- [Release 2024.5.3 - May 10](#release-202453---may-10)
+- [Release 2024.5.4 - May 17](#release-202454---may-17)
+- [Release 2024.5.5 - May 24](#release-202455---may-24)
+- [Need help? Join the community!](#need-help-join-the-community)
+- [Backward-incompatible changes](#backward-incompatible-changes)
+- [Farewell to the following](#farewell-to-the-following)
+- [All changes](#all-changes)
+
+Don't forget to [join our release party live stream on YouTube](https://www.youtube.com/watch?v=POXZWxMenx4)
+1 May 2024, at 20:00 GMT / 12:00 PST / 21:00 CEST!
+
+
+
+## More features for our data tables
+
+In our last release, we [introduced new data tables](/blog/2024/04/03/release-20244/#upgraded-tables)
+and we were thrilled to see that you all loved them! 🎉
+
+However, we also received a lot of feedback for additional tweaks and features,
+so we've added a bunch of them in this release. 😎
+
+One of the most requested features of these new tables' new
+[item grouping](/blog/2024/04/03/release-20244/#item-grouping) was the
+ability to collapse them, and we’ve added that!
+
+
+
+ Each item group can now be collapsed and expanded.
+
+
+Another one concerned the ability to select and assign an area to multiple items
+at once in the automation, scene, script, and device pages. We've added that too!
+
+Not only that, we now store the last used grouping (and if they were
+collapsed or not) and sorting you have used, so when you return to that page,
+it will be the same as you left it.
+
+

+
+Last but certainly not least, we’ve added the ability to group and filter
+entities by their domain in the entities panel. As the domains represent the
+type of entity, this means you can group and filter, for example, all your
+lights, switches, sensors, etc.
+
+

+
+## Create helpers directly from the automation editor
+
+Our good friend [@karwosts] has been busy creating a great quality-of-life
+improvement for our {% term automation %} editor for this release.
+
+I'm sure you'll know this feeling. You are creating an automation and think:
+"Hey, I need a helper for this!" But then you have to leave the automation
+editor, create the helper, and then go back to the automation editor.
+
+Well, not anymore! You can now create helpers directly from the automation
+editor 😎
+
+In this example, a timer helper is created directly from the automation editor
+without leaving it:
+
+
+
+[@karwosts]: https://github.com/karwosts
+
+## Lock features for the tile card
+
+The tile card is already amazing, but [@marcgeurts] made it even better by
+adding new features to the tile card: Locks!
+
+When you now add a lock entity to the tile card, and if your lock supports it,
+you can now add two new features to the tile card:
+
+- [**Lock commands**](/dashboards/features/#lock-commands)
+ Adds buttons to your tile card to lock or unlock the lock.
+- [**Lock open door**](/dashboards/features/#lock-open-door)
+ Adds a button to open/unlatch the door (with confirmation).
+
+

+
+[@marcgeurts]: https://github.com/marcgeurts
+
+## Reorder features of the tile card
+
+Some features of the tile card, such as the presets or the HVAC modes of a
+thermostat, can show many buttons. While you can limit the buttons you’d
+like to see, they may not be in the desired order.
+
+To improve this, [@karwosts] and [@piitaya] have added the ability to reorder
+the features of the tile card. For your thermostat, that means you can now
+reorder the HVAC modes or presets to your liking.
+
+
+
+ You can now reorder the features of the tile card.
+
+
+[@karwosts]: https://github.com/karwosts
+[@piitaya]: https://github.com/piitaya
+
+## Adjust the device names on the energy dashboard
+
+Another outstanding quality-of-life improvement from [@karwosts] is the ability
+to customize the display name for energy devices on the energy dashboard.
+
+The entity's name representing the device you use on the energy dashboard
+commonly contains additional or redundant information. With this new feature,
+you can customize the display name to make it more meaningful.
+
+For example, if the entity is named _“Attic Boiler Daily Energy Usage”_
+and is shown as that today, you can now change the name displayed on the energy
+dashboard to just _“Boiler”_.
+
+

+
+You can adjust the name of each monitored device in the energy dashboard setting
+page by going to **Settings** > **Dashboards** > **Energy** > **Individual devices**.
+
+{% my config_energy badge %}
+
+[@karwosts]: https://github.com/karwosts
+
+## Improved audio with ESPHome for Assist
+
+If you're familiar with [Assist], our private voice assistant, and are using
+it on an [ESPHome-based device] (like an [ESP-S3-BOX-3] or the [ATOM Echo]),
+chances are you have experienced one of the biggest barriers to date when it
+comes to using it on a daily basis: chopped-off audio. 😞
+
+More often than not, the responses sent to the voice assistant device were
+missing a few parts, most notably at the beginning and the end of the audio.
+This was very noticeable when the responses were short, such as asking how many
+lights are on in a home or the room temperature.
+
+In conjunction with [the latest release of ESPHome] (2024.4), we are bringing
+a much improved and more reliable communication between [ESPHome] and
+Home Assistant for transferring voice audio, guaranteeing no audio is lost in the process.
+
+Hear the difference in this side-by-side comparison:
+
+
+
+In addition to updating to this release, be sure to update your ESPHome devices
+to the latest version to benefit from this improvement.
+
+[Assist]: /voice_control/
+[ATOM Echo]: /voice_control/thirteen-usd-voice-remote/
+[ESP-S3-BOX-3]: /voice_control/s3_box_voice_assistant/
+[ESPHome-based device]: https://esphome.io/projects/
+[ESPHome]: https://esphome.io/
+[the latest release of ESPHome]: https://esphome.io/changelog/2024.4.0.html
+[to the latest version]: https://esphome.io/changelog/2024.4.0.html
+
+## Other noteworthy changes
+
+There are many more improvements in this release; here are some of the other
+noteworthy changes this release:
+
+- Have you ever had a misbehaving (custom) integration cause a crash? This
+ release introduces new detections and [a new debug mode] to catch known/common
+ unexpected integration behavior. Thanks, [@bdraco]!
+- The [ESPHome integration] now supports date, time, date/time, valve, and
+ event entities! The latter two require the upcoming [ESPHome] 2024.5.0
+ release. Thanks [@jesserockz], [@kbx81], and [@nohat]!
+- The [MQTT integration] has reached the highest quality scale: Platinum!
+ Thanks [@jbouwh], for all the work you have put into this!
+- The visualization graph for all Zigbee devices connected via [ZHA] has been
+ improved by [@Cougar]. Devices now have colors to indicate their availability,
+ signal strength, and relationship to other devices, which are much clearer.
+ Nice!
+- The [Glances integration] got new sensors for network traffic, disk I/O, GPU,
+ and uptime. Thanks [@fhoekstra] & [@wittypluck]!
+- [@Lash-L] added a service to the [Roborock integration] to easily get map
+ information from your vacuum. Awesome!
+- The [Airzone cloud integration] now supports water heaters. Thanks [@Noltari]!
+- [@joostlek] added an extract media URL service to the [media extractor],
+ allowing you to get a media item's source URL. Nice!
+
+[@bdraco]: https://github.com/bdraco
+[@Cougar]: https://github.com/Cougar
+[@fhoekstra]: https://github.com/fhoekstra
+[@jbouwh]: https://github.com/jbouwh
+[@jesserockz]: https://github.com/jesserockz
+[@joostlek]: https://github.com/joostlek
+[@kbx81]: https://github.com/kbx81
+[@Lash-L]: https://github.com/Lash-L
+[@nohat]: https://github.com/nohat
+[@Noltari]: https://github.com/Noltari
+[@wittypluck]: https://github.com/wittypluck
+[a new debug mode]: /integrations/homeassistant/#debug
+[Airzone cloud integration]: /integrations/airzone_cloud
+[ESPHome integration]: /integrations/esphome
+[ESPHome]: https://esphome.io/
+[Glances integration]: /integrations/glances
+[media extractor]: /integrations/media_extractor
+[MQTT integration]: /integrations/mqtt
+[Roborock integration]: /integrations/roborock
+[ZHA]: /integrations/zha
+
+## New integrations
+
+We welcome the following new {% term integrations %} in this release:
+
+- **[Ambient Weather Network]**, added by [@thomaskistler]
+ Retrieve local weather station information from the Ambient Weather Network.
+- **[Arve]**, added by [@ikalnyi]
+ Monitor real-life air quality data from your Arve devices.
+- **[Energenie Power-Sockets]**, added by [@gnumpi]
+ Control your Energenie Power-Strips over USB.
+- **[Epic Games Store]**, added by [@Quentame]
+ Provides a calendar for the Epic Games Store to monitor discounts and free games.
+- **[eQ-3 Bluetooth Smart Thermostats]**, added by [@EuleMitKeule]
+ Control your eQ-3 Smart Thermostats over Bluetooth.
+- **[Sanix]**, added by [@tomaszsluszniak]
+ Monitor water/sewage level using your Sanix (by BIT Complex) devices.
+
+[@EuleMitKeule]: https://github.com/EuleMitKeule
+[@gnumpi]: https://github.com/gnumpi
+[@ikalnyi]: https://github.com/ikalnyi
+[@Quentame]: https://github.com/Quentame
+[@thomaskistler]: https://github.com/thomaskistler
+[@tomaszsluszniak]: https://github.com/tomaszsluszniak
+[Ambient Weather Network]: /integrations/ambient_network
+[Arve]: /integrations/arve
+[Energenie Power-Sockets]: /integrations/energenie_power_sockets
+[Epic Games Store]: /integrations/epic_games_store
+[eQ-3 Bluetooth Smart Thermostats]: /integrations/eq3btsmart
+[Sanix]: /integrations/sanix
+
+## Integrations now available to set up from the UI
+
+The following {% term integrations %} are now available via the Home Assistant UI:
+
+- **[Enigma2 (OpenWebif)]**, done by [@autinerd]
+- **[Folder watcher]**, done by [@gjohansson-ST]
+- **[LG Netcast]**, done by [@splinter98]
+
+[@autinerd]: https://github.com/autinerd
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@splinter98]: https://github.com/splinter98
+[Enigma2 (OpenWebif)]: /integrations/enigma2
+[Folder watcher]: /integrations/folder_watcher
+[LG Netcast]: /integrations/lg_netcast
+
+## 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])
+
+[#115857]: https://github.com/home-assistant/core/pull/115857
+[#116527]: https://github.com/home-assistant/core/pull/116527
+[#116538]: https://github.com/home-assistant/core/pull/116538
+[#116539]: https://github.com/home-assistant/core/pull/116539
+[#116550]: https://github.com/home-assistant/core/pull/116550
+[#116558]: https://github.com/home-assistant/core/pull/116558
+[#116564]: https://github.com/home-assistant/core/pull/116564
+[#116569]: https://github.com/home-assistant/core/pull/116569
+[#116570]: https://github.com/home-assistant/core/pull/116570
+[#116579]: https://github.com/home-assistant/core/pull/116579
+[#116596]: https://github.com/home-assistant/core/pull/116596
+[#116600]: https://github.com/home-assistant/core/pull/116600
+[#116616]: https://github.com/home-assistant/core/pull/116616
+[#116621]: https://github.com/home-assistant/core/pull/116621
+[#116627]: https://github.com/home-assistant/core/pull/116627
+[#116639]: https://github.com/home-assistant/core/pull/116639
+[#116651]: https://github.com/home-assistant/core/pull/116651
+[#116660]: https://github.com/home-assistant/core/pull/116660
+[#116661]: https://github.com/home-assistant/core/pull/116661
+[#116662]: https://github.com/home-assistant/core/pull/116662
+[#116673]: https://github.com/home-assistant/core/pull/116673
+[#116689]: https://github.com/home-assistant/core/pull/116689
+[#116692]: https://github.com/home-assistant/core/pull/116692
+[@Galorhallen]: https://github.com/Galorhallen
+[@GraceGRD]: https://github.com/GraceGRD
+[@Kane610]: https://github.com/Kane610
+[@LaStrada]: https://github.com/LaStrada
+[@MatthewFlamm]: https://github.com/MatthewFlamm
+[@bdraco]: https://github.com/bdraco
+[@cdce8p]: https://github.com/cdce8p
+[@eifinger]: https://github.com/eifinger
+[@farmio]: https://github.com/farmio
+[@felipediel]: https://github.com/felipediel
+[@frenck]: https://github.com/frenck
+[@gwww]: https://github.com/gwww
+[@jbouwh]: https://github.com/jbouwh
+[@joostlek]: https://github.com/joostlek
+[@marcelveldt]: https://github.com/marcelveldt
+[@puddly]: https://github.com/puddly
+[@tomaszsluszniak]: https://github.com/tomaszsluszniak
+
+## 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])
+
+[#116538]: https://github.com/home-assistant/core/pull/116538
+[#116696]: https://github.com/home-assistant/core/pull/116696
+[#116704]: https://github.com/home-assistant/core/pull/116704
+[#116711]: https://github.com/home-assistant/core/pull/116711
+[#116720]: https://github.com/home-assistant/core/pull/116720
+[#116721]: https://github.com/home-assistant/core/pull/116721
+[#116728]: https://github.com/home-assistant/core/pull/116728
+[#116743]: https://github.com/home-assistant/core/pull/116743
+[#116785]: https://github.com/home-assistant/core/pull/116785
+[#116795]: https://github.com/home-assistant/core/pull/116795
+[#116796]: https://github.com/home-assistant/core/pull/116796
+[#116797]: https://github.com/home-assistant/core/pull/116797
+[#116805]: https://github.com/home-assistant/core/pull/116805
+[#116813]: https://github.com/home-assistant/core/pull/116813
+[#116829]: https://github.com/home-assistant/core/pull/116829
+[#116836]: https://github.com/home-assistant/core/pull/116836
+[#116839]: https://github.com/home-assistant/core/pull/116839
+[#116844]: https://github.com/home-assistant/core/pull/116844
+[#116849]: https://github.com/home-assistant/core/pull/116849
+[#116859]: https://github.com/home-assistant/core/pull/116859
+[#116874]: https://github.com/home-assistant/core/pull/116874
+[#116904]: https://github.com/home-assistant/core/pull/116904
+[#116939]: https://github.com/home-assistant/core/pull/116939
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@bramkragten]: https://github.com/bramkragten
+[@emontnemery]: https://github.com/emontnemery
+[@frenck]: https://github.com/frenck
+[@jbouwh]: https://github.com/jbouwh
+[@joostlek]: https://github.com/joostlek
+[@mib1185]: https://github.com/mib1185
+[@mletenay]: https://github.com/mletenay
+[@pdecat]: https://github.com/pdecat
+[@tkdrob]: https://github.com/tkdrob
+[@tronikos]: https://github.com/tronikos
+
+## 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_name` placeholder 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])
+
+[#115640]: https://github.com/home-assistant/core/pull/115640
+[#116181]: https://github.com/home-assistant/core/pull/116181
+[#116538]: https://github.com/home-assistant/core/pull/116538
+[#116696]: https://github.com/home-assistant/core/pull/116696
+[#116937]: https://github.com/home-assistant/core/pull/116937
+[#116967]: https://github.com/home-assistant/core/pull/116967
+[#116986]: https://github.com/home-assistant/core/pull/116986
+[#117006]: https://github.com/home-assistant/core/pull/117006
+[#117028]: https://github.com/home-assistant/core/pull/117028
+[#117059]: https://github.com/home-assistant/core/pull/117059
+[#117061]: https://github.com/home-assistant/core/pull/117061
+[#117089]: https://github.com/home-assistant/core/pull/117089
+[#117090]: https://github.com/home-assistant/core/pull/117090
+[#117091]: https://github.com/home-assistant/core/pull/117091
+[#117094]: https://github.com/home-assistant/core/pull/117094
+[#117105]: https://github.com/home-assistant/core/pull/117105
+[#117115]: https://github.com/home-assistant/core/pull/117115
+[#117141]: https://github.com/home-assistant/core/pull/117141
+[#117144]: https://github.com/home-assistant/core/pull/117144
+[#117162]: https://github.com/home-assistant/core/pull/117162
+[#117189]: https://github.com/home-assistant/core/pull/117189
+[@MatthewFlamm]: https://github.com/MatthewFlamm
+[@PeteRager]: https://github.com/PeteRager
+[@bdraco]: https://github.com/bdraco
+[@catsmanac]: https://github.com/catsmanac
+[@cdce8p]: https://github.com/cdce8p
+[@ctalkington]: https://github.com/ctalkington
+[@dgomes]: https://github.com/dgomes
+[@edenhaus]: https://github.com/edenhaus
+[@frenck]: https://github.com/frenck
+[@jbouwh]: https://github.com/jbouwh
+[@matrixd2]: https://github.com/matrixd2
+[@mletenay]: https://github.com/mletenay
+[@puddly]: https://github.com/puddly
+[@tr4nt0r]: https://github.com/tr4nt0r
+
+## 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])
+
+[#112840]: https://github.com/home-assistant/core/pull/112840
+[#114325]: https://github.com/home-assistant/core/pull/114325
+[#115365]: https://github.com/home-assistant/core/pull/115365
+[#116538]: https://github.com/home-assistant/core/pull/116538
+[#116696]: https://github.com/home-assistant/core/pull/116696
+[#116847]: https://github.com/home-assistant/core/pull/116847
+[#116937]: https://github.com/home-assistant/core/pull/116937
+[#116989]: https://github.com/home-assistant/core/pull/116989
+[#117098]: https://github.com/home-assistant/core/pull/117098
+[#117203]: https://github.com/home-assistant/core/pull/117203
+[#117204]: https://github.com/home-assistant/core/pull/117204
+[#117212]: https://github.com/home-assistant/core/pull/117212
+[#117232]: https://github.com/home-assistant/core/pull/117232
+[#117267]: https://github.com/home-assistant/core/pull/117267
+[#117314]: https://github.com/home-assistant/core/pull/117314
+[#117325]: https://github.com/home-assistant/core/pull/117325
+[#117331]: https://github.com/home-assistant/core/pull/117331
+[#117374]: https://github.com/home-assistant/core/pull/117374
+[#117436]: https://github.com/home-assistant/core/pull/117436
+[#117444]: https://github.com/home-assistant/core/pull/117444
+[#117446]: https://github.com/home-assistant/core/pull/117446
+[#117487]: https://github.com/home-assistant/core/pull/117487
+[#117490]: https://github.com/home-assistant/core/pull/117490
+[#117494]: https://github.com/home-assistant/core/pull/117494
+[#117501]: https://github.com/home-assistant/core/pull/117501
+[#117558]: https://github.com/home-assistant/core/pull/117558
+[#117567]: https://github.com/home-assistant/core/pull/117567
+[#117588]: https://github.com/home-assistant/core/pull/117588
+[@Cereal2nd]: https://github.com/Cereal2nd
+[@Kane610]: https://github.com/Kane610
+[@Thomas55555]: https://github.com/Thomas55555
+[@amura11]: https://github.com/amura11
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@emontnemery]: https://github.com/emontnemery
+[@frenck]: https://github.com/frenck
+[@jbouwh]: https://github.com/jbouwh
+[@jjlawren]: https://github.com/jjlawren
+[@joostlek]: https://github.com/joostlek
+[@mk-81]: https://github.com/mk-81
+[@nijel]: https://github.com/nijel
+[@raman325]: https://github.com/raman325
+[@starkillerOG]: https://github.com/starkillerOG
+[@teharris1]: https://github.com/teharris1
+[@tronikos]: https://github.com/tronikos
+[@wujiaqi]: https://github.com/wujiaqi
+
+## 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])
+
+[#116391]: https://github.com/home-assistant/core/pull/116391
+[#116538]: https://github.com/home-assistant/core/pull/116538
+[#116696]: https://github.com/home-assistant/core/pull/116696
+[#116937]: https://github.com/home-assistant/core/pull/116937
+[#117193]: https://github.com/home-assistant/core/pull/117193
+[#117203]: https://github.com/home-assistant/core/pull/117203
+[#117209]: https://github.com/home-assistant/core/pull/117209
+[#117631]: https://github.com/home-assistant/core/pull/117631
+[#117655]: https://github.com/home-assistant/core/pull/117655
+[#117672]: https://github.com/home-assistant/core/pull/117672
+[#117682]: https://github.com/home-assistant/core/pull/117682
+[#117691]: https://github.com/home-assistant/core/pull/117691
+[#117738]: https://github.com/home-assistant/core/pull/117738
+[#117748]: https://github.com/home-assistant/core/pull/117748
+[#117751]: https://github.com/home-assistant/core/pull/117751
+[#117756]: https://github.com/home-assistant/core/pull/117756
+[#117790]: https://github.com/home-assistant/core/pull/117790
+[#117800]: https://github.com/home-assistant/core/pull/117800
+[#117841]: https://github.com/home-assistant/core/pull/117841
+[#117879]: https://github.com/home-assistant/core/pull/117879
+[#117881]: https://github.com/home-assistant/core/pull/117881
+[#117919]: https://github.com/home-assistant/core/pull/117919
+[#117945]: https://github.com/home-assistant/core/pull/117945
+[#118005]: https://github.com/home-assistant/core/pull/118005
+[#118016]: https://github.com/home-assistant/core/pull/118016
+[#118025]: https://github.com/home-assistant/core/pull/118025
+[#118038]: https://github.com/home-assistant/core/pull/118038
+[#118050]: https://github.com/home-assistant/core/pull/118050
+[@Anrijs]: https://github.com/Anrijs
+[@OnFreund]: https://github.com/OnFreund
+[@PeteRager]: https://github.com/PeteRager
+[@RicArch97]: https://github.com/RicArch97
+[@bajansen]: https://github.com/bajansen
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@bouwew]: https://github.com/bouwew
+[@elupus]: https://github.com/elupus
+[@emontnemery]: https://github.com/emontnemery
+[@frenck]: https://github.com/frenck
+[@marcelveldt]: https://github.com/marcelveldt
+[@mib1185]: https://github.com/mib1185
+[@puddly]: https://github.com/puddly
+[@scop]: https://github.com/scop
+[@swoga]: https://github.com/swoga
+[@thecode]: https://github.com/thecode
+
+## Need help? Join the community!
+
+Home Assistant has a great community of users who are all more than willing
+to help each other out. So, join us!
+
+Our very active [Discord chat server](/join-chat) is an excellent place to be
+at, and don't forget to join our amazing [forums](https://community.home-assistant.io/).
+
+Found a bug or issue? Please report it in our [issue tracker](https://github.com/home-assistant/core/issues),
+to get it fixed! Or, check [our help page](/help) for guidance for more
+places you can go.
+
+Are you more into email? [Sign-up for our Building the Open Home Newsletter](/newsletter)
+to get the latest news about features, things happening in our community and
+other news about building an Open Home; straight into your inbox.
+
+## Backward-incompatible changes
+
+{% details "AVM Fritz!SmartHome" %}
+
+Activating the HVAC mode `heat` no longer overwrites the current target
+temperature with the comfort temperature but retains the currently set target
+temperature unless the thermostat is in HVAC mode `off`, in which case the
+comfort temperature is still set.
+
+Use the available presets or the set temperature service to set the target
+temperature for HVAC-mode `heat`.
+
+([@jayme-github] - [#112119]) ([documentation](/integrations/fritzbox))
+
+[@jayme-github]: https://github.com/jayme-github
+[#112119]: https://github.com/home-assistant/core/pull/112119
+
+{% enddetails %}
+
+{% details "Big Ass Fans" %}
+
+The BAF fan `Auto` preset mode has been renamed to `auto`. Any scripts
+or automations using this need to be updated accordingly.
+
+([@mill1000] - [#109944]) ([documentation](/integrations/baf))
+
+[@mill1000]: https://github.com/mill1000
+[#109944]: https://github.com/home-assistant/core/pull/109944
+
+{% enddetails %}
+
+{% details "ecobee" %}
+
+The preset modes `Away`, `Home`, and `Sleep` have been renamed to the lower-case
+variants `away`, `home`, and `sleep`.
+
+This is consistent with the rest of Home Assistant, which also means
+Home Assistant can support icons and translations for these.
+
+If you used these preset modes in your automations or scripts, you will need
+to update them to use the new names.
+
+([@gagebenne] - [#116072]) ([documentation](/integrations/ecobee))
+
+[@gagebenne]: https://github.com/gagebenne
+[#116072]: https://github.com/home-assistant/core/pull/116072
+
+{% enddetails %}
+
+{% details "Honeywell Total Connect Comfort (US)" %}
+
+The auxiliary heat climate option has been deprecated and will be removed in
+Home Assistant 2024.10.
+
+Use the newly added emergency heat switch entity to set the thermostat mode
+to the previous auxiliary heat mode.
+
+([@mkmer] - [#114110]) ([documentation](/integrations/honeywell))
+
+[@mkmer]: https://github.com/mkmer
+[#114110]: https://github.com/home-assistant/core/pull/114110
+
+{% enddetails %}
+
+{% details "IMAP" %}
+
+The default for new entries is that the `text` and `headers` will no longer be
+included in the `imap_content` event data. Instead, if needed, you can fetch
+the email content using the `imap.fetch` service.
+
+It will not break for existing entries where we assume `text` and `headers`
+are included.
+
+([@luca-angemi] - [#115108]) ([documentation](/integrations/imap))
+
+[@luca-angemi]: https://github.com/luca-angemi
+[#115108]: https://github.com/home-assistant/core/pull/115108
+
+{% enddetails %}
+
+{% details "Insteon" %}
+
+The Insteon configuration panel, which was previously on the Home Assistant
+sidebar, has moved to the integration page in
+**Settings -> Device & services -> Insteon -> Configure**.
+
+([@teharris1] - [#105581]) ([documentation](/integrations/insteon))
+
+[@teharris1]: https://github.com/teharris1
+[#105581]: https://github.com/home-assistant/core/pull/105581
+
+{% enddetails %}
+
+{% details "LG Netcast" %}
+
+Turn on action for turning the TV on via a custom script
+within `configuration.yaml` has been changed to use a custom automation trigger
+`lg_netcast.turn_on` or a device trigger that can be set up from the UI.
+
+([@splinter98] - [#104913]) ([documentation](/integrations/lg_netcast))
+
+[@splinter98]: https://github.com/splinter98
+[#104913]: https://github.com/home-assistant/core/pull/104913
+
+{% enddetails %}
+
+{% details "Netatmo" %}
+
+The state of the Netatmo wind and gust direction sensor provided by
+the weather station now exposes the state in lowercase.
+
+([@joostlek] - [#115413]) ([documentation](/integrations/netatmo))
+
+[@joostlek]: https://github.com/joostlek
+[#115413]: https://github.com/home-assistant/core/pull/115413
+
+---
+
+The state of the Netatmo health index sensor provided by the weather station
+now exposes the state in lowercase.
+
+([@joostlek] - [#115409]) ([documentation](/integrations/netatmo))
+
+[@joostlek]: https://github.com/joostlek
+[#115409]: https://github.com/home-assistant/core/pull/115409
+
+{% enddetails %}
+
+{% details "Recorder" %}
+
+Previously, `recorder.purge_entities` called with no arguments would purge all
+entities. This PR makes this call raise an error instead.
+
+It was too easy for users to accidentally purge their entire database using the
+old logic. Users who want to purge all entities can still use
+the `recorder.purge` service to achieve the same effect, and that service
+is more obvious in how it behaves.
+
+([@karwosts] - [#110066]) ([documentation](/integrations/recorder))
+
+[@karwosts]: https://github.com/karwosts
+[#110066]: https://github.com/home-assistant/core/pull/110066
+
+{% enddetails %}
+
+{% details "Traccar Server" %}
+
+The following attributes have been removed from `device_tracker` entities
+provided by the Traccar server integration:
+
+- `address`
+- `altitude`
+- `battery_level`
+- `geofence`
+- `speed`
+
+All of these are now dedicated sensor entities that you can enable.
+
+([@ludeeus] - [#111374]) ([documentation](/integrations/traccar_server))
+
+[@ludeeus]: https://github.com/ludeeus
+[#111374]: https://github.com/home-assistant/core/pull/111374
+
+---
+
+The following attributes have been removed from `device_tracker` entities
+provided by the Traccar server integration:
+
+- `motion`
+- `status`
+
+All of these are now dedicated binary sensor entities that you can enable.
+
+([@ludeeus] - [#114719]) ([documentation](/integrations/traccar_server))
+
+[@ludeeus]: https://github.com/ludeeus
+[#114719]: https://github.com/home-assistant/core/pull/114719
+
+{% enddetails %}
+
+If you are a custom integration developer and want to learn about breaking
+changes and new features available for your integration: Be sure to follow our
+[developer blog][devblog]. The following are the most notable for this release:
+
+- [Always reload after a successful re-auth flow](https://developers.home-assistant.io/blog/2024/04/25/always-reload-after-successful-reauth-flow)
+- [Deprecate old backports and typing alias](https://developers.home-assistant.io/blog/2024/04/08/deprecated-backports-and-typing-aliases/)
+- [Deprecating `async_add_hass_job`](https://developers.home-assistant.io/blog/2024/04/07/deprecate_add_hass_job/)
+- [New notify entity platform](https://developers.home-assistant.io/blog/2024/04/10/new-notify-entity-platform/)
+- [Replacing `async_track_state_change` with `async_track_state_change_event`](https://developers.home-assistant.io/blog/2024/04/13/deprecate_async_track_state_change/)
+- [Store runtime data inside the config entry](https://developers.home-assistant.io/blog/2024/04/30/store-runtime-data-inside-config-entry/)
+
+[devblog]: https://developers.home-assistant.io/blog/
+
+## Farewell to the following
+
+The following {% term integrations %} are also no longer available as of this
+release:
+
+- **Epson Workforce** has been removed. The source package/dependency this
+ integration uses, is no longer available.
+ ([@joostlek] - [#115201])
+
+[@joostlek]: https://github.com/joostlek
+[#115201]: https://github.com/home-assistant/core/pull/115201
+
+## All changes
+
+Of course, there is a lot more in this release. You can find a list of
+all changes made here: [Full changelog for Home Assistant Core 2024.5](/changelogs/core-2024.5)
diff --git a/source/_posts/2024-05-08-zwave-is-not-dead.markdown b/source/_posts/2024-05-08-zwave-is-not-dead.markdown
new file mode 100644
index 00000000000..f60eb8ec9d5
--- /dev/null
+++ b/source/_posts/2024-05-08-zwave-is-not-dead.markdown
@@ -0,0 +1,106 @@
+---
+layout: post
+title: "Z-Wave is not dead"
+description: "Z-Wave is alive and well, partly due to a strong community that is building new open-source resources."
+date: 2024-05-08 00:00:01
+date_formatted: "May 08, 2024"
+author: Paulus Schoutsen
+comments: true
+categories: Z-Wave
+og_image: /images/blog/2024-05-zwave-is-not-dead/art.jpg
+---
+
+
Art by Clelia Rella
+
+**TL;DR: Z-Wave is alive and well, partly due to a strong community that is building new open-source resources. To thrive well into the future, it must take further steps to open its technology.**
+
+Last week, Dominic, Uwe, and I (Paulus) attended the Z-Wave Alliance member meeting in Austin, Texas. It was the first meeting since we [became a member](/blog/2024/02/15/nabu-casa-joins-z-wave-alliance/) and we came with a mission: tell Alliance members about the work done by the open-source community for Z-Wave and find new avenues for collaboration.
+
+Three of us attended, each representing different facets of Z-Wave within the Open Home Foundation: Dominic is the founder and maintainer of Z-Wave JS, which powers the Z-Wave integration in Home Assistant. Uwe leads the development of the Home Assistant Z-Wave stick that we’re working on, and I was there to enable collaborations with other Z-Wave members. Big thanks to [Home Assistant Cloud subscribers](https://www.nabucasa.com/) – thanks to you we can do this work full-time at Nabu Casa.
+
+### A little background on Z-Wave
+
+To use Z-Wave in Home Assistant, our users buy a Z-Wave certified USB stick and combine it with Z-Wave certified devices. Home Assistant then connects to the stick using Z-Wave JS, developed by Dominic, and we’re off to the races. Z-Wave JS was developed completely outside of the Z-Wave Alliance, and is based on the published version of the Z-Wave specification.
+
+Z-Wave wasn’t always this open - Z-Wave used to be owned by a single company, which was later acquired by Silicon Labs. SiLabs decided it was time for change and turned the Z-Wave Alliance into a Standards Development Organization (SDO) that is controlled by its members and a standard that is open.
+
+As it stands, there are still parts of Z-Wave that are not open yet, including the firmware that is running on Z-Wave sticks. I might have mentioned _a couple of times,_ including in my keynote, that we should open up more. It is a good thing to let everyone help fix bugs, improve code quality, and improve diagnostics.
+
+
+
+## Opening Keynote
+
+One of the conditions that we negotiated when joining the Z-Wave Alliance was that we would be allowed to give an opening keynote to explain the work we have been doing. For the last 8 years, Home Assistant has been doing its own thing with Z-Wave. We have contact with manufacturers of Z-Wave devices via [our partner program](https://partner.home-assistant.io/), but never established an official relationship with the Alliance. We decided that it was time to change that.
+
+We launched the [Open Home Foundation](https://www.openhomefoundation.org/blog/announcing-the-open-home-foundation/) last month, a nonprofit that fights for privacy, choice, and sustainability in the smart home – and anyone who lives in one. Open smart home standards like Z-Wave are an important building block for this. With Z-Wave, your data stays at home as communication is fully local. It’s a standard meant to offer consumers choice, and with no reliance on the cloud, devices can continue to work long after a manufacturer ends support, or frankly doesn’t care anymore.
+
+If you follow tech news, you might be wondering now: What about Matter? With the OHF, we believe in choice, including at the standard level. Each standard is built on top of different technologies, and each has pros and cons. Z-Wave is great because it works without Wi-Fi, and its sub-GHz frequency is less busy, allowing it to travel further.
+
+
Paulus Schoutsen presenting
+
+In my keynote to the Alliance, I introduced the work we’ve been doing with Home Assistant, Z-Wave JS, and the Open Home Foundation. According to [our opt-in analytics](https://analytics.home-assistant.io), 9.7% of our users use Z-Wave. This also means that 90.3% of installations are one Z-Wave stick away from being able to use Z-Wave. Z-Wave JS has opt-in statistics, which show on average there are 17 Z-Wave devices per network. **Math time:**
+
+
+1 million active Home Assistant installations
+x
+9.7% using Z-Wave
+x
+17 Z-Wave devices
+=
+1.7 million Z-Wave devices in use
+
+When it comes to smart home standards, all big smart home platforms are all-in on Matter and have skipped or forgotten about Z-Wave – except for Home Assistant. We have always featured Z-Wave in our list of integrations and are big promoters of the standard.
+
+This is where I introduced our goal for Z-Wave to the Alliance: we want Z-Wave to be a successful consumer-facing brand. Z-Wave is very popular among companies in the US making security products (like Ring). However, the consumer doesn’t know they are using Z-Wave because it is an implementation detail. This holds Z-Wave back from becoming a rich ecosystem.
+
+For us, success means that there are many manufacturers making Z-Wave devices and that users have an abundance of choice in each product category.
+
+

+
+Z-Wave JS is an independent driver created from the ground up based on the published Z-Wave specification. Dominic has put a lot of effort into this, and his work has formed a community of people passionate about developing the best open Z-Wave driver. Our community has many power users who test Z-Wave JS and make sure it scales and works with both old and new devices.
+
+We are working on getting Z-Wave JS certified to get companies to consider adopting it. Good news on that front – there is already one company that has dropped their 20-year-old Z-Wave stack in favor of Z-Wave JS. Let’s get more on board!
+
+Our efforts to make Z-Wave a success go beyond making an open source Z-Wave driver and smart home platform. We also created the Z-Wave JS Firmware Update service to provide updates for Z-Wave devices. For this service we are currently working with 8 different manufacturers to provide firmware for 187 devices. In my keynote I told the audience that we want to help more manufacturers provide updates to their users.
+
+
The companies that contribute their firmware to the Z-Wave JS Firmware Update service.
+
+In the end, I wrapped up my talk pushing the Alliance to open up more: we all want Z-Wave to succeed. If it is more open, it will be easier for users to adopt. This will lead to more tooling, more apps, more everything. That will, in return, lead to a bigger Z-Wave ecosystem where we can all thrive. Some will do it for sales, or in our case, to drive forward products that value privacy, choice, and sustainability.
+
+We are all in this Alliance to have our devices work together. Let’s not compete on who can best control a Z-Wave light bulb.
+
+OPEN SOURCE!
+
+## Range testing our Z-Wave stick prototype
+
+One of our team's first stops at the Z-Wave Summit was attending [DrZWave](https://drzwave.blog/)’s range test down at the Colorado River. This was a perfect opportunity to see how well the prototype of our Z-Wave stick performs. While others tested with huge antennas on both sides to reach the longest range possible, we deliberately chose [end devices with tiny antennas](https://www.silabs.com/development-tools/wireless/efr32xg28-explorer-kit?tab=overview) to recreate a more real-world scenario. After all, many devices out in the wild don’t have room for big external antennas, and we want to have the best possible experience for our users with existing networks. Also, we tested both classic Z-Wave and Z-Wave Long Range because a majority of existing devices still use classic Z-Wave.
+
+Bikes and scooters weren’t allowed on the bridges and near the water, so Uwe got some exercise that day, walking several miles up and down the river with the end devices in his pockets. Dominic performed the range test using [Z-Wave JS UI](https://github.com/zwave-js/zwave-js-ui) and a simple script that sent on/off commands to the end devices to make them blink. Due to encryption, even a single corrupted bit would be noticeable by an interruption of the blinking pattern and missing responses from the end device.
+
+It is barely visible in the photo, but we reached the bridge behind the bridge all the way in the background. We used classic Z-Wave and Z-Wave Long Range, although classic Z-Wave was not as reliable at that distance. That is a 0.7-mile (1.13-km) **line of sight!** With a better antenna on the other side or using EU frequencies (which allow higher transmit power), even further ranges are definitely possible.
+
+
Left: Dominic, slightly jetlagged, with our stick prototype (green). Right: DrZWave with the controller reference design (purple). Background: Uwe, 0.7 miles away.
+
+## Unplug fest
+
+Afterward, everyone headed inside for the unplug fest, where manufacturers of end devices and controllers/gateways could connect and test how well they interact with each other. Here’s an example of a HomeSeer prototype that already has great support in Z-Wave JS:
+
+

+
+Since there was still some time left, we took the chance to perform more range tests with our prototype and the reference design, this time indoors going up through multiple layers of concrete. Depending on the end device, we were able to bridge between 2 and 8 floors.
+
+## Z-Wave JS is EVERYWHERE
+
+Besides powering the Z-Wave integration in Home Assistant, Z-Wave JS is a great tool for development. Built with diagnostics in mind, Z-Wave JS helps understand what the controller and devices are doing and whether they are behaving as expected.
+
+Although we set out to tell people about Z-Wave JS, we learned that a lot of engineers from established companies already use it for development – and in their presentations!
+
+

+
+They use it to reproduce issues, do load testing, write scripts to automate certain tasks, and run their own test suites. This includes using the CLI tools to update firmware, for example, to investigate changes between different Z-Wave SDK versions. The Javascript API makes it trivial to perform arbitrary actions and automate things that are hard or impossible to do using UI-based applications.
+
+Another valuable development tool is the Zniffer, a special Z-Wave controller that can capture and decode all Z-Wave radio traffic. Like most of the existing tooling, this requires using Windows. Prior to the summit, Dominic had started working on adding support for Zniffer devices to Z-Wave JS. Although this was still a work in progress, people were already using it for development purposes and told us they were looking forward to it being officially released.
+
+## Conclusion
+
+Z-Wave is a powerful technology with a large install base, and in certain use cases, it provides real advantages over other connectivity standards. Meeting Alliance members, I can see they are enthusiastic about the future, but it's the community that will drive the next chapter of Z-Wave. Further opening Z-Wave will empower both the vendors and the community - and help build an open home that serves everyone in it, providing greater privacy, choice, and sustainability.
\ No newline at end of file
diff --git a/source/_posts/2024-05-09-music-assistant-2.markdown b/source/_posts/2024-05-09-music-assistant-2.markdown
new file mode 100644
index 00000000000..5866d2f2c79
--- /dev/null
+++ b/source/_posts/2024-05-09-music-assistant-2.markdown
@@ -0,0 +1,126 @@
+---
+layout: post
+title: "Music Assistant 2.0: Your Music, Your Players"
+description: "Connecting multiple music libraries to almost any smart speaker."
+date: 2024-05-09 00:00:01
+date_formatted: "May 09, 2024"
+author: Marcel van der Veldt
+comments: true
+categories: Music-Assistant
+og_image: /images/blog/2024-05-music-assistant/art.jpg
+---
+

+
+Today, exactly five years ago, I, Marcel, started working on [Music Assistant
](https://music-assistant.io/). What began as a quick script, to sync my playlists so I could switch between streaming providers, grew into a beast on its own.
+
+Music Assistant is what I’d like to call a “music library manager” – it gives you full control of playing YOUR music on your players. Just like Home Assistant centralizes all your devices and services to work together, Music Assistant does the same with your music sources and smart audio-playing devices.
+
+To just play with Music Assistant without reading what it is (yes, we know you!):
+{% my supervisor_addon badge addon="d5369777_music_assistant" repository_url="https://github.com/music-assistant/home-assistant-addon" %}
+
+
+
+## Rainbow Connection
+
What is Music Assistant?
+
+**Your music, your players.** Click and play. It should be as simple as that.
+
+
From source to Music Assistant to speaker
+
+#### Connect and play anywhere
+Music Assistant allows you to quickly connect some of the
most popular streaming providers like Spotify and Tidal, with your local media files. Importing your liked tracks, artists, albums, and playlists, all displayed with the correct artwork.
+
+It supports the most ubiquitous
streaming protocols and devices like Airplay, Cast and DLNA, letting you play media on almost any device - if an old speaker doesn’t support new services, Music Assistant can bring it back to life.
+
+[Read more...](#freedom-of-choice)
+
+#### Unified music library with advanced features
+Your local and cloud libraries will be seamlessly merged together. If you have the same track on multiple place, it will appear once while helping you find the highest-quality version. You can even have multiple accounts from the same provider, allowing everyone in the house to have their playlists in one place.
+
+It can group supported players for synchronized playback. It also supports advanced playback features such as crossfade and volume normalization - regardless of whether the device supports them.
+
+[Read more...](#come-together)
+
+#### Built for Home Assistant
+Connecting this with the Home Assistant integration - automation and voice control supercharges the whole experience.
+
+[Read more...](#we-are-family)
+
+## Start me up
+
How to install Music Assistant
+
+After many years of development and testing with the amazing community, we can finally say this is ready for daily use.
+
+

+
+Even though Music Assistant is an HA Add-on, it can be installed from start to finish via [HACS
](https://hacs.xyz/). You simply install the integration, which will automatically install and manage the add-on for you. The integration allows you to control your devices with automations and voice control.
+
+{% my supervisor_addon badge addon="d5369777_music_assistant" repository_url="https://github.com/music-assistant/home-assistant-addon" %}
+
+_Music Assistant is distributed as a
Home Assistant add-on – our way to easily extend your Home Assistant installation with third party applications. To install it as a Docker container, follow the
MA installation instructions ._
+
+## Fight the power
+
Why Music Assistant?
+
+I started Music Assistant out of frustration about the mainstream available options;
+
+* You buy into an all-in-one ecosystem (such as Sonos), and then it's up to that ecosystem to decide which music sources to support now and in the future.
+
+* You choose a music streaming provider, and then somehow that streaming provider decides where/how you play their music.
+
+* You want to switch between streaming providers and keep your carefully curated playlists, regardless of which provider you want to play it with.
+
+* You still have your CD music collection that you’ve painstakingly ripped into high-quality files on local storage, and you want to play them, maybe even mix them with choices from streaming providers.
+
+* Or maybe you fall into the category of users who don’t want any subscriptions and have a carefully curated local media collection you want to play on these shiny new playback devices.
+
+When we pay for our music or devices, we shouldn’t be limited by arbitrary limitations. We are slowly moving into a world of greater walled gardens and more vendor lock-in, and it’s time we took back control.
+
+
Tidal on a Google Home
+
+I spent a long time and a good bit of my money looking at existing solutions to fill these gaps. They were either expensive, closed, or lacked the home approval factor - or a combination of all of these.
+
+## Freedom of choice
+
Connecting any sources and play anywhere
+
+Music Assistant connects to your favorite streaming providers and local music files, letting you play them on almost any connected playback equipment from the past 20 years. It’s basically a translator of music protocol A towards speaker/player protocol B.
+
+

+
+For instance, I have a traditional amplifier + speakers setup in my living room that allows for high-quality music playback, where I can sit down and hear every detail. I also have Sonos speakers in a very noisy kitchen and some DIY speakers that can only accept Airplay. I can play my music to all of these speakers without being tied down to any single ecosystem.
+
+Some people might say that the best way to prevent all that frustration is by buying into an ecosystem like Sonos which takes care of this for you entirely. While I am a big fan of Sonos (and I will recommend them to friends and family for ease of use), I am not a big fan of the vendor lock-in that comes with it. If Sonos or a streaming service decide to part ways, I don’t have to be locked out of my music. Also, they don’t make speakers at every price point, meaning you don’t get the advantages of the new higher-fidelity or more affordable hardware out there.
+
+## Come together
+
Unifying all your music in one library
+
+In the same interface as I can stream my kids’ music to their speakers, I can stream my Hi-Res favorites to my high-fidelity setup. It is an all-in-one interface. Gone are the days of needing five different apps to get playback going in multiple parts of the house or switching who is connected just to access their playlists.
+
+

+
+When you search in Music Assistant, it searches all your libraries. Every streaming service, or the local files you add, are available to choose for playback.
+
+## We are family
+
Built for Home Assistant
+
+Music Assistant has always been closely linked to Home Assistant (more on that below). I now even work for [Nabu Casa
](https://www.nabucasa.com/), partly because of my work on Music Assistant (but now I’m the Matter guy).
+
+

+
+Because of this strong link, Home Assistant seamlessly links with Music Assistant, unlocking several advanced features. MA players are exposed to HA and can be controlled via your dashboards, automations, and scripts. This allows HA users to control their music players and access MA’s powerful music search function. Players can provide TTS (Text-to-Speech) announcements and can be controlled by Home Assistant connected voice assistants.
+
+## Liner notes
+
+So, I started working on Music Assistant [exactly five years ago
](
), at first for my own personal use. It started as a learning exercise - thanks to it, I learned asyncio Python programming as well as the Vue frontend framework. I had the project on GitHub just to host the code, but it was not really meant to be used by others.
+
+At some point, it became clear to me that there was a real demand, and I posted some info on how to install it, which gained a little attention. In June 2022, we released the 1.0 version of Music Assistant, and it was still in rough shape but already suitable for many users. We even organized a Livestream, “[Let’s get Loud ](https://www.youtube.com/watch?v=SEH-DxOsywg)” hosted by Home Assistant, to promote [audio support for ESPHome ](https://esphome.io/components/media_player/i2s_audio.html) and the super cool things you can build when you combine these three open-source projects.
+
+Version 1.0 was not everything we hoped it would be. It had some structural bugs, specifically running as a custom component in Home Assistant. HA was created to give you the best experience for automating your home; it was never optimized for real-time audio streaming. On top of that, at some point, the dependencies of both projects got so conflicted that Music Assistant stopped working completely in the March 2023 release of HA.
+
+Six months after its initial version 1.0 launch, the project was beginning to look like it was going to die, so I decided to start over and go back to the drawing board. The engine of MA needed to be its own isolated component, responsible for giving you the best possible experience of streaming music (where audio quality and latency are very important), and the HA-side should be responsible for automating your house and music.
+
+So, the Music Assistant Server was born. It is a standalone application that you can run in docker (or Home Assistant add-on), all connected to HA via a HACS integration. The project was split up into multiple self-contained parts.
+
+Music Assistant Server has its own web interface, a modern interface written in Vue. Thanks to HA's add-on system, this web interface can be securely accessed from HA. The web interface is a Progressive Web App (PWA), so you can also visit it directly and [install it on your device ](https://support.google.com/chrome/answer/9658361?hl=en-GB&co=GENIE.Platform=Desktop). We also have an (experimental) [desktop app ](https://music-assistant.io/companion-app/).
+
+Over the past year, we have been iterating on this with an impressive number of beta testers. So, while technically this is a 2.0 release, to me personally this is the first real release, as this is finally something that feels good and has the right foundation. What is also super is that we attracted contributors to the project, folks helping create and maintain music integrations while providing support or translations. Even more exciting there are some really big features and streaming services on the horizon. My sincere thanks to everyone who has helped bring this release home.
diff --git a/source/_posts/2024-05-22-companion-app-for-ios-20245-assist.markdown b/source/_posts/2024-05-22-companion-app-for-ios-20245-assist.markdown
new file mode 100644
index 00000000000..b352722283f
--- /dev/null
+++ b/source/_posts/2024-05-22-companion-app-for-ios-20245-assist.markdown
@@ -0,0 +1,61 @@
+---
+layout: post
+title: "Companion app for iOS 2024.5: Let me Assist you 🍎"
+description: "Assist on iOS and companion App progress so far."
+date: 2024-05-22 00:00:02
+date_formatted: "May 22, 2024"
+author: Bruno Pantaleão
+comments: true
+categories: iOS Release-Notes
+og_image: /images/blog/2024-05-ios-assist/ios-og.jpg
+---
+
+Hey, this is Bruno. It has been a great few months since I joined Nabu Casa to work full-time on the Home Assistant iOS app, again a big thanks to our Home Assistant Cloud subscribers for making this possible. Today, I would like to recap what has been introduced since [the last blog post for version 2024.1](/blog/2024/01/29/companion-app-for-ios-20241-carplay/) and discuss more about how Assist is being integrated into the Apple ecosystem - along with a number of other improvements to the app.
+
+
+
+
+
+## Assist on iOS
+
+I am very happy to bring Assist for iOS with a new native UI, integrated with iOS shortcuts and widgets, so let’s start with a quick demo:
+
+
+
+In this demo, you see Assist being triggered from the iPhone 15 Pro “action button” and lock screen widget. Those are a few ways of interacting with Assist, but as it’s an iOS shortcut, you can trigger it in all sorts of creative ways. You can create an automation triggered by scanning an NFC tag that launches Assist, or even add it to an existing shortcut you already use.
+
+### “What if I don’t have an iPhone 15 pro to use the action button?”
+
+It would be ideal if we could replace Siri with Assist in the power button long press, but since Apple doesn’t allow that. The second best option becomes the action button. For iPhones without it, there is a third option, the accessibility feature called “back tap”. Follow [this guide on the Apple page](https://support.apple.com/en-gb/guide/shortcuts/apd897693606/ios) to learn how to configure it.
+
+### Widgets
+
+If back tap doesn’t work for you, Assist can be activated via our widgets from the home screen or with our very first iOS lock screen widget, which looks great:
+
+
+
+### Accessibility feature alternative
+
+There is “one more thing” that you can use to launch Assist, iOS has an accessibility feature called “Voice Control” which allows a user to basically navigate an iPhone completely using voice commands. On top of that they allow you to add “custom commands” so… Yes! You can just add “Ok Nabu”, then use the option **Run shortcut** and have it trigger “Assist In App”.
+
+There are a couple of things to take into consideration. I tried this last weekend, and although it’s pretty cool, it’s not as fast as calling Siri. You will also have full voice control enabled, so you trigger other commands every once in a while.
+
+
+
+## Other highlights
+
+- We have introduced the ability to run your Action widgets in the background, so you can quickly trigger them instead of having to wait for the app to launch to see the result.
+
+- This version introduced a simple way to create an automation for your iOS Action: simply tap on the “create automation” button.
+
+- We started improving our widgets' performance and capabilities. I know you all have great ideas, and I am currently working on the foundation to allow those to happen, but please continue sending feature requests to our Home Assistant Community.
+
+- When we first released CarPlay integration, we missed out on displaying all areas due to a limitation in the number of items allowed on a list. Since 2024.2, we have worked around this by using the first and last rows of the areas list as pagination arrows, so you can now see all your rooms.
+
+- The Actions UI in CarPlay was aligned to display the same information as in Apple Watch, previously we were displaying the “Identifier” and ”Text”, now we display just the “Text” so we keep consistency between platforms.
+
+- We also added a button to reload your widgets, since sometimes they may become blank for a few users after an update. For actions, we added a button to update server-created Actions manually, so you don't need to reopen the app for that (but remember to restart HA after adding or removing Actions from YAML).
+
+- Memory usage and performance issues on our macOS client are big topics in our GitHub right now, and we are aware of them and are working towards improving them. As this release is the first iteration in that direction, we would like your feedback since this issue is not easily reproducible in all instances.
+
+Before wrapping up, I would like to say how important reporting issues on GitHub is for the development of these companion apps. We are addressing them as fast as we can and with the attention necessary to make sure your problems are resolved. I would also like to take this opportunity to invite iOS devs (aspiring or established) who wish to contribute to jump in. Drop me a message so we can work together and move faster, I will be happy to help you get started.
\ No newline at end of file
diff --git a/source/_posts/2024-06-05-release-20246.markdown b/source/_posts/2024-06-05-release-20246.markdown
new file mode 100644
index 00000000000..51e86cab35e
--- /dev/null
+++ b/source/_posts/2024-06-05-release-20246.markdown
@@ -0,0 +1,803 @@
+---
+layout: post
+title: "2024.6: Dipping our toes in the world of AI using LLMs 🤖"
+description: "Control your home with an AI powered Assist, conditional sections and cards for your dashboards, amazing new media player commands, and so much more! 🚀"
+date: 2024-06-05 00:00:00
+date_formatted: "June 5, 2024"
+author: Franck Nijhof
+author_twitter: frenck
+comments: true
+categories:
+ - Release-Notes
+ - Core
+og_image: /images/blog/2024-06/social.png
+---
+
+
+
+Home Assistant Core 2024.6! 🎉
+
+Welcome to another loaded release of Home Assistant! Packed with many exciting
+new features, this month is most definitely one to remember.
+
+Let's talk about AI. AI might just as well be the talk of the century. These
+so-called [LLMs] most certainly open up a whole new world of possibilities.
+When we first introduced the OpenAI and Google AI conversation agents for Assist,
+one of the most requested features was the ability to control your home with it.
+
+Now for the big news:
+
+_**Well, as of today, you can control your home with an AI!**_ 🤖
+
+But there is a lot more to this release. Super simple media player commands,
+more data table improvements, tag entities, collapsible blueprint sections,
+and so much more!
+
+I’m personally most excited about the new features in the dashboarding area.
+Being able to conditionally show sections and cards is definitely a game-changer
+for my dashboards.
+
+Enjoy the release!
+
+../Frenck
+
+[LLMs]: https://en.wikipedia.org/wiki/Large_language_model
+
+
+
+- [Voice \& Assist](#voice--assist)
+ - [Dipping our toes in the world of AI using LLMs](#dipping-our-toes-in-the-world-of-ai-using-llms)
+ - [Improved media player commands](#improved-media-player-commands)
+- [Dashboards](#dashboards)
+ - [Show sections conditionally](#show-sections-conditionally)
+ - [Control visibility of cards](#control-visibility-of-cards)
+ - [Setting a dashboard background](#setting-a-dashboard-background)
+- [Data tables improvements](#data-tables-improvements)
+- [Integrations](#integrations)
+ - [New integrations](#new-integrations)
+ - [Noteworthy improvements to existing integrations](#noteworthy-improvements-to-existing-integrations)
+ - [Integrations reaching platinum quality level](#integrations-reaching-platinum-quality-level)
+ - [Now available to set up from the UI](#now-available-to-set-up-from-the-ui)
+ - [Farewell to the following](#farewell-to-the-following)
+- [Matter turns 1.3](#matter-turns-13)
+- [Other noteworthy changes](#other-noteworthy-changes)
+ - [Disabling expiration of login tokens](#disabling-expiration-of-login-tokens)
+ - [Tag entities!](#tag-entities)
+ - [Collapsible sections for blueprints!](#collapsible-sections-for-blueprints)
+- [Patch releases](#patch-releases)
+ - [2024.6.1 - June 7](#202461---june-7)
+- [Need help? Join the community!](#need-help-join-the-community)
+- [Backward-incompatible changes](#backward-incompatible-changes)
+- [All changes](#all-changes)
+
+Don't forget to [join our release party live stream on YouTube](https://www.youtube.com/watch?v=xMFC8yaVtpI)
+5 June 2024, at 20:00 GMT / 12:00 PST / 21:00 CEST!
+
+
+
+## Voice & Assist
+
+This month, we are continuing our work on improving Assist's out-of-the-box
+capabilities: Not only are we adding features that you would expect from a
+voice assistant, such as media control, but we are leap-frogging ahead with
+some new exciting developments and experimenting with AI! 🤖
+
+We will have more to announce during a soon-to-be-announced _Voice - Chapter 7_
+livestream on June the 26th! Keep an eye out for that! 🎙️
+
+### Dipping our toes in the world of AI using LLMs
+
+Our voice assistant's brain is called a _conversation agent_.
+It is responsible for understanding the intention behind the spoken command,
+performing an action, and generating a response.
+
+Since the beginning of our voice journey, we allowed you to switch your
+conversation agent for an LLM-based one. This led to some very funny experiments,
+such as our [infamous interview with Mario](https://www.youtube.com/watch?v=eLx8_NAqptk).
+
+Until now, these two worlds (our own Home Assistant conversation agent
+controlling your home and LLM-based conversation agents) did not overlap;
+it was impossible to control your home from an LLM-based conversation agent.
+
+Today, we’re happy to announce that we are closing this gap!
+
+
+
+When setting up an LLM-based conversation agent, you can decide to let
+your conversation agent control your home with a flick of a switch.
+
+
+
+With this new setting, LLM-based conversation agents can tap into our
+{% term intent %} system, which powers Assist. They also get access to every
+{% term entity %} exposed to Assist. That way, you control what your agents
+have access to.
+
+Tapping into our intent system is great because it works out of the box.
+LLM-based conversation agents can do everything that Assist can do.
+The added benefit is that they are capable of reasoning beyond words,
+which Assist was incapable of doing.
+
+For example, if you have a light called _"Webcam light"_ exposed in your
+_"office"_ area, you can give direct commands such as:
+
+> Turn on the office webcam light.
+
+That was also working with Assist previously, but you can also give more
+complex commands, such as:
+
+> I'm going to a meeting, can you please make sure people see my face?
+
+The agent will figure out the intention behind the words
+and call the correct intent on the matching exposed entities.
+
+{% details "What about custom intents?" %}
+
+Our intent system has been built from the start to be extensible.
+Custom integrations and even users can register their own intents.
+This allows you to guide the agent beyond what's capable out of the box.
+
+Here is an example of a custom intent that explains to the agent what
+to do when I leave my home.
+
+```yaml
+conversation:
+ intents:
+ LeaveHome:
+ - "Leave home"
+
+intent_script:
+ LeaveHome:
+ description: "Launch the leave home script. To be used when I am about to leave my home."
+ action:
+ - service: script.leave_home
+ data: {}
+ speech:
+ text: "Done"
+```
+
+With this YAML snippet added to my {% term "`configuration.yaml`" %}, if the
+agent understands that I am leaving home, it will not turn off what it thinks
+I want, it will run my `leave_home` script, which is precisely what
+I want it to do.
+
+{% enddetails %}
+
+This release makes it available for our [OpenAI] and [Google AI]
+{% term integrations %}. To make it easier to get started with LLMs,
+we have updated them with recommended model settings that strike the right
+balance between accuracy, speed, and cost. If you had them set up previously,
+we recommend enabling the recommended settings and emptying the instructions.
+
+Our recommended model settings perform equally well for voice assistant tasks.
+Google is 14x cheaper than OpenAI, but OpenAI is better at answering non-smart
+home questions. We are preparing a blog post with a deep dive into the research
+that went into this feature, coming soon™!
+
+Local LLMs have been supported via [the Ollama integration](/integrations/ollama/) since Home Assistant 2024.4. Ollama and the major open source LLM models are not tuned for tool calling, so this has to be built from scratch and was not done in time for this release. We're collaborating with NVIDIA to get this working – [they showed a prototype last week.](https://youtu.be/aq7QS9AtwE8?si=yZilHo4uDUCAQiqN)
+
+Thanks to everyone who contributed to this feature! [@shulyaka], [@tronikos],
+[@allenporter], [@synesthesiam], [@jlpouffier], and [@balloob]!
+
+[@allenporter]: https://github.com/allenporter
+[@balloob]: https://github.com/balloob
+[@jlpouffier]: https://github.com/jlpouffier
+[@shulyaka]: https://github.com/shulyaka
+[@synesthesiam]: https://github.com/synesthesiam
+[@tronikos]: https://github.com/tronikos
+[Google AI]: /components/google_generative_ai_conversation/
+[OpenAI]: /components/openai_conversation/
+
+### Improved media player commands
+
+We have introduced new media player {% term intents %} that allow you to do
+more while saying less. You can say the following voice commands to control
+media players in the same area as your Assist device:
+
+- _"Pause"_
+- _"Resume"_
+- _"Next"_
+- _"Set the volume to 50%"_
+
+Up until now, we have only proposed sentences targeting a specific entity by
+its name. Due to this limitation, these intents were not the most user-friendly,
+as the sentences were too long to say: _“Skip to the next song on the TV”_.
+
+We added two features to get to the smallest sentences possible. Context
+awareness makes our voice assistant aware of the devices in the same area as
+the satellite. We have also created a smart matching strategy that finds the
+right media player to target.
+
+For example, if you say “pause”, the voice assistant will automatically
+target the media player that is playing.
+
+
+
+Just ensure your voice assistant device is assigned to an area with an exposed
+media player, and you are good to go.
+
+## Dashboards
+
+Work has continued, making the dashboard customization and organization easier
+and more intuitive. This month, we are adding a new feature for our new sections
+and customization for backgrounds, which everyone in your home will enjoy.
+
+### Show sections conditionally
+
+We added a visibility option to the new [sections dashboard] feature. This
+amazing new feature allows you to hide or show a section based on certain
+conditions.
+
+For example, you may want to display only a section on mobile when you’re at
+home. Or, only show the switch to turn off kitchen lights when the kitchen lights
+are actually on. Maybe you have that one section only relevant to you or your
+partner, and you want to hide it from the kids.
+
+
+
+It uses the [same conditions as condition cards](/dashboards/conditional/#conditions-options),
+meaning you have a lot of flexibility in what you can do.
+
+[sections dashboard]: /dashboards/sections/
+
+### Control visibility of cards
+
+Wait, we didn't stop there! This same visibility feature is now also available
+for cards! Oh yes! 🚀
+
+
+
+You can now hide or show a card based on certain conditions. This allows you to
+create more dynamic dashboards that adapt to your needs. The big difference is
+that you don’t need a condition card to use this feature. It is available
+directly in the card configuration in the **Visibility** tab.
+
+### Setting a dashboard background
+
+[@Nezz] contributed a great new feature to our dashboarding UI: the ability to
+set a background image for your [dashboard](/dashboards)!
+
+Previously, this was only possible by editing YAML, but now you can do it
+directly from the UI. Even better, you can upload an image directly from your
+computer or provide a URL to one!
+
+
+
+_Photo: [Body of Water Between Green Leaf Trees] by [Ian Turnell](https://www.pexels.com/@samandgos/)._
+
+The same ability (to upload images directly from your computer) was added to
+the picture card, too! Thanks, [@karwosts], for that one!
+
+[@karwosts]: https://github.com/karwosts
+[@Nezz]: https://github.com/Nezz
+[Body of Water Between Green Leaf Trees]: https://www.pexels.com/photo/body-of-water-between-green-leaf-trees-709552/
+[Ian Turnell]: https://www.pexels.com/@samandgos/
+
+## Data tables improvements
+
+Like the [last release](/blog/2024/05/01/release-20245/#more-features-for-our-data-tables),
+this release keeps improving our data tables.
+
+When we [introduced data groupings](/blog/2024/04/03/release-20244/#item-grouping)
+in the tables, you asked for a way to collapse and expand those groupings,
+so we did in the last release! But then we quickly realized that it was not
+enough, and you wanted to be able to collapse and expand all groups at once.
+So, we did that for this release!
+
+
+
+We've also expanded the voice assistant expose data table to allow grouping
+by area and domain.
+
+Additionally, filters you've set in the data tables are now saved in your
+browser session. Meaning, if you navigate away from the page and come back, your
+filters will still be there. But! Each browser tab or window has its own session,
+meaning you can have different filters in different tabs or windows that are
+remembered for that specific tab or window.
+
+## Integrations
+
+Thanks to our community for keeping pace with the new {% term integrations %}
+and improvements to existing ones! You’re all awesome 🥰
+
+### New integrations
+
+We welcome the following new integrations in this release:
+
+- **[Airgradient]**, added by [@joostlek]
+ Provides air quality data from your local Airgradient device.
+- **[APsystems]**, added by [@mawoka-myblock]
+ Monitor your APsystems EZ1 microinverters.
+- **[Azure data explorer]**, added by [@kaareseras]
+ Forward events from Home Assistant to the Azure Data Explorer for analysis.
+- **[IMGW-PIB]**, added by [@bieniu]
+ Hydrological data from the Institute of Meteorology and
+ Water Management—National Research Institute provides information
+ about rivers and water reservoirs in Poland.
+- **[Intelligent Storage Acceleration]**, added by [@bdraco]
+ Intelligent Storage Acceleration Library (ISAL) is used to accelerate our
+ Home Assistant frontend. It is automatically enabled/activated.
+- **[Monzo]**, added by [@JakeMartin-ICL]
+ Connect your Monzo bank account to Home Assistant and get insights
+ into your account balance.
+
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@JakeMartin-ICL]: https://github.com/JakeMartin-ICL
+[@joostlek]: https://github.com/joostlek
+[@kaareseras]: https://github.com/kaareseras
+[@mawoka-myblock]: https://github.com/mawoka-myblock
+[Airgradient]: /integrations/airgradient
+[APsystems]: /integrations/apsystems
+[Azure data explorer]: /integrations/azure_data_explorer
+[IMGW-PIB]: /integrations/imgw_pib
+[Intelligent Storage Acceleration]: /integrations/isal
+[Monzo]: /integrations/monzo
+
+### Noteworthy improvements to existing integrations
+
+It is not just new {% term integrations %} that are added; existing
+integrations are also constantly improved. Here are some of the noteworthy
+changes to existing integrations:
+
+- Do you need a wireless device that can bridge a larger distance, like
+ kilometers? A [LoRa] device might be a good option. Thanks to [@angelnu]
+ we now have a working integration for [The Things Network].
+- [@starkillerOG] added support for PIR and battery sensors to the [Reolink]
+ integrations. Nice!
+- The [Teslemetry] integration has been expanded tremendously, adding new
+ platforms and features. Awesome job [@Bre77]!
+- Limited templates can now be used to disable {% term triggers %},
+ {% term conditions %}, and {% term actions %}. [@farmio] thought this might
+ be helpful for {% term blueprint %} creators.
+- [@Anrijs] added support for the [Aranet Radiation] devices to the
+ [Aranet] integration. Nice!
+- You can now set the cutting height of your [Husqvarna Automower] and there
+ are switches to make it stay out of certain zones. Thanks [@Thomas55555]!
+- [@thomaskistler] added flow and rain sensor support to the [Hydrawise]
+ integration. Great!
+- The [SwitchBot Cloud] integration now supports the [SwitchBot Meter],
+ [MeterPlus], and [Outdoor Meter]. Thanks [@laurence-presland]!
+
+[@angelnu]: https://github.com/angelnu
+[@Anrijs]: https://github.com/Anrijs
+[@Bre77]: https://github.com/Bre77
+[@farmio]: https://github.com/farmio
+[@laurence-presland]: https://github.com/laurence-presland
+[@starkillerOG]: https://github.com/starkillerOG
+[@Thomas55555]: https://github.com/Thomas55555
+[@thomaskistler]: https://github.com/thomaskistler
+[Aranet Radiation]: https://aranet.com/products/aranet-radiation-sensor
+[Aranet]: /integrations/aranet
+[Husqvarna Automower]: /integrations/husqvarna_automower
+[Hydrawise]: /integrations/hydrawise
+[LoRa]: https://en.wikipedia.org/wiki/LoRa
+[MeterPlus]: https://www.switch-bot.com/products/switchbot-meter-plus
+[Outdoor Meter]: https://www.switch-bot.com/products/switchbot-indoor-outdoor-thermo-hygrometer
+[Reolink]: /integrations/reolink
+[SwitchBot Cloud]: /integrations/switchbot_cloud
+[SwitchBot Meter]: https://www.switch-bot.com/products/switchbot-meter
+[Teslemetry]: /integrations/teslemetry
+[The Things Network]: /integrations/thethingsnetwork
+
+### Integrations reaching platinum quality level
+
+The following {% term integrations %} reached the platinum 🏆 level on our
+[integration quality scale](/docs/quality_scale). These integrations are
+the best of the best and give you an excellent out-of-the-box experience.
+
+- **[Fyta]**, done by [@dontinelli]
+- **[Google Generative AI]**, done by [@tronikos]
+- **[IMGW-PIB]**, done by [@bieniu]
+- **[Minecraft Server]**, done by [@elmurato]
+- **[tedee]**, done by [@zweckj]
+
+Congratulations to all the developers who worked on these integrations!
+
+[@bieniu]: https://github.com/bieniu
+[@dontinelli]: https://github.com/dontinelli
+[@elmurato]: https://github.com/elmurato
+[@tronikos]: https://github.com/tronikos
+[@zweckj]: https://github.com/zweckj
+[Fyta]: /integrations/fyta
+[Google Generative AI]: /integrations/google_generative_ai_conversation
+[IMGW-PIB]: /integrations/imgw_pib
+[Minecraft Server]: /integrations/minecraft_server
+[tedee]: /integrations/tedee
+
+### Now available to set up from the UI
+
+While most {% term integrations %} can be set up directly from the Home Assistant
+user interface, some were only available using YAML configuration. We keep moving
+more integrations to the UI, making them more accessible for everyone
+to set up and use.
+
+The following integrations are now available via the Home Assistant UI:
+
+- **[File]**, done by [@jbouwh]
+- **[Jewish Calendar]**, done by [@yuvalabou]
+- **[Media extractor]**, done by [@joostlek]
+- **[The Things Network]**, done by [@angelnu]
+
+[@angelnu]: https://github.com/angelnu
+[@jbouwh]: https://github.com/jbouwh
+[@joostlek]: https://github.com/joostlek
+[@yuvalabou]: https://github.com/yuvalabou
+[File]: /integrations/file
+[Jewish Calendar]: /integrations/jewish_calendar
+[Media extractor]: /integrations/media_extractor
+[The Things Network]: /integrations/thethingsnetwork
+
+### Farewell to the following
+
+The following {% term integrations %} are also no longer available as
+of this release:
+
+- **Ambiclimate** has been removed by [@gjohansson-ST]. Their services have been
+ terminated, effective March 31, 2024.
+
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[#116410]: https://github.com/home-assistant/core/pull/116410
+
+## Matter turns 1.3
+
+As one of the first in the industry, we proudly announce that Home Assistant
+is already based on the latest {% term Matter %} specification: Matter 1.3! 😎
+This updated version of the Matter SDK improves the reliability
+and compatibility of Matter devices.
+
+This release also improves and expands device support. Matter-based
+air purifiers and room air conditioner devices are now supported, thermostats
+and other climate devices had important fixes around set points, and updates
+to our discovery ensure that we can represent more data for most devices.
+
+A couple of Matter devices out there have so-called "custom clusters".
+Custom clusters are a standardized way for manufacturers to include
+non-standardized data. We want to support custom clusters, so we need
+to add support for each one individually.
+
+This release allows Home Assistant to be notified when the data of a custom
+cluster changes (instead of polling for it on an interval). This will reduce the
+network traffic and improve the performance of your Matter network,
+especially on bigger {% term Thread %} networks.
+
+## Other noteworthy changes
+
+There are many more improvements in this release; here are some of the other
+noteworthy changes this release:
+
+- A default code can now be set in the entity settings for every alarm control
+ panel {% term entities %}. Nice work [@gjohansson-ST]!
+- [@Troon] added a filter to our {% term templates %}: `add`. This filter allows
+ you to add a value similar to the existing `multiply`. Great!
+- A new action building block has been added to our {% term automations %} and
+ {% term scripts %} by [@surfingbytes] and [@frenck]: [Run sequence of actions].
+ This allows you to group multiple {% term actions %} together or run multiple
+ sequences of actions in [parallel].
+- Sensors can be [grouped] to calculate, for example, their sum or mean value.
+ Thanks to [@CoRfr], it is now possible to calculate the [standard deviation]
+ of a group of sensors. Cool!
+
+[@CoRfr]: https://github.com/CoRfr
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@surfingbytes]: https://github.com/surfingbytes
+[@Troon]: https://github.com/Troon
+[grouped]: /integrations/group
+[parallel]: /docs/scripts/#parallelizing-actions
+[Run sequence of actions]: /docs/scripts/#grouping-actions
+[standard deviation]: https://en.wikipedia.org/wiki/Standard_deviation
+
+### Disabling expiration of login tokens
+
+A few releases ago, we introduced the automatic expiration of logins. If a login
+session wasn't used for 90 days, it would expire and be automatically cleaned up.
+
+Some of you have expressed that you would like to disable this feature for
+various reasons. For example, because of a secondary holiday home one doesn’t
+regularly visit, or because of relatives who can only come over a few times
+a year. We added a new option to the user profile settings to disable
+the expiration of specific login tokens.
+
+
+
+You can find these token in your profile settings, under the **Security** tab.
+
+{% my profile badge %}
+
+### Tag entities!
+
+Home Assistant has had support for tags for a long time. The tags feature
+allowed NFC tags or QR codes to be used with Home Assistant, for example, to
+trigger {% term automations %}.
+
+However, tags were not real entities and, thus, not always as logical to use.
+With this release, [@gjohansson-ST] changed this!
+
+Tags are now normal {% term entities %} and can be used in {% term automations %},
+{% term scripts %}, {% term templates %}, and even be added to your
+your [dashboards](/dashboards)!
+
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+
+### Collapsible sections for blueprints!
+
+[@karwosts] makes an appearance again this release with another one of his QoL
+(Quality of Live) improvements. He added the ability to add collapsible sections
+to {% term blueprints %}. This allows blueprint creators to group configuration
+options together or hide advanced or less common options by default.
+
+
+
+ Each section can be collapsed or uncollapsed by clicking on the section header.
+
+
+Thanks [@karwosts]!
+
+Read more about blueprint input sections [in our documentation](/docs/blueprint/schema/#blueprint-input-sections).
+
+Looking for an interesting blueprint to get started? Check out the
+[Blueprints Exchange] on our community forum! There are great automation
+blueprints available.
+
+[@karwosts]: https://github.com/karwosts
+[Blueprints Exchange]: https://community.home-assistant.io/c/blueprints-exchange/53
+
+## Patch releases
+
+We will also release patch releases for Home Assistant 2024.6 in June. These
+patch releases only contain bug fixes. Our goal is to release a patch release
+every Friday.
+
+### 2024.6.1 - June 7
+
+- Update requests to 2.32.3 ([@cdce8p] - [#118868])
+- Prioritize literal text with name slots in sentence matching ([@synesthesiam] - [#118900])
+- Check if imap message text has a value instead of checking if its not None ([@engrbm87] - [#118901])
+- Fix flaky Google Assistant test ([@jpbede] - [#118914])
+- Revert "Bump orjson to 3.10.3 (#116945)" ([@bdraco] - [#118920])
+- Bump `imgw-pib` backend library to version `1.0.2` ([@bieniu] - [#118953])
+- Fix Alarm control panel not require code in several integrations ([@gjohansson-ST] - [#118961])
+- Bump python-holidays to 0.50 ([@gjohansson-ST] - [#118965])
+- Bump pydrawise to 2024.6.3 ([@dknowles2] - [#118977])
+- Bump `imgw-pib` library to version `1.0.4` ([@bieniu] - [#118978])
+- Fix unit of measurement for airgradient sensor ([@joostlek] - [#118981])
+- Fix exposure checks on some intents ([@synesthesiam] - [#118988])
+- Remove isal from after_dependencies in http ([@bdraco] - [#119000])
+- Hold connection lock in Shelly RPC reconnect ([@thecode] - [#119009])
+- Always have addon url in detached_addon_missing ([@mdegat01] - [#119011])
+- Increase test coverage for KNX Climate ([@farmio] - [#117903])
+- Fix KNX `climate.set_hvac_mode` not turning `on` ([@farmio] - [#119012])
+- Fix refactoring error in snmp switch ([@bdraco] - [#119028])
+- Fix remember_the_milk calling configurator async api from the wrong thread ([@bdraco] - [#119029])
+- Fix AirGradient name ([@joostlek] - [#119046])
+- Add type ignore comments ([@cdce8p] - [#119052])
+- Fix Azure Data Explorer strings ([@joostlek] - [#119067])
+
+[#117903]: https://github.com/home-assistant/core/pull/117903
+[#118400]: https://github.com/home-assistant/core/pull/118400
+[#118868]: https://github.com/home-assistant/core/pull/118868
+[#118900]: https://github.com/home-assistant/core/pull/118900
+[#118901]: https://github.com/home-assistant/core/pull/118901
+[#118914]: https://github.com/home-assistant/core/pull/118914
+[#118920]: https://github.com/home-assistant/core/pull/118920
+[#118953]: https://github.com/home-assistant/core/pull/118953
+[#118961]: https://github.com/home-assistant/core/pull/118961
+[#118965]: https://github.com/home-assistant/core/pull/118965
+[#118977]: https://github.com/home-assistant/core/pull/118977
+[#118978]: https://github.com/home-assistant/core/pull/118978
+[#118981]: https://github.com/home-assistant/core/pull/118981
+[#118988]: https://github.com/home-assistant/core/pull/118988
+[#119000]: https://github.com/home-assistant/core/pull/119000
+[#119009]: https://github.com/home-assistant/core/pull/119009
+[#119011]: https://github.com/home-assistant/core/pull/119011
+[#119012]: https://github.com/home-assistant/core/pull/119012
+[#119028]: https://github.com/home-assistant/core/pull/119028
+[#119029]: https://github.com/home-assistant/core/pull/119029
+[#119046]: https://github.com/home-assistant/core/pull/119046
+[#119052]: https://github.com/home-assistant/core/pull/119052
+[#119067]: https://github.com/home-assistant/core/pull/119067
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@cdce8p]: https://github.com/cdce8p
+[@dknowles2]: https://github.com/dknowles2
+[@engrbm87]: https://github.com/engrbm87
+[@farmio]: https://github.com/farmio
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@joostlek]: https://github.com/joostlek
+[@jpbede]: https://github.com/jpbede
+[@mdegat01]: https://github.com/mdegat01
+[@synesthesiam]: https://github.com/synesthesiam
+[@thecode]: https://github.com/thecode
+
+## Need help? Join the community!
+
+Home Assistant has a great community of users who are all more than willing
+to help each other out. So, join us!
+
+Our very active [Discord chat server](/join-chat) is an excellent place to be
+at, and don't forget to join our amazing [forums](https://community.home-assistant.io/).
+
+Found a bug or issue? Please report it in our [issue tracker](https://github.com/home-assistant/core/issues),
+to get it fixed! Or, check [our help page](/help) for guidance for more
+places you can go.
+
+Are you more into email? [Sign-up for our Building the Open Home Newsletter](/newsletter)
+to get the latest news about features, things happening in our community and
+other news about building an Open Home; straight into your inbox.
+
+## Backward-incompatible changes
+
+We do our best to avoid making changes to existing functionality that might
+unexpectedly impact your Home Assistant installation. Unfortunately, sometimes,
+it is inevitable.
+
+We always make sure to document these changes to make the transition as easy as
+possible for you. This release has the following backward-incompatible changes:
+
+{% details "Anova" %}
+
+The `State` and `Mode` entities for Anova devices have been changed to match the
+new protocol messaging. Any automations based on these entities will need to be
+updated.
+
+([@Lash-L] - [#109508]) ([documentation](/integrations/anova))
+
+[@Lash-L]: https://github.com/Lash-L
+[#109508]: https://github.com/home-assistant/core/pull/109508
+
+{% enddetails %}
+
+{% details "AVM FRITZ!Box Tools" %}
+
+The previously deprecated services `reboot`, `reconnect`, and `cleanup` have
+been removed. Please use the corresponding button entities instead.
+
+([@mib1185] - [#118108]) ([documentation](/integrations/fritz))
+
+[@mib1185]: https://github.com/mib1185
+[#118108]: https://github.com/home-assistant/core/pull/118108
+
+{% enddetails %}
+
+{% details "File" %}
+
+The notify services for the file integration now require that the file path
+is an allowed path. You should check the accessed file is in the
+[allowlist_external_dirs](/integrations/homeassistant/#allowlist_external_dirs)
+to ensure your automations keep working.
+
+([@jbouwh] - [#116861]) ([documentation](/integrations/file))
+
+[@jbouwh]: https://github.com/jbouwh
+[#116861]: https://github.com/home-assistant/core/pull/116861
+
+{% enddetails %}
+
+{% details "MQTT" %}
+
+MQTT Lock now supports the lock `open` and `opening` states. When a lock is used
+in `optimistic` mode, its state will become `open` instead of `unlocked` when
+it is opened.
+
+([@jbouwh] - [#117110]) ([documentation](/integrations/mqtt))
+
+[@jbouwh]: https://github.com/jbouwh
+[#117110]: https://github.com/home-assistant/core/pull/117110
+
+---
+
+The behavior on processing empty and `"None"` state payloads for MQTT entities
+has been made more predictable for `alarm_control_panel`, `climate`, `cover`,
+`device_tracker`, `lock`, `select`, `valve`, and `water_heater` items:
+
+- A "None" (string) for a state payload generally means the state
+ becomes `unknown`.
+- An empty payload is ignored.
+
+Previously, a "None" state could be considered invalid or ignored.
+
+([@jbouwh] - [#117813]) ([documentation](/integrations/mqtt))
+
+[@jbouwh]: https://github.com/jbouwh
+[#117813]: https://github.com/home-assistant/core/pull/117813
+
+{% enddetails %}
+
+{% details "OpenWeatherMap" %}
+
+Migration to the new library with support of OneCall API (3.0).
+
+OWM API v2.5 will be closed in June 2024. All OpenWeatherMap integrations must
+be migrated to mode (API) v3.0 to avoid service interruption.
+
+Before the migration, you must have an active subscription (be aware that
+subscription activation takes up to 2h). After the subscription is activated,
+users can migrate integrations to mode v3.0 via repair notification or manually
+via the integration configuration menu.
+
+The subscription has a free tier with 1000 calls/day. Consider setting the limit
+on the OpenWeatherMap website to stay under the threshold where API usage
+incurs a cost.
+
+[OpenWeatherMap official statement](https://openweathermap.org/one-call-transfer)
+
+([@freekode] - [#116870]) ([documentation](/integrations/openweathermap))
+
+[@freekode]: https://github.com/freekode
+[#116870]: https://github.com/home-assistant/core/pull/116870
+
+{% enddetails %}
+
+{% details "Synology DSM" %}
+
+The option to define a custom timeout has been removed. The timeout is set
+static to a sane value of 30 seconds.
+
+([@mib1185] - [#116815]) ([documentation](/integrations/synology_dsm))
+
+[@mib1185]: https://github.com/mib1185
+[#116815]: https://github.com/home-assistant/core/pull/116815
+
+{% enddetails %}
+
+{% details "Webmin" %}
+
+You may need to remove obsolete duplicated entities if this change affects you.
+
+([@autinerd] - [#113084]) ([documentation](/integrations/webmin))
+
+[@autinerd]: https://github.com/autinerd
+[#113084]: https://github.com/home-assistant/core/pull/113084
+
+{% enddetails %}
+
+{% details "World Air Quality Index (WAQI)" %}
+
+The state attributes of the WAQI air quality sensor have been removed.
+The attributes have been replaced by individual sensors; use these instead.
+
+([@joostlek] - [#116595]) ([documentation](/integrations/waqi))
+
+[@joostlek]: https://github.com/joostlek
+[#116595]: https://github.com/home-assistant/core/pull/116595
+
+{% enddetails %}
+
+{% details "Z-Wave" %}
+
+With this release, you will need to update your `zwave-js-server` instance.
+
+You must use `zwave-js-server` 1.35.0 or greater (schema 35).
+- If you use the Z-Wave JS add-on, you need at least version 0.5.0.
+- If you use the Z-Wave JS UI add-on, you need at least version [3.4.2](https://github.com/hassio-addons/addon-zwave-js-ui/releases/tag/v3.4.2).
+- If you use the Z-Wave JS UI Docker container, you need at least version [9.10.0](https://github.com/zwave-js/zwave-js-ui/releases/tag/v9.10.0).
+- If you run your own Docker container or some other installation method, you will need to update your zwave-js-server instance to at least 1.35.0.
+
+([@raman325] - [#117288]) ([documentation](/integrations/zwave_js))
+
+[@raman325]: https://github.com/raman325
+[#117288]: https://github.com/home-assistant/core/pull/117288
+
+{% enddetails %}
+
+If you are a custom integration developer and want to learn about changes and
+new features available for your integration: Be sure to follow our
+[developer blog][devblog]. The following are the most notable for this release:
+
+- [Alarm Control Panel Entity code validation](https://developers.home-assistant.io/blog/2024/05/22/alarm_control_panel_validation/)
+- [Changes in setup entity platforms with group integration](https://developers.home-assistant.io/blog/2024/05/10/group-integration)
+- [Exposing Home Assistant API to LLMs](https://developers.home-assistant.io/blog/2024/05/20/llm-api)
+- [Handling time zones without blocking the event loop](https://developers.home-assistant.io/blog/2024/05/19/fix_zoneinfo_blocking_io)
+- [How we managed to speed up our CI to save 168+ days of execution time per month](https://developers.home-assistant.io/blog/2024/05/09/improving-ci-test-execution)
+- [Improved typing for hass.data](https://developers.home-assistant.io/blog/2024/05/01/improved-hass-data-typing)
+- [LockEntity supports open/opening state](https://developers.home-assistant.io/blog/2024/05/10/lock-supports-open-state)
+- [Second phase of notify entity platform implementation](https://developers.home-assistant.io/blog/2024/05/03/notify-title)
+
+[devblog]: https://developers.home-assistant.io/blog/
+
+## All changes
+
+Of course, there is a lot more in this release. You can find a list of
+all changes made here: [Full changelog for Home Assistant Core 2024.6](/changelogs/core-2024.6)
diff --git a/source/_posts/2024-06-07-ai-agents-for-the-smart-home.markdown b/source/_posts/2024-06-07-ai-agents-for-the-smart-home.markdown
new file mode 100644
index 00000000000..daaa4419e1d
--- /dev/null
+++ b/source/_posts/2024-06-07-ai-agents-for-the-smart-home.markdown
@@ -0,0 +1,189 @@
+---
+layout: post
+title: "AI agents for the smart home"
+description: "AI is all the hype and everyone is adding it to everything. We did our research and decided to focus on enabling experimentation."
+date: 2024-06-07 00:00:01
+date_formatted: "June 07, 2024"
+author: Paulus Schoutsen
+comments: true
+categories: Assist
+og_image: /images/blog/2024-06-ai-agents-for-the-smart-home/art.jpg
+---
+
+
+Back in the day, the saying was _computers don't lie_. They were deterministic, zeros and ones executing the rules we gave them. With AI, this is the opposite. AI models hallucinate and their output cannot be completely trusted -- yet the current hype is to infuse AI into every product imaginable. Home Assistant doesn't jump on the latest hype, instead we focus on building a lasting and sustainable smart home. We do have thoughts on the subject, so let's talk about AI in the smart home.
+
+Home Assistant is uniquely positioned to be the smart home platform for AI. As part of [our Open Home values](https://www.openhomefoundation.org/), we believe users own their own data (a novel concept, we know) and that they can choose what happens with it. That's why Home Assistant stores all user data locally, including rich history, and it offers powerful APIs for anyone to build anything on top -- no constraints. Empowering our users with real control of their homes [is part of our DNA](/blog/2016/01/19/perfect-home-automation/#limit-the-impact-of-false-positives-and-negatives), and helps reduce the impact of false positives caused by hallucinations. All this makes Home Assistant the perfect foundation for anyone looking to build powerful AI-powered solutions for the smart home - something that is not possible with any of the other big platforms.
+
+As we have researched AI ([more about that below](#the-foundation-for-ai-experimentation-in-the-smart-home)), we concluded that there are currently no AI-powered solutions _yet_ that are worth it. Would you want a summary of your home at the top of your dashboard if it could be wrong, cost you money, or even [harm the planet](https://www.theguardian.com/commentisfree/article/2024/may/30/ugly-truth-ai-chatgpt-guzzling-resources-environment)?
+
+Instead, we are focussing our efforts on allowing anyone to play with AI in Home Assistant by making it easier to integrate it into existing workflows and run the models locally. To experiment with AI today, the latest release of Home Assistant allows you to connect and control devices with OpenAI or Google AI. For the local AI solutions of the future, we are working with NVIDIA, who have made amazing progress already. This will unleash the power of our community, our collective intelligence, to come up with creative use cases.
+
+Read more about our approach, how you can use AI today, and what the future holds. Or jump straight in and add [Google AI](/integrations/google_generative_ai_conversation/), [OpenAI](/integrations/openai_conversation/) to your Home Assistant installation (or [Ollama](/integrations/ollama) for local AI without the ability to control HA yet).
+
+_Huge thanks for contributing: [@shulyaka](https://github.com/Shulyaka), [@tronikos](https://github.com/tronikos), [@allenporter](https://github.com/allenporter), [@synesthesiam](https://github.com/synesthesiam), [@jlpouffier](https://github.com/jlpouffier) and [@balloob](https://github.com/balloob)._
+
+
+
+## The foundation for AI experimentation in the smart home
+
+We want it to be easy to use LLMs together with Home Assistant. Until now, Home Assistant has allowed you to configure [AI agents](#ai-agents) powered by LLMs that you could talk with, but the LLM could not control Home Assistant. That changed this week with the release of [Home Assistant 2024.6](/blog/2024/06/05/release-20246/), which empowered AI agents from Google Gemini and OpenAI ChatGPT to interact with your home. You can use this in Assist ([our voice assistant](/voice_control/)) or interact with agents in scripts and automations to make decisions or annotate data.
+
+Using agents in Assist allows you to tell Home Assistant what to do, without having to worry if that exact command sentence is understood. Even combining commands and referencing previous commands will work!
+
+And because this is _just_ Assist, it works on [Android](/blog/2023/07/20/year-of-the-voice-chapter-3/), [iOS](/blog/2024/05/22/companion-app-for-ios-20245-assist/#assist-on-ios), [classic landline phones](/voice_control/worlds-most-private-voice-assistant/), and [$13 voice satellites](/voice_control/thirteen-usd-voice-remote/) 😁
+
+
LLMs allow Assist to understand a wider variety of commands.
+
+The architecture that allows LLMs to control Home Assistant is, as one expects from us, fully customizable. The default API is based on Assist, focuses on voice control, and can be extended using intents [defined in YAML](/integrations/intent_script/) or [written in Python](https://developers.home-assistant.io/docs/intent_handling) ([examples below](#defining-the-api-for-llms)).
+
+The current API that we offer is just one approach, and depending on the LLM model used, it might not be the best one. That's why it is architected to allow custom integrations to [provide their own LLM APIs](https://developers.home-assistant.io/docs/core/llm/). This allows experimentation with different types of tasks, like creating automations. All LLM integrations in Home Assistant can be configured using any registered custom APIs.
+
+
The options screen for an AI agent allows you to pick the Home Assistant API that it has access to.
+
+The options screen for an AI agent allows you to pick the Home Assistant API that it has access to.
+
+## Cloud versus local
+
+Home Assistant currently offers two cloud LLM providers with various model options: Google and OpenAI. Both integrations ship with a recommended model that balances price, accuracy, and speed. Our recommended model for OpenAI is better at non-home related questions but Google's model is 14x cheaper, yet has similar voice assistant performance.
+
+We see the best results with cloud-based LLMs, as they are currently more powerful and easier to run compared to open source options. But local and open source LLMs are improving at a staggering rate. This is important because local AI is better for your privacy and, in the long term, your wallet. Local models also tend to be a lot smaller, which means a lot less electricity is used to run them.
+
+To improve local AI options for Home Assistant, we have been collaborating with NVIDIA's [Jetson AI Lab Research Group](https://www.jetson-ai-lab.com/research.html), and there has been tremendous progress. They have published text-to-speech and speech-to-text engines with [support for our Wyoming Protocol](https://github.com/dusty-nv/jetson-containers/tree/78159ca37d3195afdade81688e22a34cd7a89dbc/packages/smart-home/wyoming), added [support for Ollama to their Jetson platform](https://github.com/dusty-nv/jetson-containers/tree/dev/packages/llm/ollama) and just last week showed their progress on making a local Llama 3 model control Home Assistant:
+
+
+The first 5 minutes, Dustin shows his prototype of controlling Home Assistant using a local LLM.
+
+## What is AI?
+
+The current wave of AI hype evolves around large language models (LLMs), which are created by ingesting huge amounts of data. When you run these models, you give it text and it will predict the next words. If you give it a question as input, the generated next words will be the answer. To make it a bit smarter, AI companies will layer API access to other services on top, allowing the LLM to do mathematics or integrate web searches.
+
+One of the biggest benefits of large language models is that because it is trained on human language, you control it with human language. Want it to answer in the style of Super Mario? Just add "Answer like Super Mario" to your input text and it will work.
+
+There is a big downside to LLMs: because it works by predicting the next word, that prediction can be wrong and it will "hallucinate". Because it doesn't know any better, it will present its hallucination as the truth and it is up to the user to determine if that is correct. Until this problem is solved, any solution that we create needs to deal with this.
+
+Another downside is that depending on the AI model and where it runs, it can be very slow to generate an answer. This means that using an LLM to generate voice responses is currently either expensive or terribly slow. We cannot expect a user to wait 8 seconds for the light to be turned on when using their voice.
+
+## AI Agents
+
+Last January, the most upvoted article on HackerNews was about controlling Home Assistant using an LLM. [I commented on the story](https://news.ycombinator.com/item?id=38985152) to share our excitement for LLMs and the things we plan to do with it. In response to that comment, Nigel Nelson and Sean Huver, two ML engineers from the NVIDIA Holoscan team, reached out to share some of their experience to help Home Assistant. It evolved around AI agents.
+
+AI agents are programs that run independently. Users or other programs can interact with them to ask them to describe an image, answer a question, or control your home. In this case, the agents are powered by LLM models, and the way the agent responds is steered by instructions in natural language (English!).
+
+Nigel and Sean had experimented with AI being responsible for multiple tasks. Their tests showed that giving a single agent complicated instructions so it could handle multiple tasks confused the AI model. One didn't cut it, you need multiple AI agents responsible for one task each to do things right. If an incoming query can be handled by multiple agents, a selector agent approach ensures the query is sent to the right agent.
+
+
High level overview of the described agent framework.
+
+The NVIDIA engineers, as one expects from a company selling GPUs to run AI, were all about running LLMs locally. But they had a point: running LLMs locally removes the constraint on what one can do with LLMs. You start to consider different approaches if you don't have to be concerned about raking up a cloud bill in the thousands of dollars.
+
+For example, imagine we passed every state change in your house to an LLM. If the front door opens at night while everyone is home, is that suspicious? Creating a rule-based system for this is hard to get right for everyone, but an LLM might just do the trick.
+
+It was this conversation that led us to our current approach: In Home Assistant we want AI agents. Many AI agents.
+
+## Defining AI Agents
+
+As part of last year's [Year of the Voice](/blog/2022/12/20/year-of-voice/), we developed a conversation integration that allowed users to chat and talk with Home Assistant via conversation agents. Next to Home Assistant's conversation engine, which uses string matching, users could also pick LLM providers to talk to. These were our first AI agents.
+
+Set up [Google Generative AI](/integrations/google_generative_ai_conversation/), [OpenAI](/integrations/openai_conversation/), or [Ollama](/integrations/ollama/) and you end up with an AI agent represented as a conversation entity in Home Assistant. For each agent, the user is able to configure the LLM model and the instructions prompt. The prompt can be set to a template that is rendered on the fly, allowing users to share realtime information about their house with the LLM.
+
+The conversation entities can be included in an Assist Pipeline, our voice assistants. Or you can directly interact with them via services inside your automations and scripts.
+
+
+
+As a user, you are in control when your agents are invoked. This is possible by leveraging the beating heart of Home Assistant: the automation engine. You can write an automation, listen for a specific trigger, and then feed that information to the AI agent.
+
+The following example is based on an automation [originally shared by /u/Detz on the Home Assistant subreddit](https://www.reddit.com/r/homeautomation/comments/1at0re0/out_of_my_42_automations_this_is_my_best_one_by/). Every time the song changes on their media player, it will check if the band is a country band and if so, skip the song. The impact of hallucinations here is low, the user might end up listening to a country song or a non-country song is skipped.
+
+{% raw %}
+```python
+trigger:
+ - platform: state
+ entity_id: media_player.sonos_roam
+condition: '{{ trigger.to_state.state == "playing" }}'
+action:
+ - service: conversation.process
+ data:
+ agent_id: conversation.openai_mario_en
+ text: >-
+ You are passed the state of a media player and have to answer "yes" if
+ the song is country:
+ {{ trigger.to_state }}
+ response_variable: response
+ - if:
+ - condition: template
+ value_template: '{{ response.response.speech.plain.speech.lower().startswith("yes") }}'
+ then:
+ - service: media_player.media_next_track
+ target:
+ entity_id: '{{ trigger.entity_id }}'
+```
+{% endraw %}
+
+We've turned this automation into a blueprint that you can try yourself. It allows you to configure the criteria on when to skip the song.
+
+{% my blueprint_import badge blueprint_url="https://community.home-assistant.io/t/automatically-skip-songs-that-match-criteria/736522" description="View Blueprint" %}
+
+## Researching AI
+
+One of the weird things about LLMs is that it's opaque how they exactly work and their usefulness can differ greatly per task. Even the creators of the models need to run tests to understand what their new models are capable of. Given that our tasks are quite unique, we had to create our own reproducible benchmark to compare LLMs.
+
+To make this possible, Allen Porter created a [set of evaluation tools](https://github.com/allenporter/home-assistant-datasets?tab=readme-ov-file#home-assistant-datasets) including a new integration called ["Synthetic home"](https://github.com/allenporter/home-assistant-synthetic-home/tree/main). This integration allows us to launch a Home Assistant instance based on a definition in a YAML file. The file specifies the areas, the devices (including manufacturer/model) and their state. This allows us to test each LLM against the exact same Home Assistant state.
+
+
Results comparing a set of difficult sentences to control Home Assistant between Home Assistant's sentence matching, Google Gemini 1.5 Flash and OpenAI GPT-4o.
+
+We've used these tools extensively to fine tune the prompt and API that we give to LLMs to control Home Assistant. The reproducibility of these studies allows us to change something and repeat the test to see if we can generate better results. We are able to use this to test different prompts, different AI models and any other aspect.
+
+## Defining the API for LLMs
+
+Home Assistant has different API interfaces. We have the Home Assistant Python object, a WebSocket API, a REST API, and intents. We decided to base our LLM API on the intent system because it is our smallest API. Intents are used by our sentence-matching voice assistant and are limited to controlling devices and querying information. They don't bother with creating automations, managing devices, or other administrative tasks.
+
+Leveraging intents also meant that we already have a place in the UI where you can configure what entities are accessible, a test suite in many languages matching sentences to intent, and a baseline of what the LLM should be able to achieve with the API.
+
+
+
+Home Assistant already has different ways for you to define your own intents, allowing you to extend the Assist API to which LLMs have access. The first one is the [intent script integration](/integrations/intent_script/). Using YAML, users can define a script to run when the intent is invoked and use a template to define the response.
+
+{% raw %}
+```python
+intent_script:
+ EventCountToday:
+ action:
+ - service: calendar.get_events
+ target:
+ entity_id: calendar.my_calendar
+ data_template:
+ start_date_time: "{{ today_at('00:00') }}"
+ duration: { "hours": 24 }
+ response_variable: result
+ - stop: ""
+ response_variable: result
+ speech:
+ text: "{{ action_response['calendar.my_calendar'].events | length }} events"
+```
+{% endraw %}
+
+We haven't forgotten about custom components either. They can [register their own intents](https://developers.home-assistant.io/docs/intent_handling) or, even better, define their own API.
+
+### Custom integrations providing their own LLM APIs
+
+The built-in LLM API is focused on simplicity and being good at the things that it does. The larger the API surface, the easier AI models, especially the smaller ones, can get confused and invoke them incorrectly.
+
+Instead of one large API, we are aiming for many focused APIs. To ensure a higher success rate, an AI agent will only have access to one API at a time. Figuring out the best API for creating automations, querying the history, and maybe even creating dashboards will require experimentation. When all those APIs are in place, we can start playing with a selector agent that routes incoming requests to the right agent and API.
+
+To find out what APIs work best is a task we need to do as a community. That's why we have designed our API system in a way that [any custom component can provide them](https://developers.home-assistant.io/docs/core/llm/). When configuring an LLM that supports control of Home Assistant, users can pick any of the available APIs.
+
+Custom LLM APIs are written in Python. When a user talks to an LLM, the API is asked to give a collection of tools for the LLM to access, and a partial prompt that will be appended to the user prompt. The partial prompt can provide extra instructions for the LLM on when and how to use the tools.
+
+## Future research
+
+One thing we can do to improve AI in Home Assistant is wait. LLMs, both local and remotely accessible ones, are improving rapidly and new ones are released regularly (fun fact, I started writing this post before GPT4o and Gemini 1.5 were announced). Wait a couple of months and the new Llama, Gemini, or GPT release might unlock many new possibilities.
+
+We'll continue to collaborate with NVIDIA to enable more local AI functionalities. High on our list is making local LLM with function calling easily accessible to all Home Assistant users.
+
+There is also room for us to improve the local models we use. We want to explore fine-tuning a model for specific tasks like voice commands or area summarization. This would allow us to get away with much smaller models with better performance and reliability. And the best thing about our community? [People are already working on this](https://github.com/acon96/home-llm).
+
+We also want to see if we can use RAG to allow users to teach LLMs about personal items or people that they care about. Wouldn't it be great if Home Assistant could help you find your glasses?
+
+## Join us
+
+We hope that you're going to give our new AI tools a try and join us on [the forums](https://community.home-assistant.io/c/configuration/voice-assistant/49) and in the #voice-assistants channel on [our Discord server](/join-chat/). If you find something cool, share it with the community and let's find that killer use case!
diff --git a/source/_redirects b/source/_redirects
index ae670d9f082..5b30a5a2b51 100644
--- a/source/_redirects
+++ b/source/_redirects
@@ -9,7 +9,7 @@ layout: null
# General use redirects
/join-chat https://discord.gg/home-assistant
/twitter https://twitter.com/home_assistant/
-/newsletter https://building.open-home.io/
+/newsletter https://newsletter.openhomefoundation.org/
/suggest-community-highlight https://docs.google.com/forms/d/e/1FAIpQLSd9VWPeVM0xg0swWL6kT3wkQUKt8vWsTL5WtPO95LAy-0cYZw/viewform
/get-blueprints https://community.home-assistant.io/c/blueprints-exchange/53
/merch https://home-assistant-store.creator-spring.com
@@ -34,6 +34,9 @@ layout: null
/yellow https://yellow.home-assistant.io
/blog/2021/09/13/home-assistant-amber/ /blog/2021/09/13/home-assistant-yellow/
+# User research
+/join-research https://forms.clickup.com/2533032/f/2d9n8-12931/52N1KK00E9BXEW71TN
+
# Older development pages
/developers https://developers.home-assistant.io
/developers/add_new_platform https://developers.home-assistant.io/docs/creating_platform_index/
@@ -205,7 +208,6 @@ layout: null
/components/image_processing.* /integrations/:splat
/components/light.* /integrations/:splat
/components/lock.* /integrations/:splat
-/components/mailbox.* /integrations/:splat
/components/media_player.* /integrations/:splat
/components/notify.* /integrations/:splat
/components/remote.* /integrations/:splat
@@ -254,6 +256,7 @@ layout: null
# Redirect for the QR Codes on the S3 Box
/s3-box-no-wifi /voice_control/troubleshooting_the_s3_box/#error-unable-to-connect-to-wi-fi
/s3-box-no-ha /voice_control/troubleshooting_the_s3_box/#error-no-home-assistant
+
/docs/assist/troubleshooting/ /voice_control/troubleshooting/
/docs/assist/worlds-most-private-voice-assistant/ /voice_control/worlds-most-private-voice-assistant/
/projects/worlds-most-private-voice-assistant/ /voice_control/worlds-most-private-voice-assistant/
@@ -261,6 +264,11 @@ layout: null
/draw_assist /voice_control/s3-box-customize/#to-draw-your-own-images
/projects/thirteen-usd-voice-remote/ /voice_control/thirteen-usd-voice-remote/
/docs/backend/updater /integrations/analytics
+/docs/configuration/basic/#allowlist_external_urls /integrations/homeassistant/#allowlist_external_urls
+/docs/configuration/basic/#allowlist_external_dirs /integrations/homeassistant/#allowlist_external_dirs
+/docs/configuration/basic/#external_urls /integrations/homeassistant/#external_urls
+/docs/configuration/customizing-devices/#device-class /integrations/homeassistant/#device-class
+/docs/configuration/customizing-devices/#customizing-entities /integrations/homeassistant/#editing-the-entity-settings-in-yaml
/docs/ecosystem/ios/ https://companion.home-assistant.io/
/docs/ecosystem/ios/devices_file https://companion.home-assistant.io/
/docs/ecosystem/ios/integration https://companion.home-assistant.io/docs/integrations/integrations
@@ -327,7 +335,6 @@ layout: null
/getting-started/automation-trigger /docs/automation/trigger
/getting-started/automation-templating /docs/automation/templating
/getting-started/basic /docs/configuration/basic
-/getting-started/browsers /docs/frontend/browsers
/getting-started/customizing-devices /docs/configuration/customizing-devices
/getting-started/installation /docs/installation
/getting-started/installation-docker /docs/installation/docker
@@ -355,6 +362,8 @@ layout: null
/topics/state_object /docs/configuration/state_object
/topics/templating /docs/configuration/templating
/common-tasks /common-tasks/os
+/common-tasks/os/#flashing-an-odroid-m1s /installation/odroid#flashing-an-odroid-m1s
+/common-tasks/os/#flashing-an-odroid-n2 /installation/odroid#flashing-an-odroid-n2
/docs/installation /installation
/docs/installation/docker /installation
/docs/installation/raspberry-pi /installation
@@ -465,19 +474,24 @@ layout: null
/docs/tools/credstash/ /docs/configuration/secrets
/docs/scripts/editor/ /docs/scripts
/getting-started/devices /integrations
+/integrations/map /dashboards/map/
# Blog
/blog/2019/05/29/release-94 /blog/2019/06/05/release-94
/state-of-the-union /blog/2019/11/22/state-of-the-union
/blog/2022/03/30/release-20224 /blog/2022/04/06/release-20224/
+/blog/2024/01/11/voice-assistant-contest /blog/2024/01/17/voice-assistant-contest
# Removed integrations
/integrations/alarmdotcom /more-info/removed-integration 301
/integrations/almond /more-info/removed-integration 301
/integrations/ambee /more-info/removed-integration 301
+/integrations/ambiclimate /more-info/removed-integration 301
/integrations/apns /more-info/removed-integration 301
/integrations/arlo /more-info/removed-integration 301
/integrations/arduino /more-info/removed-integration 301
+/integrations/asterisk_cdr /more-info/removed-integration 301
+/integrations/asterisk_mbox /more-info/removed-integration 301
/integrations/bbb_gpio /more-info/removed-integration 301
/integrations/bh1750 /more-info/removed-integration 301
/integrations/binary_sensor.mychevy /more-info/removed-integration 301
@@ -486,6 +500,7 @@ layout: null
/integrations/bme680 /more-info/removed-integration 301
/integrations/bmp280 /more-info/removed-integration 301
/integrations/bom /more-info/removed-integration 301
+/integrations/circuit /more-info/removed-integration 301
/integrations/ciscospark /more-info/removed-integration 301
/integrations/coinmarketcap /more-info/removed-integration 301
/integrations/coronavirus /more-info/removed-integration 301
@@ -502,8 +517,9 @@ layout: null
/integrations/ee_brightbox /more-info/removed-integration 301
/integrations/eight_sleep /more-info/removed-integration 301
/integrations/envirophat /more-info/removed-integration 301
-/integrations/eq3btsmart /more-info/removed-integration 301
+/integrations/epsonworkforce /more-info/removed-integration 301
/integrations/essent /more-info/removed-integration 301
+/integrations/facebox /more-info/removed-integration 301
/integrations/fedex /more-info/removed-integration 301
/integrations/flunearyou /more-info/removed-integration 301
/integrations/fortigate /more-info/removed-integration 301
@@ -522,15 +538,18 @@ layout: null
/integrations/hydroquebec /more-info/removed-integration 301
/integrations/ialarm_xr /more-info/removed-integration 301
/integrations/iota /more-info/removed-integration 301
+/integrations/life360 /more-info/removed-integration 301
/integrations/lifx_legacy /more-info/removed-integration 301
/integrations/linksys_ap /more-info/removed-integration 301
/integrations/linky /more-info/removed-integration 301
/integrations/liveboxplaytv /more-info/removed-integration 301
/integrations/lockitron /more-info/removed-integration 301
+/integrations/logi_circle /more-info/removed-integration 301
/integrations/loop_energy /more-info/removed-integration 301
/integrations/loopenergy /more-info/removed-integration 301
/integrations/lyft /more-info/removed-integration 301
/integrations/magicseaweed /more-info/removed-integration 301
+/integrations/mailbox /more-info/removed-integration 301
/integrations/mazda /more-info/removed-integration 301
/integrations/mcp23017 /more-info/removed-integration 301
/integrations/mhz19 /more-info/removed-integration 301
@@ -546,8 +565,10 @@ layout: null
/integrations/nuimo_controller /more-info/removed-integration 301
/integrations/openalpr /more-info/removed-integration 301
/integrations/openalpr_local /more-info/removed-integration 301
+/integrations/opencv /more-info/removed-integration 301
/integrations/orangepi_gpio /more-info/removed-integration 301
/integrations/ozw /more-info/removed-integration 301
+/integrations/panel_iframe /more-info/removed-integration 301
/integrations/pcal9535a /more-info/removed-integration 301
/integrations/pi4ioe5v9xxxx /more-info/removed-integration 301
/integrations/piglow /more-info/removed-integration 301
diff --git a/source/blueprints/integrations/traccar_server_device_enter_geofence.yaml b/source/blueprints/integrations/traccar_server_device_enter_geofence.yaml
new file mode 100644
index 00000000000..d35494b1335
--- /dev/null
+++ b/source/blueprints/integrations/traccar_server_device_enter_geofence.yaml
@@ -0,0 +1,52 @@
+blueprint:
+ name: Do something when a device enters a geofence
+ description: |
+ Requirements:
+ - The Traccar Server integration
+ - At least one device in Traccar that is tracked by that integration
+ - Configured geofences in Traccar
+ domain: automation
+ author: ludeeus
+ homeassistant:
+ min_version: 2024.5.0
+ input:
+ devices:
+ name: Device geofences
+ description: The Traccar sensor that holds the geofence you want to act upon
+ selector:
+ entity:
+ multiple: true
+ filter:
+ integration: "traccar_server"
+ domain: "sensor"
+ geofence:
+ name: Geofence
+ description: The name of the geofence
+ selector:
+ text:
+
+ conditions:
+ name: Conditions
+ description: |
+ Extra conditions you may want to add to this automation
+ (Example: Home occupied, TV on, etc)
+ default: []
+ selector:
+ condition:
+
+ actions:
+ name: Actions
+ description: |
+ What you want to do when a device enters the defined geofence
+ (Example: Notification, turn on lights etc.)
+ default: []
+ selector:
+ action:
+
+trigger:
+ - platform: state
+ entity_id: !input devices
+ to: !input geofence
+condition: !input conditions
+action: !input actions
+mode: queued
diff --git a/source/blueprints/integrations/traccar_server_device_speed_limit.yaml b/source/blueprints/integrations/traccar_server_device_speed_limit.yaml
new file mode 100644
index 00000000000..6159e66ee1f
--- /dev/null
+++ b/source/blueprints/integrations/traccar_server_device_speed_limit.yaml
@@ -0,0 +1,51 @@
+blueprint:
+ name: Do something when a device are speeding
+ description: |
+ Requirements:
+ - The Traccar Server integration
+ - At least one device in Traccar that is tracked by that integration
+ domain: automation
+ author: ludeeus
+ homeassistant:
+ min_version: 2024.5.0
+ input:
+ devices:
+ name: Devices
+ description: The Traccar sensor that holds the speed you want to act upon
+ selector:
+ entity:
+ multiple: true
+ filter:
+ integration: "traccar_server"
+ domain: "sensor"
+ speed:
+ name: Geofence
+ description: The speed limit
+ selector:
+ number:
+
+ conditions:
+ name: Conditions
+ description: |
+ Extra conditions you may want to add to this automation
+ (Example: Home occupied, TV on, etc)
+ default: []
+ selector:
+ condition:
+
+ actions:
+ name: Actions
+ description: |
+ What you want to do when a device enters the defined geofence
+ (Example: Notification, turn on lights etc.)
+ default: []
+ selector:
+ action:
+
+trigger:
+ - platform: numeric_state
+ entity_id: !input devices
+ above: !input speed
+condition: !input conditions
+action: !input actions
+mode: queued
diff --git a/source/changelogs/core-2024.1.markdown b/source/changelogs/core-2024.1.markdown
index 251334b8d05..5372553cfa9 100644
--- a/source/changelogs/core-2024.1.markdown
+++ b/source/changelogs/core-2024.1.markdown
@@ -827,6 +827,299 @@ For a summary in a more readable format:
[@thecode]: https://github.com/thecode
[@timmo001]: https://github.com/timmo001
+## Release 2024.1.3 - January 12
+
+- Add diagnostics to A. O. Smith integration ([@bdr99] - [#106343])
+- Catch missing inverter in Enphase Envoy ([@catsmanac] - [#106730])
+- Prevent toggle from calling stop on covers which do not support it ([@vexofp] - [#106848])
+- Fix missing unique_id for spt integration ([@miaucl] - [#107087])
+- Add support for the Spotify DJ ([@BTMorton] - [#107268])
+- Fix evohome high_precision temps not retreived consistently ([@zxdavb] - [#107366])
+- Reduce polling rate in Blink ([@mkmer] - [#107386])
+- Fix KNX telegram device trigger not firing after integration reload ([@farmio] - [#107388])
+- Fix language flavors in holiday ([@gjohansson-ST] - [#107392])
+- Handle OSError during setup for System Monitor ([@gjohansson-ST] - [#107396])
+- Remove name from faa_delays ([@joostlek] - [#107418])
+- Fix Swiss public transport initial data for attributes ([@miaucl] - [#107452])
+- Fix reauth flow for Comelit VEDO ([@chemelli74] - [#107461])
+- Fix asyncio.gather call ([@cdce8p] - [#107500])
+- Fix Luftdaten sensor id string ([@mrueg] - [#107506])
+- Bump zm-py version to v0.5.3 for zoneminder ([@nabbi] - [#107331])
+- Retry zoneminder connection setup ([@nabbi] - [#107519])
+- Don't include position in binary valve attributes ([@emontnemery] - [#107531])
+- Bump blinkpy to 0.22.5 ([@mkmer] - [#107537])
+- Bump reolink_aio to 0.8.6 ([@starkillerOG] - [#107541])
+- Bump mcstatus to v11.1.1 ([@elmurato] - [#107546])
+- Bump aioshelly to 7.1.0 ([@thecode] - [#107593])
+- Fix Tado unique mobile device dispatcher ([@erwindouna] - [#107631])
+- Fix tplink_lte setup ([@cdce8p] - [#107642])
+- Prevent overriding cached attribute as property ([@emontnemery] - [#107657])
+- Set max and min temp for flexit_bacnet climate entity ([@lellky] - [#107665])
+- Fix duplicated resource issue in System Monitor ([@gjohansson-ST] - [#107671])
+- Fix invalid alexa climate or water_heater state report with double listed targetSetpoint ([@jbouwh] - [#107673])
+- Redact sensitive data in alexa debug logging ([@jbouwh] - [#107676])
+- Fix `device_class` type for Shelly Gen1 sleeping sensors ([@bieniu] - [#107683])
+- Clamp tplink color temp to valid range ([@bdraco] - [#107695])
+- Fix cloud tts loading ([@MartinHjelmare] - [#107714])
+- Allow configuration of min_gradient from UI to be negative in Trend ([@jpbede] - [#107720])
+- Bump aioswitcher to 3.4.1 ([@YogevBokobza] - [#107730])
+- Fix mqtt text text min max config params can not be equal ([@jbouwh] - [#107738])
+- Fix "not-logged" edge cases for Comelit VEDO ([@chemelli74] - [#107741])
+- Fix Mac address check in kef integration ([@eugenet8k] - [#107746])
+- Fix ld2410_ble not being able to setup because it has a stale connection ([@bdraco] - [#107754])
+- Bump pyunifiprotect to 4.23.1 ([@AngellusMortis] - [#107758])
+- Bump pyunifiprotect to 4.23.2 ([@AngellusMortis] - [#107769])
+- Rework events for UniFi Protect ([@AngellusMortis] - [#107771])
+- Fix switcher kis logging incorrect property for device's name ([@idofl] - [#107775])
+- Bump bluetooth deps ([@bdraco] - [#107816])
+- Fix Tailwind cover stuck in closing state ([@frenck] - [#107827])
+- Fix for exception in screenlogic.set_color_mode ([@dieselrabbit] - [#107850])
+- Bump aio_geojson_generic_client to 0.4 ([@exxamalte] - [#107866])
+
+[#106343]: https://github.com/home-assistant/core/pull/106343
+[#106730]: https://github.com/home-assistant/core/pull/106730
+[#106848]: https://github.com/home-assistant/core/pull/106848
+[#106970]: https://github.com/home-assistant/core/pull/106970
+[#107087]: https://github.com/home-assistant/core/pull/107087
+[#107239]: https://github.com/home-assistant/core/pull/107239
+[#107268]: https://github.com/home-assistant/core/pull/107268
+[#107331]: https://github.com/home-assistant/core/pull/107331
+[#107365]: https://github.com/home-assistant/core/pull/107365
+[#107366]: https://github.com/home-assistant/core/pull/107366
+[#107386]: https://github.com/home-assistant/core/pull/107386
+[#107388]: https://github.com/home-assistant/core/pull/107388
+[#107392]: https://github.com/home-assistant/core/pull/107392
+[#107396]: https://github.com/home-assistant/core/pull/107396
+[#107418]: https://github.com/home-assistant/core/pull/107418
+[#107452]: https://github.com/home-assistant/core/pull/107452
+[#107461]: https://github.com/home-assistant/core/pull/107461
+[#107500]: https://github.com/home-assistant/core/pull/107500
+[#107506]: https://github.com/home-assistant/core/pull/107506
+[#107519]: https://github.com/home-assistant/core/pull/107519
+[#107531]: https://github.com/home-assistant/core/pull/107531
+[#107537]: https://github.com/home-assistant/core/pull/107537
+[#107541]: https://github.com/home-assistant/core/pull/107541
+[#107546]: https://github.com/home-assistant/core/pull/107546
+[#107593]: https://github.com/home-assistant/core/pull/107593
+[#107631]: https://github.com/home-assistant/core/pull/107631
+[#107642]: https://github.com/home-assistant/core/pull/107642
+[#107657]: https://github.com/home-assistant/core/pull/107657
+[#107665]: https://github.com/home-assistant/core/pull/107665
+[#107671]: https://github.com/home-assistant/core/pull/107671
+[#107673]: https://github.com/home-assistant/core/pull/107673
+[#107676]: https://github.com/home-assistant/core/pull/107676
+[#107683]: https://github.com/home-assistant/core/pull/107683
+[#107695]: https://github.com/home-assistant/core/pull/107695
+[#107714]: https://github.com/home-assistant/core/pull/107714
+[#107720]: https://github.com/home-assistant/core/pull/107720
+[#107730]: https://github.com/home-assistant/core/pull/107730
+[#107738]: https://github.com/home-assistant/core/pull/107738
+[#107741]: https://github.com/home-assistant/core/pull/107741
+[#107746]: https://github.com/home-assistant/core/pull/107746
+[#107754]: https://github.com/home-assistant/core/pull/107754
+[#107758]: https://github.com/home-assistant/core/pull/107758
+[#107769]: https://github.com/home-assistant/core/pull/107769
+[#107771]: https://github.com/home-assistant/core/pull/107771
+[#107775]: https://github.com/home-assistant/core/pull/107775
+[#107816]: https://github.com/home-assistant/core/pull/107816
+[#107827]: https://github.com/home-assistant/core/pull/107827
+[#107850]: https://github.com/home-assistant/core/pull/107850
+[#107866]: https://github.com/home-assistant/core/pull/107866
+[@AngellusMortis]: https://github.com/AngellusMortis
+[@BTMorton]: https://github.com/BTMorton
+[@MartinHjelmare]: https://github.com/MartinHjelmare
+[@YogevBokobza]: https://github.com/YogevBokobza
+[@bdr99]: https://github.com/bdr99
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@catsmanac]: https://github.com/catsmanac
+[@cdce8p]: https://github.com/cdce8p
+[@chemelli74]: https://github.com/chemelli74
+[@dieselrabbit]: https://github.com/dieselrabbit
+[@elmurato]: https://github.com/elmurato
+[@emontnemery]: https://github.com/emontnemery
+[@erwindouna]: https://github.com/erwindouna
+[@eugenet8k]: https://github.com/eugenet8k
+[@exxamalte]: https://github.com/exxamalte
+[@farmio]: https://github.com/farmio
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@idofl]: https://github.com/idofl
+[@jbouwh]: https://github.com/jbouwh
+[@joostlek]: https://github.com/joostlek
+[@jpbede]: https://github.com/jpbede
+[@lellky]: https://github.com/lellky
+[@miaucl]: https://github.com/miaucl
+[@mkmer]: https://github.com/mkmer
+[@mrueg]: https://github.com/mrueg
+[@nabbi]: https://github.com/nabbi
+[@starkillerOG]: https://github.com/starkillerOG
+[@thecode]: https://github.com/thecode
+[@vexofp]: https://github.com/vexofp
+[@zxdavb]: https://github.com/zxdavb
+
+## Release 2024.1.4 - January 19
+
+- Fix MatrixBot not resolving room aliases per-command ([@PaarthShah] - [#106347])
+- Bump Pyenphase to 1.16.0 ([@catsmanac] - [#107719])
+- Fix loading empty yaml files with include_dir_named ([@pedrolamas] - [#107853])
+- Bump openwebifpy to 4.2.1 ([@autinerd] - [#107894])
+- Bump aiohomekit to 3.1.3 ([@bdraco] - [#107929])
+- Skip disk types in System Monitor ([@gjohansson-ST] - [#107943])
+- Fix duplicate unique id in System Monitor (again) ([@gjohansson-ST] - [#107947])
+- Bump pyenphase to 1.17.0 ([@catsmanac] - [#107950])
+- Update sleep period for Shelly devices with buggy fw ([@chemelli74] - [#107961])
+- Reload ZHA only a single time when the connection is lost multiple times ([@puddly] - [#107963])
+- Don't load entities for docker virtual ethernet interfaces in System Monitor ([@gjohansson-ST] - [#107966])
+- Improve coordinator logic in Tessie to allow sleep ([@Bre77] - [#107988])
+- Fix Shelly Gen1 entity description restore ([@thecode] - [#108052])
+- Fix malformed user input error on MJPEG config flow ([@codyc1515] - [#108058])
+- Fix turning on the light with a specific color ([@marcelveldt] - [#108080])
+- Bump Jinja2 to 3.1.3 ([@edenhaus] - [#108082])
+- Use compat for supported features in media player ([@joostlek] - [#108102])
+- Speed up ZHA initialization and improve startup responsiveness ([@puddly] - [#108103])
+- Bump `aioridwell` to 2024.01.0 ([@bachya] - [#108126])
+- Bump flipr-api to 1.5.1 ([@cnico] - [#108130])
+- Send target temp to Shelly TRV in F when needed ([@jra3] - [#108188])
+- Use cache update for WIFI blinds ([@starkillerOG] - [#108224])
+- Bump reolink_aio to 0.8.7 ([@starkillerOG] - [#108248])
+- Bump PyTado to 0.17.4 ([@erwindouna] - [#108255])
+- Bump aiounifi to v69 to improve websocket logging ([@Kane610] - [#108265])
+- Bump ZHA dependency zigpy to 0.60.6 ([@puddly] - [#108266])
+
+[#106347]: https://github.com/home-assistant/core/pull/106347
+[#106970]: https://github.com/home-assistant/core/pull/106970
+[#107239]: https://github.com/home-assistant/core/pull/107239
+[#107365]: https://github.com/home-assistant/core/pull/107365
+[#107719]: https://github.com/home-assistant/core/pull/107719
+[#107853]: https://github.com/home-assistant/core/pull/107853
+[#107883]: https://github.com/home-assistant/core/pull/107883
+[#107894]: https://github.com/home-assistant/core/pull/107894
+[#107929]: https://github.com/home-assistant/core/pull/107929
+[#107943]: https://github.com/home-assistant/core/pull/107943
+[#107947]: https://github.com/home-assistant/core/pull/107947
+[#107950]: https://github.com/home-assistant/core/pull/107950
+[#107961]: https://github.com/home-assistant/core/pull/107961
+[#107963]: https://github.com/home-assistant/core/pull/107963
+[#107966]: https://github.com/home-assistant/core/pull/107966
+[#107988]: https://github.com/home-assistant/core/pull/107988
+[#108052]: https://github.com/home-assistant/core/pull/108052
+[#108058]: https://github.com/home-assistant/core/pull/108058
+[#108080]: https://github.com/home-assistant/core/pull/108080
+[#108082]: https://github.com/home-assistant/core/pull/108082
+[#108102]: https://github.com/home-assistant/core/pull/108102
+[#108103]: https://github.com/home-assistant/core/pull/108103
+[#108126]: https://github.com/home-assistant/core/pull/108126
+[#108130]: https://github.com/home-assistant/core/pull/108130
+[#108134]: https://github.com/home-assistant/core/pull/108134
+[#108188]: https://github.com/home-assistant/core/pull/108188
+[#108224]: https://github.com/home-assistant/core/pull/108224
+[#108248]: https://github.com/home-assistant/core/pull/108248
+[#108255]: https://github.com/home-assistant/core/pull/108255
+[#108265]: https://github.com/home-assistant/core/pull/108265
+[#108266]: https://github.com/home-assistant/core/pull/108266
+[@Bre77]: https://github.com/Bre77
+[@Kane610]: https://github.com/Kane610
+[@PaarthShah]: https://github.com/PaarthShah
+[@allenporter]: https://github.com/allenporter
+[@autinerd]: https://github.com/autinerd
+[@bachya]: https://github.com/bachya
+[@bdraco]: https://github.com/bdraco
+[@catsmanac]: https://github.com/catsmanac
+[@chemelli74]: https://github.com/chemelli74
+[@cnico]: https://github.com/cnico
+[@codyc1515]: https://github.com/codyc1515
+[@edenhaus]: https://github.com/edenhaus
+[@erwindouna]: https://github.com/erwindouna
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@joostlek]: https://github.com/joostlek
+[@jra3]: https://github.com/jra3
+[@marcelveldt]: https://github.com/marcelveldt
+[@pedrolamas]: https://github.com/pedrolamas
+[@puddly]: https://github.com/puddly
+[@starkillerOG]: https://github.com/starkillerOG
+[@thecode]: https://github.com/thecode
+
+## Release 2024.1.5 - January 20
+
+- Bump async-upnp-client to 0.38.1 ([@StevenLooman] - [#108382])
+- Fix empty files included by !include_dir_named ([@emontnemery] - [#108489])
+- Pin pandas to 2.1.4 ([@frenck] - [#108509])
+
+[#108382]: https://github.com/home-assistant/core/pull/108382
+[#108489]: https://github.com/home-assistant/core/pull/108489
+[#108509]: https://github.com/home-assistant/core/pull/108509
+[@StevenLooman]: https://github.com/StevenLooman
+[@emontnemery]: https://github.com/emontnemery
+[@frenck]: https://github.com/frenck
+
+## Release 2024.1.6 - January 30
+
+- Pass default SSLContext instances to Octoprint custom HTTP sessions ([@vexofp] - [#105351])
+- Reduce overhead for google calendar state updates ([@allenporter] - [#108133])
+- Fix SleepIQ setting FootWarmer timer ([@jmwaldrip] - [#108433])
+- Fix zha illuminance measured value mapping ([@floriankisser] - [#108547])
+- Bump yolink-api to 0.3.6 fix aiomqtt breaking changes ([@matrixd2] - [#108555])
+- Update openerz-api to 0.3.0 ([@misialq] - [#108575])
+- Bump aiovodafone to 0.5.4 ([@chemelli74] - [#108592])
+- Bump airthings-ble to 0.6.0 ([@LaStrada] - [#108612])
+- Fix alexa fails reporting the state in specific cases ([@jbouwh] - [#108743])
+- Reduce log level of ZHA endpoint handler init ([@puddly] - [#108749])
+- Fix google_assistant climate modes might be None ([@jbouwh] - [#108793])
+- Fix unhandled exception on humidifier intent when available_modes is None ([@jbouwh] - [#108802])
+- Fix processing supported color modes for emulated_hue ([@jbouwh] - [#108803])
+- Reduce log level for creating ZHA cluster handler ([@TheJulianJES] - [#108809])
+- Fix stalls in config flow of APCUPSD ([@yuxincs] - [#108931])
+- Add strings to Sensirion BLE ([@joostlek] - [#109001])
+- Fix entity naming for heatpump heatings in ViCare ([@CFenner] - [#109013])
+- Bump aiohttp to 3.9.3 ([@bdraco] - [#109025])
+- Bump ZHA dependency zigpy to 0.60.7 ([@puddly] - [#109082])
+- Add missing abort message for Spotify ([@joostlek] - [#109102])
+
+[#105351]: https://github.com/home-assistant/core/pull/105351
+[#106970]: https://github.com/home-assistant/core/pull/106970
+[#107239]: https://github.com/home-assistant/core/pull/107239
+[#107365]: https://github.com/home-assistant/core/pull/107365
+[#107883]: https://github.com/home-assistant/core/pull/107883
+[#108133]: https://github.com/home-assistant/core/pull/108133
+[#108379]: https://github.com/home-assistant/core/pull/108379
+[#108433]: https://github.com/home-assistant/core/pull/108433
+[#108502]: https://github.com/home-assistant/core/pull/108502
+[#108547]: https://github.com/home-assistant/core/pull/108547
+[#108555]: https://github.com/home-assistant/core/pull/108555
+[#108575]: https://github.com/home-assistant/core/pull/108575
+[#108592]: https://github.com/home-assistant/core/pull/108592
+[#108612]: https://github.com/home-assistant/core/pull/108612
+[#108743]: https://github.com/home-assistant/core/pull/108743
+[#108749]: https://github.com/home-assistant/core/pull/108749
+[#108793]: https://github.com/home-assistant/core/pull/108793
+[#108802]: https://github.com/home-assistant/core/pull/108802
+[#108803]: https://github.com/home-assistant/core/pull/108803
+[#108809]: https://github.com/home-assistant/core/pull/108809
+[#108931]: https://github.com/home-assistant/core/pull/108931
+[#109001]: https://github.com/home-assistant/core/pull/109001
+[#109013]: https://github.com/home-assistant/core/pull/109013
+[#109025]: https://github.com/home-assistant/core/pull/109025
+[#109082]: https://github.com/home-assistant/core/pull/109082
+[#109102]: https://github.com/home-assistant/core/pull/109102
+[@CFenner]: https://github.com/CFenner
+[@LaStrada]: https://github.com/LaStrada
+[@TheJulianJES]: https://github.com/TheJulianJES
+[@allenporter]: https://github.com/allenporter
+[@bdraco]: https://github.com/bdraco
+[@chemelli74]: https://github.com/chemelli74
+[@floriankisser]: https://github.com/floriankisser
+[@frenck]: https://github.com/frenck
+[@jbouwh]: https://github.com/jbouwh
+[@jmwaldrip]: https://github.com/jmwaldrip
+[@joostlek]: https://github.com/joostlek
+[@matrixd2]: https://github.com/matrixd2
+[@misialq]: https://github.com/misialq
+[@puddly]: https://github.com/puddly
+[@vexofp]: https://github.com/vexofp
+[@yuxincs]: https://github.com/yuxincs
+
[#100573]: https://github.com/home-assistant/core/pull/100573
[#100601]: https://github.com/home-assistant/core/pull/100601
[#101102]: https://github.com/home-assistant/core/pull/101102
diff --git a/source/changelogs/core-2024.2.markdown b/source/changelogs/core-2024.2.markdown
new file mode 100644
index 00000000000..6190960036a
--- /dev/null
+++ b/source/changelogs/core-2024.2.markdown
@@ -0,0 +1,3046 @@
+---
+title: Full changelog for Home Assistant Core 2024.2
+description: Detailed changelog for the Home Assistant Core 2024.2 release
+replace_regex: \s\(\[?[a-z0-9\-\s_]+\]?\)$
+---
+
+These are all the changes included in the Home Assistant Core 2024.2 release.
+
+For a summary in a more readable format:
+[Release notes blog for this release](/blog/2024/02/07/release-20242/).
+
+## All changes
+
+- Bump dawidd6/action-download-artifact from 2 to 3.0.0 (@dependabot - [#105712])
+- Use converter factory in sensor platform ([@bdraco] - [#106508])
+- Bump version to 2024.2.0dev0 ([@frenck] - [#106504])
+- Improve trace helper typing ([@cdce8p] - [#105964])
+- Add myself as codeowner for holiday ([@gjohansson-ST] - [#106560])
+- Update aioairzone-cloud to v0.3.7 ([@Noltari] - [#106544])
+- Add device info to Netgear LTE ([@tkdrob] - [#106568])
+- Add Record distance sensor to MyPermobil ([@IsakNyberg] - [#106519])
+- Refactor screenlogic numbers to use subclasses ([@dieselrabbit] - [#106574])
+- Small speed up to compressed state diff ([@bdraco] - [#106624])
+- Use built-in set methods for light supported checks ([@bdraco] - [#106625])
+- Add GPS satellites count to Starline sensor ([@Anonym-tsk] - [#105740])
+- Minor improvements to Tessie device entries ([@Bre77] - [#106623])
+- Add entity name and translations to Netgear LTE ([@tkdrob] - [#106599])
+- Improve tests of inheriting entity descriptions ([@emontnemery] - [#106647])
+- Add tedee integration ([@zweckj] - [#102846])
+- Add roomba total cleaned area sensor ([@Xitee1] - [#106640])
+- Bump SQLAlchemy to 2.0.24 ([@bdraco] - [#106672])
+- Avoid recreating ReadOnly dicts when attributes do not change ([@bdraco] - [#106687])
+- Use volume up/down from enigma2 API ([@autinerd] - [#106674])
+- DNS IP implement retry ([@gjohansson-ST] - [#105675])
+- Add ffmpeg to dev-container ([@mib1185] - [#106710])
+- Upper case tedee device name ([@zweckj] - [#106685])
+- Add reauth to Blue Current integration ([@Floris272] - [#106658])
+- Use call_soon_threadsafe in render_will_timeout of template helper ([@jpbede] - [#106514])
+- Mark date entity component as strictly typed ([@frenck] - [#106716])
+- Mark todo entity component as strictly typed ([@frenck] - [#106718])
+- Add support for cookie file to media_extractor ([@RickeyWard] - [#104973])
+- Mark datetime entity component as strictly typed ([@frenck] - [#106717])
+- Mark wake_word entity component as strictly typed ([@frenck] - [#106724])
+- Mark siren entity component as strictly typed ([@frenck] - [#106719])
+- Use more shorthand attrs in bond fan ([@bdraco] - [#106740])
+- Mark time entity component as strictly typed ([@frenck] - [#106720])
+- Update aioairzone-cloud to v0.3.8 ([@Noltari] - [#106736])
+- Add sensor platform for tedee integration ([@zweckj] - [#106722])
+- Add binary sensors for tedee ([@zweckj] - [#106773])
+- Add Tami4 integration boil water button ([@Guy293] - [#103400])
+- Update pytest to 7.4.4 ([@cdce8p] - [#106802])
+- Use shorthand attrs for tplink color temp min/max ([@bdraco] - [#106796])
+- Use walrus operator for roomba total cleaned area sensor value ([@Xitee1] - [#106772])
+- Enable strict typing for aprs ([@cdce8p] - [#106824])
+- Enable strict typing for anel_pwrctrl ([@cdce8p] - [#106821])
+- Enable strict typing for androidtv ([@cdce8p] - [#106820])
+- Enable strict typing for alpha_vantage ([@cdce8p] - [#106816])
+- Enable strict typing for aquostv ([@cdce8p] - [#106836])
+- Enable strict typing for aruba ([@cdce8p] - [#106839])
+- Enable strict typing for airq ([@cdce8p] - [#106813])
+- Enable strict typing for amberelectric ([@cdce8p] - [#106817])
+- Enable strict typing for asterisk_cdr + asterisk_mbox ([@cdce8p] - [#106841])
+- Enable strict typing for arris_tg2492lg ([@cdce8p] - [#106838])
+- Enable strict typing for arcam_fmj ([@cdce8p] - [#106837])
+- Improve acmeda typing ([@cdce8p] - [#106812])
+- Enable strict typing for ambiclimate ([@cdce8p] - [#106819])
+- Reduce duplicate code in json_loads ([@bdraco] - [#106859])
+- Set entity category and device class for Netgear LTE entities ([@tkdrob] - [#106661])
+- Add diagnostics for tedee ([@zweckj] - [#106662])
+- Bump bleak-esphome to 0.4.1 ([@bdraco] - [#106832])
+- Enable strict typing for airthings ([@cdce8p] - [#106814])
+- Use identity checks for HassJobType ([@bdraco] - [#106860])
+- Xiaomi MIIO: fix typo in error log ([@angristan] - [#106852])
+- Refactor restore state saving to avoid a dict lookup of ATTR_RESTORED ([@bdraco] - [#106854])
+- Use shorthand attr for screenlogic climate preset modes ([@bdraco] - [#106858])
+- Refactor light platform to avoid duplicate property calls ([@bdraco] - [#106857])
+- Migrate vizio tests to use freezegun ([@jpbede] - [#105417])
+- Migrate geo_rss_events test to use freezegun ([@jpbede] - [#105895])
+- Enable strict typing for arwn ([@cdce8p] - [#106840])
+- Improve entity descriptions in Tami4 ([@joostlek] - [#106776])
+- Add reauthentication for tedee integration ([@zweckj] - [#106667])
+- Avoid unnecessary domain dataclass in Discovergy ([@jpbede] - [#106869])
+- Mark humidifier entity component as strictly typed ([@frenck] - [#106721])
+- Enable strict typing for apache_kafka ([@cdce8p] - [#106823])
+- Add translatable title to logbook ([@steffenrapp] - [#106810])
+- Enable strict typing of date_time ([@emontnemery] - [#106868])
+- Deprecate 'beat' display option in Time & Date ([@emontnemery] - [#106871])
+- Index entities by domain for entity services ([@bdraco] - [#106759])
+- Add Reolink image settings ([@starkillerOG] - [#105415])
+- Improve time_date tests ([@emontnemery] - [#106878])
+- Fix state update in time_date sensor ([@emontnemery] - [#106879])
+- Handle time zone change in time_date ([@emontnemery] - [#106880])
+- Disable polling in time_date sensor ([@emontnemery] - [#106881])
+- Mark stt entity component as strictly typed ([@frenck] - [#106723])
+- Remove deprecated Life360 yaml configuration ([@pnbruckner] - [#106286])
+- Replace intersection with isdisjoint in apple_tv config flow ([@bdraco] - [#106633])
+- Add strict typing to command_line ([@cdce8p] - [#106889])
+- Enable strict typing for co2signal ([@cdce8p] - [#106888])
+- Avoid tuple construction to check HKC available ([@bdraco] - [#106902])
+- Enable strict typing for blueprint ([@cdce8p] - [#106887])
+- Bump aiohttp-zlib-ng to 0.2.0 ([@bdraco] - [#106691])
+- Enable strict typing for axis ([@cdce8p] - [#106844])
+- Remove assert for unique_id ([@cdce8p] - [#106910])
+- Add tedee bridge as via_device for tedee integration ([@zweckj] - [#106914])
+- Add translatable title to holiday ([@steffenrapp] - [#106825])
+- Bump aioelectricitymaps to v0.1.6 ([@jpbede] - [#106932])
+- Enable strict typing for counter ([@cdce8p] - [#106906])
+- Bump SQLAlchemy to 2.0.25 ([@bdraco] - [#106931])
+- Speed up getting the mean of statistics ([@bdraco] - [#106930])
+- Removed double assignment of _attr_target_temperature_step in __init__ ([@crug80] - [#106611])
+- Add support for placeholders in entity name translations ([@mib1185] - [#104453])
+- Bump rachiopy to 1.1.0 ([@rfverbruggen] - [#106975])
+- Fix ESPHome service removal when the device name contains a dash ([@bdraco] - [#107015])
+- Bump pyinsteon ([@teharris1] - [#107010])
+- Small cleanups to ESPHome light platform ([@bdraco] - [#107003])
+- Add missing coverage for esphome_state_property decorator ([@bdraco] - [#106998])
+- Fix first ESPHome device update entity not offering install feature ([@bdraco] - [#106993])
+- Use call_soon_threadsafe in token updater of Ring ([@jpbede] - [#106984])
+- Ring: Add partial back ([@balloob] - [#107040])
+- Issue warning if glances server version is 2 ([@engrbm87] - [#105887])
+- Re-architect Guardian to use better entity descriptions and properties ([@bachya] - [#107028])
+- Add button platform to Opengarage ([@jkrall] - [#103569])
+- Small cleanups to denonavr ([@bdraco] - [#107050])
+- Update pydrawise to 2024.1.0 ([@thomaskistler] - [#107032])
+- Add test coverage for ESPHome service calls ([@bdraco] - [#107042])
+- Remove dead code in fibaro light ([@rappenze] - [#106890])
+- Add sensor tests to Streamlabs water ([@joostlek] - [#107065])
+- Update home-assistant/builder to 2024.01.0 ([@frenck] - [#107069])
+- Refactor drop sensor tests ([@jbouwh] - [#106965])
+- Add entity descriptions to Streamlabs water ([@joostlek] - [#107071])
+- Refactor drop tests for binary_sensor ([@jbouwh] - [#107090])
+- Remove zwave_js numeric sensor rounding ([@MartinHjelmare] - [#107100])
+- Revert "Bump aiohttp-zlib-ng to 0.2.0 (#106691)" ([@bdraco] - [#107109])
+- Rework drop_connect switch, select and coordinator tests and cleanup fixtures ([@jbouwh] - [#107119])
+- Move group helpers into their own module ([@bdraco] - [#106924])
+- Reorganize drop_connect tests ([@jbouwh] - [#107148])
+- Migrate Emonitor to has entity name ([@joostlek] - [#107153])
+- Migrate AVM FRITZ!Box Call monitor to has entity name ([@jrieger] - [#99752])
+- Cache homekit_controller supported features ([@bdraco] - [#106702])
+- Use snapshots in Glances sensor tests ([@joostlek] - [#107159])
+- Pass down language to hassil ([@Luap99] - [#106490])
+- Remove precision in streamlabs water ([@joostlek] - [#107096])
+- Update Home Assistant base image to 2024.01.0 - Python 3.12 ([@frenck] - [#107175])
+- Pass aiohttp clientsession to tedee integration ([@zweckj] - [#107089])
+- Add conversation_id parameter to conversation.process service ([@Shulyaka] - [#106078])
+- Clean up outdated entity replacement logic in Guardian ([@bachya] - [#107160])
+- Introduce base entity in streamlabs water ([@joostlek] - [#107095])
+- Update sensorpush-ble library to 1.6.1 ([@ashleigh-hopkins] - [#107168])
+- Fix tplink overloading power strips ([@bdraco] - [#104208])
+- Report missing entities/areas instead of failing to match in Assist ([@synesthesiam] - [#107151])
+- Fix conversation snapshots ([@joostlek] - [#107196])
+- Bump bluetooth-adapters to 0.17.0 ([@bdraco] - [#107195])
+- Set zwave_js voltage sensor suggested precision ([@MartinHjelmare] - [#107116])
+- Change default python version to 3.12 for image builds ([@bdraco] - [#107209])
+- Attempt to fix 32bit docker builds ([@bdraco] - [#107210])
+- Remove work-a-round for mqtt sensors with an entity_category set to `config` ([@jbouwh] - [#107199])
+- Remove unneeded preset_mode checks for mqtt climate ([@jbouwh] - [#107190])
+- Remove naming warnings and work-a-rounds for incorrectly configured MQTT entities ([@jbouwh] - [#107188])
+- Add color temp support for older HomeKit devices ([@bdraco] - [#107206])
+- Finish Efergy entity translations ([@joostlek] - [#107152])
+- Use identity checks for unifiprotect enums ([@bdraco] - [#106795])
+- Add Tyua Product Category "dsd" for Filament Light ([@ThePapaG] - [#106709])
+- Bump velbus-aio to 2023.12.0 ([@Cereal2nd] - [#107066])
+- Add test coverage for ESPHome device info ([@bdraco] - [#107034])
+- Add Rainforest RAVEn integration ([@cottsay] - [#80061])
+- Add support for service response to RESTful command ([@RoboMagus] - [#97208])
+- Bump aiohttp-zlib-ng to 0.3.0 ([@bdraco] - [#107184])
+- Add python_script response ([@rikroe] - [#97937])
+- Add Hong Kong Observatory integration ([@MisterCommand] - [#98703])
+- Make exceptions in rest_command services translatable ([@jpbede] - [#107252])
+- Add new Rabbit Air integration ([@al-s] - [#66130])
+- Update Home Assistant Wheels action to 2024.01.0 ([@frenck] - [#107240])
+- Add Lutron config flow ([@wilburCforce] - [#98489])
+- Allow selecting of counter entities in derivative/integration config flow ([@SLaks] - [#105321])
+- Sort Lutron platforms ([@joostlek] - [#107257])
+- Remove duplicate assignment of `median` and `statistical_mode` jinja2 filter ([@jpbede] - [#106953])
+- Improve denonavr typing ([@cdce8p] - [#106907])
+- Enable strict typing for downloader ([@cdce8p] - [#107263])
+- Migrate Suez Water to has entity name ([@joostlek] - [#107251])
+- Enable strict typing for minecraft_server ([@cdce8p] - [#107262])
+- Enable strict typing for duotecno ([@cdce8p] - [#107261])
+- Improve conversation typing ([@cdce8p] - [#106905])
+- Cleanup and migrate rest_command tests to be async ([@jpbede] - [#107264])
+- Convert cert_expiry to use asyncio ([@bdraco] - [#106919])
+- Expose all areas to Assist and ignore empty aliases ([@synesthesiam] - [#107267])
+- Use call_soon_threadsafe in mqtt client unsubscribe callback ([@jpbede] - [#107266])
+- Add test coverage for ESPHome state subscription ([@bdraco] - [#107045])
+- Add code owner for Lutron ([@wilburCforce] - [#107280])
+- Extract LutronDevice into separate file ([@joostlek] - [#107285])
+- Fix typo in recorder strings.json ([@rsiv] - [#107278])
+- Move Lutron entry data to typed class ([@joostlek] - [#107256])
+- Fix duplicate unique_ids in emonitor ([@joostlek] - [#107320])
+- Fix lutron test AttributeError ([@cdce8p] - [#107323])
+- Fix lutron test AttributeError (2) ([@cdce8p] - [#107324])
+- Disable thermobeacon voltage sensors by default ([@bdraco] - [#107326])
+- Add API to fetch Assist devices ([@balloob] - [#107333])
+- Add time entity to Renson ([@jimmyd-be] - [#105031])
+- Use faster identity checks for SupportsResponse Enum ([@bdraco] - [#107351])
+- Small cleanup to zeroconf properties matcher ([@bdraco] - [#107342])
+- Avoid fetching logger in check_if_deprecated_constant if there is nothing to log ([@bdraco] - [#107341])
+- Enable strict typing for easyenergy ([@cdce8p] - [#107299])
+- Enable strict typing for energyzero ([@cdce8p] - [#107300])
+- Enable strict typing for p1_monitor ([@cdce8p] - [#107301])
+- Fix rainforest_raven typing ([@cdce8p] - [#107309])
+- Fix name of 64bit intel/amd arch in builder and wheels workflow ([@bdraco] - [#107335])
+- Only mock config_entries.HANDLERS for the current test in mock_config_flow ([@jbouwh] - [#107357])
+- Add new locks automatically to tedee integration ([@zweckj] - [#107372])
+- remove marcolivierarsenault from ecobee codeowners ([@marcolivierarsenault] - [#107377])
+- Improve homekit_controller typing ([@cdce8p] - [#107381])
+- Bump py-aosmith to 1.0.6 ([@bdr99] - [#107409])
+- Update Apprise to 1.7.1 ([@Flash1232] - [#107383])
+- Streamline exception handling in Guardian ([@bachya] - [#107053])
+- Clean up buggy Guardian `switch` context managers ([@bachya] - [#107426])
+- Remove leftover Guardian mixin ([@bachya] - [#107424])
+- Enable strict typing for oralb ([@cdce8p] - [#107438])
+- Enable strict typing for led_ble ([@cdce8p] - [#107437])
+- Enable strict typing for enphase_envoy ([@cdce8p] - [#107436])
+- Enable strict typing for waqi ([@cdce8p] - [#107439])
+- Enable strict typing for youtube ([@cdce8p] - [#107440])
+- Add select platform to Vogel's MotionMount integration ([@RJPoelstra] - [#107132])
+- Add missing wifi data in AVM!Fritz Tools tests ([@mib1185] - [#107373])
+- Improve flume typing ([@cdce8p] - [#107444])
+- Clean up zwave_js test_removed_device test ([@raman325] - [#107346])
+- Fix local_todo typo ([@miaucl] - [#107454])
+- Add typing to Lutron platforms ([@joostlek] - [#107408])
+- Small cleanups to ESPHome callbacks ([@bdraco] - [#107428])
+- Remove calls to distribution and legacy zip support from package util ([@bdraco] - [#107427])
+- Improve harmony typing ([@cdce8p] - [#107447])
+- Google Generative AI: Add a service for prompts consisting of text and images using Gemini Pro Vision ([@tronikos] - [#105789])
+- Mark Ring battery and signal strength sensors as diagnostic ([@joostlek] - [#107503])
+- Move KNX service registration to `async_setup` ([@farmio] - [#106635])
+- Refactor translations to reduce dict lookups ([@bdraco] - [#107425])
+- Refactor recorder for common event case ([@bdraco] - [#106753])
+- Improve logbook context augment performance ([@bdraco] - [#106926])
+- Refactor sensor recorder _get_sensor_states to check for state class first ([@bdraco] - [#107046])
+- Add support for JSON fragments ([@bdraco] - [#107213])
+- Reduce overhead to compile statistics ([@bdraco] - [#106927])
+- Signficantly reduce executor contention during bootstrap ([@bdraco] - [#107312])
+- Add support for bluetooth local name matchers shorter than 3 chars ([@bdraco] - [#107411])
+- Use constants in Alpha2 config flow ([@joostlek] - [#107518])
+- Clean up met config flow ([@joostlek] - [#107480])
+- Introduce heat area property in moehlenhoff alpha2 ([@joostlek] - [#107488])
+- Bump sensorpush-ble to 1.6.2 ([@bdraco] - [#107410])
+- Increase pip timeout in image builds to match core ([@bdraco] - [#107514])
+- Bump aiowithings to 2.1.0 ([@joostlek] - [#107417])
+- Reduce duplicate code in ESPHome connection callback ([@bdraco] - [#107338])
+- Add Met eireann to strict typing ([@joostlek] - [#107486])
+- Migrate Mullvad to has entity name ([@joostlek] - [#107520])
+- Migrate kmtronic to has entity name ([@joostlek] - [#107469])
+- Add coverage for scanning tags with ESPHome ([@bdraco] - [#107337])
+- Remove MQTT legacy vacuum support ([@jbouwh] - [#107274])
+- Reduce overhead to call entity services ([@bdraco] - [#106908])
+- Enable long term statistics for Flume water usage current sensor ([@tronikos] - [#107512])
+- Remove deprecated YAML for freebox ([@jpbede] - [#107497])
+- Handle unknown state in HomeKit ([@bdraco] - [#107039])
+- Improve dispatcher typing ([@cdce8p] - [#106872])
+- Enable strict typing for google_assistant_sdk ([@cdce8p] - [#107306])
+- Bump SunWEG to 2.1.0 ([@rokam] - [#107459])
+- Improve typing for Tado ([@erwindouna] - [#106992])
+- Enable strict typing for history_stats ([@cdce8p] - [#107273])
+- Enable strict typing for generic_hygrostat ([@cdce8p] - [#107272])
+- Fully type homeassistant integration ([@cdce8p] - [#107380])
+- Improve hassio typing ([@cdce8p] - [#107292])
+- Improve hunterdouglas_powerview typing ([@cdce8p] - [#107445])
+- Enable strict typing for intent ([@cdce8p] - [#107282])
+- Add zone devices to AnthemAV ([@joostlek] - [#107192])
+- Cleanup device registry for tedee when a lock is removed ([@zweckj] - [#106994])
+- Use parametrize in drop connect binary sensor tests ([@joostlek] - [#107111])
+- Enable strict typing for system_health ([@cdce8p] - [#107283])
+- Enable strict typing for nightscout ([@cdce8p] - [#107307])
+- Enable strict typing for tod ([@cdce8p] - [#107284])
+- Enable strict typing for dlna_dms ([@cdce8p] - [#107305])
+- Improve folder_watcher typing ([@cdce8p] - [#107271])
+- Remove tedee device safely from registry ([@zweckj] - [#107529])
+- Unlock the precision of sensors of the opentherm_gw integration ([@FlorianOosterhof] - [#107227])
+- Bump pytedee_async to 0.2.10 ([@zweckj] - [#107540])
+- Pop the mocked config flow, restore the original with mock_config_flow ([@jbouwh] - [#107567])
+- Specific Assist errors for domain/device class ([@synesthesiam] - [#107302])
+- Add software version to Blink device info ([@mkmer] - [#107548])
+- Improve led_ble generic typing ([@cdce8p] - [#107534])
+- Remove deprecated YAML support from OpenSky ([@jpbede] - [#107585])
+- Let babel handle the locale separator in holiday ([@jrieger] - [#107571])
+- Bump pymeteoclimatic to 0.1.0 ([@bdraco] - [#107583])
+- Fix tractive tests using a dict for the unique_id ([@bdraco] - [#107602])
+- Bump aiohttp-zlib-ng to 0.3.1 ([@bdraco] - [#107595])
+- Bump pywemo to 1.4.0 ([@esev] - [#107623])
+- Small cleanups to number entity ([@bdraco] - [#107624])
+- Fix cloudflare tests using a dict for the unique id ([@bdraco] - [#107601])
+- Avoid duplicate property lookups in camera state_attributes ([@bdraco] - [#107627])
+- Tado unavailable state to device tracker ([@erwindouna] - [#107542])
+- Small cleanups to temperature helper ([@bdraco] - [#107625])
+- Add caching to the distance calculation utility ([@bdraco] - [#107626])
+- Bump idasen-ha to 2.5 ([@abmantis] - [#107607])
+- Remove deprecated line in osoenergy ([@xeniter] - [#107553])
+- Correct state class in `mobile_app` tests ([@jpbede] - [#107646])
+- Remove deprecated YAML support from zodiac ([@jpbede] - [#107584])
+- Fix dlink test mutating config entry after its adding to hass ([@bdraco] - [#107604])
+- Airthings cloud: Add myself as codeowner ([@LaStrada] - [#107654])
+- Remove unused option flow from blink ([@mkmer] - [#106735])
+- Use right state class for kWh sensor in `homekit_controller` ([@jpbede] - [#107644])
+- Use right state class in `filter` test ([@jpbede] - [#107643])
+- Correct device class in `sql` tests ([@jpbede] - [#107663])
+- Bump Python-Roborock to 0.39.0 ([@Lash-L] - [#107547])
+- Remove deprecated services from Ezviz ([@jpbede] - [#107582])
+- Remove deprecated services from Huawei LTE ([@jpbede] - [#107578])
+- Add test for avoid triggering ping device tracker `home` after reload ([@jpbede] - [#107107])
+- Avoid total_seconds conversion in bond keep alive ([@bdraco] - [#107618])
+- Add missing 'state class' to Airvisual ([@yuvalabou] - [#107666])
+- Add 'bitwise_xor' filter to jinja templates ([@TNTLarsn] - [#104942])
+- Bump pytedee_async to 0.2.11 ([@zweckj] - [#107707])
+- Remove myself as a codeowner from tado ([@michaelarnauts] - [#107708])
+- Set proper sensor device class for swiss_public_transport ([@miaucl] - [#106485])
+- Bump govee-ble to 0.26.0 ([@bdraco] - [#107706])
+- Improve debug logs in Minecraft Server ([@elmurato] - [#107672])
+- Add decorator typing [toon] ([@cdce8p] - [#107597])
+- Add decorator typing [soma] ([@cdce8p] - [#107559])
+- Add decorator typing [modern_forms] ([@cdce8p] - [#107558])
+- Improvements for tedee integration ([@zweckj] - [#107238])
+- Use new AEMET library data for sensor platform ([@Noltari] - [#102972])
+- Reduce discovery flow matching overhead ([@bdraco] - [#107709])
+- Rename AEMET weather_update_coordinator ([@Noltari] - [#107740])
+- Update powerwall for tesla_powerwall 0.5.0 which is async ([@bubonicbob] - [#107164])
+- Make to-do list item exception wording consistent ([@allenporter] - [#107743])
+- Add comment to ConfigEntry.async_setup about race safety ([@bdraco] - [#107756])
+- Add `valve` platform to Guardian ([@bachya] - [#107423])
+- Bump bthome-ble to 3.4.1 ([@Ernst79] - [#107757])
+- Add leak sensor for UP Sense for UniFi Protect ([@AngellusMortis] - [#107762])
+- Bump sonos-websocket to 0.1.3 ([@jjlawren] - [#107765])
+- Bump aioambient to 2024.01.0 ([@thomaskistler] - [#107767])
+- Rework state change detection for UniFi Protect entities ([@AngellusMortis] - [#107766])
+- Add new event sensors from UniFi Protect 2.11 ([@AngellusMortis] - [#107773])
+- Fastdotcom service optimization ([@erwindouna] - [#107179])
+- Revert "Revert "Add preselect_remember_me to `/auth/providers`"" ([@edenhaus] - [#106867])
+- Add SpeakerHub support to YoLink ([@matrixd2] - [#104678])
+- Bump govee-ble to 0.27.2 ([@bdraco] - [#107778])
+- Improve ergonomics of FlowManager.async_show_progress ([@emontnemery] - [#107668])
+- Improve calls to async_show_progress in zwave_js ([@emontnemery] - [#107794])
+- Improve calls to async_show_progress in matter ([@emontnemery] - [#107791])
+- Improve calls to async_show_progress in google ([@emontnemery] - [#107788])
+- Make step_id parameter to FlowHandler.async_show_progress optional ([@emontnemery] - [#107802])
+- Fix call to async_setup_component in translation test ([@emontnemery] - [#107807])
+- Fix Netatmo camera name does not show under Media -> Media sources -> Camera ([@codyc1515] - [#107696])
+- Remove Life360 integration ([@pnbruckner] - [#107805])
+- Bump PySwitchbot to 0.44.0 ([@dcmeglio] - [#107833])
+- Improved tracking of switchbot opening/closing states ([@dcmeglio] - [#106741])
+- Move Guardian valve attributes to diagnostics sensors ([@bachya] - [#107834])
+- Add YoLink SpeakerHub Service ([@matrixd2] - [#107787])
+- Bump govee-ble to 0.27.3 ([@bdraco] - [#107839])
+- Bump actions/cache from 3.3.2 to 3.3.3 (@dependabot - [#107840])
+- Bump github/codeql-action from 3.22.12 to 3.23.0 (@dependabot - [#107628])
+- Bump nexia to 2.0.8 ([@bdraco] - [#107835])
+- Migrate unifiprotect descriptions to be kw_only ([@bdraco] - [#107832])
+- Restrict Version Disclosure to Authenticated Requests in Home Assistant ([@emtunc] - [#107458])
+- Add jinja_pass_arg to reserved template names ([@bdraco] - [#107822])
+- Use identity checks for CoreState ([@bdraco] - [#107846])
+- Add decorator typing [limitlessled] ([@cdce8p] - [#107557])
+- Revert "Fix Netatmo camera name does not show under Media -> Media sources -> Camera" ([@cgtobi] - [#107856])
+- Rename netatmo base entity file ([@joostlek] - [#107857])
+- Add decorator typing [izone] ([@cdce8p] - [#107556])
+- Add decorator typing [homematicip_cloud] ([@cdce8p] - [#107555])
+- Add decorator typing [zha] ([@cdce8p] - [#107599])
+- Add myUplink integration ([@pajzo] - [#86522])
+- Enable strict typing for cert_expiry ([@cdce8p] - [#107860])
+- Improve onboarding provider call ([@cdce8p] - [#107864])
+- Enable strict typing for bthome ([@cdce8p] - [#107859])
+- Improve meteo_france typing ([@cdce8p] - [#107863])
+- Enable strict typing for ecowitt ([@cdce8p] - [#107861])
+- Add decorator typing [spotify] ([@cdce8p] - [#107560])
+- Bump xiaomi-ble to 0.21.2 ([@Ernst79] - [#107779])
+- Enable strict typing for ios ([@cdce8p] - [#107382])
+- Update frontend to 20240112.0 ([@bramkragten] - [#107886])
+- Extend Nuki integration to expose ringer through Nuki Opener ([@steffenrapp] - [#107745])
+- Handle missing fields from Roomba ([@Xitee1] - [#107893])
+- Fix missing timeout exception check in powerwall config flow ([@bdraco] - [#107899])
+- Bump orjson to 3.9.10 ([@bdraco] - [#107898])
+- Revert "Restrict Version Disclosure to Authenticated Requests in Home Assistant" ([@bdraco] - [#107904])
+- Remove deprecated YAML support from litejet ([@jpbede] - [#107884])
+- Improve Netatmo tests ([@joostlek] - [#107902])
+- Enable strict typing for system_log ([@cdce8p] - [#107914])
+- Enable strict typing for rest_command ([@cdce8p] - [#107911])
+- Avoid duplicate search for existing config entries in homekit_controller ([@bdraco] - [#107613])
+- Add snapshot tests to Netatmo platforms ([@joostlek] - [#107932])
+- Snapshot Netatmo devices ([@joostlek] - [#107935])
+- Give name to Netatmo device snapshots ([@joostlek] - [#107938])
+- Warn if integrations call async_show_progress without passing a task ([@emontnemery] - [#107796])
+- Enable strict typing for xiaomi_ble ([@cdce8p] - [#107948])
+- Bump python-holidays to 0.40 ([@jrieger] - [#107888])
+- Add fan mode support to SmartThings fan entity ([@ThePapaG] - [#106794])
+- Add account sensors to electric kiwi integration ([@mikey0000] - [#97681])
+- Add charge cable lock to Tessie ([@Bre77] - [#107212])
+- Remove useless _update function in ESPHome ([@bdraco] - [#107927])
+- Bump zamg to 0.3.5 ([@killer0071234] - [#107939])
+- Add support for Uonet+ Vulcan integration on Python 3.12 ([@Antoni-Czaplicki] - [#107959])
+- Enable strict typing for webhook ([@cdce8p] - [#107946])
+- Fix atag test mutating config entry after its adding to hass ([@bdraco] - [#107603])
+- Add an index for devices and config entries to the entity registry ([@bdraco] - [#107516])
+- Refactor User attribute caching to be safer and more efficient ([@bdraco] - [#96723])
+- Small cleanups to ESPHome ([@bdraco] - [#107924])
+- Use more shorthand attributes in ESPHome fans ([@bdraco] - [#107923])
+- Refactor config entry storage and index ([@bdraco] - [#107590])
+- Enable strict typing for search ([@cdce8p] - [#107912])
+- Use faster is_admin check for websocket state and event subscriptions ([@bdraco] - [#107621])
+- Add TICMeter Energy Metering sensors ([@xmow49] - [#107956])
+- Use prometheus_client module directly ([@cdce8p] - [#107918])
+- Fix duplicate config entry additions in tests ([@bdraco] - [#107984])
+- Add H5106 support to govee-ble ([@bdraco] - [#107781])
+- Avoid entity registry check in live logbook on each state update ([@bdraco] - [#107622])
+- Avoid total_seconds conversion every state write when context is set ([@bdraco] - [#107617])
+- Bump lxml to 5.1.0 ([@bdraco] - [#106696])
+- Fix logger creating many thread locks when reloading the integrations page ([@bdraco] - [#93768])
+- Migrate powerwall unique ids to use the gateway din ([@bdraco] - [#107509])
+- Refactor event time trackers to avoid using nonlocal ([@bdraco] - [#107997])
+- Break long lines in powerwall integration ([@bdraco] - [#108002])
+- Avoid useless time fetch in DataUpdateCoordinator ([@bdraco] - [#107999])
+- Save the HassJob type in wemo discovery to avoid checking it each time ([@bdraco] - [#107998])
+- Update habluetooth to 2.2.0 ([@bdraco] - [#108000])
+- Add route sensors to Tessie ([@Bre77] - [#106530])
+- Remove YAML support from gdacs ([@jbouwh] - [#107962])
+- Remove deprecated YAML import from generic camera ([@jbouwh] - [#107992])
+- Improve apple_tv typing ([@bdraco] - [#107694])
+- Improve calls to async_show_progress in improv_ble ([@emontnemery] - [#107790])
+- Enable strict typing for shopping_list ([@cdce8p] - [#107913])
+- Enable strict typing for trace ([@cdce8p] - [#107945])
+- Enable strict typing for timer ([@cdce8p] - [#107915])
+- Remove deprecated vacuum service from roborock ([@jpbede] - [#107895])
+- Drop facebox integration ([@reedy] - [#107005])
+- Improve calls to async_show_progress in homeassistant_hardware ([@emontnemery] - [#107789])
+- Refactor async_track_utc_time_change to avoid using nonlocal ([@bdraco] - [#108007])
+- Update pipdeptree to 2.13.2 ([@frenck] - [#108009])
+- Fix wifi sensor units in Blink ([@mkmer] - [#107539])
+- Improve calls to async_show_progress in snooz ([@emontnemery] - [#107793])
+- Improve calls to async_show_progress in octoprint ([@emontnemery] - [#107792])
+- Remove file/line annotations after config has been validated ([@emontnemery] - [#107139])
+- Add entity translations to Glances ([@joostlek] - [#107189])
+- Dynamically adjust Netatmo polling frequency ([@cgtobi] - [#106742])
+- Bump plugwise to v0.36.2 ([@bouwew] - [#108012])
+- Fix autoChangeoverActive for lyric LCC devices ([@nprez83] - [#106925])
+- Fix lyric TCC set temperature when in Auto mode ([@nprez83] - [#106853])
+- Update sentry-sdk to 1.39.2 ([@frenck] - [#108010])
+- Add Netatmo fan platform ([@cgtobi] - [#107989])
+- Remove deprecated services from Litterrobot ([@jpbede] - [#107882])
+- Add cached_property to State.name ([@bdraco] - [#108011])
+- Reset UniFi bandwidth sensor when client misses heartbeat ([@wittypluck] - [#104522])
+- Sensibo include mac in diagnostics redact filter ([@gjohansson-ST] - [#107986])
+- Improve the test class used for testing FlowManager.async_show_progress ([@emontnemery] - [#107786])
+- Bump SoCo to 0.30.2 ([@jjlawren] - [#108033])
+- Update shelly bluetooth scanner to version 2.0 ([@bdraco] - [#107917])
+- Update framework for Airthings cloud ([@LaStrada] - [#107653])
+- Update asyncsleepiq to 1.4.2 ([@kbickar] - [#108054])
+- Remove YAML auth setup support from home_connect ([@jbouwh] - [#108072])
+- Enable strict typing for prometheus ([@cdce8p] - [#108025])
+- Enable strict typing for duckdns ([@cdce8p] - [#108022])
+- Bump pychromecast to 13.1.0 ([@emontnemery] - [#108073])
+- Remove obsolete .txt extension from diagnostics download ([@mib1185] - [#108028])
+- Enable strict typing for generic_thermostat ([@cdce8p] - [#108024])
+- Improve gdacs typing ([@cdce8p] - [#108040])
+- Deprecate passing step_id to FlowHandler methods ([@emontnemery] - [#107944])
+- Bump evohome client to 0.4.17 ([@zxdavb] - [#108051])
+- Set webhook `local_only` to True by default ([@jpbede] - [#107670])
+- Improve ffmpeg and freebox typing ([@cdce8p] - [#108026])
+- Harden zone schedule processing for evohome ([@zxdavb] - [#108079])
+- Fix comment for SmartThings fan capability ([@ThePapaG] - [#108086])
+- Enable strict typing for onboarding ([@cdce8p] - [#108097])
+- Add availability to command_line ([@gjohansson-ST] - [#105300])
+- Add tests for System Monitor ([@gjohansson-ST] - [#107891])
+- Fix test_sensor_process_fails test in System Monitor ([@gjohansson-ST] - [#108110])
+- Make ATTR_SERIAL_NUMBER a generic homeassistant constant ([@jbouwh] - [#108106])
+- Improve electric_kiwi generic typing ([@cdce8p] - [#108084])
+- Improve google_translate typing ([@cdce8p] - [#108093])
+- Improve typing for the generic integration ([@cdce8p] - [#108094])
+- Improve risco typing ([@cdce8p] - [#108041])
+- Add Epion integration ([@lhgravendeel] - [#107570])
+- Remove deprecated vacuum services from tuya ([@jpbede] - [#107896])
+- Hide FlowResultType.SHOW_PROGRESS_DONE from frontend ([@emontnemery] - [#107799])
+- Add pylint plugin to check for sorted platforms list ([@jpbede] - [#108115])
+- bump pyfritzhome to 0.6.10 ([@mib1185] - [#108128])
+- Bump holidays to 0.41 ([@gjohansson-ST] - [#108132])
+- Update python-bsblan version to 0.5.18 ([@liudger] - [#108145])
+- Enable compression on frontend index page ([@bdraco] - [#108148])
+- Remove YAML import support for plum_lightpad ([@jbouwh] - [#108114])
+- Remove config import in meteo_france ([@gjohansson-ST] - [#107970])
+- Remove MELCloud YAML import support ([@jbouwh] - [#108113])
+- Add config flow for Ecovacs ([@edenhaus] - [#108111])
+- Avoid keeping config dir in path ([@elupus] - [#107760])
+- Default tuya climate temperature unit to system unit ([@DellanX] - [#108050])
+- Bump opower to 0.2.0 ([@max2697] - [#108067])
+- Handle renaming of evohome zones ([@zxdavb] - [#108089])
+- Add serial_number attribute to MQTT device properties ([@jbouwh] - [#108105])
+- Avoid duplicate timestamp conversions for websocket api and recorder ([@bdraco] - [#108144])
+- Add gateway_mode Select to Plugwise ([@bouwew] - [#108019])
+- Add integration lamarzocco ([@zweckj] - [#102291])
+- Refactor demo vacuum's to only use StateVacuum base class and features ([@jbouwh] - [#108150])
+- Bump vallox_websocket_api to 4.0.3 ([@slovdahl] - [#108109])
+- Add debugging to assist in debugging already configured error ([@allenporter] - [#108134])
+- Add late PR improvements to La Marzocco ([@zweckj] - [#108162])
+- Add Govee local light integration ([@Galorhallen] - [#106697])
+- Remove config import from surepetcare ([@gjohansson-ST] - [#107971])
+- Add Translation for Roborock exceptions ([@Lash-L] - [#105427])
+- Cache commonly called Integration manifest properties ([@bdraco] - [#108141])
+- Delete removed channel devices in Youtube ([@joostlek] - [#107907])
+- Remove config import in Neato ([@gjohansson-ST] - [#107967])
+- Avoid bytes to string to bytes conversion in websocket api ([@bdraco] - [#108139])
+- Add entity name translations to System Monitor ([@gjohansson-ST] - [#107952])
+- Deprecate Python 3.11 ([@frenck] - [#108160])
+- Remove config import from netatmo ([@gjohansson-ST] - [#107972])
+- Wyoming satellite ping and bugfix for local wake word ([@synesthesiam] - [#108164])
+- Set minimal value for modules power - Forecast.solar ([@klaasnicolaas] - [#108166])
+- Upgrade python-mpd2 to v3.1.1 ([@2franix] - [#108143])
+- Bump dbus-fast to 2.21.1 ([@bdraco] - [#108176])
+- Bump `aiokafka` to 0.10.0 ([@bachya] - [#108165])
+- Add decorator typing [yeelight] ([@cdce8p] - [#107598])
+- Move Guardian coordinator to suggested location ([@bachya] - [#108182])
+- Dynamically map state class, device class and UoM in ZHA smart energy metering sensor ([@jpbede] - [#107685])
+- Remove unnecessary OpenUV entity description mixins ([@bachya] - [#108195])
+- Remove unnecessary SimpliSafe entity description mixins ([@bachya] - [#108197])
+- Remove unnecessary PurpleAir entity description mixins ([@bachya] - [#108196])
+- Remove unnecessary Notion entity description mixins ([@bachya] - [#108194])
+- Remove unnecessary AirVisual Pro entity description mixins ([@bachya] - [#108192])
+- Remove unnecessary Ambient PWS entity description mixins ([@bachya] - [#108191])
+- Remove unnecessary RainMachine entity description mixins ([@bachya] - [#108190])
+- Create update coordinator for Systemmonitor ([@gjohansson-ST] - [#106693])
+- Bump actions/cache from 3.3.3 to 4.0.0 (@dependabot - [#108209])
+- Fix translation keys in Tessie ([@Bre77] - [#108203])
+- Add sensor platform to La Marzocco integration ([@zweckj] - [#108157])
+- Implement TechnoVE integration ([@Moustachauve] - [#106029])
+- Change the way an entity is supported in La Marzocco ([@zweckj] - [#108216])
+- Add binary sensor platforms to La Marzocco ([@zweckj] - [#108212])
+- Allow selecting camera in Trafikverket Camera ([@gjohansson-ST] - [#105927])
+- Improve aurora typing ([@cdce8p] - [#108217])
+- Add select platform to La Marzocco integration ([@zweckj] - [#108222])
+- Add number platform to La Marzocco ([@zweckj] - [#108229])
+- Remove unused entity_sources argument from shared_attrs_bytes_from_event ([@bdraco] - [#108210])
+- Disable Python 3.12 incompatible integrations ([@frenck] - [#108163])
+- Add update platform to La Marzocco ([@zweckj] - [#108235])
+- Add button platform to La Marzocco ([@zweckj] - [#108236])
+- Assert default response from conversation trigger ([@emontnemery] - [#108231])
+- Remove deprecated redundant dry and fan modes from `zwave_js` climates ([@jbouwh] - [#108124])
+- Decrease fitbit logging verbosity on connection error ([@MartinHjelmare] - [#108228])
+- Fix state after La Marzocco update ([@zweckj] - [#108244])
+- Improve systemmonitor generic typing ([@cdce8p] - [#108220])
+- Switch for swiss_public_transport to unique_id instead of unique_entry ([@miaucl] - [#107910])
+- Let zigpy decide on default manufacturer id ([@elupus] - [#108257])
+- Remove legacy VacuumEntity base class support ([@jbouwh] - [#108189])
+- Allow multiple config entries in Honeywell ([@mkmer] - [#108263])
+- Remove unused variables in honeywell ([@mkmer] - [#108252])
+- Fix apple_tv IP Address not being updated from discovery ([@bdraco] - [#107611])
+- Fix benign typo in entity registry ([@bdraco] - [#108270])
+- Bump github/codeql-action from 3.23.0 to 3.23.1 (@dependabot - [#108275])
+- Small cleanups to the websocket api handler ([@bdraco] - [#108274])
+- Avoid many replace calls in find_next_time_expression_time ([@bdraco] - [#108273])
+- Add state caching to button entities ([@bdraco] - [#108272])
+- Enable strict typing for config ([@cdce8p] - [#108023])
+- Improve daikin typing ([@cdce8p] - [#108039])
+- Add diagnostics to La Marzocco ([@zweckj] - [#108240])
+- Bump lmcloud to 0.4.35 ([@zweckj] - [#108288])
+- Add tests to flexit_bacnet integration ([@lellky] - [#108291])
+- Add test for failed initialization in Flexit BACnet ([@joostlek] - [#108294])
+- Add coordinator to Flexit bacnet ([@lellky] - [#108295])
+- Don't always set first thread dataset as preferred ([@emontnemery] - [#108278])
+- Small speed up to checking core state ([@bdraco] - [#107845])
+- Add task to install all requirements of an integration ([@edenhaus] - [#108262])
+- Improve august typing (1) ([@cdce8p] - [#108325])
+- Improve august typing (2) ([@cdce8p] - [#108327])
+- Fix remote control codes for jvc_projector ([@SteveEasley] - [#108253])
+- Improve api typing ([@cdce8p] - [#108307])
+- Add iBeacon UUID allowlist ([@chatziko] - [#104790])
+- Improve august typing (3) ([@cdce8p] - [#108329])
+- Improve august typing (4) ([@cdce8p] - [#108331])
+- Improve august typing (5) ([@cdce8p] - [#108332])
+- Improve person typing ([@cdce8p] - [#108218])
+- Adjust require_admin decorator typing ([@cdce8p] - [#108306])
+- Improve ffmpeg* typing ([@cdce8p] - [#108092])
+- Bump plugwise to v0.36.3 ([@bouwew] - [#108347])
+- Bump pyDuotecno to 2024.1.2 ([@Cereal2nd] - [#108314])
+- Bump orjson to 3.9.12 ([@bdraco] - [#108350])
+- Fix homekit_controller test ([@emontnemery] - [#108375])
+- Avoid json default fallback for area registry ([@bdraco] - [#108358])
+- Enable strict typing for bluetooth_adapters ([@cdce8p] - [#108365])
+- Enable strict typing for api ([@cdce8p] - [#108363])
+- Enable strict typing for default_config ([@cdce8p] - [#108366])
+- Enable strict typing for my ([@cdce8p] - [#108369])
+- Enable strict typing for map ([@cdce8p] - [#108368])
+- Enable strict typing for intent_script ([@cdce8p] - [#108367])
+- Avoid json encoder default fallback for APIComponentsView ([@bdraco] - [#108359])
+- Improve ifttt typing ([@cdce8p] - [#108308])
+- Use shorthand attributes for mobile_app sensor platforms ([@bdraco] - [#108353])
+- Add icon to entity registry list for display ([@frenck] - [#108313])
+- Expose TimeoutError during google_travel_time config_flow ([@eifinger] - [#108179])
+- Update dwdwfsapi to 1.0.7 ([@cdce8p] - [#108377])
+- Add binary sensor to MotionMount integration ([@RJPoelstra] - [#107659])
+- Update types packages ([@cdce8p] - [#108371])
+- Add support for MQTT based ecovacs vacuums ([@edenhaus] - [#108167])
+- Add icon translations support ([@frenck] - [#103294])
+- Update coverage to 7.4.0 ([@cdce8p] - [#108370])
+- Improve tplink_lte typing ([@cdce8p] - [#108393])
+- Update boto3 to 1.33.13 and aiobotocore to 2.9.1 ([@cdce8p] - [#108384])
+- Add icon translations to Anova ([@joostlek] - [#108399])
+- Add icon translations to AirQ ([@joostlek] - [#108402])
+- Add icon translations to Aurora ([@joostlek] - [#108410])
+- Add icon translations to August ([@joostlek] - [#108396])
+- Add icon translations to Aussie Broadband ([@joostlek] - [#108409])
+- Add icon translations to awair ([@joostlek] - [#108408])
+- Add icon translations to Airnow ([@joostlek] - [#108403])
+- Add icon translations to AsusWRT ([@joostlek] - [#108397])
+- Add icon translations to Airthings BLE ([@joostlek] - [#108401])
+- Add icon translations to Ambient station ([@joostlek] - [#108400])
+- Add icon translations to Aseko ([@joostlek] - [#108398])
+- Use async_create_clientsession for enigma2 ([@autinerd] - [#108395])
+- Add alarm_control_panel icon translations ([@frenck] - [#108413])
+- Add button icon translations ([@frenck] - [#108415])
+- Add calendar icon translations ([@frenck] - [#108416])
+- Update psutil to 5.9.8 ([@frenck] - [#108421])
+- Add air_quality icon translations ([@frenck] - [#108420])
+- Bump thermopro-ble to 0.8.0 ([@bdraco] - [#108319])
+- Avoid json encoder default fallback when serializing config ([@bdraco] - [#108360])
+- Add light icon translations ([@frenck] - [#108414])
+- Mark flaky fritz update test as xfail ([@frenck] - [#108447])
+- Add climate icon translations ([@frenck] - [#108418])
+- Add date icon translations ([@frenck] - [#108448])
+- Add datetime icon translations ([@frenck] - [#108449])
+- Add sensor icon translations ([@frenck] - [#108450])
+- Add image icon translations ([@frenck] - [#108455])
+- Add number icon translations ([@frenck] - [#108452])
+- Add event icon translations ([@frenck] - [#108453])
+- Add scene icon translations ([@frenck] - [#108456])
+- Add icon translations to AVM FRITZ!Box Call Monitor ([@jrieger] - [#108417])
+- Add camera icon translations ([@frenck] - [#108419])
+- Add lock icon translations ([@frenck] - [#108467])
+- Ensure pre-commit runs hassfest when icons change ([@frenck] - [#108470])
+- Add text icon translations ([@frenck] - [#108457])
+- Add humidifier icon translations ([@frenck] - [#108465])
+- Add geo_location icon translations ([@frenck] - [#108463])
+- Add fan icon translations ([@frenck] - [#108461])
+- Use right state class for volume and timestamp sensor in bthome ([@jpbede] - [#107675])
+- Add siren icon translations ([@frenck] - [#108473])
+- Add icon translations to Tankerkoenig ([@jrieger] - [#108499])
+- Update knx-frontend to 2024.1.20.105944 ([@farmio] - [#108511])
+- Upgrade nibe to 2.7.0 ([@elupus] - [#108507])
+- Add icon translations to HomeWizard Energy ([@frenck] - [#108506])
+- Add icon translations to Plugwise ([@frenck] - [#108498])
+- Add water heater icon translations ([@frenck] - [#108491])
+- Add weather icon translations ([@frenck] - [#108488])
+- Add media player icon translations ([@frenck] - [#108486])
+- Add wake word icon translations ([@frenck] - [#108482])
+- Add update icon translations ([@frenck] - [#108481])
+- Add valve icon translations ([@frenck] - [#108480])
+- Add vacuum icon translations ([@frenck] - [#108479])
+- Bump bthome-ble to 3.5.0 ([@Ernst79] - [#108475])
+- Add tts icon translations ([@frenck] - [#108476])
+- Add todo icon translations ([@frenck] - [#108477])
+- Add select icon translations ([@frenck] - [#108472])
+- Add stt icon translations ([@frenck] - [#108474])
+- Add remote icon translations ([@frenck] - [#108469])
+- Add lawn mower icon translations ([@frenck] - [#108466])
+- Add cover icon translations ([@frenck] - [#108460])
+- Fix hassfest icon schema for service only ([@frenck] - [#108494])
+- Remove unused TypeVar from config.py ([@emontnemery] - [#108495])
+- Add time icon translations ([@frenck] - [#108458])
+- Change calendar icon based on state ([@jrieger] - [#108451])
+- Add sun icon translations ([@jrieger] - [#108462])
+- Add nut icon translations ([@jrieger] - [#108471])
+- Remove OrderedDict from auth_store ([@bdraco] - [#108546])
+- Add icon translations for Pegelonline ([@mib1185] - [#108554])
+- Always load auth storage at startup ([@bdraco] - [#108543])
+- Ensure icon translations aren't the same as the default ([@frenck] - [#108568])
+- Ensure button platform does not restore unavailable state ([@bdraco] - [#108316])
+- Add sensors to the flexit_bacnet integration ([@lellky] - [#108297])
+- Add binary sensors to flexit_bacnet integration ([@lellky] - [#108571])
+- Add icon translations for lamarzocco ([@zweckj] - [#108569])
+- Add icon translation to Jellyfin ([@jrieger] - [#108559])
+- Add icon translations to Roborock ([@jrieger] - [#108508])
+- Add icon translations to DWD Weather Warnings ([@jrieger] - [#108501])
+- Make remaining WLED entities translatable ([@jpbede] - [#108534])
+- Add unique id to geonetnz_volcano sensors ([@exxamalte] - [#108556])
+- Icon translation for imap mail count sensor ([@jbouwh] - [#108576])
+- Add authentication to tplink integration for newer devices ([@sdb9696] - [#105143])
+- Fix numbered list in github config flow ([@emontnemery] - [#108587])
+- Add bthome event platform ([@bdraco] - [#108268])
+- Add missing property in flexit bacnet test ([@lellky] - [#108606])
+- Add icon translations to co2signal ([@jpbede] - [#108611])
+- Use more shorthand attributes in tplink ([@bdraco] - [#108284])
+- Add icon translations to Withings ([@joostlek] - [#108385])
+- Tweak evohome code quality ([@zxdavb] - [#107596])
+- Fix FlowHandler show progress ([@emontnemery] - [#108586])
+- Send recurrence data when updating a task in todoist ([@boralyl] - [#108269])
+- Update August diagnostics.py to redact contentToken ([@codyc1515] - [#108626])
+- Significantly reduce websocket api connection auth phase latency ([@bdraco] - [#108564])
+- Speed up run time of admin services by using HassJob ([@bdraco] - [#108623])
+- Avoid recreating persistent notification update function when subscribing ([@bdraco] - [#108624])
+- Small performance improvements to handing revoke token callbacks ([@bdraco] - [#108625])
+- Refactor async_listen_once to remove nonlocal ([@bdraco] - [#108627])
+- Avoid string decode/encode round trip in websocket_api get_services ([@bdraco] - [#108632])
+- Small cleanups to async_get_all_descriptions ([@bdraco] - [#108633])
+- Bump habluetooth to 2.3.1 ([@bdraco] - [#108628])
+- Small cleanup to zone async_active_zone ([@bdraco] - [#108629])
+- Fix unifi test_tracked_clients test ([@bdraco] - [#108638])
+- Remove numbering from GitHub progress step to not deal with styling of list entries ([@ludeeus] - [#108639])
+- Remove obsolete services.yaml and translations from WLED ([@jpbede] - [#108605])
+- Add icon translations to WLED ([@jpbede] - [#108604])
+- Add icon translations to Abode ([@joostlek] - [#108407])
+- Bump songpal dependency to 0.16.1 ([@rytilahti] - [#108637])
+- Use default icon in Agent DVR ([@joostlek] - [#108405])
+- Add icon translations to Adguard ([@joostlek] - [#108406])
+- Reduce lock contention when all translations are already cached ([@bdraco] - [#108634])
+- Update python-slugify to 8.0.1 ([@cdce8p] - [#108373])
+- Add binary_sensor to Ecovacs ([@edenhaus] - [#108544])
+- Update Pillow to 10.2.0 ([@frenck] - [#108422])
+- Convert AreaEntry to dataclass ([@emontnemery] - [#108648])
+- Bump asyncsleepiq to 1.5.2 ([@jmwaldrip] - [#108431])
+- Add device to Lutron ([@joostlek] - [#107467])
+- Add cloud tts entity ([@MartinHjelmare] - [#108293])
+- Add helper function to update and reload config entry to config flow ([@jpbede] - [#108034])
+- Cleanup Discovergy config flow ([@jpbede] - [#108381])
+- Update iOS configuration adding Action toggles to show in CarPlay and Watch ([@bgoncal] - [#108355])
+- Move core fundamental components into bootstrap ([@frenck] - [#105560])
+- Prevent runtime issue during entity registration in coordinator of AVM Fritz!Tools ([@mib1185] - [#108667])
+- Use snapshot testing in Airly sensor ([@joostlek] - [#108608])
+- Add icon translations to Airly ([@joostlek] - [#108404])
+- Add time to charge sensor to Tessie ([@Bre77] - [#108342])
+- Fix flaky sensibo test ([@jpbede] - [#108669])
+- Use new config entry update/abort helper in esphome ([@bdraco] - [#108672])
+- Use new config entry update/abort helper in august ([@bdraco] - [#108673])
+- Use new config entry update/abort helper in powerwall ([@bdraco] - [#108674])
+- Use new config entry update/abort helper in bthome ([@bdraco] - [#108676])
+- Use new config entry update/abort helper in xiaomi_ble ([@bdraco] - [#108677])
+- Use new config entry update/abort helper in yalexs_ble ([@bdraco] - [#108675])
+- Use new config entry update/abort helper in isy994 ([@bdraco] - [#108678])
+- Use new config entry update/abort helper in synology_dsm ([@bdraco] - [#108682])
+- Use new config entry update/abort helper in enphase_envoy ([@bdraco] - [#108679])
+- Use new config entry update/abort helper in shelly ([@bdraco] - [#108684])
+- Use new config entry update/abort helper in samsungtv ([@bdraco] - [#108683])
+- Use new config entry update/abort helper in onvif ([@bdraco] - [#108680])
+- Extend config entry update/abort helper to also update unique id ([@jpbede] - [#108681])
+- Use new config entry update/abort helper in enphase-envoy (part 2) ([@bdraco] - [#108689])
+- Use new config entry update/abort helper in apple_tv ([@bdraco] - [#108688])
+- Use new config entry update/abort helper in sense ([@bdraco] - [#108691])
+- Handle tplink credential change at run time ([@bdraco] - [#108692])
+- Refactor service enumeration methods to better match existing use cases ([@bdraco] - [#108671])
+- Use new config entry update/abort helper in bond ([@bdraco] - [#108690])
+- Add zeroconf to TechnoVE integration ([@Moustachauve] - [#108340])
+- Add OUI 5C628B to tplink ([@bdraco] - [#108699])
+- Bump habluetooth to 2.4.0 ([@bdraco] - [#108695])
+- Convert getting and removing access tokens to normal functions ([@bdraco] - [#108670])
+- Store area registry entries in a UserDict ([@emontnemery] - [#108656])
+- Group sensor calculate attributes ([@gjohansson-ST] - [#106972])
+- Fix for justnimbus integration ([@kvanzuijlen] - [#99212])
+- Scrub internal data for newer tplink devices ([@rytilahti] - [#108704])
+- Add Homeassistant Analytics Insights integration ([@joostlek] - [#107634])
+- Add sensor platform to Proximity ([@mib1185] - [#101497])
+- Add config flow for Time & Date ([@gjohansson-ST] - [#104183])
+- Use new config entry update/abort handler in co2signal ([@jpbede] - [#108715])
+- Bump python-homeassistant-analytics to 0.6.0 ([@joostlek] - [#108713])
+- Add ZHA entities for snzb06p ([@peterkh] - [#107379])
+- Add airtouch5 ([@danzel] - [#98136])
+- Add set_conversation_response script action ([@emontnemery] - [#108233])
+- Return PRESET_NONE in Honeywell ([@mkmer] - [#108599])
+- Remove home_plus_control and mark as virtual integration supported by Netatmo ([@jpbede] - [#107587])
+- Bump AIOSomecomort to 0.0.25 ([@mkmer] - [#107815])
+- Use new config entry update/abort handler in Honeywell ([@mkmer] - [#108726])
+- Improve tests of script trace ([@emontnemery] - [#108717])
+- Bump pymodbus to v2.6.3 ([@janiversen] - [#108736])
+- Add sensors to Ecovacs ([@edenhaus] - [#108686])
+- Improve vizio typing ([@cdce8p] - [#108042])
+- Get modbus coverage back to 100% ([@janiversen] - [#108734])
+- Randomize thread network names ([@emontnemery] - [#108302])
+- Fix intent loading and incorporate unmatched entities more ([@synesthesiam] - [#108423])
+- Pause Wyoming satellite on mute ([@synesthesiam] - [#108322])
+- Add 3C52A1 oui to tplink for tapo l5 devices ([@bdraco] - [#108750])
+- Add translation placeholders for TPLink power strip ([@joostlek] - [#108710])
+- Bumb python-homewizard-energy to 4.2.1 ([@DCSBL] - [#108738])
+- Use fixed state icon for climate domain ([@piitaya] - [#108723])
+- Add fan attributes icon translations ([@piitaya] - [#108722])
+- Add humidifier attributes icon translations ([@piitaya] - [#108718])
+- Add LeaOne integration ([@bdraco] - [#108617])
+- Bump lupupy to 0.3.2 ([@suaveolent] - [#108756])
+- Add more device info to foscam camera ([@krmarien] - [#108177])
+- Handle IP address changes properly for tplink ([@sdb9696] - [#108731])
+- Add bang_olufsen integration ([@mj23000] - [#93462])
+- Parse template result in async_render_with_possible_json_value ([@danieldotnl] - [#99670])
+- Bump py-switchbot-api to 2.0.0 ([@jklausa] - [#108721])
+- Bump comments in light indicating backwards compatibility plan ([@emontnemery] - [#108770])
+- Add ZHA metering summation received sensor ([@jeverley] - [#107576])
+- Fix race when deleting an automation ([@emontnemery] - [#108772])
+- Fix light color mode in fritzbox ([@emontnemery] - [#108758])
+- Fix light color mode in tplink ([@emontnemery] - [#108760])
+- Fix light color mode in advantage_air ([@emontnemery] - [#108757])
+- Fix light color mode in netatmo ([@emontnemery] - [#108759])
+- Improve tests of script trace ([@emontnemery] - [#108733])
+- Adjust color_mode checks when lights render effects ([@emontnemery] - [#108737])
+- Add invert option to switch_as_x ([@emontnemery] - [#107535])
+- Fix light color mode in tradfri ([@emontnemery] - [#108761])
+- Add Ecovacs select entities ([@edenhaus] - [#108766])
+- Stabilize alexa discovery ([@jbouwh] - [#108787])
+- Add Shelly CoAP port to default container port ([@chemelli74] - [#108016])
+- Add icon to areas ([@emontnemery] - [#108650])
+- Bump python-roborock to 39.1 ([@Lash-L] - [#108751])
+- Fix changed_variables in automation and script traces ([@emontnemery] - [#108788])
+- Complete device tracker entity tests ([@MartinHjelmare] - [#108768])
+- Avoid copying translations for single components ([@bdraco] - [#108645])
+- Bump area registry storage minor version to 4 ([@jpbede] - [#108798])
+- Set right icon for set_humidity climate service ([@piitaya] - [#108801])
+- Add write_registers support for Fan Mode in modbus ([@crug80] - [#108053])
+- Bump aioshelly to 8.0.1 ([@bdraco] - [#108805])
+- Add super chlorination services to screenlogic ([@dieselrabbit] - [#108048])
+- Add Ecovacs diagnostics ([@edenhaus] - [#108791])
+- Add expiration of unused refresh tokens ([@mib1185] - [#108428])
+- Bump thermopro-ble to 0.9.0 ([@h3ss] - [#108820])
+- Fix ESPHome not fully removing entities when entity info changes ([@bdraco] - [#108823])
+- Convert http auth internals to normal functions ([@bdraco] - [#108815])
+- Add basic tests for powerview scenes ([@bdraco] - [#108818])
+- Fix lights reporting unsupported colormodes in deCONZ ([@Kane610] - [#108812])
+- Update pytedee_async to 0.2.12 ([@zweckj] - [#108800])
+- Fix matter color modes ([@MartinHjelmare] - [#108804])
+- Fix light color mode in zwave_js ([@emontnemery] - [#108783])
+- Do not try to cleanup invalid config entries without an AccessoryPairingID ([@bdraco] - [#108830])
+- Bump dorny/paths-filter from 2.11.1 to 2.12.0 (@dependabot - [#108826])
+- Bump python-kasa to 0.6.1 ([@rytilahti] - [#108831])
+- Add 'last_reset' for 'total' state_class template sensor ([@RoboMagus] - [#100806])
+- Add support for externally connected utility devices in HomeWizard ([@DCSBL] - [#100684])
+- Update Lutron in callback ([@joostlek] - [#108779])
+- Add Teslemetry Integration ([@Bre77] - [#108147])
+- Add Huum integration ([@frwickst] - [#106420])
+- Use feed name as entity name in GeoJSON ([@codyc1515] - [#108753])
+- Use entity translations placeholders in HomeWizard ([@DCSBL] - [#108741])
+- Make device tracker latitude and longitude optional ([@MartinHjelmare] - [#108838])
+- Use Zigpy definition objects in ZHA cluster handlers ([@dmulcahey] - [#108383])
+- Bump blinkpy to 0.22.6 ([@mkmer] - [#108727])
+- Bump pyhuum to 0.7.10 ([@frwickst] - [#108853])
+- Address late review on auth ([@mib1185] - [#108852])
+- Add ConfigFlow for Lupusec ([@suaveolent] - [#108740])
+- Add utility meter option for the sensor to always be available ([@dougiteixeira] - [#103481])
+- Filter only utility_meter select entities in reset service ([@dgomes] - [#108855])
+- Add switch to flexit bacnet integration ([@lellky] - [#108866])
+- Fix ESPHome color modes for older firmwares ([@bdraco] - [#108870])
+- Bump aiocomelit to 0.8.2 ([@chemelli74] - [#108862])
+- Add binary sensor platform to JVC Projector ([@msavazzi] - [#108668])
+- Apply consistent naming to ZHA cluster handler implementations ([@dmulcahey] - [#108851])
+- Small cleanup to entity platform translation fetching ([@bdraco] - [#108890])
+- Speed up security filter middleware ([@bdraco] - [#108703])
+- Small speed up to listing config entries in the websocket api ([@bdraco] - [#108892])
+- Remove "max_current" from TechnoVE sensors ([@Moustachauve] - [#108898])
+- Add entity registry test to Withings ([@joostlek] - [#108900])
+- Add webhook support to tedee integration ([@zweckj] - [#106846])
+- Use unknown color_mode for MQTT json lights if color mode is not set ([@jbouwh] - [#108909])
+- Fix light color mode in advantage_air ([@emontnemery] - [#108875])
+- Deprecate legacy Proximity entity ([@mib1185] - [#108730])
+- Add Ecovacs image entities ([@edenhaus] - [#108924])
+- Switch imap to use async_update_reload_and_abort helper ([@bdraco] - [#108935])
+- Switch unifiprotect to use async_update_reload_and_abort helper ([@bdraco] - [#108934])
+- Convert referenced registry functions to use cached_property ([@bdraco] - [#108895])
+- Improved Assist debug ([@synesthesiam] - [#108889])
+- Refactor logbook helpers to reduce splits and lookups ([@bdraco] - [#108933])
+- Add more Thread vendor to brand mappings ([@agners] - [#108899])
+- Matter sensors for air quality measurements ([@matt7aylor] - [#108173])
+- Add comment to explain not using the core API in MQTT client ([@jbouwh] - [#108942])
+- Reorganize ZHA device availability code ([@dmulcahey] - [#108856])
+- Add snapshot testing to Tessie ([@Bre77] - [#108346])
+- Replace modbus number_validator by HA standard ([@janiversen] - [#108939])
+- Add model check to ZHA Sonoff manufacturer specific cluster handler ([@dmulcahey] - [#108947])
+- Use version property in Blink ([@mkmer] - [#108911])
+- Bump pyenphase to 1.19.0 ([@catsmanac] - [#108951])
+- Bump cryptography to 42.0.1 and pyOpenSSL to 24.0.0 ([@bdraco] - [#108956])
+- Add options flow to Analytics Insights ([@joostlek] - [#108716])
+- Separate ecobee start and end date/times for create_vacation service ([@myztillx] - [#107255])
+- Bump pytrafikverket to 0.3.10 ([@gjohansson-ST] - [#108984])
+- Fix error when passing a whole number to location selector ([@karwosts] - [#108952])
+- Add enum sensor to Vogel's MotionMount integration ([@RJPoelstra] - [#108643])
+- Add device info to lupusec ([@suaveolent] - [#108910])
+- Add clima support to Comelit integration ([@chemelli74] - [#108858])
+- Bump tesla-fleet-api to 0.2.3 ([@Bre77] - [#108992])
+- Added type information to lupusec ([@suaveolent] - [#109004])
+- Improve display of errors with no message in script trace ([@emontnemery] - [#108735])
+- Fix statuses for ZHA attribute reporting configuration event ([@dmulcahey] - [#108532])
+- Add new virtual integration for opower City of Austin Utilities provider ([@max2697] - [#108337])
+- Update pylutron-caseta to 0.19.0 ([@eclair4151] - [#108987])
+- Remove extra confirmation step in tplink authenticated discovery flow ([@bdraco] - [#109016])
+- Bump dorny/paths-filter from 2.12.0 to 3.0.0 (@dependabot - [#108894])
+- Add translation placeholder to Hue ([@joostlek] - [#108848])
+- Add tests to Teslemetry ([@Bre77] - [#108884])
+- Remove follow symlinks support from CachingStaticResource ([@bdraco] - [#109015])
+- Separate fixture in Sensibo ([@gjohansson-ST] - [#109000])
+- Add phase entities to Enphase Envoy ([@catsmanac] - [#108725])
+- Bump pytest-asyncio to 0.23.4 ([@joostlek] - [#109027])
+- Bump python-homewizard-energy to v4.2.2 ([@joostlek] - [#109038])
+- Add pylint plugin to check if coordinator is placed in its own module ([@jpbede] - [#108174])
+- Update attributes in Entity.__init__ in matter ([@emontnemery] - [#108877])
+- Move asyncio lock in Teslemetry ([@Bre77] - [#109044])
+- Add binary sensors to TechnoVE integration ([@Moustachauve] - [#108938])
+- Bump github/codeql-action from 3.23.1 to 3.23.2 (@dependabot - [#109039])
+- Fix Permobil eula error ([@IsakNyberg] - [#107290])
+- Simplify HomeWizard sensor names ([@DCSBL] - [#108854])
+- Remove deprecated event_loop fixtures in tests ([@cdce8p] - [#109048])
+- Avoid re-encoding the hassio command URL each request ([@bdraco] - [#109031])
+- Set hassio api json encoding to avoid looking it up every request ([@bdraco] - [#109032])
+- Add new sensors exposed by HomeWizard kWh meter ([@DCSBL] - [#108850])
+- Add bring integration ([@miaucl] - [#108027])
+- Bump aio-geojson-nsw-rfs-incidents to 0.7 ([@exxamalte] - [#108885])
+- Code quality for Shelly tests ([@chemelli74] - [#109054])
+- Allow delete_all_refresh_tokens to delete a specific token_type ([@karwosts] - [#106119])
+- Fix zwave_js set_config_parameter WS api regression ([@kpine] - [#109042])
+- Add default parameter to as_datetime template function/filter ([@TheFes] - [#107229])
+- Use constants instead of literals for api ([@jpbede] - [#105955])
+- Use unique artifact names for db jobs [ci] ([@cdce8p] - [#108653])
+- Allow system and helper integrations to provide entity_component icons ([@piitaya] - [#109045])
+- Add discovery support for the 2023 pro check model to mopkea ([@bdraco] - [#109033])
+- Prepare Analytics insights for more sensors ([@joostlek] - [#108976])
+- Raise ValueError when `last_reset` set and not `total` state class ([@jpbede] - [#108391])
+- Reject unifi uptime sensor updates if time delta is small ([@BHSPitMonkey] - [#108464])
+- Don't check SSL certificate retrieving webos image ([@emichael] - [#104014])
+- Add lutron fan entity ([@wilburCforce] - [#107402])
+- Bump python-kasa to 0.6.2 ([@rytilahti] - [#109064])
+- Try to reconnect to UniFi on 403 ([@Kane610] - [#109067])
+- Fix light color mode in govee_light_local ([@emontnemery] - [#108762])
+- Bump deebot-client to 5.0.0 ([@edenhaus] - [#109066])
+- Use right initial attribute value for demo climate ([@piitaya] - [#108719])
+- Add doors and charge cable binary sensors to Tessie ([@Bre77] - [#107172])
+- Bump tesla-powerwall to 0.5.1 ([@bdraco] - [#109069])
+- Extract foscam base entity for reuse ([@krmarien] - [#108893])
+- Update apprise to 1.7.2 ([@frenck] - [#109071])
+- Update colorlog to 6.8.2 ([@frenck] - [#109072])
+- Bump python-matter-server to version 5.3.0 ([@marcelveldt] - [#109068])
+- Fix duplicate Windy values showing in automations state selector ([@codyc1515] - [#108062])
+- Code quality for Comelit tests ([@chemelli74] - [#109077])
+- Don't remove zwave_js devices automatically ([@raman325] - [#98145])
+- Update calendar tests to use mock entities instead of demo platform ([@allenporter] - [#105317])
+- Bump/flush mypy cache ([@frenck] - [#109101])
+- Bump simplisafe-python to 2024.01.0 ([@peebles] - [#109091])
+- Code quality for Shelly integration ([@chemelli74] - [#109061])
+- Add support for ignoring zwave_js device config file changes ([@raman325] - [#108990])
+- Add configure option to Vodafone Station for consider home ([@chemelli74] - [#108594])
+- Fix tessie tests ([@Bre77] - [#109113])
+- Add person icon translations ([@piitaya] - [#109106])
+- Update attrs to 23.2.0 ([@cdce8p] - [#109115])
+- Improve invalid error messages in the config flows ([@edenhaus] - [#108075])
+- Add device tracker icon translations ([@piitaya] - [#109109])
+- Remove erroneous reference to Google from Calendar integration ([@codyc1515] - [#109089])
+- Intents package combines sentences/responses per language ([@synesthesiam] - [#109079])
+- Bump pytechnove to 1.2.1 ([@Moustachauve] - [#109098])
+- Clean up Fritz options flow ([@chemelli74] - [#109111])
+- Bump python-matter-server to 5.3.1 ([@marcelveldt] - [#109118])
+- Add script icon translations ([@piitaya] - [#109107])
+- Add input boolean icon translations ([@piitaya] - [#109108])
+- Add missing status's to Nut ([@cbrherms] - [#109085])
+- Update coverage to 7.4.1 ([@cdce8p] - [#109116])
+- Clean up ZHA cover entity and add support for inverting cover entities derived from the window covering cluster ([@dmulcahey] - [#108238])
+- Fix readme images ([@xMohamd] - [#108767])
+- Flow rate unit conversions and device class ([@elupus] - [#106077])
+- Add TURN_OFF and TURN_ON to ClimateEntityFeature ([@gjohansson-ST] - [#101673])
+- Add TURN_ON/OFF ClimateEntityFeature for Shelly ([@gjohansson-ST] - [#108967])
+- Update climate snapshots to fix CI ([@edenhaus] - [#109141])
+- Add support for custom integrations in Analytics Insights ([@joostlek] - [#109110])
+- Add TURN_ON/OFF ClimateEntityFeature for smartthings ([@gjohansson-ST] - [#108979])
+- Add TURN_ON/OFF ClimateEntityFeature for ZHA ([@gjohansson-ST] - [#108978])
+- Add TURN_ON/OFF ClimateEntityFeature for Balboa ([@gjohansson-ST] - [#109139])
+- Add TURN_ON/OFF ClimateEntityFeature for Vicare ([@gjohansson-ST] - [#109135])
+- Add TURN_ON/OFF ClimateEntityFeature for TOLO Sauna ([@gjohansson-ST] - [#108965])
+- Add TURN_ON/OFF ClimateEntityFeature for Overkiz ([@gjohansson-ST] - [#109132])
+- Add TURN_ON/OFF ClimateEntityFeature for Sensibo ([@gjohansson-ST] - [#108962])
+- Add TURN_ON/OFF ClimateEntityFeature for IntesisHome ([@gjohansson-ST] - [#109134])
+- Add TURN_ON/OFF ClimateEntityFeature for Fritzbox ([@gjohansson-ST] - [#108964])
+- Add TURN_ON/OFF ClimateEntityFeature for Adax ([@gjohansson-ST] - [#108966])
+- Add TURN_ON/OFF ClimateEntityFeature for Vera ([@gjohansson-ST] - [#108969])
+- Add TURN_ON/OFF ClimateEntityFeature for Nexia ([@gjohansson-ST] - [#108970])
+- Add TURN_ON/OFF ClimateEntityFeature for Advantage Air ([@gjohansson-ST] - [#108971])
+- Add TURN_ON/OFF ClimateEntityFeature for CoolMasterNet ([@gjohansson-ST] - [#108972])
+- Add TURN_ON/OFF ClimateEntityFeature for Netatmo ([@gjohansson-ST] - [#108973])
+- Add TURN_ON/OFF ClimateEntityFeature for Mill ([@gjohansson-ST] - [#108977])
+- Update Ecovacs binary sensor keys ([@edenhaus] - [#109145])
+- Add check for valid initial_suggested_unit ([@edenhaus] - [#108902])
+- Set TURN_ON and TURN_OFF feature on MQTT climate entities ([@jbouwh] - [#109146])
+- Update reload icons for automation and person service ([@piitaya] - [#109147])
+- Add event entity to Xiaomi-BLE integration ([@Ernst79] - [#108811])
+- Add TURN_ON/OFF ClimateEntityFeature for HomeKit Device ([@gjohansson-ST] - [#109137])
+- Simplify MQTT device triggers in automations ([@jbouwh] - [#108309])
+- Speed up listing issues via the repairs websocket api ([@bdraco] - [#109149])
+- Add missing ZHA metering device types ([@jeverley] - [#109126])
+- Filter ZHA light group color modes ([@puddly] - [#108861])
+- Remove Shelly RSSI sensor if Wi-FI is not configured ([@chemelli74] - [#108390])
+- Create an issue when database backups fail because the system runs out of resources ([@bdraco] - [#109020])
+- Fix precipitation typo in icons ([@karwosts] - [#109156])
+- Fix ZHA cover inversion handling missing attributes ([@puddly] - [#109151])
+- Handle deprecated cloud tts voice ([@MartinHjelmare] - [#109124])
+- Add a repair issue for Shelly devices with unsupported firmware ([@chemelli74] - [#109076])
+- Bump zha-quirks to 0.0.110 ([@TheJulianJES] - [#109161])
+- Add Nextcloud update entity ([@escoand] - [#106690])
+- Add DurationConverter ([@edenhaus] - [#108865])
+- Fix ZHA handling of power factor ElectricalMeasurement attribute sensor ([@jeverley] - [#107641])
+- Bump regenmaschine to 2024.01.0 ([@bdraco] - [#109157])
+- Convert gather calls into TaskGroups ([@bubonicbob] - [#109010])
+- Fix "deprecated" typo in ZHA smartenergy comment ([@TheJulianJES] - [#109173])
+- Fix Ecovacs duration sensors ([@edenhaus] - [#108868])
+- Store preferred border agent extended address for each thread dataset ([@emontnemery] - [#109065])
+- Bump python-matter-server to 5.4.0 ([@marcelveldt] - [#109178])
+- Fix schema validation for product_id in picnic integration ([@codesalatdev] - [#109083])
+- Bumb python-homewizard-energy to 4.3.0 ([@DCSBL] - [#109131])
+- Add alexa PowerController on enabled features for climate entities ([@jbouwh] - [#109174])
+- Migrate Tuya integration to new sharing SDK ([@frenck] - [#109155])
+- Add ZHA ZCL thermostat entities ([@Caius-Bonus] - [#106563])
+- Add OnOff trait for climate entities in google_assistant ([@jbouwh] - [#109160])
+- Add generic typing for powerwall sensors ([@bubonicbob] - [#109008])
+- Add update platform to ZHA (bumps zigpy to 0.61.0) ([@dmulcahey] - [#107612])
+- Add additional entities for the Aqara E1 curtain motor to ZHA ([@dmulcahey] - [#108243])
+- Add icon and state translations for zwave_js sensors ([@raman325] - [#109186])
+- Change the suggested energy units to kWh ([@bubonicbob] - [#109184])
+- allow songcast source to be stopped and played ([@bazwilliams] - [#109180])
+- Ensure bluetooth auto recovery does not run in tests ([@bdraco] - [#109163])
+- Remove unused constants from QNAP ([@jrieger] - [#109152])
+- Bump aioelectricitymaps to 0.2.0 ([@jpbede] - [#109150])
+- Intellifire: fix incorrect name attribute in debug log when setting flame height ([@julienfreche] - [#109168])
+- Add individual battery banks as devices ([@bubonicbob] - [#108339])
+- Add last seen sensor for zwave_js devices ([@raman325] - [#107345])
+- Add log to show last received UniFi websocket message ([@Kane610] - [#109167])
+- Add Ecovacs button entities ([@edenhaus] - [#109189])
+- Use constants in Picnic service functions ([@codesalatdev] - [#109170])
+- Add test case for binary sensors in ViCare ([@CFenner] - [#108769])
+- Add state_class to Kostal plenticore sensors ([@stegm] - [#108096])
+- Add coordinator to ring integration ([@sdb9696] - [#107088])
+- Add romy vacuum integration ([@xeniter] - [#93750])
+- Add session energy sensor for Tesla Wall Connector ([@mandarons] - [#102635])
+- Minor fixes to A. O. Smith integration ([@bdr99] - [#107421])
+- Migrate QNAP to has entity name ([@jrieger] - [#107232])
+- Add configflow to Proximity integration ([@mib1185] - [#103894])
+- Use home/sleep preset in ViCare climate entity ([@CFenner] - [#105636])
+- Make google_assistant report_state test timezone aware ([@jbouwh] - [#109200])
+- Apply late review comments for Comelit climate ([@chemelli74] - [#109114])
+- Add Qnap icon translations ([@jrieger] - [#108484])
+- Code quality for Vodafone tests ([@chemelli74] - [#109078])
+- Update Ecovacs config_flow to support self-hosted instances ([@edenhaus] - [#108944])
+- Make flexit bacnet switch more generic and prepare for more switches ([@lellky] - [#109154])
+- Add fuelcell gas consumption sensors to ViCare integration ([@CFenner] - [#105461])
+- Set entity category for QNAP sensors ([@jrieger] - [#109207])
+- Add Matter Websocket commands for node actions and diagnostics ([@marcelveldt] - [#109127])
+- Add Ecovacs number entities ([@edenhaus] - [#109209])
+- Add Elvia integration ([@ludeeus] - [#107405])
+- Add Traccar server integration ([@ludeeus] - [#109002])
+- Move tankerkoenig to new aiotankerkoenig package ([@jpbede] - [#108913])
+- Create issues for reauth flows ([@emontnemery] - [#109105])
+- Fix Huisbaasje negative periodic gas readings (#103457) ([@JeroenvIS] - [#108090])
+- Support alternative modelid for LIDL doorbell in deCONZ device triggers ([@Kane610] - [#107937])
+- Add Ecovacs switch entities ([@edenhaus] - [#109216])
+- Improve enabling of Google local fulfillment ([@emontnemery] - [#109192])
+- Modify climate turn_on/off backwards compatibility check ([@gjohansson-ST] - [#109195])
+- Add readable state for tesla wall connector ([@piitaya] - [#107909])
+- Rename Traccar to Traccar Client ([@ludeeus] - [#109217])
+- Use EnumSensor instead of custom formatter() in ZHA Sensor entities ([@Caius-Bonus] - [#109218])
+- Add ZHA support for Bosch Twinguard and siren install QR codes ([@idstein] - [#107460])
+- Add brands definition for Traccar ([@ludeeus] - [#109219])
+- Import Traccar YAML configuration to Traccar Server ([@ludeeus] - [#109226])
+- Add config flow to GPSD ([@jrieger] - [#106196])
+- Add qr code selector ([@bramkragten] - [#109214])
+- Fix ring chimes data update ([@sdb9696] - [#109220])
+- Update frontend to 20240131.0 ([@bramkragten] - [#109231])
+- Add test for integration migrated in climate ([@gjohansson-ST] - [#109224])
+- Suppress log warnings when a sensor group has non numeric members ([@mill1000] - [#102828])
+- Add reauth flow to kitchen sink ([@emontnemery] - [#109202])
+- Sort script actions ([@emontnemery] - [#108247])
+- Add translations to GPSd ([@jrieger] - [#108600])
+- Update rokuecp to 0.19 ([@ctalkington] - [#109100])
+- Fix time to arrival to timestamp in Tessie ([@Bre77] - [#109172])
+- Make zwave_js last seen sensor enabled by default ([@raman325] - [#109191])
+- Pass verify_ssl to created session in Omada ([@joostlek] - [#109212])
+- Bump govee-ble to 0.31.0 ([@bdraco] - [#109235])
+- Remove deprecation warnings for zwave_js climate TURN_ON/TURN_OFF features ([@raman325] - [#109242])
+- Apply review comments on proximity ([@mib1185] - [#109249])
+- Fix Xiaomi-ble automations for multiple button devices ([@Ernst79] - [#109251])
+- Fix ZHA update entity not updating installed version ([@TheJulianJES] - [#109260])
+- Restore support for packages being installed from urls with fragments ([@bdraco] - [#109267])
+- Fix app name sorting in apple_tv ([@bdraco] - [#109274])
+- Address late review of Tankerkoenig package move ([@jpbede] - [#109277])
+- Fix dalkin climate warnings ([@jbouwh] - [#109279])
+- bugfix: name missing in getLogger ([@llluis] - [#109282])
+- Fix two icon translations for La Marzocco ([@zweckj] - [#109284])
+- Remove quality scale platinum from daikin integration ([@jbouwh] - [#109292])
+- Fix device class repairs issues UOM placeholders in Group ([@frenck] - [#109294])
+- Bump hass-nabucasa from 0.75.1 to 0.76.0 ([@ludeeus] - [#109296])
+- Add translations for zwave_js entities and services ([@raman325] - [#109188])
+- Add climate on/off feature to Tessie ([@Bre77] - [#109239])
+- Add climate turn on/off feature to Teslemetry ([@Bre77] - [#109241])
+- Don't log warning for core integrations on new feature flags in Climate ([@gjohansson-ST] - [#109250])
+- Migrate to new intent error response keys ([@synesthesiam] - [#109269])
+- Remove battery charge sensor from powerwall ([@bubonicbob] - [#109271])
+- Bump airthings-ble to 0.6.1 ([@LaStrada] - [#109302])
+- Verify Ecovacs mqtt config ([@edenhaus] - [#109306])
+- Bump pytedee_async to 0.2.13 ([@zweckj] - [#109307])
+- Do not use a battery device class for Shelly analog input sensor ([@bieniu] - [#109311])
+- Fix race in loading service descriptions ([@bdraco] - [#109316])
+- Move default response out of sentence trigger registration and into agent ([@synesthesiam] - [#109317])
+- Update Home Assistant base image to 2024.02.0 ([@frenck] - [#109329])
+- Fix custom attribute lookup in Traccar Server ([@ludeeus] - [#109331])
+- Add device class to tesla wall connector session energy ([@piitaya] - [#109333])
+- Follow up swiss_public_transport migration fix of unique ids ([@miaucl] - [#107873])
+- Add independent session in honeywell ([@mkmer] - [#108435])
+- Add migrated ClimateEntityFeature for Atag ([@gjohansson-ST] - [#108961])
+- Add TURN_ON/OFF ClimateEntityFeature for Fibaro ([@gjohansson-ST] - [#108963])
+- Add TURN_ON/OFF ClimateEntityFeature for Matter ([@gjohansson-ST] - [#108974])
+- Add TURN_ON/OFF ClimateEntityFeature for Modbus ([@gjohansson-ST] - [#109133])
+- Add migrated ClimateEntityFeature for SwitchBot Cloud ([@gjohansson-ST] - [#109136])
+- Add TURN_ON/OFF ClimateEntityFeature for KNX ([@gjohansson-ST] - [#109138])
+- Add migrated ClimateEntityFeature for Nibe Heat Pump ([@gjohansson-ST] - [#109140])
+- Fix stale camera error message in img_util ([@bdraco] - [#109325])
+- Correct modbus commit validation, too strict on integers ([@janiversen] - [#109338])
+- Add sensibo migrated ClimateEntityFeatures ([@gjohansson-ST] - [#109340])
+- Add Adax migrated ClimateEntityFeatures ([@gjohansson-ST] - [#109341])
+- Ensure the purge entities service cleans up the states_meta table ([@bdraco] - [#109344])
+- Missing template helper translation keys ([@karwosts] - [#109347])
+- Update cryptography to 42.0.2 ([@frenck] - [#109359])
+- Bump deebot_client to 5.1.0 ([@edenhaus] - [#109360])
+- Specify end_time when importing Elvia data to deal with drift ([@ludeeus] - [#109361])
+- Remove suggested area from Verisure ([@frenck] - [#109364])
+- Improve Ecovacs naming ([@edenhaus] - [#109372])
+- Update frontend to 20240202.0 ([@bramkragten] - [#109388])
+- Ignore gateway devices in ViCare integration ([@CFenner] - [#106477])
+- Do not suggest area for portable Sonos speakers ([@jjlawren] - [#109350])
+- Update elgato to 5.1.2 ([@frenck] - [#109391])
+- Add diagnostics to proximity ([@mib1185] - [#109393])
+- More thorough checks in ESPHome voice assistant UDP server ([@synesthesiam] - [#109394])
+- Bump python-kasa to 0.6.2.1 ([@rytilahti] - [#109397])
+- Bump aioelectricitymaps to 0.3.0 ([@jpbede] - [#109399])
+- Fix device type in Lutron ([@wilburCforce] - [#109401])
+- Bump matrix-nio to 0.24.0 ([@jurriaan] - [#109403])
+- Bump aiotankerkoenig to 0.3.0 ([@jpbede] - [#109404])
+- Pass slots to error messages instead of IDs [rework] ([@synesthesiam] - [#109410])
+- Bump intents to 2024.2.2 ([@synesthesiam] - [#109412])
+- Bump aiohomekit to 3.1.4 ([@Jc2k] - [#109414])
+- Add Mill migrated ClimateEntityFeatures ([@gjohansson-ST] - [#109415])
+- Add new ClimateEntityFeature for Tado ([@gjohansson-ST] - [#109416])
+- Add ClimateEntityFeatures to Nest ([@gjohansson-ST] - [#109417])
+- Adds migrated ClimateEntityFeature to Netatmo ([@gjohansson-ST] - [#109418])
+- Add migrated ClimateEntityFeature to MQTT ([@gjohansson-ST] - [#109419])
+- Add migrated ClimateEntityFeatures to advantage_air ([@gjohansson-ST] - [#109420])
+- Add new climate feature flags to airzone ([@gjohansson-ST] - [#109423])
+- Adds new climate feature flags for airzone_cloud ([@gjohansson-ST] - [#109424])
+- Add migrated climate feature flags to shelly ([@gjohansson-ST] - [#109425])
+- Add migrated climate feature flags to smartthings ([@gjohansson-ST] - [#109426])
+- Add migrated climate feature flags to smarttub ([@gjohansson-ST] - [#109427])
+- Add new climate feature flags to evohome ([@gjohansson-ST] - [#109429])
+- Add migrated climate entity features to flexit ([@gjohansson-ST] - [#109430])
+- Add new climate feature flags to flexit_bacnet ([@gjohansson-ST] - [#109431])
+- Add migrated climate feature flags to homekit_controller ([@gjohansson-ST] - [#109433])
+- Adds migrated climate entity feature for velbus ([@gjohansson-ST] - [#109435])
+- Add new climate feature flags to venstar ([@gjohansson-ST] - [#109436])
+- Add new OUIs for tplink ([@rytilahti] - [#109437])
+- Add migrated feature flags to vera ([@gjohansson-ST] - [#109438])
+- Add migrated climate feature flags to vicare ([@gjohansson-ST] - [#109439])
+- Add new climate feature flags to whirlpool ([@gjohansson-ST] - [#109440])
+- Add migrated climate feature flags to xs1 ([@gjohansson-ST] - [#109441])
+- Add new climate feature flags to yolink ([@gjohansson-ST] - [#109442])
+- Add migrated climate feature flags to zha ([@gjohansson-ST] - [#109443])
+- Add new climate feature flags to zhong_hong ([@gjohansson-ST] - [#109444])
+- Add migrated climate feature flags to zwave_me ([@gjohansson-ST] - [#109445])
+- Add migrated climate feature flags to teslemetry ([@gjohansson-ST] - [#109446])
+- Add migrated climate feature flags for tessie ([@gjohansson-ST] - [#109447])
+- Add new climate feature flags to tfiac ([@gjohansson-ST] - [#109448])
+- Add migrated climate feature flags to tolo ([@gjohansson-ST] - [#109449])
+- Add migrated climate feature flags to toon ([@gjohansson-ST] - [#109450])
+- Add migrated climate feature flags to touchline ([@gjohansson-ST] - [#109451])
+- Add migrated climate feature flags to schluter ([@gjohansson-ST] - [#109452])
+- Add new climate feature flags to screenlogic ([@gjohansson-ST] - [#109454])
+- Add migrated climate feature flags to senz ([@gjohansson-ST] - [#109455])
+- Add new climate feature flags to stiebel_eltron ([@gjohansson-ST] - [#109457])
+- Add new climate feature flags to oem ([@gjohansson-ST] - [#109461])
+- Add migrated climate feature flags to opentherm_gw ([@gjohansson-ST] - [#109462])
+- Add migrated climate feature flags to overkiz ([@gjohansson-ST] - [#109463])
+- Adds migrated climate feature flags for proliphix ([@gjohansson-ST] - [#109465])
+- Add new climate feature flags to radiotherm ([@gjohansson-ST] - [#109466])
+- Adds new climate feature flags to maxcube ([@gjohansson-ST] - [#109467])
+- Add new feature flags to melcloud ([@gjohansson-ST] - [#109468])
+- Adds new climate feature flags to melissa ([@gjohansson-ST] - [#109469])
+- Add migrated climate feature flags to moehlenhoff ([@gjohansson-ST] - [#109470])
+- Add new climate feature flags to mysensors ([@gjohansson-ST] - [#109471])
+- Add migrated climate feature flags to nexia ([@gjohansson-ST] - [#109472])
+- Adds migrated climate feature flags to nobo_hub ([@gjohansson-ST] - [#109473])
+- Adds migrated climate feature flags in nuheat ([@gjohansson-ST] - [#109474])
+- Adds new climate feature flags to ambiclimate ([@gjohansson-ST] - [#109475])
+- Adds new climate feature flags in baf ([@gjohansson-ST] - [#109476])
+- Adds migrated climate feature flags in balboa ([@gjohansson-ST] - [#109477])
+- Add new climate feature flags to blebox ([@gjohansson-ST] - [#109478])
+- Adds new climate feature flags to broadlink ([@gjohansson-ST] - [#109479])
+- Adds new climate feature flags to bsblan ([@gjohansson-ST] - [#109480])
+- Add new climate feature flags to demo ([@gjohansson-ST] - [#109481])
+- Add new climate feature flags to deconz ([@gjohansson-ST] - [#109482])
+- Extend the history of Elvia history to 3 years ([@ludeeus] - [#109490])
+- Change IoT class for Traccar Client ([@ludeeus] - [#109493])
+- Fix Tankerkoenig diagnostics file to use right format ([@jpbede] - [#109494])
+- Revert "Add webhook support to tedee integration (#106846)" ([@zweckj] - [#109408])
+- Avoid duplicate entity names in proximity ([@mib1185] - [#109413])
+- Add ClimateEntityFeatures to airtouch4 ([@gjohansson-ST] - [#109421])
+- Add new climate feature flags for airtouch5 ([@gjohansson-ST] - [#109422])
+- Add new climate feature flags to esphome ([@gjohansson-ST] - [#109428])
+- Add new climate feature flags to tuya ([@gjohansson-ST] - [#109434])
+- Add climate feature flags to spider ([@gjohansson-ST] - [#109456])
+- Add migrated climate feature flag to switchbee ([@gjohansson-ST] - [#109458])
+- Add new climate feature flags to switcher_kis ([@gjohansson-ST] - [#109459])
+- Add new climate feature flags for plugwise ([@gjohansson-ST] - [#109464])
+- Correct flow rate conversion review after merge ([@elupus] - [#109501])
+- Bump easyenergy lib to v2.1.1 ([@klaasnicolaas] - [#109510])
+- Move climate feature flags to child classes for airzone_cloud ([@TheJulianJES] - [#109515])
+- Prevent Flo devices and entities from going unavailable when a single refresh fails ([@dmulcahey] - [#109522])
+- Fix empty error modal when adding duplicate Thread integration ([@codyc1515] - [#109530])
+- Add new climate feature flags to ccm15 ([@gjohansson-ST] - [#109534])
+- Add new climate feature flags to comelit ([@gjohansson-ST] - [#109535])
+- Add migrated climate feature flags to coolmaster ([@gjohansson-ST] - [#109536])
+- Add migrated climate feature flags to daikin ([@gjohansson-ST] - [#109537])
+- Add migrated climate feature flags to devolo home control ([@gjohansson-ST] - [#109538])
+- Add new climate feature flags to duotecno ([@gjohansson-ST] - [#109539])
+- Add new climate feature flags to ecobee ([@gjohansson-ST] - [#109540])
+- Add new climate feature flags to econet ([@gjohansson-ST] - [#109541])
+- Add new climate feature flags to electrasmart ([@gjohansson-ST] - [#109542])
+- Adds new climate feature flags to elkm1 ([@gjohansson-ST] - [#109543])
+- Add new climate feature flags to ephember ([@gjohansson-ST] - [#109544])
+- Add new climate feature flags to escea ([@gjohansson-ST] - [#109545])
+- Add new climate feature flags to freedompro ([@gjohansson-ST] - [#109546])
+- Add migrated climate feature flags to fritzbox ([@gjohansson-ST] - [#109547])
+- Add new climate feature flags to generic_thermostat ([@gjohansson-ST] - [#109548])
+- Add new climate feature flags to geniushub ([@gjohansson-ST] - [#109549])
+- Add new climate feature flags to gree ([@gjohansson-ST] - [#109550])
+- Add new climate feature flags to heatmiser ([@gjohansson-ST] - [#109551])
+- Add new climate feature flags to hisense ([@gjohansson-ST] - [#109552])
+- Add new climate feature flags to hive ([@gjohansson-ST] - [#109553])
+- Add new climate feature flags to homematic ([@gjohansson-ST] - [#109554])
+- Add migrated climate feature flags to homematicip_cloud ([@gjohansson-ST] - [#109555])
+- Add new climate feature flags to honeywell ([@gjohansson-ST] - [#109556])
+- Add new climate feature flags to huum ([@gjohansson-ST] - [#109557])
+- Add new climate feature flags to iaqualink ([@gjohansson-ST] - [#109558])
+- Add migrated climate feature flags to incomfort ([@gjohansson-ST] - [#109559])
+- Add new climate feature flags to insteon ([@gjohansson-ST] - [#109560])
+- Add new climate feature flags to intellifire ([@gjohansson-ST] - [#109562])
+- Fix new climate feature flags in intesishome ([@gjohansson-ST] - [#109563])
+- Add new climate feature flags to isy994 ([@gjohansson-ST] - [#109564])
+- Add new climate feature flags to izone ([@gjohansson-ST] - [#109565])
+- Add new climate feature flags to lcn ([@gjohansson-ST] - [#109566])
+- Add new climate feature flags to lightwave ([@gjohansson-ST] - [#109568])
+- Add migrated climate feature flags to livisi ([@gjohansson-ST] - [#109569])
+- Add new climate feature flags to lookin ([@gjohansson-ST] - [#109570])
+- Add new climate feature flags to lyric ([@gjohansson-ST] - [#109571])
+- Add back logging for core for feature flags in climate ([@gjohansson-ST] - [#109572])
+- Fix yolink abnormal status when LeakSensor detection mode changes to "no water detect" ([@matrixd2] - [#109575])
+- Fix group sensor uom's in not convertable device classes ([@gjohansson-ST] - [#109580])
+- Fix overkiz climate feature flags for valve heating ([@gjohansson-ST] - [#109582])
+- Bump yalexs-ble to 2.4.1 ([@bdraco] - [#109585])
+- Fix Google generative AI service example ([@tronikos] - [#109594])
+- Bugfix lamarzocco issue ([@zweckj] - [#109596])
+- Redact location names in proximity diagnostics ([@mib1185] - [#109600])
+- Handle GeoJSON int to str conversion when the name is an int ([@codyc1515] - [#108937])
+- Fix imap message part decoding ([@jbouwh] - [#109523])
+- Update orjson to 3.9.13 ([@frenck] - [#109614])
+- Fix Tuya QR code expiry, use native QR selector ([@frenck] - [#109615])
+- Fix repairs for remove dates in Workday ([@gjohansson-ST] - [#109626])
+- Add debug logger for cpu temp in System Monitor ([@gjohansson-ST] - [#109627])
+- Allow the helper integrations to omit icon translation field ([@joostlek] - [#109648])
+- Add icon translations to derivative ([@joostlek] - [#109650])
+- Add icon translations to Counter ([@joostlek] - [#109651])
+- Add icon translations to Random ([@joostlek] - [#109652])
+- Improve Tuya token/reauth handling ([@frenck] - [#109653])
+- Add icon translations to Utility meter helper ([@jpbede] - [#109656])
+- Fix Tuya reauth_successful translation string ([@frenck] - [#109659])
+- Don't create AsusWRT loadavg sensors when unavailable ([@ollo69] - [#106790])
+- Screenlogic service refactor ([@dieselrabbit] - [#109041])
+- Fix home connect remaining progress time ([@leahoswald] - [#109525])
+- Add zone related sensors in proximity ([@mib1185] - [#109630])
+- Bump georss-generic-client to 0.8 ([@exxamalte] - [#109658])
+- Add icon translation to proximity ([@mib1185] - [#109664])
+- Add missing translation string to Home Assistant Analytics Insights ([@mib1185] - [#109666])
+- Buffer TImeoutError in Flo ([@dmulcahey] - [#109675])
+- Show site state in Amberelectric config flow ([@madpilot] - [#104702])
+- Bump python matter server to 5.4.1 ([@marcelveldt] - [#109692])
+- Add data descriptions to analytics insights ([@joostlek] - [#109694])
+- Set shorthand attribute in Epion ([@joostlek] - [#109695])
+- Remove obsolete check from Proximity ([@joostlek] - [#109701])
+- Set Analytics Insights as diagnostic ([@joostlek] - [#109702])
+- Queue climate calls for Comelit SimpleHome ([@chemelli74] - [#109707])
+- Fix log string in Traccar Server Coordinator ([@ludeeus] - [#109709])
+- Update frontend to 20240205.0 ([@bramkragten] - [#109716])
+- Add strings to Ruuvitag BLE ([@joostlek] - [#109717])
+- Bump python-bring-api to 3.0.0 ([@miaucl] - [#109720])
+- Fix generic camera error when template renders to an invalid URL ([@jbouwh] - [#109737])
+- Use tracked entity friendly name for proximity sensors ([@mib1185] - [#109744])
+- Add missing new climate feature flags to Mill ([@gjohansson-ST] - [#109748])
+- Fix incorrectly assigning supported features for plugwise climates ([@bouwew] - [#109749])
+- Reduce MELCloud poll frequency to avoid throttling ([@vilppuvuorinen] - [#109750])
+- Handle startup error in Analytics insights ([@joostlek] - [#109755])
+- Fix ZHA creating unnecessary "summ received" entity after upgrade ([@TheJulianJES] - [#109268])
+- Bump pyMicrobot to 0.0.10 ([@spycle] - [#109628])
+- Fix keymitt_ble config-flow ([@spycle] - [#109644])
+- Improve lupusec code quality ([@suaveolent] - [#109727])
+- Fix compatibility issues with older pymelcloud version ([@vilppuvuorinen] - [#109757])
+- Bump holidays to 0.42 ([@gjohansson-ST] - [#109760])
+- Fix Radarr health check singularity ([@joostlek] - [#109762])
+- Buffer JsonDecodeError in Flo ([@dmulcahey] - [#109767])
+- Bump ZHA dependencies ([@puddly] - [#109770])
+- Change state class of Tesla wall connector session energy entity ([@jpbede] - [#109778])
+- Bump ring_doorbell to 0.8.6 ([@sdb9696] - [#109199])
+- Bump ring_doorbell to 0.8.7 ([@sdb9696] - [#109783])
+- Update xknx to 2.12.0 and xknxproject to 3.5.0 ([@farmio] - [#109787])
+- Update MELCloud codeowners ([@vilppuvuorinen] - [#109793])
+- Bump aioelectricitymaps to 0.3.1 ([@jpbede] - [#109797])
+- Pin `chacha20poly1305-reuseable>=0.12.1` ([@puddly] - [#109807])
+- Don't block Supervisor entry setup with refreshing updates ([@frenck] - [#109809])
+- Fix entity services targeting entities outside the platform when using areas/devices ([@bdraco] - [#109810])
+- Mark Unifi bandwidth sensors as unavailable when client disconnects ([@wittypluck] - [#109812])
+- Ignore `trackable` without `details` in Tractive integration ([@bieniu] - [#109814])
+- Bump aioecowitt to 2024.2.0 ([@joostlek] - [#109817])
+- Bump python-otbr-api to 2.6.0 ([@emontnemery] - [#109823])
+- Bump aioesphomeapi to 21.0.2 ([@bdraco] - [#109824])
+- Bump awesomeversion from 23.11.0 to 24.2.0 ([@ludeeus] - [#109830])
+- Show domain in oauth2 error log ([@joostlek] - [#109708])
+- Add tapo virtual integration ([@rytilahti] - [#109765])
+- Make integration fields in Analytics Insights optional ([@joostlek] - [#109789])
+- Disable energy report based operations with API lib upgrade ([@vilppuvuorinen] - [#109832])
+- Bump motionblinds to 0.6.20 ([@starkillerOG] - [#109837])
+- Bump ZHA dependency zigpy to 0.62.3 ([@puddly] - [#109848])
+- Update Growatt server URLs ([@chenjiayi8] - [#109122])
+- Update nibe to 2.8.0 with LOG.SET fixes ([@elupus] - [#109825])
+- Bump aio-georss-gdacs to 0.9 ([@exxamalte] - [#109859])
+- Update frontend to 20240207.0 ([@bramkragten] - [#109871])
+- Fix YoLink SpeakerHub support ([@matrixd2] - [#107925])
+- Remove soft hyphens from myuplink sensor names ([@astrandb] - [#109845])
+- Bump aio-geojson-geonetnz-quakes to 0.16 ([@exxamalte] - [#109873])
+- Fix kitchen sink tests ([@joostlek] - [#109243])
+
+## Release 2024.2.1 - February 9
+
+- Catch APIRateLimit in Honeywell ([@mkmer] - [#107806])
+- Allow disabling home assistant watchdog ([@mdegat01] - [#109818])
+- Assist fixes ([@synesthesiam] - [#109889])
+- Bump Python matter server to 5.5.0 ([@marcelveldt] - [#109894])
+- Bump aioelectricitymaps to 0.4.0 ([@jpbede] - [#109895])
+- Skip polling of unavailable Matter nodes ([@marcelveldt] - [#109917])
+- Bump aio-geojson-geonetnz-volcano to 0.9 ([@exxamalte] - [#109940])
+- Handle Matter nodes that become available after startup is done ([@marcelveldt] - [#109956])
+- Allow modbus "scale" to be negative. ([@janiversen] - [#109965])
+- Don't blow up if config entries have unhashable unique IDs ([@emontnemery] - [#109966])
+- Bump pyMicrobot to 0.0.12 ([@spycle] - [#109970])
+- Allow modbus min/max temperature to be negative. ([@janiversen] - [#109977])
+- Bump deebot-client to 5.1.1 ([@edenhaus] - [#109994])
+- Allow modbus negative min/max value. ([@janiversen] - [#109995])
+- Bump aioecowitt to 2024.2.1 ([@edenhaus] - [#109999])
+- Avoid key_error in modbus climate with non-defined fan_mode. ([@janiversen] - [#110017])
+- Update frontend to 20240207.1 ([@bramkragten] - [#110039])
+- Matching duplicate named entities is now an error in Assist ([@synesthesiam] - [#110050])
+- Log error and continue on parsing issues of translated strings ([@mib1185] - [#110046])
+- Bump evohome-async to 0.4.18 ([@zxdavb] - [#110056])
+- Bump py-aosmith to 1.0.8 ([@bdr99] - [#110061])
+
+[#107806]: https://github.com/home-assistant/core/pull/107806
+[#109818]: https://github.com/home-assistant/core/pull/109818
+[#109883]: https://github.com/home-assistant/core/pull/109883
+[#109889]: https://github.com/home-assistant/core/pull/109889
+[#109894]: https://github.com/home-assistant/core/pull/109894
+[#109895]: https://github.com/home-assistant/core/pull/109895
+[#109917]: https://github.com/home-assistant/core/pull/109917
+[#109940]: https://github.com/home-assistant/core/pull/109940
+[#109956]: https://github.com/home-assistant/core/pull/109956
+[#109965]: https://github.com/home-assistant/core/pull/109965
+[#109966]: https://github.com/home-assistant/core/pull/109966
+[#109970]: https://github.com/home-assistant/core/pull/109970
+[#109977]: https://github.com/home-assistant/core/pull/109977
+[#109994]: https://github.com/home-assistant/core/pull/109994
+[#109995]: https://github.com/home-assistant/core/pull/109995
+[#109999]: https://github.com/home-assistant/core/pull/109999
+[#110017]: https://github.com/home-assistant/core/pull/110017
+[#110039]: https://github.com/home-assistant/core/pull/110039
+[#110046]: https://github.com/home-assistant/core/pull/110046
+[#110050]: https://github.com/home-assistant/core/pull/110050
+[#110056]: https://github.com/home-assistant/core/pull/110056
+[#110061]: https://github.com/home-assistant/core/pull/110061
+[@bdr99]: https://github.com/bdr99
+[@bramkragten]: https://github.com/bramkragten
+[@edenhaus]: https://github.com/edenhaus
+[@emontnemery]: https://github.com/emontnemery
+[@exxamalte]: https://github.com/exxamalte
+[@frenck]: https://github.com/frenck
+[@janiversen]: https://github.com/janiversen
+[@jpbede]: https://github.com/jpbede
+[@marcelveldt]: https://github.com/marcelveldt
+[@mdegat01]: https://github.com/mdegat01
+[@mib1185]: https://github.com/mib1185
+[@mkmer]: https://github.com/mkmer
+[@spycle]: https://github.com/spycle
+[@synesthesiam]: https://github.com/synesthesiam
+[@zxdavb]: https://github.com/zxdavb
+
+## Release 2024.2.2 - February 16
+
+- Better teardown and setup of Roborock connections ([@Lash-L] - [#106092])
+- Fix freebox pairing in bridge mode ([@agrenott] - [#106131])
+- Update pytechnove to 1.2.2 ([@Moustachauve] - [#110074])
+- Bump aio-geojson-usgs-earthquakes to 0.3 ([@exxamalte] - [#110084])
+- Bump yalexs to 1.11.1, fixing camera snapshots from Yale Home ([@abjorck] - [#110089])
+- Fix typo in sensor icons configuration ([@bieniu] - [#110133])
+- Only schedule august activity update when a new activity is seen ([@bdraco] - [#110141])
+- Bump yalexs to 1.11.2 ([@bdraco] - [#110144])
+- Properly report cover positions to prometheus ([@agoode] - [#110157])
+- Fix device class repairs issues placeholders in Group ([@silamon] - [#110181])
+- Bump datapoint to 0.9.9 + re-enable Met Office Integration ([@DustyArmstrong] - [#110206])
+- Bump evohome-async to 0.4.19 ([@zxdavb] - [#110225])
+- Fix state classes issue translation in Group ([@silamon] - [#110238])
+- Handle no data error in Electricity Maps config flow ([@jpbede] - [#110259])
+- Fix cpu percentage in System Monitor ([@gjohansson-ST] - [#110268])
+- Bump aiopegelonline to 0.0.8 ([@mib1185] - [#110274])
+- Bump PySwitchbot to 0.45.0 ([@bdraco] - [#110275])
+- Update xknxproject to 3.6.0 ([@farmio] - [#110282])
+- Fix TDBU naming in Motionblinds ([@starkillerOG] - [#110283])
+- Bump linear-garage-door to 0.2.9 ([@IceBotYT] - [#110298])
+- Fix Starline GPS count sensor ([@Anonym-tsk] - [#110348])
+- Fix zone radius calculation when radius is not 0 ([@bdraco] - [#110354])
+- Bump py-sucks to 0.9.9 ([@mib1185] - [#110397])
+- Bump async-upnp-client to 0.38.2 ([@StevenLooman] - [#110411])
+- Mitigate session closed error in Netgear LTE ([@tkdrob] - [#110412])
+- Update pylutron to 0.2.11 ([@wilburCforce] - [#109853])
+- Update pylutron to 0.2.12 ([@wilburCforce] - [#110414])
+- Fix Raspberry Pi utilities installation on Alpine 3.19 ([@agners] - [#110463])
+- Coerce to float in Sensibo climate react custom service ([@gjohansson-ST] - [#110508])
+- Bump orjson to 3.9.14 ([@bdraco] - [#110552])
+- Fix tplink not updating IP from DHCP discovery and discovering twice ([@bdraco] - [#110557])
+- Modbus, allow received int to be a float. ([@janiversen] - [#110648])
+- Fix elkm1 service calls running in the executor ([@bdraco] - [#110655])
+- Bump aiounifi to v71 ([@Kane610] - [#110658])
+- Bump deebot-client to 5.2.1 ([@edenhaus] - [#110683])
+
+[#106092]: https://github.com/home-assistant/core/pull/106092
+[#106131]: https://github.com/home-assistant/core/pull/106131
+[#109853]: https://github.com/home-assistant/core/pull/109853
+[#109883]: https://github.com/home-assistant/core/pull/109883
+[#110074]: https://github.com/home-assistant/core/pull/110074
+[#110078]: https://github.com/home-assistant/core/pull/110078
+[#110084]: https://github.com/home-assistant/core/pull/110084
+[#110089]: https://github.com/home-assistant/core/pull/110089
+[#110133]: https://github.com/home-assistant/core/pull/110133
+[#110141]: https://github.com/home-assistant/core/pull/110141
+[#110144]: https://github.com/home-assistant/core/pull/110144
+[#110157]: https://github.com/home-assistant/core/pull/110157
+[#110181]: https://github.com/home-assistant/core/pull/110181
+[#110206]: https://github.com/home-assistant/core/pull/110206
+[#110225]: https://github.com/home-assistant/core/pull/110225
+[#110238]: https://github.com/home-assistant/core/pull/110238
+[#110259]: https://github.com/home-assistant/core/pull/110259
+[#110268]: https://github.com/home-assistant/core/pull/110268
+[#110274]: https://github.com/home-assistant/core/pull/110274
+[#110275]: https://github.com/home-assistant/core/pull/110275
+[#110282]: https://github.com/home-assistant/core/pull/110282
+[#110283]: https://github.com/home-assistant/core/pull/110283
+[#110298]: https://github.com/home-assistant/core/pull/110298
+[#110348]: https://github.com/home-assistant/core/pull/110348
+[#110354]: https://github.com/home-assistant/core/pull/110354
+[#110397]: https://github.com/home-assistant/core/pull/110397
+[#110411]: https://github.com/home-assistant/core/pull/110411
+[#110412]: https://github.com/home-assistant/core/pull/110412
+[#110414]: https://github.com/home-assistant/core/pull/110414
+[#110463]: https://github.com/home-assistant/core/pull/110463
+[#110508]: https://github.com/home-assistant/core/pull/110508
+[#110552]: https://github.com/home-assistant/core/pull/110552
+[#110557]: https://github.com/home-assistant/core/pull/110557
+[#110648]: https://github.com/home-assistant/core/pull/110648
+[#110655]: https://github.com/home-assistant/core/pull/110655
+[#110658]: https://github.com/home-assistant/core/pull/110658
+[#110683]: https://github.com/home-assistant/core/pull/110683
+[@Anonym-tsk]: https://github.com/Anonym-tsk
+[@DustyArmstrong]: https://github.com/DustyArmstrong
+[@IceBotYT]: https://github.com/IceBotYT
+[@Kane610]: https://github.com/Kane610
+[@Lash-L]: https://github.com/Lash-L
+[@Moustachauve]: https://github.com/Moustachauve
+[@StevenLooman]: https://github.com/StevenLooman
+[@abjorck]: https://github.com/abjorck
+[@agners]: https://github.com/agners
+[@agoode]: https://github.com/agoode
+[@agrenott]: https://github.com/agrenott
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@edenhaus]: https://github.com/edenhaus
+[@exxamalte]: https://github.com/exxamalte
+[@farmio]: https://github.com/farmio
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@janiversen]: https://github.com/janiversen
+[@jpbede]: https://github.com/jpbede
+[@mib1185]: https://github.com/mib1185
+[@silamon]: https://github.com/silamon
+[@starkillerOG]: https://github.com/starkillerOG
+[@tkdrob]: https://github.com/tkdrob
+[@wilburCforce]: https://github.com/wilburCforce
+[@zxdavb]: https://github.com/zxdavb
+
+## Release 2024.2.3 - February 22
+
+- Fix reauth in Overkiz for config entries created prior to 2022.12 ([@iMicknl] - [#106251])
+- Handle deep standby and poweroffs of enigma2 devices gracefully ([@autinerd] - [#107462])
+- Add wake up timeout to Teslemetry ([@Bre77] - [#109037])
+- Fix set_temperature in Tessie climate platform ([@Bre77] - [#110445])
+- Fix uuid issue in Lutron ([@wilburCforce] - [#110524])
+- Update rokuecp to 0.19.1 ([@ctalkington] - [#110670])
+- Fix scene activation with climate entities with `None` attribute values ([@mib1185] - [#110684])
+- Remove matplotlib pinning due to Python 3.12 incompatibility ([@sbyx] - [#110706])
+- Bump roombapy to 1.6.12 ([@mib1185] - [#110762])
+- Ensure Tile timestamps are reported as UTC ([@bachya] - [#110773])
+- Detect reached API rate limit in Tankerkoenig ([@mib1185] - [#110432])
+- Bump aiotankerkoenig to 0.4.1 ([@jpbede] - [#110840])
+- Update govee-local-api library to 1.4.4 ([@Galorhallen] - [#110854])
+- Allow loading of more then 1 defined Apprise URL ([@caronc] - [#110868])
+- Reolink continue setup when internet blocked ([@starkillerOG] - [#110888])
+- Bump deluge-client to 1.10.0 ([@tkdrob] - [#110663])
+- Bump deluge-client to 1.10.2 ([@dsander] - [#110905])
+- Bump reolink-aio to 0.8.8 ([@starkillerOG] - [#110959])
+- Reset error state when Ecovacs bot is operational again ([@mib1185] - [#110962])
+- Bump motionblinds to 0.6.21 ([@starkillerOG] - [#110970])
+- Bump holidays to 0.43 ([@gjohansson-ST] - [#111039])
+- Fixes UniFi Protect light state check ([@AngellusMortis] - [#111058])
+- Bump pywebpush to 1.14.1 ([@thecode] - [#111082])
+- Bump aioairzone to v0.7.4 ([@Noltari] - [#111105])
+- Bump deebot-client to 5.2.2 ([@edenhaus] - [#111112])
+- Ignore cloudhook already removed in mobile app ([@joostlek] - [#111122])
+
+[#106251]: https://github.com/home-assistant/core/pull/106251
+[#107462]: https://github.com/home-assistant/core/pull/107462
+[#109037]: https://github.com/home-assistant/core/pull/109037
+[#109883]: https://github.com/home-assistant/core/pull/109883
+[#110078]: https://github.com/home-assistant/core/pull/110078
+[#110432]: https://github.com/home-assistant/core/pull/110432
+[#110445]: https://github.com/home-assistant/core/pull/110445
+[#110524]: https://github.com/home-assistant/core/pull/110524
+[#110663]: https://github.com/home-assistant/core/pull/110663
+[#110670]: https://github.com/home-assistant/core/pull/110670
+[#110684]: https://github.com/home-assistant/core/pull/110684
+[#110706]: https://github.com/home-assistant/core/pull/110706
+[#110720]: https://github.com/home-assistant/core/pull/110720
+[#110762]: https://github.com/home-assistant/core/pull/110762
+[#110773]: https://github.com/home-assistant/core/pull/110773
+[#110840]: https://github.com/home-assistant/core/pull/110840
+[#110854]: https://github.com/home-assistant/core/pull/110854
+[#110868]: https://github.com/home-assistant/core/pull/110868
+[#110888]: https://github.com/home-assistant/core/pull/110888
+[#110905]: https://github.com/home-assistant/core/pull/110905
+[#110959]: https://github.com/home-assistant/core/pull/110959
+[#110962]: https://github.com/home-assistant/core/pull/110962
+[#110970]: https://github.com/home-assistant/core/pull/110970
+[#111035]: https://github.com/home-assistant/core/pull/111035
+[#111039]: https://github.com/home-assistant/core/pull/111039
+[#111058]: https://github.com/home-assistant/core/pull/111058
+[#111082]: https://github.com/home-assistant/core/pull/111082
+[#111105]: https://github.com/home-assistant/core/pull/111105
+[#111112]: https://github.com/home-assistant/core/pull/111112
+[#111122]: https://github.com/home-assistant/core/pull/111122
+[@AngellusMortis]: https://github.com/AngellusMortis
+[@Bre77]: https://github.com/Bre77
+[@Galorhallen]: https://github.com/Galorhallen
+[@Noltari]: https://github.com/Noltari
+[@autinerd]: https://github.com/autinerd
+[@bachya]: https://github.com/bachya
+[@caronc]: https://github.com/caronc
+[@ctalkington]: https://github.com/ctalkington
+[@dsander]: https://github.com/dsander
+[@edenhaus]: https://github.com/edenhaus
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@iMicknl]: https://github.com/iMicknl
+[@joostlek]: https://github.com/joostlek
+[@jpbede]: https://github.com/jpbede
+[@mib1185]: https://github.com/mib1185
+[@sbyx]: https://github.com/sbyx
+[@starkillerOG]: https://github.com/starkillerOG
+[@thecode]: https://github.com/thecode
+[@tkdrob]: https://github.com/tkdrob
+[@wilburCforce]: https://github.com/wilburCforce
+
+[#100684]: https://github.com/home-assistant/core/pull/100684
+[#100806]: https://github.com/home-assistant/core/pull/100806
+[#101497]: https://github.com/home-assistant/core/pull/101497
+[#101673]: https://github.com/home-assistant/core/pull/101673
+[#102291]: https://github.com/home-assistant/core/pull/102291
+[#102635]: https://github.com/home-assistant/core/pull/102635
+[#102828]: https://github.com/home-assistant/core/pull/102828
+[#102846]: https://github.com/home-assistant/core/pull/102846
+[#102972]: https://github.com/home-assistant/core/pull/102972
+[#103294]: https://github.com/home-assistant/core/pull/103294
+[#103400]: https://github.com/home-assistant/core/pull/103400
+[#103481]: https://github.com/home-assistant/core/pull/103481
+[#103569]: https://github.com/home-assistant/core/pull/103569
+[#103894]: https://github.com/home-assistant/core/pull/103894
+[#104014]: https://github.com/home-assistant/core/pull/104014
+[#104183]: https://github.com/home-assistant/core/pull/104183
+[#104208]: https://github.com/home-assistant/core/pull/104208
+[#104453]: https://github.com/home-assistant/core/pull/104453
+[#104522]: https://github.com/home-assistant/core/pull/104522
+[#104678]: https://github.com/home-assistant/core/pull/104678
+[#104702]: https://github.com/home-assistant/core/pull/104702
+[#104790]: https://github.com/home-assistant/core/pull/104790
+[#104942]: https://github.com/home-assistant/core/pull/104942
+[#104973]: https://github.com/home-assistant/core/pull/104973
+[#105031]: https://github.com/home-assistant/core/pull/105031
+[#105143]: https://github.com/home-assistant/core/pull/105143
+[#105300]: https://github.com/home-assistant/core/pull/105300
+[#105317]: https://github.com/home-assistant/core/pull/105317
+[#105321]: https://github.com/home-assistant/core/pull/105321
+[#105415]: https://github.com/home-assistant/core/pull/105415
+[#105417]: https://github.com/home-assistant/core/pull/105417
+[#105427]: https://github.com/home-assistant/core/pull/105427
+[#105461]: https://github.com/home-assistant/core/pull/105461
+[#105560]: https://github.com/home-assistant/core/pull/105560
+[#105636]: https://github.com/home-assistant/core/pull/105636
+[#105675]: https://github.com/home-assistant/core/pull/105675
+[#105712]: https://github.com/home-assistant/core/pull/105712
+[#105740]: https://github.com/home-assistant/core/pull/105740
+[#105789]: https://github.com/home-assistant/core/pull/105789
+[#105887]: https://github.com/home-assistant/core/pull/105887
+[#105895]: https://github.com/home-assistant/core/pull/105895
+[#105927]: https://github.com/home-assistant/core/pull/105927
+[#105955]: https://github.com/home-assistant/core/pull/105955
+[#105964]: https://github.com/home-assistant/core/pull/105964
+[#106029]: https://github.com/home-assistant/core/pull/106029
+[#106077]: https://github.com/home-assistant/core/pull/106077
+[#106078]: https://github.com/home-assistant/core/pull/106078
+[#106119]: https://github.com/home-assistant/core/pull/106119
+[#106196]: https://github.com/home-assistant/core/pull/106196
+[#106286]: https://github.com/home-assistant/core/pull/106286
+[#106420]: https://github.com/home-assistant/core/pull/106420
+[#106477]: https://github.com/home-assistant/core/pull/106477
+[#106485]: https://github.com/home-assistant/core/pull/106485
+[#106490]: https://github.com/home-assistant/core/pull/106490
+[#106504]: https://github.com/home-assistant/core/pull/106504
+[#106508]: https://github.com/home-assistant/core/pull/106508
+[#106514]: https://github.com/home-assistant/core/pull/106514
+[#106519]: https://github.com/home-assistant/core/pull/106519
+[#106530]: https://github.com/home-assistant/core/pull/106530
+[#106544]: https://github.com/home-assistant/core/pull/106544
+[#106560]: https://github.com/home-assistant/core/pull/106560
+[#106563]: https://github.com/home-assistant/core/pull/106563
+[#106568]: https://github.com/home-assistant/core/pull/106568
+[#106574]: https://github.com/home-assistant/core/pull/106574
+[#106599]: https://github.com/home-assistant/core/pull/106599
+[#106611]: https://github.com/home-assistant/core/pull/106611
+[#106623]: https://github.com/home-assistant/core/pull/106623
+[#106624]: https://github.com/home-assistant/core/pull/106624
+[#106625]: https://github.com/home-assistant/core/pull/106625
+[#106633]: https://github.com/home-assistant/core/pull/106633
+[#106635]: https://github.com/home-assistant/core/pull/106635
+[#106640]: https://github.com/home-assistant/core/pull/106640
+[#106647]: https://github.com/home-assistant/core/pull/106647
+[#106658]: https://github.com/home-assistant/core/pull/106658
+[#106661]: https://github.com/home-assistant/core/pull/106661
+[#106662]: https://github.com/home-assistant/core/pull/106662
+[#106667]: https://github.com/home-assistant/core/pull/106667
+[#106672]: https://github.com/home-assistant/core/pull/106672
+[#106674]: https://github.com/home-assistant/core/pull/106674
+[#106685]: https://github.com/home-assistant/core/pull/106685
+[#106687]: https://github.com/home-assistant/core/pull/106687
+[#106690]: https://github.com/home-assistant/core/pull/106690
+[#106691]: https://github.com/home-assistant/core/pull/106691
+[#106693]: https://github.com/home-assistant/core/pull/106693
+[#106696]: https://github.com/home-assistant/core/pull/106696
+[#106697]: https://github.com/home-assistant/core/pull/106697
+[#106702]: https://github.com/home-assistant/core/pull/106702
+[#106709]: https://github.com/home-assistant/core/pull/106709
+[#106710]: https://github.com/home-assistant/core/pull/106710
+[#106716]: https://github.com/home-assistant/core/pull/106716
+[#106717]: https://github.com/home-assistant/core/pull/106717
+[#106718]: https://github.com/home-assistant/core/pull/106718
+[#106719]: https://github.com/home-assistant/core/pull/106719
+[#106720]: https://github.com/home-assistant/core/pull/106720
+[#106721]: https://github.com/home-assistant/core/pull/106721
+[#106722]: https://github.com/home-assistant/core/pull/106722
+[#106723]: https://github.com/home-assistant/core/pull/106723
+[#106724]: https://github.com/home-assistant/core/pull/106724
+[#106735]: https://github.com/home-assistant/core/pull/106735
+[#106736]: https://github.com/home-assistant/core/pull/106736
+[#106740]: https://github.com/home-assistant/core/pull/106740
+[#106741]: https://github.com/home-assistant/core/pull/106741
+[#106742]: https://github.com/home-assistant/core/pull/106742
+[#106753]: https://github.com/home-assistant/core/pull/106753
+[#106759]: https://github.com/home-assistant/core/pull/106759
+[#106772]: https://github.com/home-assistant/core/pull/106772
+[#106773]: https://github.com/home-assistant/core/pull/106773
+[#106776]: https://github.com/home-assistant/core/pull/106776
+[#106790]: https://github.com/home-assistant/core/pull/106790
+[#106794]: https://github.com/home-assistant/core/pull/106794
+[#106795]: https://github.com/home-assistant/core/pull/106795
+[#106796]: https://github.com/home-assistant/core/pull/106796
+[#106802]: https://github.com/home-assistant/core/pull/106802
+[#106810]: https://github.com/home-assistant/core/pull/106810
+[#106812]: https://github.com/home-assistant/core/pull/106812
+[#106813]: https://github.com/home-assistant/core/pull/106813
+[#106814]: https://github.com/home-assistant/core/pull/106814
+[#106816]: https://github.com/home-assistant/core/pull/106816
+[#106817]: https://github.com/home-assistant/core/pull/106817
+[#106819]: https://github.com/home-assistant/core/pull/106819
+[#106820]: https://github.com/home-assistant/core/pull/106820
+[#106821]: https://github.com/home-assistant/core/pull/106821
+[#106823]: https://github.com/home-assistant/core/pull/106823
+[#106824]: https://github.com/home-assistant/core/pull/106824
+[#106825]: https://github.com/home-assistant/core/pull/106825
+[#106832]: https://github.com/home-assistant/core/pull/106832
+[#106836]: https://github.com/home-assistant/core/pull/106836
+[#106837]: https://github.com/home-assistant/core/pull/106837
+[#106838]: https://github.com/home-assistant/core/pull/106838
+[#106839]: https://github.com/home-assistant/core/pull/106839
+[#106840]: https://github.com/home-assistant/core/pull/106840
+[#106841]: https://github.com/home-assistant/core/pull/106841
+[#106844]: https://github.com/home-assistant/core/pull/106844
+[#106846]: https://github.com/home-assistant/core/pull/106846
+[#106852]: https://github.com/home-assistant/core/pull/106852
+[#106853]: https://github.com/home-assistant/core/pull/106853
+[#106854]: https://github.com/home-assistant/core/pull/106854
+[#106857]: https://github.com/home-assistant/core/pull/106857
+[#106858]: https://github.com/home-assistant/core/pull/106858
+[#106859]: https://github.com/home-assistant/core/pull/106859
+[#106860]: https://github.com/home-assistant/core/pull/106860
+[#106867]: https://github.com/home-assistant/core/pull/106867
+[#106868]: https://github.com/home-assistant/core/pull/106868
+[#106869]: https://github.com/home-assistant/core/pull/106869
+[#106871]: https://github.com/home-assistant/core/pull/106871
+[#106872]: https://github.com/home-assistant/core/pull/106872
+[#106878]: https://github.com/home-assistant/core/pull/106878
+[#106879]: https://github.com/home-assistant/core/pull/106879
+[#106880]: https://github.com/home-assistant/core/pull/106880
+[#106881]: https://github.com/home-assistant/core/pull/106881
+[#106887]: https://github.com/home-assistant/core/pull/106887
+[#106888]: https://github.com/home-assistant/core/pull/106888
+[#106889]: https://github.com/home-assistant/core/pull/106889
+[#106890]: https://github.com/home-assistant/core/pull/106890
+[#106902]: https://github.com/home-assistant/core/pull/106902
+[#106905]: https://github.com/home-assistant/core/pull/106905
+[#106906]: https://github.com/home-assistant/core/pull/106906
+[#106907]: https://github.com/home-assistant/core/pull/106907
+[#106908]: https://github.com/home-assistant/core/pull/106908
+[#106910]: https://github.com/home-assistant/core/pull/106910
+[#106914]: https://github.com/home-assistant/core/pull/106914
+[#106919]: https://github.com/home-assistant/core/pull/106919
+[#106924]: https://github.com/home-assistant/core/pull/106924
+[#106925]: https://github.com/home-assistant/core/pull/106925
+[#106926]: https://github.com/home-assistant/core/pull/106926
+[#106927]: https://github.com/home-assistant/core/pull/106927
+[#106930]: https://github.com/home-assistant/core/pull/106930
+[#106931]: https://github.com/home-assistant/core/pull/106931
+[#106932]: https://github.com/home-assistant/core/pull/106932
+[#106953]: https://github.com/home-assistant/core/pull/106953
+[#106965]: https://github.com/home-assistant/core/pull/106965
+[#106972]: https://github.com/home-assistant/core/pull/106972
+[#106975]: https://github.com/home-assistant/core/pull/106975
+[#106984]: https://github.com/home-assistant/core/pull/106984
+[#106992]: https://github.com/home-assistant/core/pull/106992
+[#106993]: https://github.com/home-assistant/core/pull/106993
+[#106994]: https://github.com/home-assistant/core/pull/106994
+[#106998]: https://github.com/home-assistant/core/pull/106998
+[#107003]: https://github.com/home-assistant/core/pull/107003
+[#107005]: https://github.com/home-assistant/core/pull/107005
+[#107010]: https://github.com/home-assistant/core/pull/107010
+[#107015]: https://github.com/home-assistant/core/pull/107015
+[#107028]: https://github.com/home-assistant/core/pull/107028
+[#107032]: https://github.com/home-assistant/core/pull/107032
+[#107034]: https://github.com/home-assistant/core/pull/107034
+[#107039]: https://github.com/home-assistant/core/pull/107039
+[#107040]: https://github.com/home-assistant/core/pull/107040
+[#107042]: https://github.com/home-assistant/core/pull/107042
+[#107045]: https://github.com/home-assistant/core/pull/107045
+[#107046]: https://github.com/home-assistant/core/pull/107046
+[#107050]: https://github.com/home-assistant/core/pull/107050
+[#107053]: https://github.com/home-assistant/core/pull/107053
+[#107065]: https://github.com/home-assistant/core/pull/107065
+[#107066]: https://github.com/home-assistant/core/pull/107066
+[#107069]: https://github.com/home-assistant/core/pull/107069
+[#107071]: https://github.com/home-assistant/core/pull/107071
+[#107088]: https://github.com/home-assistant/core/pull/107088
+[#107089]: https://github.com/home-assistant/core/pull/107089
+[#107090]: https://github.com/home-assistant/core/pull/107090
+[#107095]: https://github.com/home-assistant/core/pull/107095
+[#107096]: https://github.com/home-assistant/core/pull/107096
+[#107100]: https://github.com/home-assistant/core/pull/107100
+[#107107]: https://github.com/home-assistant/core/pull/107107
+[#107109]: https://github.com/home-assistant/core/pull/107109
+[#107111]: https://github.com/home-assistant/core/pull/107111
+[#107116]: https://github.com/home-assistant/core/pull/107116
+[#107119]: https://github.com/home-assistant/core/pull/107119
+[#107132]: https://github.com/home-assistant/core/pull/107132
+[#107139]: https://github.com/home-assistant/core/pull/107139
+[#107148]: https://github.com/home-assistant/core/pull/107148
+[#107151]: https://github.com/home-assistant/core/pull/107151
+[#107152]: https://github.com/home-assistant/core/pull/107152
+[#107153]: https://github.com/home-assistant/core/pull/107153
+[#107159]: https://github.com/home-assistant/core/pull/107159
+[#107160]: https://github.com/home-assistant/core/pull/107160
+[#107164]: https://github.com/home-assistant/core/pull/107164
+[#107168]: https://github.com/home-assistant/core/pull/107168
+[#107172]: https://github.com/home-assistant/core/pull/107172
+[#107175]: https://github.com/home-assistant/core/pull/107175
+[#107179]: https://github.com/home-assistant/core/pull/107179
+[#107184]: https://github.com/home-assistant/core/pull/107184
+[#107188]: https://github.com/home-assistant/core/pull/107188
+[#107189]: https://github.com/home-assistant/core/pull/107189
+[#107190]: https://github.com/home-assistant/core/pull/107190
+[#107192]: https://github.com/home-assistant/core/pull/107192
+[#107195]: https://github.com/home-assistant/core/pull/107195
+[#107196]: https://github.com/home-assistant/core/pull/107196
+[#107199]: https://github.com/home-assistant/core/pull/107199
+[#107206]: https://github.com/home-assistant/core/pull/107206
+[#107209]: https://github.com/home-assistant/core/pull/107209
+[#107210]: https://github.com/home-assistant/core/pull/107210
+[#107212]: https://github.com/home-assistant/core/pull/107212
+[#107213]: https://github.com/home-assistant/core/pull/107213
+[#107227]: https://github.com/home-assistant/core/pull/107227
+[#107229]: https://github.com/home-assistant/core/pull/107229
+[#107232]: https://github.com/home-assistant/core/pull/107232
+[#107238]: https://github.com/home-assistant/core/pull/107238
+[#107240]: https://github.com/home-assistant/core/pull/107240
+[#107251]: https://github.com/home-assistant/core/pull/107251
+[#107252]: https://github.com/home-assistant/core/pull/107252
+[#107255]: https://github.com/home-assistant/core/pull/107255
+[#107256]: https://github.com/home-assistant/core/pull/107256
+[#107257]: https://github.com/home-assistant/core/pull/107257
+[#107261]: https://github.com/home-assistant/core/pull/107261
+[#107262]: https://github.com/home-assistant/core/pull/107262
+[#107263]: https://github.com/home-assistant/core/pull/107263
+[#107264]: https://github.com/home-assistant/core/pull/107264
+[#107266]: https://github.com/home-assistant/core/pull/107266
+[#107267]: https://github.com/home-assistant/core/pull/107267
+[#107271]: https://github.com/home-assistant/core/pull/107271
+[#107272]: https://github.com/home-assistant/core/pull/107272
+[#107273]: https://github.com/home-assistant/core/pull/107273
+[#107274]: https://github.com/home-assistant/core/pull/107274
+[#107278]: https://github.com/home-assistant/core/pull/107278
+[#107280]: https://github.com/home-assistant/core/pull/107280
+[#107282]: https://github.com/home-assistant/core/pull/107282
+[#107283]: https://github.com/home-assistant/core/pull/107283
+[#107284]: https://github.com/home-assistant/core/pull/107284
+[#107285]: https://github.com/home-assistant/core/pull/107285
+[#107290]: https://github.com/home-assistant/core/pull/107290
+[#107292]: https://github.com/home-assistant/core/pull/107292
+[#107299]: https://github.com/home-assistant/core/pull/107299
+[#107300]: https://github.com/home-assistant/core/pull/107300
+[#107301]: https://github.com/home-assistant/core/pull/107301
+[#107302]: https://github.com/home-assistant/core/pull/107302
+[#107305]: https://github.com/home-assistant/core/pull/107305
+[#107306]: https://github.com/home-assistant/core/pull/107306
+[#107307]: https://github.com/home-assistant/core/pull/107307
+[#107309]: https://github.com/home-assistant/core/pull/107309
+[#107312]: https://github.com/home-assistant/core/pull/107312
+[#107320]: https://github.com/home-assistant/core/pull/107320
+[#107323]: https://github.com/home-assistant/core/pull/107323
+[#107324]: https://github.com/home-assistant/core/pull/107324
+[#107326]: https://github.com/home-assistant/core/pull/107326
+[#107333]: https://github.com/home-assistant/core/pull/107333
+[#107335]: https://github.com/home-assistant/core/pull/107335
+[#107337]: https://github.com/home-assistant/core/pull/107337
+[#107338]: https://github.com/home-assistant/core/pull/107338
+[#107341]: https://github.com/home-assistant/core/pull/107341
+[#107342]: https://github.com/home-assistant/core/pull/107342
+[#107345]: https://github.com/home-assistant/core/pull/107345
+[#107346]: https://github.com/home-assistant/core/pull/107346
+[#107351]: https://github.com/home-assistant/core/pull/107351
+[#107357]: https://github.com/home-assistant/core/pull/107357
+[#107372]: https://github.com/home-assistant/core/pull/107372
+[#107373]: https://github.com/home-assistant/core/pull/107373
+[#107377]: https://github.com/home-assistant/core/pull/107377
+[#107379]: https://github.com/home-assistant/core/pull/107379
+[#107380]: https://github.com/home-assistant/core/pull/107380
+[#107381]: https://github.com/home-assistant/core/pull/107381
+[#107382]: https://github.com/home-assistant/core/pull/107382
+[#107383]: https://github.com/home-assistant/core/pull/107383
+[#107402]: https://github.com/home-assistant/core/pull/107402
+[#107405]: https://github.com/home-assistant/core/pull/107405
+[#107408]: https://github.com/home-assistant/core/pull/107408
+[#107409]: https://github.com/home-assistant/core/pull/107409
+[#107410]: https://github.com/home-assistant/core/pull/107410
+[#107411]: https://github.com/home-assistant/core/pull/107411
+[#107417]: https://github.com/home-assistant/core/pull/107417
+[#107421]: https://github.com/home-assistant/core/pull/107421
+[#107423]: https://github.com/home-assistant/core/pull/107423
+[#107424]: https://github.com/home-assistant/core/pull/107424
+[#107425]: https://github.com/home-assistant/core/pull/107425
+[#107426]: https://github.com/home-assistant/core/pull/107426
+[#107427]: https://github.com/home-assistant/core/pull/107427
+[#107428]: https://github.com/home-assistant/core/pull/107428
+[#107436]: https://github.com/home-assistant/core/pull/107436
+[#107437]: https://github.com/home-assistant/core/pull/107437
+[#107438]: https://github.com/home-assistant/core/pull/107438
+[#107439]: https://github.com/home-assistant/core/pull/107439
+[#107440]: https://github.com/home-assistant/core/pull/107440
+[#107444]: https://github.com/home-assistant/core/pull/107444
+[#107445]: https://github.com/home-assistant/core/pull/107445
+[#107447]: https://github.com/home-assistant/core/pull/107447
+[#107454]: https://github.com/home-assistant/core/pull/107454
+[#107458]: https://github.com/home-assistant/core/pull/107458
+[#107459]: https://github.com/home-assistant/core/pull/107459
+[#107460]: https://github.com/home-assistant/core/pull/107460
+[#107467]: https://github.com/home-assistant/core/pull/107467
+[#107469]: https://github.com/home-assistant/core/pull/107469
+[#107480]: https://github.com/home-assistant/core/pull/107480
+[#107486]: https://github.com/home-assistant/core/pull/107486
+[#107488]: https://github.com/home-assistant/core/pull/107488
+[#107497]: https://github.com/home-assistant/core/pull/107497
+[#107503]: https://github.com/home-assistant/core/pull/107503
+[#107509]: https://github.com/home-assistant/core/pull/107509
+[#107512]: https://github.com/home-assistant/core/pull/107512
+[#107514]: https://github.com/home-assistant/core/pull/107514
+[#107516]: https://github.com/home-assistant/core/pull/107516
+[#107518]: https://github.com/home-assistant/core/pull/107518
+[#107520]: https://github.com/home-assistant/core/pull/107520
+[#107529]: https://github.com/home-assistant/core/pull/107529
+[#107534]: https://github.com/home-assistant/core/pull/107534
+[#107535]: https://github.com/home-assistant/core/pull/107535
+[#107539]: https://github.com/home-assistant/core/pull/107539
+[#107540]: https://github.com/home-assistant/core/pull/107540
+[#107542]: https://github.com/home-assistant/core/pull/107542
+[#107547]: https://github.com/home-assistant/core/pull/107547
+[#107548]: https://github.com/home-assistant/core/pull/107548
+[#107553]: https://github.com/home-assistant/core/pull/107553
+[#107555]: https://github.com/home-assistant/core/pull/107555
+[#107556]: https://github.com/home-assistant/core/pull/107556
+[#107557]: https://github.com/home-assistant/core/pull/107557
+[#107558]: https://github.com/home-assistant/core/pull/107558
+[#107559]: https://github.com/home-assistant/core/pull/107559
+[#107560]: https://github.com/home-assistant/core/pull/107560
+[#107567]: https://github.com/home-assistant/core/pull/107567
+[#107570]: https://github.com/home-assistant/core/pull/107570
+[#107571]: https://github.com/home-assistant/core/pull/107571
+[#107576]: https://github.com/home-assistant/core/pull/107576
+[#107578]: https://github.com/home-assistant/core/pull/107578
+[#107582]: https://github.com/home-assistant/core/pull/107582
+[#107583]: https://github.com/home-assistant/core/pull/107583
+[#107584]: https://github.com/home-assistant/core/pull/107584
+[#107585]: https://github.com/home-assistant/core/pull/107585
+[#107587]: https://github.com/home-assistant/core/pull/107587
+[#107590]: https://github.com/home-assistant/core/pull/107590
+[#107595]: https://github.com/home-assistant/core/pull/107595
+[#107596]: https://github.com/home-assistant/core/pull/107596
+[#107597]: https://github.com/home-assistant/core/pull/107597
+[#107598]: https://github.com/home-assistant/core/pull/107598
+[#107599]: https://github.com/home-assistant/core/pull/107599
+[#107601]: https://github.com/home-assistant/core/pull/107601
+[#107602]: https://github.com/home-assistant/core/pull/107602
+[#107603]: https://github.com/home-assistant/core/pull/107603
+[#107604]: https://github.com/home-assistant/core/pull/107604
+[#107607]: https://github.com/home-assistant/core/pull/107607
+[#107611]: https://github.com/home-assistant/core/pull/107611
+[#107612]: https://github.com/home-assistant/core/pull/107612
+[#107613]: https://github.com/home-assistant/core/pull/107613
+[#107617]: https://github.com/home-assistant/core/pull/107617
+[#107618]: https://github.com/home-assistant/core/pull/107618
+[#107621]: https://github.com/home-assistant/core/pull/107621
+[#107622]: https://github.com/home-assistant/core/pull/107622
+[#107623]: https://github.com/home-assistant/core/pull/107623
+[#107624]: https://github.com/home-assistant/core/pull/107624
+[#107625]: https://github.com/home-assistant/core/pull/107625
+[#107626]: https://github.com/home-assistant/core/pull/107626
+[#107627]: https://github.com/home-assistant/core/pull/107627
+[#107628]: https://github.com/home-assistant/core/pull/107628
+[#107634]: https://github.com/home-assistant/core/pull/107634
+[#107641]: https://github.com/home-assistant/core/pull/107641
+[#107643]: https://github.com/home-assistant/core/pull/107643
+[#107644]: https://github.com/home-assistant/core/pull/107644
+[#107646]: https://github.com/home-assistant/core/pull/107646
+[#107653]: https://github.com/home-assistant/core/pull/107653
+[#107654]: https://github.com/home-assistant/core/pull/107654
+[#107659]: https://github.com/home-assistant/core/pull/107659
+[#107663]: https://github.com/home-assistant/core/pull/107663
+[#107666]: https://github.com/home-assistant/core/pull/107666
+[#107668]: https://github.com/home-assistant/core/pull/107668
+[#107670]: https://github.com/home-assistant/core/pull/107670
+[#107672]: https://github.com/home-assistant/core/pull/107672
+[#107675]: https://github.com/home-assistant/core/pull/107675
+[#107685]: https://github.com/home-assistant/core/pull/107685
+[#107694]: https://github.com/home-assistant/core/pull/107694
+[#107696]: https://github.com/home-assistant/core/pull/107696
+[#107706]: https://github.com/home-assistant/core/pull/107706
+[#107707]: https://github.com/home-assistant/core/pull/107707
+[#107708]: https://github.com/home-assistant/core/pull/107708
+[#107709]: https://github.com/home-assistant/core/pull/107709
+[#107740]: https://github.com/home-assistant/core/pull/107740
+[#107743]: https://github.com/home-assistant/core/pull/107743
+[#107745]: https://github.com/home-assistant/core/pull/107745
+[#107756]: https://github.com/home-assistant/core/pull/107756
+[#107757]: https://github.com/home-assistant/core/pull/107757
+[#107760]: https://github.com/home-assistant/core/pull/107760
+[#107762]: https://github.com/home-assistant/core/pull/107762
+[#107765]: https://github.com/home-assistant/core/pull/107765
+[#107766]: https://github.com/home-assistant/core/pull/107766
+[#107767]: https://github.com/home-assistant/core/pull/107767
+[#107773]: https://github.com/home-assistant/core/pull/107773
+[#107778]: https://github.com/home-assistant/core/pull/107778
+[#107779]: https://github.com/home-assistant/core/pull/107779
+[#107781]: https://github.com/home-assistant/core/pull/107781
+[#107786]: https://github.com/home-assistant/core/pull/107786
+[#107787]: https://github.com/home-assistant/core/pull/107787
+[#107788]: https://github.com/home-assistant/core/pull/107788
+[#107789]: https://github.com/home-assistant/core/pull/107789
+[#107790]: https://github.com/home-assistant/core/pull/107790
+[#107791]: https://github.com/home-assistant/core/pull/107791
+[#107792]: https://github.com/home-assistant/core/pull/107792
+[#107793]: https://github.com/home-assistant/core/pull/107793
+[#107794]: https://github.com/home-assistant/core/pull/107794
+[#107796]: https://github.com/home-assistant/core/pull/107796
+[#107799]: https://github.com/home-assistant/core/pull/107799
+[#107802]: https://github.com/home-assistant/core/pull/107802
+[#107805]: https://github.com/home-assistant/core/pull/107805
+[#107807]: https://github.com/home-assistant/core/pull/107807
+[#107815]: https://github.com/home-assistant/core/pull/107815
+[#107822]: https://github.com/home-assistant/core/pull/107822
+[#107832]: https://github.com/home-assistant/core/pull/107832
+[#107833]: https://github.com/home-assistant/core/pull/107833
+[#107834]: https://github.com/home-assistant/core/pull/107834
+[#107835]: https://github.com/home-assistant/core/pull/107835
+[#107839]: https://github.com/home-assistant/core/pull/107839
+[#107840]: https://github.com/home-assistant/core/pull/107840
+[#107845]: https://github.com/home-assistant/core/pull/107845
+[#107846]: https://github.com/home-assistant/core/pull/107846
+[#107856]: https://github.com/home-assistant/core/pull/107856
+[#107857]: https://github.com/home-assistant/core/pull/107857
+[#107859]: https://github.com/home-assistant/core/pull/107859
+[#107860]: https://github.com/home-assistant/core/pull/107860
+[#107861]: https://github.com/home-assistant/core/pull/107861
+[#107863]: https://github.com/home-assistant/core/pull/107863
+[#107864]: https://github.com/home-assistant/core/pull/107864
+[#107873]: https://github.com/home-assistant/core/pull/107873
+[#107882]: https://github.com/home-assistant/core/pull/107882
+[#107884]: https://github.com/home-assistant/core/pull/107884
+[#107886]: https://github.com/home-assistant/core/pull/107886
+[#107888]: https://github.com/home-assistant/core/pull/107888
+[#107891]: https://github.com/home-assistant/core/pull/107891
+[#107893]: https://github.com/home-assistant/core/pull/107893
+[#107895]: https://github.com/home-assistant/core/pull/107895
+[#107896]: https://github.com/home-assistant/core/pull/107896
+[#107898]: https://github.com/home-assistant/core/pull/107898
+[#107899]: https://github.com/home-assistant/core/pull/107899
+[#107902]: https://github.com/home-assistant/core/pull/107902
+[#107904]: https://github.com/home-assistant/core/pull/107904
+[#107907]: https://github.com/home-assistant/core/pull/107907
+[#107909]: https://github.com/home-assistant/core/pull/107909
+[#107910]: https://github.com/home-assistant/core/pull/107910
+[#107911]: https://github.com/home-assistant/core/pull/107911
+[#107912]: https://github.com/home-assistant/core/pull/107912
+[#107913]: https://github.com/home-assistant/core/pull/107913
+[#107914]: https://github.com/home-assistant/core/pull/107914
+[#107915]: https://github.com/home-assistant/core/pull/107915
+[#107917]: https://github.com/home-assistant/core/pull/107917
+[#107918]: https://github.com/home-assistant/core/pull/107918
+[#107923]: https://github.com/home-assistant/core/pull/107923
+[#107924]: https://github.com/home-assistant/core/pull/107924
+[#107925]: https://github.com/home-assistant/core/pull/107925
+[#107927]: https://github.com/home-assistant/core/pull/107927
+[#107932]: https://github.com/home-assistant/core/pull/107932
+[#107935]: https://github.com/home-assistant/core/pull/107935
+[#107937]: https://github.com/home-assistant/core/pull/107937
+[#107938]: https://github.com/home-assistant/core/pull/107938
+[#107939]: https://github.com/home-assistant/core/pull/107939
+[#107944]: https://github.com/home-assistant/core/pull/107944
+[#107945]: https://github.com/home-assistant/core/pull/107945
+[#107946]: https://github.com/home-assistant/core/pull/107946
+[#107948]: https://github.com/home-assistant/core/pull/107948
+[#107952]: https://github.com/home-assistant/core/pull/107952
+[#107956]: https://github.com/home-assistant/core/pull/107956
+[#107959]: https://github.com/home-assistant/core/pull/107959
+[#107962]: https://github.com/home-assistant/core/pull/107962
+[#107967]: https://github.com/home-assistant/core/pull/107967
+[#107970]: https://github.com/home-assistant/core/pull/107970
+[#107971]: https://github.com/home-assistant/core/pull/107971
+[#107972]: https://github.com/home-assistant/core/pull/107972
+[#107984]: https://github.com/home-assistant/core/pull/107984
+[#107986]: https://github.com/home-assistant/core/pull/107986
+[#107989]: https://github.com/home-assistant/core/pull/107989
+[#107992]: https://github.com/home-assistant/core/pull/107992
+[#107997]: https://github.com/home-assistant/core/pull/107997
+[#107998]: https://github.com/home-assistant/core/pull/107998
+[#107999]: https://github.com/home-assistant/core/pull/107999
+[#108000]: https://github.com/home-assistant/core/pull/108000
+[#108002]: https://github.com/home-assistant/core/pull/108002
+[#108007]: https://github.com/home-assistant/core/pull/108007
+[#108009]: https://github.com/home-assistant/core/pull/108009
+[#108010]: https://github.com/home-assistant/core/pull/108010
+[#108011]: https://github.com/home-assistant/core/pull/108011
+[#108012]: https://github.com/home-assistant/core/pull/108012
+[#108016]: https://github.com/home-assistant/core/pull/108016
+[#108019]: https://github.com/home-assistant/core/pull/108019
+[#108022]: https://github.com/home-assistant/core/pull/108022
+[#108023]: https://github.com/home-assistant/core/pull/108023
+[#108024]: https://github.com/home-assistant/core/pull/108024
+[#108025]: https://github.com/home-assistant/core/pull/108025
+[#108026]: https://github.com/home-assistant/core/pull/108026
+[#108027]: https://github.com/home-assistant/core/pull/108027
+[#108028]: https://github.com/home-assistant/core/pull/108028
+[#108033]: https://github.com/home-assistant/core/pull/108033
+[#108034]: https://github.com/home-assistant/core/pull/108034
+[#108039]: https://github.com/home-assistant/core/pull/108039
+[#108040]: https://github.com/home-assistant/core/pull/108040
+[#108041]: https://github.com/home-assistant/core/pull/108041
+[#108042]: https://github.com/home-assistant/core/pull/108042
+[#108048]: https://github.com/home-assistant/core/pull/108048
+[#108050]: https://github.com/home-assistant/core/pull/108050
+[#108051]: https://github.com/home-assistant/core/pull/108051
+[#108053]: https://github.com/home-assistant/core/pull/108053
+[#108054]: https://github.com/home-assistant/core/pull/108054
+[#108062]: https://github.com/home-assistant/core/pull/108062
+[#108067]: https://github.com/home-assistant/core/pull/108067
+[#108072]: https://github.com/home-assistant/core/pull/108072
+[#108073]: https://github.com/home-assistant/core/pull/108073
+[#108075]: https://github.com/home-assistant/core/pull/108075
+[#108079]: https://github.com/home-assistant/core/pull/108079
+[#108084]: https://github.com/home-assistant/core/pull/108084
+[#108086]: https://github.com/home-assistant/core/pull/108086
+[#108089]: https://github.com/home-assistant/core/pull/108089
+[#108090]: https://github.com/home-assistant/core/pull/108090
+[#108092]: https://github.com/home-assistant/core/pull/108092
+[#108093]: https://github.com/home-assistant/core/pull/108093
+[#108094]: https://github.com/home-assistant/core/pull/108094
+[#108096]: https://github.com/home-assistant/core/pull/108096
+[#108097]: https://github.com/home-assistant/core/pull/108097
+[#108105]: https://github.com/home-assistant/core/pull/108105
+[#108106]: https://github.com/home-assistant/core/pull/108106
+[#108109]: https://github.com/home-assistant/core/pull/108109
+[#108110]: https://github.com/home-assistant/core/pull/108110
+[#108111]: https://github.com/home-assistant/core/pull/108111
+[#108113]: https://github.com/home-assistant/core/pull/108113
+[#108114]: https://github.com/home-assistant/core/pull/108114
+[#108115]: https://github.com/home-assistant/core/pull/108115
+[#108124]: https://github.com/home-assistant/core/pull/108124
+[#108128]: https://github.com/home-assistant/core/pull/108128
+[#108132]: https://github.com/home-assistant/core/pull/108132
+[#108134]: https://github.com/home-assistant/core/pull/108134
+[#108139]: https://github.com/home-assistant/core/pull/108139
+[#108141]: https://github.com/home-assistant/core/pull/108141
+[#108143]: https://github.com/home-assistant/core/pull/108143
+[#108144]: https://github.com/home-assistant/core/pull/108144
+[#108145]: https://github.com/home-assistant/core/pull/108145
+[#108147]: https://github.com/home-assistant/core/pull/108147
+[#108148]: https://github.com/home-assistant/core/pull/108148
+[#108150]: https://github.com/home-assistant/core/pull/108150
+[#108157]: https://github.com/home-assistant/core/pull/108157
+[#108160]: https://github.com/home-assistant/core/pull/108160
+[#108162]: https://github.com/home-assistant/core/pull/108162
+[#108163]: https://github.com/home-assistant/core/pull/108163
+[#108164]: https://github.com/home-assistant/core/pull/108164
+[#108165]: https://github.com/home-assistant/core/pull/108165
+[#108166]: https://github.com/home-assistant/core/pull/108166
+[#108167]: https://github.com/home-assistant/core/pull/108167
+[#108173]: https://github.com/home-assistant/core/pull/108173
+[#108174]: https://github.com/home-assistant/core/pull/108174
+[#108176]: https://github.com/home-assistant/core/pull/108176
+[#108177]: https://github.com/home-assistant/core/pull/108177
+[#108179]: https://github.com/home-assistant/core/pull/108179
+[#108182]: https://github.com/home-assistant/core/pull/108182
+[#108189]: https://github.com/home-assistant/core/pull/108189
+[#108190]: https://github.com/home-assistant/core/pull/108190
+[#108191]: https://github.com/home-assistant/core/pull/108191
+[#108192]: https://github.com/home-assistant/core/pull/108192
+[#108194]: https://github.com/home-assistant/core/pull/108194
+[#108195]: https://github.com/home-assistant/core/pull/108195
+[#108196]: https://github.com/home-assistant/core/pull/108196
+[#108197]: https://github.com/home-assistant/core/pull/108197
+[#108203]: https://github.com/home-assistant/core/pull/108203
+[#108209]: https://github.com/home-assistant/core/pull/108209
+[#108210]: https://github.com/home-assistant/core/pull/108210
+[#108212]: https://github.com/home-assistant/core/pull/108212
+[#108216]: https://github.com/home-assistant/core/pull/108216
+[#108217]: https://github.com/home-assistant/core/pull/108217
+[#108218]: https://github.com/home-assistant/core/pull/108218
+[#108220]: https://github.com/home-assistant/core/pull/108220
+[#108222]: https://github.com/home-assistant/core/pull/108222
+[#108228]: https://github.com/home-assistant/core/pull/108228
+[#108229]: https://github.com/home-assistant/core/pull/108229
+[#108231]: https://github.com/home-assistant/core/pull/108231
+[#108233]: https://github.com/home-assistant/core/pull/108233
+[#108235]: https://github.com/home-assistant/core/pull/108235
+[#108236]: https://github.com/home-assistant/core/pull/108236
+[#108238]: https://github.com/home-assistant/core/pull/108238
+[#108240]: https://github.com/home-assistant/core/pull/108240
+[#108243]: https://github.com/home-assistant/core/pull/108243
+[#108244]: https://github.com/home-assistant/core/pull/108244
+[#108247]: https://github.com/home-assistant/core/pull/108247
+[#108252]: https://github.com/home-assistant/core/pull/108252
+[#108253]: https://github.com/home-assistant/core/pull/108253
+[#108257]: https://github.com/home-assistant/core/pull/108257
+[#108262]: https://github.com/home-assistant/core/pull/108262
+[#108263]: https://github.com/home-assistant/core/pull/108263
+[#108268]: https://github.com/home-assistant/core/pull/108268
+[#108269]: https://github.com/home-assistant/core/pull/108269
+[#108270]: https://github.com/home-assistant/core/pull/108270
+[#108272]: https://github.com/home-assistant/core/pull/108272
+[#108273]: https://github.com/home-assistant/core/pull/108273
+[#108274]: https://github.com/home-assistant/core/pull/108274
+[#108275]: https://github.com/home-assistant/core/pull/108275
+[#108278]: https://github.com/home-assistant/core/pull/108278
+[#108284]: https://github.com/home-assistant/core/pull/108284
+[#108288]: https://github.com/home-assistant/core/pull/108288
+[#108291]: https://github.com/home-assistant/core/pull/108291
+[#108293]: https://github.com/home-assistant/core/pull/108293
+[#108294]: https://github.com/home-assistant/core/pull/108294
+[#108295]: https://github.com/home-assistant/core/pull/108295
+[#108297]: https://github.com/home-assistant/core/pull/108297
+[#108302]: https://github.com/home-assistant/core/pull/108302
+[#108306]: https://github.com/home-assistant/core/pull/108306
+[#108307]: https://github.com/home-assistant/core/pull/108307
+[#108308]: https://github.com/home-assistant/core/pull/108308
+[#108309]: https://github.com/home-assistant/core/pull/108309
+[#108313]: https://github.com/home-assistant/core/pull/108313
+[#108314]: https://github.com/home-assistant/core/pull/108314
+[#108316]: https://github.com/home-assistant/core/pull/108316
+[#108319]: https://github.com/home-assistant/core/pull/108319
+[#108322]: https://github.com/home-assistant/core/pull/108322
+[#108325]: https://github.com/home-assistant/core/pull/108325
+[#108327]: https://github.com/home-assistant/core/pull/108327
+[#108329]: https://github.com/home-assistant/core/pull/108329
+[#108331]: https://github.com/home-assistant/core/pull/108331
+[#108332]: https://github.com/home-assistant/core/pull/108332
+[#108337]: https://github.com/home-assistant/core/pull/108337
+[#108339]: https://github.com/home-assistant/core/pull/108339
+[#108340]: https://github.com/home-assistant/core/pull/108340
+[#108342]: https://github.com/home-assistant/core/pull/108342
+[#108346]: https://github.com/home-assistant/core/pull/108346
+[#108347]: https://github.com/home-assistant/core/pull/108347
+[#108350]: https://github.com/home-assistant/core/pull/108350
+[#108353]: https://github.com/home-assistant/core/pull/108353
+[#108355]: https://github.com/home-assistant/core/pull/108355
+[#108358]: https://github.com/home-assistant/core/pull/108358
+[#108359]: https://github.com/home-assistant/core/pull/108359
+[#108360]: https://github.com/home-assistant/core/pull/108360
+[#108363]: https://github.com/home-assistant/core/pull/108363
+[#108365]: https://github.com/home-assistant/core/pull/108365
+[#108366]: https://github.com/home-assistant/core/pull/108366
+[#108367]: https://github.com/home-assistant/core/pull/108367
+[#108368]: https://github.com/home-assistant/core/pull/108368
+[#108369]: https://github.com/home-assistant/core/pull/108369
+[#108370]: https://github.com/home-assistant/core/pull/108370
+[#108371]: https://github.com/home-assistant/core/pull/108371
+[#108373]: https://github.com/home-assistant/core/pull/108373
+[#108375]: https://github.com/home-assistant/core/pull/108375
+[#108377]: https://github.com/home-assistant/core/pull/108377
+[#108381]: https://github.com/home-assistant/core/pull/108381
+[#108383]: https://github.com/home-assistant/core/pull/108383
+[#108384]: https://github.com/home-assistant/core/pull/108384
+[#108385]: https://github.com/home-assistant/core/pull/108385
+[#108390]: https://github.com/home-assistant/core/pull/108390
+[#108391]: https://github.com/home-assistant/core/pull/108391
+[#108393]: https://github.com/home-assistant/core/pull/108393
+[#108395]: https://github.com/home-assistant/core/pull/108395
+[#108396]: https://github.com/home-assistant/core/pull/108396
+[#108397]: https://github.com/home-assistant/core/pull/108397
+[#108398]: https://github.com/home-assistant/core/pull/108398
+[#108399]: https://github.com/home-assistant/core/pull/108399
+[#108400]: https://github.com/home-assistant/core/pull/108400
+[#108401]: https://github.com/home-assistant/core/pull/108401
+[#108402]: https://github.com/home-assistant/core/pull/108402
+[#108403]: https://github.com/home-assistant/core/pull/108403
+[#108404]: https://github.com/home-assistant/core/pull/108404
+[#108405]: https://github.com/home-assistant/core/pull/108405
+[#108406]: https://github.com/home-assistant/core/pull/108406
+[#108407]: https://github.com/home-assistant/core/pull/108407
+[#108408]: https://github.com/home-assistant/core/pull/108408
+[#108409]: https://github.com/home-assistant/core/pull/108409
+[#108410]: https://github.com/home-assistant/core/pull/108410
+[#108413]: https://github.com/home-assistant/core/pull/108413
+[#108414]: https://github.com/home-assistant/core/pull/108414
+[#108415]: https://github.com/home-assistant/core/pull/108415
+[#108416]: https://github.com/home-assistant/core/pull/108416
+[#108417]: https://github.com/home-assistant/core/pull/108417
+[#108418]: https://github.com/home-assistant/core/pull/108418
+[#108419]: https://github.com/home-assistant/core/pull/108419
+[#108420]: https://github.com/home-assistant/core/pull/108420
+[#108421]: https://github.com/home-assistant/core/pull/108421
+[#108422]: https://github.com/home-assistant/core/pull/108422
+[#108423]: https://github.com/home-assistant/core/pull/108423
+[#108428]: https://github.com/home-assistant/core/pull/108428
+[#108431]: https://github.com/home-assistant/core/pull/108431
+[#108435]: https://github.com/home-assistant/core/pull/108435
+[#108447]: https://github.com/home-assistant/core/pull/108447
+[#108448]: https://github.com/home-assistant/core/pull/108448
+[#108449]: https://github.com/home-assistant/core/pull/108449
+[#108450]: https://github.com/home-assistant/core/pull/108450
+[#108451]: https://github.com/home-assistant/core/pull/108451
+[#108452]: https://github.com/home-assistant/core/pull/108452
+[#108453]: https://github.com/home-assistant/core/pull/108453
+[#108455]: https://github.com/home-assistant/core/pull/108455
+[#108456]: https://github.com/home-assistant/core/pull/108456
+[#108457]: https://github.com/home-assistant/core/pull/108457
+[#108458]: https://github.com/home-assistant/core/pull/108458
+[#108460]: https://github.com/home-assistant/core/pull/108460
+[#108461]: https://github.com/home-assistant/core/pull/108461
+[#108462]: https://github.com/home-assistant/core/pull/108462
+[#108463]: https://github.com/home-assistant/core/pull/108463
+[#108464]: https://github.com/home-assistant/core/pull/108464
+[#108465]: https://github.com/home-assistant/core/pull/108465
+[#108466]: https://github.com/home-assistant/core/pull/108466
+[#108467]: https://github.com/home-assistant/core/pull/108467
+[#108469]: https://github.com/home-assistant/core/pull/108469
+[#108470]: https://github.com/home-assistant/core/pull/108470
+[#108471]: https://github.com/home-assistant/core/pull/108471
+[#108472]: https://github.com/home-assistant/core/pull/108472
+[#108473]: https://github.com/home-assistant/core/pull/108473
+[#108474]: https://github.com/home-assistant/core/pull/108474
+[#108475]: https://github.com/home-assistant/core/pull/108475
+[#108476]: https://github.com/home-assistant/core/pull/108476
+[#108477]: https://github.com/home-assistant/core/pull/108477
+[#108479]: https://github.com/home-assistant/core/pull/108479
+[#108480]: https://github.com/home-assistant/core/pull/108480
+[#108481]: https://github.com/home-assistant/core/pull/108481
+[#108482]: https://github.com/home-assistant/core/pull/108482
+[#108484]: https://github.com/home-assistant/core/pull/108484
+[#108486]: https://github.com/home-assistant/core/pull/108486
+[#108488]: https://github.com/home-assistant/core/pull/108488
+[#108491]: https://github.com/home-assistant/core/pull/108491
+[#108494]: https://github.com/home-assistant/core/pull/108494
+[#108495]: https://github.com/home-assistant/core/pull/108495
+[#108498]: https://github.com/home-assistant/core/pull/108498
+[#108499]: https://github.com/home-assistant/core/pull/108499
+[#108501]: https://github.com/home-assistant/core/pull/108501
+[#108506]: https://github.com/home-assistant/core/pull/108506
+[#108507]: https://github.com/home-assistant/core/pull/108507
+[#108508]: https://github.com/home-assistant/core/pull/108508
+[#108511]: https://github.com/home-assistant/core/pull/108511
+[#108532]: https://github.com/home-assistant/core/pull/108532
+[#108534]: https://github.com/home-assistant/core/pull/108534
+[#108543]: https://github.com/home-assistant/core/pull/108543
+[#108544]: https://github.com/home-assistant/core/pull/108544
+[#108546]: https://github.com/home-assistant/core/pull/108546
+[#108554]: https://github.com/home-assistant/core/pull/108554
+[#108556]: https://github.com/home-assistant/core/pull/108556
+[#108559]: https://github.com/home-assistant/core/pull/108559
+[#108564]: https://github.com/home-assistant/core/pull/108564
+[#108568]: https://github.com/home-assistant/core/pull/108568
+[#108569]: https://github.com/home-assistant/core/pull/108569
+[#108571]: https://github.com/home-assistant/core/pull/108571
+[#108576]: https://github.com/home-assistant/core/pull/108576
+[#108586]: https://github.com/home-assistant/core/pull/108586
+[#108587]: https://github.com/home-assistant/core/pull/108587
+[#108594]: https://github.com/home-assistant/core/pull/108594
+[#108599]: https://github.com/home-assistant/core/pull/108599
+[#108600]: https://github.com/home-assistant/core/pull/108600
+[#108604]: https://github.com/home-assistant/core/pull/108604
+[#108605]: https://github.com/home-assistant/core/pull/108605
+[#108606]: https://github.com/home-assistant/core/pull/108606
+[#108608]: https://github.com/home-assistant/core/pull/108608
+[#108611]: https://github.com/home-assistant/core/pull/108611
+[#108617]: https://github.com/home-assistant/core/pull/108617
+[#108623]: https://github.com/home-assistant/core/pull/108623
+[#108624]: https://github.com/home-assistant/core/pull/108624
+[#108625]: https://github.com/home-assistant/core/pull/108625
+[#108626]: https://github.com/home-assistant/core/pull/108626
+[#108627]: https://github.com/home-assistant/core/pull/108627
+[#108628]: https://github.com/home-assistant/core/pull/108628
+[#108629]: https://github.com/home-assistant/core/pull/108629
+[#108632]: https://github.com/home-assistant/core/pull/108632
+[#108633]: https://github.com/home-assistant/core/pull/108633
+[#108634]: https://github.com/home-assistant/core/pull/108634
+[#108637]: https://github.com/home-assistant/core/pull/108637
+[#108638]: https://github.com/home-assistant/core/pull/108638
+[#108639]: https://github.com/home-assistant/core/pull/108639
+[#108643]: https://github.com/home-assistant/core/pull/108643
+[#108645]: https://github.com/home-assistant/core/pull/108645
+[#108648]: https://github.com/home-assistant/core/pull/108648
+[#108650]: https://github.com/home-assistant/core/pull/108650
+[#108653]: https://github.com/home-assistant/core/pull/108653
+[#108656]: https://github.com/home-assistant/core/pull/108656
+[#108667]: https://github.com/home-assistant/core/pull/108667
+[#108668]: https://github.com/home-assistant/core/pull/108668
+[#108669]: https://github.com/home-assistant/core/pull/108669
+[#108670]: https://github.com/home-assistant/core/pull/108670
+[#108671]: https://github.com/home-assistant/core/pull/108671
+[#108672]: https://github.com/home-assistant/core/pull/108672
+[#108673]: https://github.com/home-assistant/core/pull/108673
+[#108674]: https://github.com/home-assistant/core/pull/108674
+[#108675]: https://github.com/home-assistant/core/pull/108675
+[#108676]: https://github.com/home-assistant/core/pull/108676
+[#108677]: https://github.com/home-assistant/core/pull/108677
+[#108678]: https://github.com/home-assistant/core/pull/108678
+[#108679]: https://github.com/home-assistant/core/pull/108679
+[#108680]: https://github.com/home-assistant/core/pull/108680
+[#108681]: https://github.com/home-assistant/core/pull/108681
+[#108682]: https://github.com/home-assistant/core/pull/108682
+[#108683]: https://github.com/home-assistant/core/pull/108683
+[#108684]: https://github.com/home-assistant/core/pull/108684
+[#108686]: https://github.com/home-assistant/core/pull/108686
+[#108688]: https://github.com/home-assistant/core/pull/108688
+[#108689]: https://github.com/home-assistant/core/pull/108689
+[#108690]: https://github.com/home-assistant/core/pull/108690
+[#108691]: https://github.com/home-assistant/core/pull/108691
+[#108692]: https://github.com/home-assistant/core/pull/108692
+[#108695]: https://github.com/home-assistant/core/pull/108695
+[#108699]: https://github.com/home-assistant/core/pull/108699
+[#108703]: https://github.com/home-assistant/core/pull/108703
+[#108704]: https://github.com/home-assistant/core/pull/108704
+[#108710]: https://github.com/home-assistant/core/pull/108710
+[#108713]: https://github.com/home-assistant/core/pull/108713
+[#108715]: https://github.com/home-assistant/core/pull/108715
+[#108716]: https://github.com/home-assistant/core/pull/108716
+[#108717]: https://github.com/home-assistant/core/pull/108717
+[#108718]: https://github.com/home-assistant/core/pull/108718
+[#108719]: https://github.com/home-assistant/core/pull/108719
+[#108721]: https://github.com/home-assistant/core/pull/108721
+[#108722]: https://github.com/home-assistant/core/pull/108722
+[#108723]: https://github.com/home-assistant/core/pull/108723
+[#108725]: https://github.com/home-assistant/core/pull/108725
+[#108726]: https://github.com/home-assistant/core/pull/108726
+[#108727]: https://github.com/home-assistant/core/pull/108727
+[#108730]: https://github.com/home-assistant/core/pull/108730
+[#108731]: https://github.com/home-assistant/core/pull/108731
+[#108733]: https://github.com/home-assistant/core/pull/108733
+[#108734]: https://github.com/home-assistant/core/pull/108734
+[#108735]: https://github.com/home-assistant/core/pull/108735
+[#108736]: https://github.com/home-assistant/core/pull/108736
+[#108737]: https://github.com/home-assistant/core/pull/108737
+[#108738]: https://github.com/home-assistant/core/pull/108738
+[#108740]: https://github.com/home-assistant/core/pull/108740
+[#108741]: https://github.com/home-assistant/core/pull/108741
+[#108750]: https://github.com/home-assistant/core/pull/108750
+[#108751]: https://github.com/home-assistant/core/pull/108751
+[#108753]: https://github.com/home-assistant/core/pull/108753
+[#108756]: https://github.com/home-assistant/core/pull/108756
+[#108757]: https://github.com/home-assistant/core/pull/108757
+[#108758]: https://github.com/home-assistant/core/pull/108758
+[#108759]: https://github.com/home-assistant/core/pull/108759
+[#108760]: https://github.com/home-assistant/core/pull/108760
+[#108761]: https://github.com/home-assistant/core/pull/108761
+[#108762]: https://github.com/home-assistant/core/pull/108762
+[#108766]: https://github.com/home-assistant/core/pull/108766
+[#108767]: https://github.com/home-assistant/core/pull/108767
+[#108768]: https://github.com/home-assistant/core/pull/108768
+[#108769]: https://github.com/home-assistant/core/pull/108769
+[#108770]: https://github.com/home-assistant/core/pull/108770
+[#108772]: https://github.com/home-assistant/core/pull/108772
+[#108779]: https://github.com/home-assistant/core/pull/108779
+[#108783]: https://github.com/home-assistant/core/pull/108783
+[#108787]: https://github.com/home-assistant/core/pull/108787
+[#108788]: https://github.com/home-assistant/core/pull/108788
+[#108791]: https://github.com/home-assistant/core/pull/108791
+[#108798]: https://github.com/home-assistant/core/pull/108798
+[#108800]: https://github.com/home-assistant/core/pull/108800
+[#108801]: https://github.com/home-assistant/core/pull/108801
+[#108804]: https://github.com/home-assistant/core/pull/108804
+[#108805]: https://github.com/home-assistant/core/pull/108805
+[#108811]: https://github.com/home-assistant/core/pull/108811
+[#108812]: https://github.com/home-assistant/core/pull/108812
+[#108815]: https://github.com/home-assistant/core/pull/108815
+[#108818]: https://github.com/home-assistant/core/pull/108818
+[#108820]: https://github.com/home-assistant/core/pull/108820
+[#108823]: https://github.com/home-assistant/core/pull/108823
+[#108826]: https://github.com/home-assistant/core/pull/108826
+[#108830]: https://github.com/home-assistant/core/pull/108830
+[#108831]: https://github.com/home-assistant/core/pull/108831
+[#108838]: https://github.com/home-assistant/core/pull/108838
+[#108848]: https://github.com/home-assistant/core/pull/108848
+[#108850]: https://github.com/home-assistant/core/pull/108850
+[#108851]: https://github.com/home-assistant/core/pull/108851
+[#108852]: https://github.com/home-assistant/core/pull/108852
+[#108853]: https://github.com/home-assistant/core/pull/108853
+[#108854]: https://github.com/home-assistant/core/pull/108854
+[#108855]: https://github.com/home-assistant/core/pull/108855
+[#108856]: https://github.com/home-assistant/core/pull/108856
+[#108858]: https://github.com/home-assistant/core/pull/108858
+[#108861]: https://github.com/home-assistant/core/pull/108861
+[#108862]: https://github.com/home-assistant/core/pull/108862
+[#108865]: https://github.com/home-assistant/core/pull/108865
+[#108866]: https://github.com/home-assistant/core/pull/108866
+[#108868]: https://github.com/home-assistant/core/pull/108868
+[#108870]: https://github.com/home-assistant/core/pull/108870
+[#108875]: https://github.com/home-assistant/core/pull/108875
+[#108877]: https://github.com/home-assistant/core/pull/108877
+[#108884]: https://github.com/home-assistant/core/pull/108884
+[#108885]: https://github.com/home-assistant/core/pull/108885
+[#108889]: https://github.com/home-assistant/core/pull/108889
+[#108890]: https://github.com/home-assistant/core/pull/108890
+[#108892]: https://github.com/home-assistant/core/pull/108892
+[#108893]: https://github.com/home-assistant/core/pull/108893
+[#108894]: https://github.com/home-assistant/core/pull/108894
+[#108895]: https://github.com/home-assistant/core/pull/108895
+[#108898]: https://github.com/home-assistant/core/pull/108898
+[#108899]: https://github.com/home-assistant/core/pull/108899
+[#108900]: https://github.com/home-assistant/core/pull/108900
+[#108902]: https://github.com/home-assistant/core/pull/108902
+[#108909]: https://github.com/home-assistant/core/pull/108909
+[#108910]: https://github.com/home-assistant/core/pull/108910
+[#108911]: https://github.com/home-assistant/core/pull/108911
+[#108913]: https://github.com/home-assistant/core/pull/108913
+[#108924]: https://github.com/home-assistant/core/pull/108924
+[#108933]: https://github.com/home-assistant/core/pull/108933
+[#108934]: https://github.com/home-assistant/core/pull/108934
+[#108935]: https://github.com/home-assistant/core/pull/108935
+[#108937]: https://github.com/home-assistant/core/pull/108937
+[#108938]: https://github.com/home-assistant/core/pull/108938
+[#108939]: https://github.com/home-assistant/core/pull/108939
+[#108942]: https://github.com/home-assistant/core/pull/108942
+[#108944]: https://github.com/home-assistant/core/pull/108944
+[#108947]: https://github.com/home-assistant/core/pull/108947
+[#108951]: https://github.com/home-assistant/core/pull/108951
+[#108952]: https://github.com/home-assistant/core/pull/108952
+[#108956]: https://github.com/home-assistant/core/pull/108956
+[#108961]: https://github.com/home-assistant/core/pull/108961
+[#108962]: https://github.com/home-assistant/core/pull/108962
+[#108963]: https://github.com/home-assistant/core/pull/108963
+[#108964]: https://github.com/home-assistant/core/pull/108964
+[#108965]: https://github.com/home-assistant/core/pull/108965
+[#108966]: https://github.com/home-assistant/core/pull/108966
+[#108967]: https://github.com/home-assistant/core/pull/108967
+[#108969]: https://github.com/home-assistant/core/pull/108969
+[#108970]: https://github.com/home-assistant/core/pull/108970
+[#108971]: https://github.com/home-assistant/core/pull/108971
+[#108972]: https://github.com/home-assistant/core/pull/108972
+[#108973]: https://github.com/home-assistant/core/pull/108973
+[#108974]: https://github.com/home-assistant/core/pull/108974
+[#108976]: https://github.com/home-assistant/core/pull/108976
+[#108977]: https://github.com/home-assistant/core/pull/108977
+[#108978]: https://github.com/home-assistant/core/pull/108978
+[#108979]: https://github.com/home-assistant/core/pull/108979
+[#108984]: https://github.com/home-assistant/core/pull/108984
+[#108987]: https://github.com/home-assistant/core/pull/108987
+[#108990]: https://github.com/home-assistant/core/pull/108990
+[#108992]: https://github.com/home-assistant/core/pull/108992
+[#109000]: https://github.com/home-assistant/core/pull/109000
+[#109002]: https://github.com/home-assistant/core/pull/109002
+[#109004]: https://github.com/home-assistant/core/pull/109004
+[#109008]: https://github.com/home-assistant/core/pull/109008
+[#109010]: https://github.com/home-assistant/core/pull/109010
+[#109015]: https://github.com/home-assistant/core/pull/109015
+[#109016]: https://github.com/home-assistant/core/pull/109016
+[#109020]: https://github.com/home-assistant/core/pull/109020
+[#109027]: https://github.com/home-assistant/core/pull/109027
+[#109031]: https://github.com/home-assistant/core/pull/109031
+[#109032]: https://github.com/home-assistant/core/pull/109032
+[#109033]: https://github.com/home-assistant/core/pull/109033
+[#109038]: https://github.com/home-assistant/core/pull/109038
+[#109039]: https://github.com/home-assistant/core/pull/109039
+[#109041]: https://github.com/home-assistant/core/pull/109041
+[#109042]: https://github.com/home-assistant/core/pull/109042
+[#109044]: https://github.com/home-assistant/core/pull/109044
+[#109045]: https://github.com/home-assistant/core/pull/109045
+[#109048]: https://github.com/home-assistant/core/pull/109048
+[#109054]: https://github.com/home-assistant/core/pull/109054
+[#109061]: https://github.com/home-assistant/core/pull/109061
+[#109064]: https://github.com/home-assistant/core/pull/109064
+[#109065]: https://github.com/home-assistant/core/pull/109065
+[#109066]: https://github.com/home-assistant/core/pull/109066
+[#109067]: https://github.com/home-assistant/core/pull/109067
+[#109068]: https://github.com/home-assistant/core/pull/109068
+[#109069]: https://github.com/home-assistant/core/pull/109069
+[#109071]: https://github.com/home-assistant/core/pull/109071
+[#109072]: https://github.com/home-assistant/core/pull/109072
+[#109076]: https://github.com/home-assistant/core/pull/109076
+[#109077]: https://github.com/home-assistant/core/pull/109077
+[#109078]: https://github.com/home-assistant/core/pull/109078
+[#109079]: https://github.com/home-assistant/core/pull/109079
+[#109083]: https://github.com/home-assistant/core/pull/109083
+[#109085]: https://github.com/home-assistant/core/pull/109085
+[#109089]: https://github.com/home-assistant/core/pull/109089
+[#109091]: https://github.com/home-assistant/core/pull/109091
+[#109098]: https://github.com/home-assistant/core/pull/109098
+[#109100]: https://github.com/home-assistant/core/pull/109100
+[#109101]: https://github.com/home-assistant/core/pull/109101
+[#109105]: https://github.com/home-assistant/core/pull/109105
+[#109106]: https://github.com/home-assistant/core/pull/109106
+[#109107]: https://github.com/home-assistant/core/pull/109107
+[#109108]: https://github.com/home-assistant/core/pull/109108
+[#109109]: https://github.com/home-assistant/core/pull/109109
+[#109110]: https://github.com/home-assistant/core/pull/109110
+[#109111]: https://github.com/home-assistant/core/pull/109111
+[#109113]: https://github.com/home-assistant/core/pull/109113
+[#109114]: https://github.com/home-assistant/core/pull/109114
+[#109115]: https://github.com/home-assistant/core/pull/109115
+[#109116]: https://github.com/home-assistant/core/pull/109116
+[#109118]: https://github.com/home-assistant/core/pull/109118
+[#109122]: https://github.com/home-assistant/core/pull/109122
+[#109124]: https://github.com/home-assistant/core/pull/109124
+[#109126]: https://github.com/home-assistant/core/pull/109126
+[#109127]: https://github.com/home-assistant/core/pull/109127
+[#109131]: https://github.com/home-assistant/core/pull/109131
+[#109132]: https://github.com/home-assistant/core/pull/109132
+[#109133]: https://github.com/home-assistant/core/pull/109133
+[#109134]: https://github.com/home-assistant/core/pull/109134
+[#109135]: https://github.com/home-assistant/core/pull/109135
+[#109136]: https://github.com/home-assistant/core/pull/109136
+[#109137]: https://github.com/home-assistant/core/pull/109137
+[#109138]: https://github.com/home-assistant/core/pull/109138
+[#109139]: https://github.com/home-assistant/core/pull/109139
+[#109140]: https://github.com/home-assistant/core/pull/109140
+[#109141]: https://github.com/home-assistant/core/pull/109141
+[#109145]: https://github.com/home-assistant/core/pull/109145
+[#109146]: https://github.com/home-assistant/core/pull/109146
+[#109147]: https://github.com/home-assistant/core/pull/109147
+[#109149]: https://github.com/home-assistant/core/pull/109149
+[#109150]: https://github.com/home-assistant/core/pull/109150
+[#109151]: https://github.com/home-assistant/core/pull/109151
+[#109152]: https://github.com/home-assistant/core/pull/109152
+[#109154]: https://github.com/home-assistant/core/pull/109154
+[#109155]: https://github.com/home-assistant/core/pull/109155
+[#109156]: https://github.com/home-assistant/core/pull/109156
+[#109157]: https://github.com/home-assistant/core/pull/109157
+[#109160]: https://github.com/home-assistant/core/pull/109160
+[#109161]: https://github.com/home-assistant/core/pull/109161
+[#109163]: https://github.com/home-assistant/core/pull/109163
+[#109167]: https://github.com/home-assistant/core/pull/109167
+[#109168]: https://github.com/home-assistant/core/pull/109168
+[#109170]: https://github.com/home-assistant/core/pull/109170
+[#109172]: https://github.com/home-assistant/core/pull/109172
+[#109173]: https://github.com/home-assistant/core/pull/109173
+[#109174]: https://github.com/home-assistant/core/pull/109174
+[#109178]: https://github.com/home-assistant/core/pull/109178
+[#109180]: https://github.com/home-assistant/core/pull/109180
+[#109184]: https://github.com/home-assistant/core/pull/109184
+[#109186]: https://github.com/home-assistant/core/pull/109186
+[#109188]: https://github.com/home-assistant/core/pull/109188
+[#109189]: https://github.com/home-assistant/core/pull/109189
+[#109191]: https://github.com/home-assistant/core/pull/109191
+[#109192]: https://github.com/home-assistant/core/pull/109192
+[#109195]: https://github.com/home-assistant/core/pull/109195
+[#109199]: https://github.com/home-assistant/core/pull/109199
+[#109200]: https://github.com/home-assistant/core/pull/109200
+[#109202]: https://github.com/home-assistant/core/pull/109202
+[#109207]: https://github.com/home-assistant/core/pull/109207
+[#109209]: https://github.com/home-assistant/core/pull/109209
+[#109212]: https://github.com/home-assistant/core/pull/109212
+[#109214]: https://github.com/home-assistant/core/pull/109214
+[#109216]: https://github.com/home-assistant/core/pull/109216
+[#109217]: https://github.com/home-assistant/core/pull/109217
+[#109218]: https://github.com/home-assistant/core/pull/109218
+[#109219]: https://github.com/home-assistant/core/pull/109219
+[#109220]: https://github.com/home-assistant/core/pull/109220
+[#109224]: https://github.com/home-assistant/core/pull/109224
+[#109226]: https://github.com/home-assistant/core/pull/109226
+[#109231]: https://github.com/home-assistant/core/pull/109231
+[#109235]: https://github.com/home-assistant/core/pull/109235
+[#109239]: https://github.com/home-assistant/core/pull/109239
+[#109241]: https://github.com/home-assistant/core/pull/109241
+[#109242]: https://github.com/home-assistant/core/pull/109242
+[#109243]: https://github.com/home-assistant/core/pull/109243
+[#109249]: https://github.com/home-assistant/core/pull/109249
+[#109250]: https://github.com/home-assistant/core/pull/109250
+[#109251]: https://github.com/home-assistant/core/pull/109251
+[#109260]: https://github.com/home-assistant/core/pull/109260
+[#109267]: https://github.com/home-assistant/core/pull/109267
+[#109268]: https://github.com/home-assistant/core/pull/109268
+[#109269]: https://github.com/home-assistant/core/pull/109269
+[#109271]: https://github.com/home-assistant/core/pull/109271
+[#109274]: https://github.com/home-assistant/core/pull/109274
+[#109277]: https://github.com/home-assistant/core/pull/109277
+[#109279]: https://github.com/home-assistant/core/pull/109279
+[#109282]: https://github.com/home-assistant/core/pull/109282
+[#109284]: https://github.com/home-assistant/core/pull/109284
+[#109292]: https://github.com/home-assistant/core/pull/109292
+[#109294]: https://github.com/home-assistant/core/pull/109294
+[#109296]: https://github.com/home-assistant/core/pull/109296
+[#109302]: https://github.com/home-assistant/core/pull/109302
+[#109306]: https://github.com/home-assistant/core/pull/109306
+[#109307]: https://github.com/home-assistant/core/pull/109307
+[#109311]: https://github.com/home-assistant/core/pull/109311
+[#109316]: https://github.com/home-assistant/core/pull/109316
+[#109317]: https://github.com/home-assistant/core/pull/109317
+[#109325]: https://github.com/home-assistant/core/pull/109325
+[#109329]: https://github.com/home-assistant/core/pull/109329
+[#109331]: https://github.com/home-assistant/core/pull/109331
+[#109333]: https://github.com/home-assistant/core/pull/109333
+[#109338]: https://github.com/home-assistant/core/pull/109338
+[#109340]: https://github.com/home-assistant/core/pull/109340
+[#109341]: https://github.com/home-assistant/core/pull/109341
+[#109344]: https://github.com/home-assistant/core/pull/109344
+[#109347]: https://github.com/home-assistant/core/pull/109347
+[#109350]: https://github.com/home-assistant/core/pull/109350
+[#109359]: https://github.com/home-assistant/core/pull/109359
+[#109360]: https://github.com/home-assistant/core/pull/109360
+[#109361]: https://github.com/home-assistant/core/pull/109361
+[#109364]: https://github.com/home-assistant/core/pull/109364
+[#109372]: https://github.com/home-assistant/core/pull/109372
+[#109388]: https://github.com/home-assistant/core/pull/109388
+[#109391]: https://github.com/home-assistant/core/pull/109391
+[#109393]: https://github.com/home-assistant/core/pull/109393
+[#109394]: https://github.com/home-assistant/core/pull/109394
+[#109397]: https://github.com/home-assistant/core/pull/109397
+[#109399]: https://github.com/home-assistant/core/pull/109399
+[#109401]: https://github.com/home-assistant/core/pull/109401
+[#109403]: https://github.com/home-assistant/core/pull/109403
+[#109404]: https://github.com/home-assistant/core/pull/109404
+[#109408]: https://github.com/home-assistant/core/pull/109408
+[#109410]: https://github.com/home-assistant/core/pull/109410
+[#109412]: https://github.com/home-assistant/core/pull/109412
+[#109413]: https://github.com/home-assistant/core/pull/109413
+[#109414]: https://github.com/home-assistant/core/pull/109414
+[#109415]: https://github.com/home-assistant/core/pull/109415
+[#109416]: https://github.com/home-assistant/core/pull/109416
+[#109417]: https://github.com/home-assistant/core/pull/109417
+[#109418]: https://github.com/home-assistant/core/pull/109418
+[#109419]: https://github.com/home-assistant/core/pull/109419
+[#109420]: https://github.com/home-assistant/core/pull/109420
+[#109421]: https://github.com/home-assistant/core/pull/109421
+[#109422]: https://github.com/home-assistant/core/pull/109422
+[#109423]: https://github.com/home-assistant/core/pull/109423
+[#109424]: https://github.com/home-assistant/core/pull/109424
+[#109425]: https://github.com/home-assistant/core/pull/109425
+[#109426]: https://github.com/home-assistant/core/pull/109426
+[#109427]: https://github.com/home-assistant/core/pull/109427
+[#109428]: https://github.com/home-assistant/core/pull/109428
+[#109429]: https://github.com/home-assistant/core/pull/109429
+[#109430]: https://github.com/home-assistant/core/pull/109430
+[#109431]: https://github.com/home-assistant/core/pull/109431
+[#109433]: https://github.com/home-assistant/core/pull/109433
+[#109434]: https://github.com/home-assistant/core/pull/109434
+[#109435]: https://github.com/home-assistant/core/pull/109435
+[#109436]: https://github.com/home-assistant/core/pull/109436
+[#109437]: https://github.com/home-assistant/core/pull/109437
+[#109438]: https://github.com/home-assistant/core/pull/109438
+[#109439]: https://github.com/home-assistant/core/pull/109439
+[#109440]: https://github.com/home-assistant/core/pull/109440
+[#109441]: https://github.com/home-assistant/core/pull/109441
+[#109442]: https://github.com/home-assistant/core/pull/109442
+[#109443]: https://github.com/home-assistant/core/pull/109443
+[#109444]: https://github.com/home-assistant/core/pull/109444
+[#109445]: https://github.com/home-assistant/core/pull/109445
+[#109446]: https://github.com/home-assistant/core/pull/109446
+[#109447]: https://github.com/home-assistant/core/pull/109447
+[#109448]: https://github.com/home-assistant/core/pull/109448
+[#109449]: https://github.com/home-assistant/core/pull/109449
+[#109450]: https://github.com/home-assistant/core/pull/109450
+[#109451]: https://github.com/home-assistant/core/pull/109451
+[#109452]: https://github.com/home-assistant/core/pull/109452
+[#109454]: https://github.com/home-assistant/core/pull/109454
+[#109455]: https://github.com/home-assistant/core/pull/109455
+[#109456]: https://github.com/home-assistant/core/pull/109456
+[#109457]: https://github.com/home-assistant/core/pull/109457
+[#109458]: https://github.com/home-assistant/core/pull/109458
+[#109459]: https://github.com/home-assistant/core/pull/109459
+[#109461]: https://github.com/home-assistant/core/pull/109461
+[#109462]: https://github.com/home-assistant/core/pull/109462
+[#109463]: https://github.com/home-assistant/core/pull/109463
+[#109464]: https://github.com/home-assistant/core/pull/109464
+[#109465]: https://github.com/home-assistant/core/pull/109465
+[#109466]: https://github.com/home-assistant/core/pull/109466
+[#109467]: https://github.com/home-assistant/core/pull/109467
+[#109468]: https://github.com/home-assistant/core/pull/109468
+[#109469]: https://github.com/home-assistant/core/pull/109469
+[#109470]: https://github.com/home-assistant/core/pull/109470
+[#109471]: https://github.com/home-assistant/core/pull/109471
+[#109472]: https://github.com/home-assistant/core/pull/109472
+[#109473]: https://github.com/home-assistant/core/pull/109473
+[#109474]: https://github.com/home-assistant/core/pull/109474
+[#109475]: https://github.com/home-assistant/core/pull/109475
+[#109476]: https://github.com/home-assistant/core/pull/109476
+[#109477]: https://github.com/home-assistant/core/pull/109477
+[#109478]: https://github.com/home-assistant/core/pull/109478
+[#109479]: https://github.com/home-assistant/core/pull/109479
+[#109480]: https://github.com/home-assistant/core/pull/109480
+[#109481]: https://github.com/home-assistant/core/pull/109481
+[#109482]: https://github.com/home-assistant/core/pull/109482
+[#109490]: https://github.com/home-assistant/core/pull/109490
+[#109493]: https://github.com/home-assistant/core/pull/109493
+[#109494]: https://github.com/home-assistant/core/pull/109494
+[#109501]: https://github.com/home-assistant/core/pull/109501
+[#109510]: https://github.com/home-assistant/core/pull/109510
+[#109515]: https://github.com/home-assistant/core/pull/109515
+[#109522]: https://github.com/home-assistant/core/pull/109522
+[#109523]: https://github.com/home-assistant/core/pull/109523
+[#109525]: https://github.com/home-assistant/core/pull/109525
+[#109530]: https://github.com/home-assistant/core/pull/109530
+[#109534]: https://github.com/home-assistant/core/pull/109534
+[#109535]: https://github.com/home-assistant/core/pull/109535
+[#109536]: https://github.com/home-assistant/core/pull/109536
+[#109537]: https://github.com/home-assistant/core/pull/109537
+[#109538]: https://github.com/home-assistant/core/pull/109538
+[#109539]: https://github.com/home-assistant/core/pull/109539
+[#109540]: https://github.com/home-assistant/core/pull/109540
+[#109541]: https://github.com/home-assistant/core/pull/109541
+[#109542]: https://github.com/home-assistant/core/pull/109542
+[#109543]: https://github.com/home-assistant/core/pull/109543
+[#109544]: https://github.com/home-assistant/core/pull/109544
+[#109545]: https://github.com/home-assistant/core/pull/109545
+[#109546]: https://github.com/home-assistant/core/pull/109546
+[#109547]: https://github.com/home-assistant/core/pull/109547
+[#109548]: https://github.com/home-assistant/core/pull/109548
+[#109549]: https://github.com/home-assistant/core/pull/109549
+[#109550]: https://github.com/home-assistant/core/pull/109550
+[#109551]: https://github.com/home-assistant/core/pull/109551
+[#109552]: https://github.com/home-assistant/core/pull/109552
+[#109553]: https://github.com/home-assistant/core/pull/109553
+[#109554]: https://github.com/home-assistant/core/pull/109554
+[#109555]: https://github.com/home-assistant/core/pull/109555
+[#109556]: https://github.com/home-assistant/core/pull/109556
+[#109557]: https://github.com/home-assistant/core/pull/109557
+[#109558]: https://github.com/home-assistant/core/pull/109558
+[#109559]: https://github.com/home-assistant/core/pull/109559
+[#109560]: https://github.com/home-assistant/core/pull/109560
+[#109562]: https://github.com/home-assistant/core/pull/109562
+[#109563]: https://github.com/home-assistant/core/pull/109563
+[#109564]: https://github.com/home-assistant/core/pull/109564
+[#109565]: https://github.com/home-assistant/core/pull/109565
+[#109566]: https://github.com/home-assistant/core/pull/109566
+[#109568]: https://github.com/home-assistant/core/pull/109568
+[#109569]: https://github.com/home-assistant/core/pull/109569
+[#109570]: https://github.com/home-assistant/core/pull/109570
+[#109571]: https://github.com/home-assistant/core/pull/109571
+[#109572]: https://github.com/home-assistant/core/pull/109572
+[#109575]: https://github.com/home-assistant/core/pull/109575
+[#109580]: https://github.com/home-assistant/core/pull/109580
+[#109582]: https://github.com/home-assistant/core/pull/109582
+[#109585]: https://github.com/home-assistant/core/pull/109585
+[#109594]: https://github.com/home-assistant/core/pull/109594
+[#109596]: https://github.com/home-assistant/core/pull/109596
+[#109600]: https://github.com/home-assistant/core/pull/109600
+[#109614]: https://github.com/home-assistant/core/pull/109614
+[#109615]: https://github.com/home-assistant/core/pull/109615
+[#109626]: https://github.com/home-assistant/core/pull/109626
+[#109627]: https://github.com/home-assistant/core/pull/109627
+[#109628]: https://github.com/home-assistant/core/pull/109628
+[#109630]: https://github.com/home-assistant/core/pull/109630
+[#109644]: https://github.com/home-assistant/core/pull/109644
+[#109648]: https://github.com/home-assistant/core/pull/109648
+[#109650]: https://github.com/home-assistant/core/pull/109650
+[#109651]: https://github.com/home-assistant/core/pull/109651
+[#109652]: https://github.com/home-assistant/core/pull/109652
+[#109653]: https://github.com/home-assistant/core/pull/109653
+[#109656]: https://github.com/home-assistant/core/pull/109656
+[#109658]: https://github.com/home-assistant/core/pull/109658
+[#109659]: https://github.com/home-assistant/core/pull/109659
+[#109664]: https://github.com/home-assistant/core/pull/109664
+[#109666]: https://github.com/home-assistant/core/pull/109666
+[#109675]: https://github.com/home-assistant/core/pull/109675
+[#109692]: https://github.com/home-assistant/core/pull/109692
+[#109694]: https://github.com/home-assistant/core/pull/109694
+[#109695]: https://github.com/home-assistant/core/pull/109695
+[#109701]: https://github.com/home-assistant/core/pull/109701
+[#109702]: https://github.com/home-assistant/core/pull/109702
+[#109707]: https://github.com/home-assistant/core/pull/109707
+[#109708]: https://github.com/home-assistant/core/pull/109708
+[#109709]: https://github.com/home-assistant/core/pull/109709
+[#109716]: https://github.com/home-assistant/core/pull/109716
+[#109717]: https://github.com/home-assistant/core/pull/109717
+[#109720]: https://github.com/home-assistant/core/pull/109720
+[#109727]: https://github.com/home-assistant/core/pull/109727
+[#109737]: https://github.com/home-assistant/core/pull/109737
+[#109744]: https://github.com/home-assistant/core/pull/109744
+[#109748]: https://github.com/home-assistant/core/pull/109748
+[#109749]: https://github.com/home-assistant/core/pull/109749
+[#109750]: https://github.com/home-assistant/core/pull/109750
+[#109755]: https://github.com/home-assistant/core/pull/109755
+[#109757]: https://github.com/home-assistant/core/pull/109757
+[#109760]: https://github.com/home-assistant/core/pull/109760
+[#109762]: https://github.com/home-assistant/core/pull/109762
+[#109765]: https://github.com/home-assistant/core/pull/109765
+[#109767]: https://github.com/home-assistant/core/pull/109767
+[#109770]: https://github.com/home-assistant/core/pull/109770
+[#109778]: https://github.com/home-assistant/core/pull/109778
+[#109783]: https://github.com/home-assistant/core/pull/109783
+[#109787]: https://github.com/home-assistant/core/pull/109787
+[#109789]: https://github.com/home-assistant/core/pull/109789
+[#109793]: https://github.com/home-assistant/core/pull/109793
+[#109797]: https://github.com/home-assistant/core/pull/109797
+[#109807]: https://github.com/home-assistant/core/pull/109807
+[#109809]: https://github.com/home-assistant/core/pull/109809
+[#109810]: https://github.com/home-assistant/core/pull/109810
+[#109812]: https://github.com/home-assistant/core/pull/109812
+[#109814]: https://github.com/home-assistant/core/pull/109814
+[#109817]: https://github.com/home-assistant/core/pull/109817
+[#109823]: https://github.com/home-assistant/core/pull/109823
+[#109824]: https://github.com/home-assistant/core/pull/109824
+[#109825]: https://github.com/home-assistant/core/pull/109825
+[#109830]: https://github.com/home-assistant/core/pull/109830
+[#109832]: https://github.com/home-assistant/core/pull/109832
+[#109837]: https://github.com/home-assistant/core/pull/109837
+[#109845]: https://github.com/home-assistant/core/pull/109845
+[#109848]: https://github.com/home-assistant/core/pull/109848
+[#109859]: https://github.com/home-assistant/core/pull/109859
+[#109871]: https://github.com/home-assistant/core/pull/109871
+[#109873]: https://github.com/home-assistant/core/pull/109873
+[#66130]: https://github.com/home-assistant/core/pull/66130
+[#80061]: https://github.com/home-assistant/core/pull/80061
+[#86522]: https://github.com/home-assistant/core/pull/86522
+[#93462]: https://github.com/home-assistant/core/pull/93462
+[#93750]: https://github.com/home-assistant/core/pull/93750
+[#93768]: https://github.com/home-assistant/core/pull/93768
+[#96723]: https://github.com/home-assistant/core/pull/96723
+[#97208]: https://github.com/home-assistant/core/pull/97208
+[#97681]: https://github.com/home-assistant/core/pull/97681
+[#97937]: https://github.com/home-assistant/core/pull/97937
+[#98136]: https://github.com/home-assistant/core/pull/98136
+[#98145]: https://github.com/home-assistant/core/pull/98145
+[#98489]: https://github.com/home-assistant/core/pull/98489
+[#98703]: https://github.com/home-assistant/core/pull/98703
+[#99212]: https://github.com/home-assistant/core/pull/99212
+[#99670]: https://github.com/home-assistant/core/pull/99670
+[#99752]: https://github.com/home-assistant/core/pull/99752
+[@2franix]: https://github.com/2franix
+[@AngellusMortis]: https://github.com/AngellusMortis
+[@Anonym-tsk]: https://github.com/Anonym-tsk
+[@Antoni-Czaplicki]: https://github.com/Antoni-Czaplicki
+[@BHSPitMonkey]: https://github.com/BHSPitMonkey
+[@Bre77]: https://github.com/Bre77
+[@CFenner]: https://github.com/CFenner
+[@Caius-Bonus]: https://github.com/Caius-Bonus
+[@Cereal2nd]: https://github.com/Cereal2nd
+[@DCSBL]: https://github.com/DCSBL
+[@DellanX]: https://github.com/DellanX
+[@Ernst79]: https://github.com/Ernst79
+[@Flash1232]: https://github.com/Flash1232
+[@FlorianOosterhof]: https://github.com/FlorianOosterhof
+[@Floris272]: https://github.com/Floris272
+[@Galorhallen]: https://github.com/Galorhallen
+[@Guy293]: https://github.com/Guy293
+[@IsakNyberg]: https://github.com/IsakNyberg
+[@Jc2k]: https://github.com/Jc2k
+[@JeroenvIS]: https://github.com/JeroenvIS
+[@Kane610]: https://github.com/Kane610
+[@LaStrada]: https://github.com/LaStrada
+[@Lash-L]: https://github.com/Lash-L
+[@Luap99]: https://github.com/Luap99
+[@MartinHjelmare]: https://github.com/MartinHjelmare
+[@MisterCommand]: https://github.com/MisterCommand
+[@Moustachauve]: https://github.com/Moustachauve
+[@Noltari]: https://github.com/Noltari
+[@RJPoelstra]: https://github.com/RJPoelstra
+[@RickeyWard]: https://github.com/RickeyWard
+[@RoboMagus]: https://github.com/RoboMagus
+[@SLaks]: https://github.com/SLaks
+[@Shulyaka]: https://github.com/Shulyaka
+[@SteveEasley]: https://github.com/SteveEasley
+[@TNTLarsn]: https://github.com/TNTLarsn
+[@TheFes]: https://github.com/TheFes
+[@TheJulianJES]: https://github.com/TheJulianJES
+[@ThePapaG]: https://github.com/ThePapaG
+[@Xitee1]: https://github.com/Xitee1
+[@abmantis]: https://github.com/abmantis
+[@agners]: https://github.com/agners
+[@al-s]: https://github.com/al-s
+[@allenporter]: https://github.com/allenporter
+[@angristan]: https://github.com/angristan
+[@ashleigh-hopkins]: https://github.com/ashleigh-hopkins
+[@astrandb]: https://github.com/astrandb
+[@autinerd]: https://github.com/autinerd
+[@bachya]: https://github.com/bachya
+[@balloob]: https://github.com/balloob
+[@bazwilliams]: https://github.com/bazwilliams
+[@bdr99]: https://github.com/bdr99
+[@bdraco]: https://github.com/bdraco
+[@bgoncal]: https://github.com/bgoncal
+[@bieniu]: https://github.com/bieniu
+[@boralyl]: https://github.com/boralyl
+[@bouwew]: https://github.com/bouwew
+[@bramkragten]: https://github.com/bramkragten
+[@bubonicbob]: https://github.com/bubonicbob
+[@catsmanac]: https://github.com/catsmanac
+[@cbrherms]: https://github.com/cbrherms
+[@cdce8p]: https://github.com/cdce8p
+[@cgtobi]: https://github.com/cgtobi
+[@chatziko]: https://github.com/chatziko
+[@chemelli74]: https://github.com/chemelli74
+[@chenjiayi8]: https://github.com/chenjiayi8
+[@codesalatdev]: https://github.com/codesalatdev
+[@codyc1515]: https://github.com/codyc1515
+[@cottsay]: https://github.com/cottsay
+[@crug80]: https://github.com/crug80
+[@ctalkington]: https://github.com/ctalkington
+[@danieldotnl]: https://github.com/danieldotnl
+[@danzel]: https://github.com/danzel
+[@dcmeglio]: https://github.com/dcmeglio
+[@dgomes]: https://github.com/dgomes
+[@dieselrabbit]: https://github.com/dieselrabbit
+[@dmulcahey]: https://github.com/dmulcahey
+[@dougiteixeira]: https://github.com/dougiteixeira
+[@eclair4151]: https://github.com/eclair4151
+[@edenhaus]: https://github.com/edenhaus
+[@eifinger]: https://github.com/eifinger
+[@elmurato]: https://github.com/elmurato
+[@elupus]: https://github.com/elupus
+[@emichael]: https://github.com/emichael
+[@emontnemery]: https://github.com/emontnemery
+[@emtunc]: https://github.com/emtunc
+[@engrbm87]: https://github.com/engrbm87
+[@erwindouna]: https://github.com/erwindouna
+[@escoand]: https://github.com/escoand
+[@esev]: https://github.com/esev
+[@exxamalte]: https://github.com/exxamalte
+[@farmio]: https://github.com/farmio
+[@frenck]: https://github.com/frenck
+[@frwickst]: https://github.com/frwickst
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@h3ss]: https://github.com/h3ss
+[@idstein]: https://github.com/idstein
+[@janiversen]: https://github.com/janiversen
+[@jbouwh]: https://github.com/jbouwh
+[@jeverley]: https://github.com/jeverley
+[@jimmyd-be]: https://github.com/jimmyd-be
+[@jjlawren]: https://github.com/jjlawren
+[@jklausa]: https://github.com/jklausa
+[@jkrall]: https://github.com/jkrall
+[@jmwaldrip]: https://github.com/jmwaldrip
+[@joostlek]: https://github.com/joostlek
+[@jpbede]: https://github.com/jpbede
+[@jrieger]: https://github.com/jrieger
+[@julienfreche]: https://github.com/julienfreche
+[@jurriaan]: https://github.com/jurriaan
+[@karwosts]: https://github.com/karwosts
+[@kbickar]: https://github.com/kbickar
+[@killer0071234]: https://github.com/killer0071234
+[@klaasnicolaas]: https://github.com/klaasnicolaas
+[@kpine]: https://github.com/kpine
+[@krmarien]: https://github.com/krmarien
+[@kvanzuijlen]: https://github.com/kvanzuijlen
+[@leahoswald]: https://github.com/leahoswald
+[@lellky]: https://github.com/lellky
+[@lhgravendeel]: https://github.com/lhgravendeel
+[@liudger]: https://github.com/liudger
+[@llluis]: https://github.com/llluis
+[@ludeeus]: https://github.com/ludeeus
+[@madpilot]: https://github.com/madpilot
+[@mandarons]: https://github.com/mandarons
+[@marcelveldt]: https://github.com/marcelveldt
+[@marcolivierarsenault]: https://github.com/marcolivierarsenault
+[@matrixd2]: https://github.com/matrixd2
+[@matt7aylor]: https://github.com/matt7aylor
+[@max2697]: https://github.com/max2697
+[@miaucl]: https://github.com/miaucl
+[@mib1185]: https://github.com/mib1185
+[@michaelarnauts]: https://github.com/michaelarnauts
+[@mikey0000]: https://github.com/mikey0000
+[@mill1000]: https://github.com/mill1000
+[@mj23000]: https://github.com/mj23000
+[@mkmer]: https://github.com/mkmer
+[@msavazzi]: https://github.com/msavazzi
+[@myztillx]: https://github.com/myztillx
+[@nprez83]: https://github.com/nprez83
+[@ollo69]: https://github.com/ollo69
+[@pajzo]: https://github.com/pajzo
+[@peebles]: https://github.com/peebles
+[@peterkh]: https://github.com/peterkh
+[@piitaya]: https://github.com/piitaya
+[@pnbruckner]: https://github.com/pnbruckner
+[@puddly]: https://github.com/puddly
+[@raman325]: https://github.com/raman325
+[@rappenze]: https://github.com/rappenze
+[@reedy]: https://github.com/reedy
+[@rfverbruggen]: https://github.com/rfverbruggen
+[@rikroe]: https://github.com/rikroe
+[@rokam]: https://github.com/rokam
+[@rsiv]: https://github.com/rsiv
+[@rytilahti]: https://github.com/rytilahti
+[@sdb9696]: https://github.com/sdb9696
+[@slovdahl]: https://github.com/slovdahl
+[@spycle]: https://github.com/spycle
+[@starkillerOG]: https://github.com/starkillerOG
+[@steffenrapp]: https://github.com/steffenrapp
+[@stegm]: https://github.com/stegm
+[@suaveolent]: https://github.com/suaveolent
+[@synesthesiam]: https://github.com/synesthesiam
+[@teharris1]: https://github.com/teharris1
+[@thomaskistler]: https://github.com/thomaskistler
+[@tkdrob]: https://github.com/tkdrob
+[@tronikos]: https://github.com/tronikos
+[@vilppuvuorinen]: https://github.com/vilppuvuorinen
+[@wilburCforce]: https://github.com/wilburCforce
+[@wittypluck]: https://github.com/wittypluck
+[@xMohamd]: https://github.com/xMohamd
+[@xeniter]: https://github.com/xeniter
+[@xmow49]: https://github.com/xmow49
+[@yuvalabou]: https://github.com/yuvalabou
+[@zweckj]: https://github.com/zweckj
+[@zxdavb]: https://github.com/zxdavb
diff --git a/source/changelogs/core-2024.3.markdown b/source/changelogs/core-2024.3.markdown
new file mode 100644
index 00000000000..133864a49ae
--- /dev/null
+++ b/source/changelogs/core-2024.3.markdown
@@ -0,0 +1,2444 @@
+---
+title: Full changelog for Home Assistant Core 2024.3
+description: Detailed changelog for the Home Assistant Core 2024.3 release
+replace_regex: \s\(\[?[a-z0-9\-\s_]+\]?\)$
+---
+
+These are all the changes included in the Home Assistant Core 2024.3 release.
+
+For a summary in a more readable format:
+[Release notes blog for this release](/blog/2024/03/06/release-20243/).
+
+## All changes
+
+- Bump version to 2024.3.0dev0 ([@frenck] - [#109238])
+- Only decode msg topic once when handling mqtt payloads ([@bdraco] - [#109258])
+- Bump sigstore/cosign-installer from 3.3.0 to 3.4.0 (@dependabot - [#109278])
+- Add icon translations to GPSd ([@jrieger] - [#108602])
+- Update ruff to 0.1.15 ([@cdce8p] - [#109303])
+- Add connect octoprint printer service ([@rfleming71] - [#99899])
+- Reduce lock contention when all icons are already cached ([@bdraco] - [#109352])
+- Load json file as binary instead of decoding to string ([@bdraco] - [#109351])
+- Avoid de/recode of bytes to string to bytes when writing json files ([@bdraco] - [#109348])
+- Add Duquesne Light virtual integration supported by opower ([@swartzd] - [#109272])
+- Use send_json_auto_id in recorder tests ([@emontnemery] - [#109355])
+- Use a mocked API client in Traccar Server tests ([@ludeeus] - [#109358])
+- Improve color mode handling in MockLight ([@emontnemery] - [#109298])
+- Hide unsupported devices in Airthings BLE config flow ([@LaStrada] - [#107648])
+- Disable less interesting sensors by default in ViCare integration ([@CFenner] - [#109014])
+- Update sentry-sdk to 1.40.0 ([@frenck] - [#109363])
+- Use translation placeholders in 1-Wire ([@jrieger] - [#109120])
+- Change device class of Auto Seat Heater sensors in Tessie ([@Bre77] - [#109240])
+- Centralize validation for modbus config ([@janiversen] - [#108906])
+- Add Charging sensor to Tessie ([@Bre77] - [#108205])
+- Add entity name translations to Tibber ([@jpbede] - [#108797])
+- Add entity description to GPSD ([@jrieger] - [#109320])
+- Use send_json_auto_id in conversation tests ([@emontnemery] - [#109354])
+- Remove remaning ESPHome files from coveragerc ([@bdraco] - [#109400])
+- Mask sensitive data in google_assistant logs ([@emontnemery] - [#109366])
+- Convert auth token removal websocket api to normal functions ([@bdraco] - [#109432])
+- Improve color mode handling in light groups ([@emontnemery] - [#109390])
+- Update Twinkly DHCP discovery addresses ([@codyc1515] - [#109495])
+- Remove useless _handle_pipeline_event function in ESPHome ([@bdraco] - [#109484])
+- Update pyfronius to 0.7.3 ([@farmio] - [#109507])
+- Bump qingping_ble to 0.10.0 - Add support for GCP22C (Qingping CO2 Temp RH) ([@AidasK] - [#108567])
+- Bump mopeka-iot-ble to 0.7.0 ([@bdraco] - [#109516])
+- Add Speed Limit to Tessie lock platform ([@Bre77] - [#106527])
+- Reduce overhead to convert history to float states ([@bdraco] - [#109526])
+- Cache path for Store helper ([@bdraco] - [#109587])
+- Avoid looking up services to check if they support responses ([@bdraco] - [#109588])
+- Add ZonderGas virtual integration ([@klaasnicolaas] - [#109601])
+- Add SamSam virtual integration ([@klaasnicolaas] - [#109602])
+- Avoid converting to same units when compiling stats ([@bdraco] - [#109531])
+- Update Flo test to address review comment ([@dmulcahey] - [#109604])
+- Remove default name prefix of HomePods from Suggested Area in Apple TV integration ([@codyc1515] - [#109489])
+- Avoid many string lowers in the state machine ([@bdraco] - [#109607])
+- Add tests for shelly switch unique ids ([@bdraco] - [#109617])
+- Add diagnostics platform to Traccar Server ([@ludeeus] - [#109521])
+- Reduce complexity of shelly button setup ([@bdraco] - [#109625])
+- Remove default values from calls to async_fire ([@bdraco] - [#109613])
+- Use get_entries_for_config_entry_id helper in async_migrate_entries ([@bdraco] - [#109629])
+- Avoid linear search of entity registry in guardian ([@bdraco] - [#109634])
+- Avoid linear search of entity registry in keenetic_ndms2 ([@bdraco] - [#109635])
+- Avoid linear search of entity registry in lcn ([@bdraco] - [#109638])
+- Avoid linear search of entity registry in huawei_lte ([@bdraco] - [#109637])
+- Avoid linear search of entity registry in mikrotik ([@bdraco] - [#109639])
+- Avoid linear search of entity registry in nmap_tracker ([@bdraco] - [#109640])
+- Avoid linear search of entity registry in rainmachine ([@bdraco] - [#109642])
+- Avoid linear search of entity registry in ruckus_unleashed ([@bdraco] - [#109643])
+- Avoid linear search of entity registry in async_get_device_automations ([@bdraco] - [#109633])
+- Bump `aionotion` to 2024.02.0 ([@bachya] - [#109577])
+- Make get_entries_for_device_id skip disabled devices by default ([@bdraco] - [#109645])
+- Improve scalability of DHCP matchers ([@bdraco] - [#109406])
+- Add icons for fan preset modes ([@mill1000] - [#109334])
+- Add Xiaomi-ble remotes and dimmers ([@Ernst79] - [#109327])
+- Bump plexapi to 4.15.9 ([@jjlawren] - [#109676])
+- Use identity check in hassio websocket ingress ([@bdraco] - [#109672])
+- Bump github/codeql-action from 3.23.2 to 3.24.0 (@dependabot - [#109677])
+- Move nested code to class level as static method in imap coordinator ([@jbouwh] - [#109665])
+- Index area_ids in the entity registry ([@bdraco] - [#109660])
+- Use builtin TimeoutError [a-d] ([@cdce8p] - [#109678])
+- Use builtin TimeoutError [e-i] ([@cdce8p] - [#109679])
+- Use builtin TimeoutError [k-n] ([@cdce8p] - [#109681])
+- Use builtin TimeoutError [core + helpers] ([@cdce8p] - [#109684])
+- Use builtin TimeoutError [o-s] ([@cdce8p] - [#109682])
+- Use builtin TimeoutError [t-z] ([@cdce8p] - [#109683])
+- Remove raspberry_pi config entry if hassio is not present ([@emontnemery] - [#109687])
+- Remove hardkernel config entry if hassio is not present ([@emontnemery] - [#109680])
+- Avoid linear search of device registry when no areas are referenced in service calls ([@bdraco] - [#109669])
+- Remove homeassistant_green config entry if hassio is not present ([@emontnemery] - [#109685])
+- Remove homeassistant_yellow config entry if hassio is not present ([@emontnemery] - [#109686])
+- Add test of remote enabling of remote UI ([@emontnemery] - [#109698])
+- Use dict.get instead of inline if ([@cdce8p] - [#109693])
+- Bump hass-nabucasa from 0.76.0 to 0.77.0 ([@emontnemery] - [#109699])
+- Copy callbacks instead of slice for event dispatch ([@bdraco] - [#109711])
+- Use a single call to add entities in Nuki ([@pree] - [#109696])
+- Allow weight to be used as total_increasing state_class for sensors ([@jbouwh] - [#108505])
+- Use builtin TimeoutError [misc] ([@cdce8p] - [#109703])
+- Use builtin TimeoutError [socket.timeout] ([@cdce8p] - [#109704])
+- Move async_deinitialize to google_assistant AbstractConfig ([@emontnemery] - [#109736])
+- Remove lru cache size limit of TemperatureConverter ([@emontnemery] - [#109726])
+- Set default for OSTYPE in run-in-env script ([@synesthesiam] - [#109731])
+- Fix string in xiaomi_ble ([@Betacart] - [#109758])
+- Avoid linear search in entity registry to clear an area ([@bdraco] - [#109735])
+- Avoid linear search of entity registry in async_clear_config_entry ([@bdraco] - [#109724])
+- Switch utc_to_timestamp to .timestamp() where possible ([@bdraco] - [#109729])
+- Reduce dict lookups in entity registry indices ([@bdraco] - [#109712])
+- Avoid linear search of the entity registry in ps4 ([@bdraco] - [#109723])
+- Clean up Alexa when logging out from cloud ([@emontnemery] - [#109738])
+- Add Process binary sensor in System Monitor ([@gjohansson-ST] - [#108585])
+- Fix docstring length in ZHA sensor class ([@TheJulianJES] - [#109774])
+- Remove aux heat support from mqtt climate ([@jbouwh] - [#109513])
+- Improve tests of mqtt device triggers ([@jbouwh] - [#108318])
+- Break long strings in Google generative ai conversation ([@tronikos] - [#109771])
+- Bump yolink-api to 0.3.7 ([@matrixd2] - [#109776])
+- Use has_capability instead of hasattr for ring history ([@sdb9696] - [#109791])
+- Include exception when reraising inside except ([@cdce8p] - [#109706])
+- Add myuplink sensor descriptions for current and frequency sensors ([@astrandb] - [#109784])
+- Improve typing of cloud HTTP API ([@emontnemery] - [#109780])
+- Add slots to bluetooth matcher objects ([@bdraco] - [#109768])
+- Rename google_assistant.AbstractConfig.get_local_agent_user_id ([@emontnemery] - [#109798])
+- Update ruff to 0.2.1 ([@cdce8p] - [#109796])
+- Make bluetooth use naming from the entity description ([@joostlek] - [#97401])
+- Bump hass-nabucasa from 0.77.0 to 0.78.0 ([@emontnemery] - [#109813])
+- Make additional methods of google_assistant.AbstractConfig abstract ([@emontnemery] - [#109811])
+- Add transition support to Matter light platform ([@marcelveldt] - [#109803])
+- Add update platform to myuplink ([@astrandb] - [#109786])
+- Fix hue fallback onoff colormode ([@emontnemery] - [#109856])
+- Add late PR changes to tedee ([@zweckj] - [#109858])
+- Simplify Hue v2 color mode calculation ([@emontnemery] - [#109857])
+- Move Roborock map retrieval to coordinator and made map always diagnostic ([@Lash-L] - [#104680])
+- Add Husqvarna Automower integration ([@Thomas55555] - [#109073])
+- Update syrupy to 4.6.1 ([@cdce8p] - [#109860])
+- Add sensor for Ecowitt raw soil moisture value ([@dcmeglio] - [#109849])
+- Fix light color mode in tplink ([@emontnemery] - [#109831])
+- Fix Shelly white light test ([@emontnemery] - [#109855])
+- Add support for air purifiers to HomeKit Device ([@Jc2k] - [#109880])
+- Test unique IDs for Shelly entities ([@bieniu] - [#109879])
+- Add analog input value sensor for Shelly ([@bieniu] - [#109312])
+- Reset log level in script tests ([@cdce8p] - [#109881])
+- Bump myuplink dependency to 0.1.1 ([@astrandb] - [#109878])
+- Add missing `unique_id` check for Shelly Analog Input sensor ([@bieniu] - [#109888])
+- Bump pymodbus to v3.6.4 ([@janiversen] - [#109980])
+- Fix callable import ([@cdce8p] - [#110003])
+- Update pylint-per-file-ignores to 1.3.2 ([@cdce8p] - [#110014])
+- Bump Wandalen/wretry.action from 1.3.0 to 1.4.0 (@dependabot - [#109950])
+- Add option-icons for Plugwise Select ([@bouwew] - [#109986])
+- bump wretry.action@v1.4.4 ([@mib1185] - [#110053])
+- Avoid directly changing config entry state in tests ([@bdraco] - [#110048])
+- Bump aiodiscover 1.6.1 ([@bdraco] - [#110059])
+- Cleanup test config entry setup to use best practices ([@allenporter] - [#110070])
+- Convert dhcp watcher to asyncio ([@bdraco] - [#109938])
+- Remove homekit_controller entity registry entries when backing char or service is gone ([@Jc2k] - [#109952])
+- Update sentry-sdk to 1.40.2 ([@frenck] - [#110049])
+- Improve ability to debug one time listeners blocking the event loop ([@bdraco] - [#110064])
+- Address late review on husqvarna_automower ([@Thomas55555] - [#109896])
+- Update debugpy to 1.8.1 ([@frenck] - [#110076])
+- Allow passing version to ConfigEntry.async_update_entry ([@emontnemery] - [#110077])
+- Add entry diagnostics to imap integration ([@jbouwh] - [#109460])
+- Fix scene tests ([@emontnemery] - [#110097])
+- Fix color mode in flux_led light ([@emontnemery] - [#110096])
+- Improve apple_tv error reporting when setup fails ([@bdraco] - [#110071])
+- Make ConfigEntryItems responsible for updating unique ids ([@bdraco] - [#110018])
+- Avoid delaying startup in dlna_dmr ([@bdraco] - [#109836])
+- Reduce complexity in the homekit config flow filters ([@bdraco] - [#109850])
+- Avoid linear search of entity registry in async_extract_referenced_entity_ids ([@bdraco] - [#109667])
+- Use async_update_entry in github tests ([@bdraco] - [#110119])
+- Update pytest-asyncio to 0.23.5 ([@cdce8p] - [#110129])
+- Update sentry-sdk to 1.40.3 ([@frenck] - [#110109])
+- Add icon translations to GIOS ([@bieniu] - [#110131])
+- Add icon translations to NAM ([@bieniu] - [#110135])
+- Add icon translations to Tractive ([@bieniu] - [#110138])
+- Use async_update_entry to update esphome options in tests ([@bdraco] - [#110118])
+- Simplify emulated_hue exposed entities cache ([@bdraco] - [#109890])
+- Avoid directly changing config entry state in tests (part 2) ([@bdraco] - [#110115])
+- Use async_update_entry to update dlna_dmr options in tests ([@bdraco] - [#110117])
+- Add state_translated function to jinja templates ([@PiotrMachowski] - [#96906])
+- Add icon translations to Brother ([@bieniu] - [#110128])
+- Update systemmonitor to set config entry version using async_update_entry ([@bdraco] - [#110192])
+- Update switch_as_x to set ConfigEntry version with async_update_entry ([@bdraco] - [#110193])
+- Update islamic_prayer_times to set ConfigEntry version with async_update_entry ([@bdraco] - [#110194])
+- Update prusalink to set ConfigEntry version with async_update_entry ([@bdraco] - [#110196])
+- Update swiss_public_transport to set ConfigEntry version with async_update_entry ([@bdraco] - [#110197])
+- Update airnow to set ConfigEntry version with async_update_entry ([@bdraco] - [#110202])
+- Update airvisual to set ConfigEntry version with async_update_entry ([@bdraco] - [#110204])
+- Improve package schema validation ([@chammp] - [#108125])
+- Enable compression for manifest.json ([@bdraco] - [#110229])
+- Update `denonavr` to `0.11.6` ([@ol-iver] - [#110231])
+- Bump aioautomower to 2024.2.4 ([@Thomas55555] - [#110209])
+- Add icon translations to NextDNS ([@bieniu] - [#110179])
+- Refactor tradfri tests ([@MartinHjelmare] - [#110094])
+- Add missing log message for error resolving OAuth token ([@deosrc] - [#107606])
+- Update pre-commit to 3.6.1 ([@cdce8p] - [#110278])
+- Bump thermopro-ble to 0.10.0 ([@bdraco] - [#110279])
+- Update tqdm to 4.66.2 ([@cdce8p] - [#110277])
+- Implement late feedback for Bluecurrent ([@Floris272] - [#106918])
+- Add icon translations to Shelly ([@bieniu] - [#110183])
+- Avoid calling hass internals when adding mock config entry in Blink ([@jpbede] - [#110290])
+- Avoid calling hass internals when adding mock config entry in Fully Kiosk ([@jpbede] - [#110291])
+- Convert test helpers to get hass instance to contextmanagers ([@cdce8p] - [#109990])
+- Update pytest to 8.0.0 ([@cdce8p] - [#109876])
+- Migrate ambient_station to use async_update_entry to alter config entries ([@bdraco] - [#110305])
+- Migrate lametric to use async_update_entry to alter config entries ([@bdraco] - [#110313])
+- Migrate forecast_solar to use async_update_entry to alter config entries ([@bdraco] - [#110306])
+- Migrate huawei_lte to use async_update_entry to alter config entries ([@bdraco] - [#110309])
+- Migrate homematicip_cloud to use async_update_entry to alter config entries ([@bdraco] - [#110308])
+- Migrate blink to use async_update_entry to alter config entries ([@bdraco] - [#110303])
+- Migrate axis to use async_update_entry to alter config entries ([@bdraco] - [#110302])
+- Migrate knx to use async_update_entry to alter config entries ([@bdraco] - [#110312])
+- Add pulse counter sensors for Shelly ([@bieniu] - [#110248])
+- Fix color mode in hive light ([@emontnemery] - [#110330])
+- Fix color mode in comelit light ([@emontnemery] - [#110326])
+- Remove old BMW vehicles/devices automatically ([@rikroe] - [#110255])
+- Add myuplink diagnostics download ([@astrandb] - [#109925])
+- Migrate google_assistant_sdk to use async_update_entry to alter config entries ([@bdraco] - [#110307])
+- Migrate landisgyr_heat_meter to use async_update_entry to alter config entries ([@bdraco] - [#110314])
+- Correct screenlogic test's mock adapter name ([@dieselrabbit] - [#110317])
+- Bump pytraccar from 2.0.0 to 2.1.0 ([@ludeeus] - [#110320])
+- Update pytest warnings filter ([@cdce8p] - [#110332])
+- Update python rflink to 0.0.66 ([@Minims] - [#110060])
+- Upgrade myuplink package to 0.2.1 ([@pajzo] - [#110343])
+- Change function name in hvv_departures ([@joostlek] - [#110349])
+- Add myuplink specific sensor descriptions ([@astrandb] - [#109867])
+- Improve type annotation in Shelly tests ([@bieniu] - [#110361])
+- Warn when lights violate color mode rules ([@emontnemery] - [#110336])
+- Migrate openuv to use async_update_entry to alter config entries ([@bdraco] - [#110371])
+- Migrate rainmachine to use async_update_entry to alter config entries ([@bdraco] - [#110377])
+- Migrate ridwell to use async_update_entry to alter config entries ([@bdraco] - [#110380])
+- Migrate recollect_waste to use async_update_entry to alter config entries ([@bdraco] - [#110378])
+- Migrate samsungtv to use async_update_entry to alter config entries ([@bdraco] - [#110362])
+- Remove store from google_assistant AbstractConfig ([@emontnemery] - [#109877])
+- Migrate zwave_js to use async_update_entry to alter config entries ([@bdraco] - [#110376])
+- Fix color mode in wiz light ([@emontnemery] - [#110328])
+- Migrate trafikverket_camera to use async_update_entry to alter config entries ([@bdraco] - [#110393])
+- Migrate smhi to use async_update_entry to alter config entries ([@bdraco] - [#110391])
+- Migrate sensibo to use async_update_entry to alter config entries ([@bdraco] - [#110390])
+- Migrate sonarr to use async_update_entry to alter config entries ([@bdraco] - [#110364])
+- Bump securetar to 2024.2.0 ([@bdraco] - [#110383])
+- Migrate utility_meter to use async_update_entry to alter config entries ([@bdraco] - [#110394])
+- Migrate switchbee to use async_update_entry to alter config entries ([@bdraco] - [#110392])
+- Migrate ps4 to use async_update_entry to alter config entries ([@bdraco] - [#110373])
+- Migrate foscam to use async_update_entry to alter config entries ([@bdraco] - [#110365])
+- Migrate minecraft_server to use async_update_entry to alter config entries ([@bdraco] - [#110367])
+- Bump SQLAlchemy to 2.0.26 ([@bdraco] - [#110358])
+- Add back `supported_color_modes` property to `blebox` light ([@emontnemery] - [#110350])
+- Add power strip with 2 outlets to kitchen_sink ([@emontnemery] - [#110346])
+- Migrate roku to use async_update_entry to alter config entries ([@bdraco] - [#110363])
+- Add `removal_condition` for Shelly analog input sensors ([@bieniu] - [#110331])
+- Migrate obihai to use async_update_entry to alter config entries ([@bdraco] - [#110368])
+- Migrate openweathermap to use async_update_entry to alter config entries ([@bdraco] - [#110372])
+- Update Home Assistant base image to 2024.02.1 ([@frenck] - [#110395])
+- Migrate ipp to use async_update_entry to alter config entries ([@bdraco] - [#110311])
+- Migrate hue to use async_update_entry to alter config entries ([@bdraco] - [#110310])
+- Cleanup myuplink imports ([@astrandb] - [#110374])
+- Migrate velbus to use async_update_entry to alter config entries ([@bdraco] - [#110399])
+- Migrate yale_smart_alarm to use async_update_entry to alter config entries ([@bdraco] - [#110401])
+- Migrate verisure to use async_update_entry to alter config entries ([@bdraco] - [#110400])
+- Migrate smartthings to use async_update_entry to alter config entries ([@bdraco] - [#110403])
+- Migrate zha to use async_update_entry to alter config entries ([@bdraco] - [#110402])
+- Migrate ping to use async_update_entry to alter config entries ([@bdraco] - [#110404])
+- Migrate mqtt to use async_update_entry to alter config entries ([@bdraco] - [#110407])
+- Migrate unifiprotect to use async_update_entry to alter config entries ([@bdraco] - [#110409])
+- Migrate plex to use async_update_entry to alter config entries ([@bdraco] - [#110405])
+- Migrate trend to use async_update_entry to alter config entries ([@bdraco] - [#110408])
+- Migrate tplink to use async_update_entry to alter config entries ([@bdraco] - [#110406])
+- Ensure deconz tests add config entry before updating it ([@bdraco] - [#110417])
+- Migrate onewire to use async_update_entry to alter config entries ([@bdraco] - [#110413])
+- Ensure sonarr tests add config entry before updating it ([@bdraco] - [#110422])
+- Migrate twentemilieu to use async_update_entry to alter config entries ([@bdraco] - [#110419])
+- Migrate luftdaten to use async_update_entry to alter config entries ([@bdraco] - [#110424])
+- Ensure blink tests add config entry before updating it ([@bdraco] - [#110415])
+- Ensure gdacs tests add config entry before updating it ([@bdraco] - [#110431])
+- Ensure homematicip_cloud tests add config entry before updating it ([@bdraco] - [#110429])
+- Ensure config entry oauth2 tests add config entry before updating it ([@bdraco] - [#110421])
+- Ensure dlna_dmr tests add config entry before updating it ([@bdraco] - [#110418])
+- Ensure cast tests add config entry before updating it ([@bdraco] - [#110416])
+- Ensure knx tests add config entry before updating it ([@bdraco] - [#110425])
+- Improve tests for Shelly WallDisplay ([@bieniu] - [#110435])
+- Improve climate turn_on/turn_off services for zwave_js ([@raman325] - [#109187])
+- Remove unused instance variable in Z-wave ([@raman325] - [#110442])
+- Update Notion auth to store refresh tokens instead of account passwords ([@bachya] - [#109670])
+- Add myuplink unit-based sensor descriptions ([@astrandb] - [#110370])
+- Ensure hue tests add config entry before updating it ([@bdraco] - [#110428])
+- Ensure github tests add config entry before updating it ([@bdraco] - [#110430])
+- Ensure cast tests add config entry before updating it ([@bdraco] - [#110441])
+- Remove power_state_template from mqtt climate value template list ([@jbouwh] - [#110452])
+- Add additonal number entities to La Marzocco ([@zweckj] - [#108258])
+- Handle template errors on MQTT payload handling ([@jbouwh] - [#110180])
+- Change function name in tfiac ([@joostlek] - [#110466])
+- Change function name in flexit_bacnet ([@joostlek] - [#110465])
+- Change function name in tesla_wall_connector ([@joostlek] - [#110467])
+- Deprecate cloud tts platform config ([@MartinHjelmare] - [#110461])
+- Avoid creating many tasks when adding hue v2 entities ([@bdraco] - [#110386])
+- Switch to new Bring! lib ([@miaucl] - [#110355])
+- Small performance improvements to config entry setup retry ([@bdraco] - [#110448])
+- Add setpoints for fans to flexit_bacnet ([@lellky] - [#110262])
+- Set icons for switch without device class ([@piitaya] - [#110470])
+- Add icon translations to Teslemetry ([@StephenBrown2] - [#109928])
+- Add myuplink binary_sensor platform ([@astrandb] - [#110388])
+- Refactor flexit_bacnet to use icon translations ([@lellky] - [#110479])
+- Bump aiowebostv to 0.4.0 ([@thecode] - [#110477])
+- Fix logger message in samsungtv ([@bdraco] - [#110484])
+- Add config flow to Velux ([@DeerMaximum] - [#89155])
+- Add DeerMaximum to velux codeowners ([@DeerMaximum] - [#110504])
+- Refactor dhcp to move all mac formatting into the client processor ([@bdraco] - [#110509])
+- Bump github/codeql-action from 3.24.0 to 3.24.1 (@dependabot - [#110522])
+- Bump SQLAlchemy to 2.0.27 ([@bdraco] - [#110517])
+- Move Shelly thermostat check to status endpoint ([@chemelli74] - [#110543])
+- Migrate Twinkly to has entity naming ([@joostlek] - [#97206])
+- Create backups files without having to copy inner tarballs ([@bdraco] - [#110267])
+- Add entity translations to OralB ([@joostlek] - [#97402])
+- Migrate Vizio to has entity name ([@joostlek] - [#96773])
+- Fix formatting of mac addresses from dhcp discovery mocking in hunterdouglas_powerview ([@bdraco] - [#110577])
+- Fix formatting of mac addresses from dhcp discovery mocking in insteon ([@bdraco] - [#110578])
+- Fix formatting of mac addresses from dhcp discovery mocking in obihai ([@bdraco] - [#110586])
+- Fix formatting of mac addresses from dhcp discovery mocking in nuki ([@bdraco] - [#110585])
+- Fix formatting of mac addresses from dhcp discovery mocking in motion_blinds ([@bdraco] - [#110583])
+- Fix formatting of mac addresses from dhcp discovery mocking in lifx ([@bdraco] - [#110581])
+- Fix formatting of mac addresses from dhcp discovery mocking in intellifire ([@bdraco] - [#110579])
+- Fix formatting of mac addresses from dhcp discovery mocking in guardian ([@bdraco] - [#110575])
+- Fix formatting of mac addresses from dhcp discovery mocking in fully_kiosk ([@bdraco] - [#110573])
+- Fix formatting of mac addresses from dhcp discovery mocking in onvif ([@bdraco] - [#110589])
+- Fix formatting of mac addresses from dhcp discovery mocking in flux_led ([@bdraco] - [#110568])
+- Fix formatting of mac addresses from dhcp discovery mocking in esphome ([@bdraco] - [#110567])
+- Fix formatting of mac addresses from dhcp discovery mocking in emonitor ([@bdraco] - [#110565])
+- Fix formatting of mac addresses from dhcp discovery mocking in elkm1 ([@bdraco] - [#110564])
+- Fix formatting of mac addresses from dhcp discovery mocking in airzone ([@bdraco] - [#110559])
+- Improve hassio decorator typing ([@cdce8p] - [#110545])
+- Fix formatting of mac addresses from dhcp discovery mocking in reolink ([@bdraco] - [#110594])
+- Add support for Fully Kiosk sound playing state ([@cgarwood] - [#105762])
+- Avoid calling internals when adding mock config entry in Squeezebox ([@jpbede] - [#110601])
+- Fix formatting of mac addresses from dhcp discovery mocking in overkiz ([@bdraco] - [#110590])
+- Fix formatting of mac addresses from dhcp discovery mocking in dlink ([@bdraco] - [#110562])
+- Fix misaligned mac formatting in goalzero ([@bdraco] - [#110574])
+- Fix formatting of mac addresses from dhcp discovery mocking in powerwall ([@bdraco] - [#110591])
+- Bump aioautomower to 2024.2.6 ([@Thomas55555] - [#110598])
+- Fix formatting of mac addresses from dhcp discovery mocking in fronius ([@bdraco] - [#110572])
+- Fix formatting of mac addresses from dhcp discovery mocking in yeelight ([@bdraco] - [#110616])
+- Fix formatting of mac addresses from dhcp discovery mocking in wiz ([@bdraco] - [#110615])
+- Fix formatting of mac addresses from dhcp discovery mocking in vicare ([@bdraco] - [#110613])
+- Fix formatting of mac addresses from dhcp discovery mocking in verisure ([@bdraco] - [#110611])
+- Fix formatting of mac addresses from dhcp discovery mocking in unifiprotect ([@bdraco] - [#110610])
+- Fix formatting of mac addresses from dhcp discovery mocking in twinkly ([@bdraco] - [#110609])
+- Fix formatting of mac addresses from dhcp discovery mocking in tolo ([@bdraco] - [#110608])
+- Fix formatting of mac addresses from dhcp discovery mocking in tesla_wall_connector ([@bdraco] - [#110607])
+- Fix formatting of mac addresses from dhcp discovery mocking in tailwind ([@bdraco] - [#110606])
+- Fix formatting of mac addresses from dhcp discovery mocking in steamist ([@bdraco] - [#110605])
+- Fix formatting of mac addresses from dhcp discovery mocking in squeezebox ([@bdraco] - [#110604])
+- Fix formatting of mac addresses from dhcp discovery mocking in somfy_mylink ([@bdraco] - [#110603])
+- Fix formatting of mac addresses from dhcp discovery mocking in screenlogic ([@bdraco] - [#110602])
+- Fix formatting of mac addresses from dhcp discovery mocking in lametric ([@bdraco] - [#110580])
+- Fix formatting of mac addresses from dhcp discovery mocking in qnap_qsw ([@bdraco] - [#110592])
+- Fix formatting of mac addresses from dhcp discovery mocking in roomba ([@bdraco] - [#110596])
+- Correct misaligned formatting of mac addresses in samsungtv ([@bdraco] - [#110599])
+- Fix formatting of mac addresses from dhcp discovery mocking in ruuvi_gateway ([@bdraco] - [#110597])
+- Fix formatting of mac addresses from dhcp discovery mocking in radiotherm ([@bdraco] - [#110593])
+- Fix formatting of mac addresses from dhcp discovery mocking in nest ([@bdraco] - [#110584])
+- Fix formatting of mac addresses from dhcp discovery mocking in broadlink ([@bdraco] - [#110558])
+- Fix formatting of mac addresses from dhcp discovery mocking in config_entries test ([@bdraco] - [#110617])
+- Fix formatting of mac addresses from dhcp discovery mocking in axis ([@bdraco] - [#110560])
+- Bump libpyfoscam to 1.2.2 ([@krmarien] - [#110625])
+- Add monthly forecast sensor to RymPro ([@OnFreund] - [#101012])
+- Split pre/post backup actions into dedicated methods ([@ludeeus] - [#110632])
+- Add some myuplink tests ([@astrandb] - [#110521])
+- Add support for multiple devices linked to a Viessmann account ([@CFenner] - [#96044])
+- Update wallbox to 0.6.0 ([@pilotopirx] - [#110636])
+- Enable strict type checking on apple_tv integration ([@stackia] - [#101688])
+- Bump pyMicrobot to 0.0.15 ([@spycle] - [#110502])
+- Powerview Gen 3 functionality ([@kingy444] - [#110158])
+- Ensure lamarzocco tests add config entry before updating it ([@bdraco] - [#110423])
+- Add state_class to ring battery sensor for LTS ([@livioavalle] - [#109872])
+- Add option to block remote enabling of HA Cloud remote ([@emontnemery] - [#109700])
+- Categorize burner and compressor sensors as diagnostic entities in ViCare integration ([@CFenner] - [#110653])
+- Bump pychromecast to 14.0.0 ([@emontnemery] - [#108374])
+- Bump nextcord to 2.6.0 ([@tkdrob] - [#110485])
+- Correct config entry setup in fritz tests ([@emontnemery] - [#110669])
+- Don't add fritz entities with update_before_add ([@emontnemery] - [#110667])
+- Remove unneeded list copy in icon helper ([@bdraco] - [#110680])
+- Speed up registry config websocket api calls with list comps ([@bdraco] - [#110693])
+- Move late import of config flows in loader to load time ([@bdraco] - [#110688])
+- Use bytes join fast path for large states payload ([@bdraco] - [#110694])
+- Migrate dependencies loader to use async_get_integrations ([@bdraco] - [#110690])
+- Add Aprilaire integration ([@chamberlain2007] - [#95093])
+- Add translations to AVM FRITZ!Box Call Monitor state attributes ([@jrieger] - [#108412])
+- Avoid calling internals when adding mock config entry in Nightscout ([@jpbede] - [#110600])
+- Bump dorny/paths-filter from 3.0.0 to 3.0.1 (@dependabot - [#110698])
+- Bump github/codeql-action from 3.24.1 to 3.24.3 (@dependabot - [#110700])
+- add missing state class to dsmr sensors ([@dupondje] - [#110712])
+- Small performance improvements to collecting analytics ([@bdraco] - [#110662])
+- Bump dawidd6/action-download-artifact from 3.0.0 to 3.1.0 (@dependabot - [#110699])
+- Small performance improvement to async_get_config_flows ([@bdraco] - [#110666])
+- Fix recorder ws_info blocking the event loop ([@bdraco] - [#110657])
+- Add media file playback to DuneHD ([@iliessens] - [#105796])
+- Generic Hygrostat: Do not log warning if the hygrostat is already not active ([@Shulyaka] - [#102662])
+- Use snapshots in analytics tests ([@ludeeus] - [#110704])
+- Make context in data entry flow possible to modify for subclasses ([@gjohansson-ST] - [#110561])
+- Add toggle service to climate ([@arturpragacz] - [#100418])
+- Raise translatable exceptions in entity set methods for BSBLan ([@jpbede] - [#105693])
+- Speed up bootstrap by preloading manifests for base platforms ([@bdraco] - [#110130])
+- Remove hourly weather entity from met.no ([@emontnemery] - [#97023])
+- Simplify loading of icons ([@bdraco] - [#110687])
+- Stop building Python 3.11 wheels ([@frenck] - [#110727])
+- Adjust ConfigEntry.async_setup comments to be more clear ([@bdraco] - [#110726])
+- Guard ConfigEntry from being mutated externally without using the built-in interfaces ([@bdraco] - [#110023])
+- Add breeze switch to Renson integration ([@jimmyd-be] - [#101641])
+- Add filter to translation event listeners to avoid creating tasks ([@bdraco] - [#110732])
+- Run codeql on schedule only ([@frenck] - [#110729])
+- Bump cryptography to 42.0.3 ([@bdraco] - [#110728])
+- Wait for client to be created in wyoming tests ([@bdraco] - [#110751])
+- Fix flo sensor native unit ([@rb28z2] - [#110745])
+- Bump georss-ign-sismologia-client to 0.8 ([@exxamalte] - [#110501])
+- Refactor config integration to use normal functions for setup ([@bdraco] - [#110750])
+- Bump aiopegelonline to 0.0.9 ([@mib1185] - [#110760])
+- Fix race in wyoming test ([@bdraco] - [#110766])
+- Add myuplink reauth flow ([@astrandb] - [#110587])
+- Avoid creating tasks to setup ignored and disabled config entries ([@bdraco] - [#110756])
+- Bump aioesphomeapi to 21.0.3 ([@bdraco] - [#110772])
+- Cleanups in area registry tests ([@frenck] - [#110785])
+- Avoid creating tasks to load integration platforms that do not exist ([@bdraco] - [#110743])
+- Cleanups in device registry tests ([@frenck] - [#110786])
+- Cleanup Shelly async_setup_block_attribute_entities ([@thecode] - [#110792])
+- Fix translations for binary sensors in System Bridge ([@timmo001] - [#110095])
+- Add number platform to powerview to control velocity on gen 3 hubs ([@kingy444] - [#110724])
+- Enable Enphase Envoy authentication credentials update ([@catsmanac] - [#110474])
+- Make template trigger callbacks when nothing needs to be awaited ([@bdraco] - [#110771])
+- Improve performance of _async_when_setup ([@bdraco] - [#110791])
+- Simplify ConfigFlow._async_current_entries ([@bdraco] - [#110799])
+- Small performance improvement in tracking template results ([@bdraco] - [#110622])
+- Cleanups in entity registry tests ([@frenck] - [#110788])
+- Improve performance of async_get_integration_with_requirements ([@bdraco] - [#110770])
+- Add modbus option to manage different setPoint registers ([@crug80] - [#107600])
+- Add floor registry ([@frenck] - [#110741])
+- Remove unneeded mock from Epion ([@joostlek] - [#110815])
+- Bump pyrainbird to 4.0.2 ([@allenporter] - [#110814])
+- Bump ical to 7.0.0 ([@allenporter] - [#110811])
+- Add typing for EVENT_COMPONENT_LOADED ([@bdraco] - [#110812])
+- Fix Local Calendar changing user-specified capitalisation of calendar names ([@codyc1515] - [#108454])
+- Avoid creating tasks for checking integrations platforms ([@bdraco] - [#110795])
+- Enable augmented-assignment operations in scripts ([@akx] - [#108081])
+- Add typing of EVENT_COMPONENT_LOADED to integration_platform helper ([@bdraco] - [#110826])
+- Convert Integration platforms processors where nothing is awaited to callbacks ([@bdraco] - [#110825])
+- Cache JSON representation of ConfigEntry objects ([@bdraco] - [#110823])
+- Ensure translations for other integrations can be loaded if one integration fails ([@bdraco] - [#110748])
+- Refactor integration startup time tracking to reduce overhead ([@bdraco] - [#110136])
+- Group loading of translations for integrations to reduce executor jobs at startup ([@bdraco] - [#110674])
+- Fix local todo list persistence for due dates ([@allenporter] - [#110830])
+- Clean up twitch setup ([@joostlek] - [#110849])
+- Set up smtp integration via the UI ([@jbouwh] - [#110817])
+- Use covariant for fire event data type ([@frenck] - [#110843])
+- Improve floor registry event typing ([@frenck] - [#110844])
+- Add hex color validator ([@frenck] - [#110846])
+- Revert "Set up smtp integration via the UI" ([@jbouwh] - [#110862])
+- Fix races in ESPHome manager tests ([@bdraco] - [#110867])
+- Add Identify device class to homekit_controller ([@Jc2k] - [#110878])
+- Show WebRTC cameras that also support HLS in the media browser ([@OnFreund] - [#108796])
+- Fix sending multiple empty integration timing in bootstrap ([@bdraco] - [#110872])
+- Enable compression on error log api ([@bdraco] - [#110865])
+- Update coverage artifact actions to v4 [ci] ([@cdce8p] - [#110344])
+- Fix trigger attachment race in conversation tests ([@bdraco] - [#110869])
+- Fix Velux setup ([@pawlizio] - [#110886])
+- Use entity registry fixture in octoprint tests ([@jpbede] - [#110887])
+- Avoid creating two tasks to setup components at startup ([@bdraco] - [#110828])
+- Bump pyMicrobot to 0.0.16 ([@spycle] - [#110876])
+- Update AEMET-OpenData to v0.4.8 ([@Noltari] - [#110890])
+- Add better HassJob typing for IntegrationPlatform process_job ([@cdce8p] - [#110896])
+- Use entity & device registry fixtures in unifi tests ([@jpbede] - [#110889])
+- Fix Motionblinds brand name consistency ([@LennP] - [#110222])
+- Partially revert setup typing update ([@cdce8p] - [#110901])
+- Update pytest to 8.0.1 ([@cdce8p] - [#110907])
+- Convert config entry subscriptions to callback ([@bdraco] - [#110900])
+- Update pre-commit to 3.6.2 ([@cdce8p] - [#110908])
+- Fix mqtt discovery subscribe unsubscribe test with one less task ([@bdraco] - [#110914])
+- Update wheels artifact actions to v4 [ci] ([@cdce8p] - [#110894])
+- Narrow bosch_shc patch target in config flow tests ([@bdraco] - [#110922])
+- Fix homekit_controller test race ([@bdraco] - [#110917])
+- Reduce one iteration of pending flows in the discovery flow helper ([@bdraco] - [#110918])
+- Fix switcher_kis tests not holding patch while calling async_block_till_done ([@bdraco] - [#110916])
+- Fix steamist not setting unique id when discovered in user flow ([@bdraco] - [#110915])
+- Add missing async_block_till_done to github config flow tests ([@bdraco] - [#110913])
+- Fix cloud test RuntimeWarning ([@cdce8p] - [#110909])
+- Improve performance of waiting for after dependencies and device config entries ([@bdraco] - [#110902])
+- Avoid creating tasks to run homekit accessories ([@bdraco] - [#110895])
+- Bump esphome dependencies ([@bdraco] - [#110892])
+- Fix BroadlinkThermostat inheritance order ([@eifinger] - [#110927])
+- Bump zhong-hong-hvac to 1.0.12 ([@crhan] - [#110701])
+- Add label registry ([@frenck] - [#110821])
+- Bump dawidd6/action-download-artifact from 3.1.0 to 3.1.1 (@dependabot - [#110925])
+- Add Motionblinds vitual integrations __init__.py ([@starkillerOG] - [#110903])
+- Update vallox_websocket_api to 5.0.2 ([@yozik04] - [#110752])
+- Fix concurrent reloads in yeelight tests ([@bdraco] - [#110911])
+- Add microBees integration ([@marcolettieri] - [#99573]) ([microBees docs])
+- Freeze light profiles for further development ([@MartinHjelmare] - [#110946])
+- Revert powerwall back to awaiting each api call ([@bdraco] - [#110947])
+- Improve timing mqtt integration discovery test ([@jbouwh] - [#110960])
+- Do not turn on `denonavr` receiver when changing the source ([@ol-iver] - [#110964])
+- Group adding unifi entities together to reduce number of tasks ([@bdraco] - [#110965])
+- Make EntityRegistryDisabledHandler._handle_entry_updated a callback ([@bdraco] - [#110966])
+- Add new range sensors to Tessie ([@Bre77] - [#110446])
+- Add async_schedule_reload helper to the ConfigEntries manager ([@bdraco] - [#110912])
+- Add check for myuplink startup ClientError ([@astrandb] - [#110926])
+- Fix failing tessie tests ([@bdraco] - [#110980])
+- Add new intents for cover, valve, vacuum, and media player ([@synesthesiam] - [#110757])
+- Fix last_reset set for Sense percentage sensors ([@kbickar] - [#110977])
+- Migrate yalexs_ble to use async_update_reload_and_abort ([@bdraco] - [#110985])
+- Migrate unifi to use async_update_reload_and_abort ([@bdraco] - [#110987])
+- Migrate xiaomi_miio to use async_update_reload_and_abort ([@bdraco] - [#110988])
+- Bump bring-api to 0.3.1 ([@tr4nt0r] - [#110769])
+- Unifi rename controller to hub ([@Kane610] - [#110976])
+- Handle empty name in powerview config flow ([@bdraco] - [#110969])
+- Expose Hive Motion Sensor temperature ([@drsgoodall] - [#105985])
+- Introduce actuator base entity to microBees ([@FedDam] - [#111000]) ([microBees docs])
+- Bump aioautomower to 2024.2.7 ([@Thomas55555] - [#110991])
+- Bump microBeesPy to 0.2.9 ([@FedDam] - [#111006]) ([microBees docs])
+- Migrate sensibo to use async_update_reload_and_abort ([@bdraco] - [#110986])
+- Add sensor platform to microBees ([@marcolettieri] - [#111008]) ([microBees docs])
+- Bump pyOverkiz to 1.13.7 ([@Tronix117] - [#111004])
+- Remove update_before_add from nut sensors ([@bdraco] - [#111032])
+- Remove update_before_add from legacy ios integration ([@bdraco] - [#111033])
+- Add presets to Advantage Air ([@Bre77] - [#109485])
+- Fix race in gardena_bluetooth config flow tests ([@bdraco] - [#111042])
+- Add state class to Motion Blinds battery sensor ([@some-guy-23] - [#111016])
+- Reduce registry overhead in tests ([@bdraco] - [#110955])
+- Avoid creating tasks to shutdown entity platforms ([@bdraco] - [#111026])
+- Avoid creating tasks to install dependent requirements ([@bdraco] - [#111048])
+- Make ConfigEntry.async_shutdown a callback ([@bdraco] - [#111027])
+- Fix race in removing entities from the registry ([@bdraco] - [#110978])
+- Reduce overhead to load multiple languages in translations ([@bdraco] - [#111028])
+- Avoid creating multiple tasks for config entry init ([@bdraco] - [#110899])
+- Fix Shelly RPC RSSI sensor removal ([@thecode] - [#111035])
+- Add calendar platform to La Marzocco ([@zweckj] - [#108237])
+- Avoid creating tasks to remove entities ([@bdraco] - [#110967])
+- Fix race in automation test_extraction_functions ([@bdraco] - [#111056])
+- Improve UniFi Protect re-auth ([@AngellusMortis] - [#110021])
+- Guide users to migrate from Ubiquiti Cloud Accounts to local for UniFi Protect ([@AngellusMortis] - [#111018])
+- Make adding new device in unifiprotect callback functions ([@bdraco] - [#111054])
+- Increase unifiprotect fallback interval to 20s ([@bdraco] - [#110870])
+- Add async_schedule_call to the Debouncer ([@bdraco] - [#111051])
+- Revert "Reduce dict lookups in entity registry indices" ([@bdraco] - [#111055])
+- Do not directly call async_setup_entry in MQTT tests ([@jbouwh] - [#111010])
+- Make device registry cleanup a callback function ([@bdraco] - [#111052])
+- Replace Wolflink dependency with wolf_comm to support authentication via OpenID ([@janrothkegel] - [#110249])
+- Add tests to myuplink binary_sensor ([@astrandb] - [#110995])
+- Avoid the final write of every registry at the end of each test ([@bdraco] - [#111053])
+- Add code owner to roomba integration ([@Orhideous] - [#111071])
+- Support Bring! recently list ([@miaucl] - [#109854])
+- Migrate shelly to use Debouncer.async_schedule_call ([@bdraco] - [#111087])
+- Update AEMET-OpenData to v0.4.9 ([@Noltari] - [#111092])
+- Avoid late import of area registry in device registry if its not used ([@bdraco] - [#111081])
+- Avoid compressing application (tarfile) downloads from supervisor ([@bdraco] - [#110224])
+- Avoid circular import in Storage.async_delay_save ([@bdraco] - [#111086])
+- Fix Motionblinds TDBU ([@starkillerOG] - [#110871])
+- Add icon translations to Tessie ([@piitaya] - [#111096])
+- Add Vital 100S & Vital 200S to VeSync sensors ([@jkossis] - [#111017])
+- Add translation to Tessie exceptions ([@Bre77] - [#106525])
+- Auto detect ZHA SMLIGHT SLZB-07 dongle ([@tl-sl] - [#110982])
+- Remove ZHA storage file cleanup logic ([@dmulcahey] - [#111088])
+- KNX: Group address validators use more detailed error messages ([@farmio] - [#110875])
+- Bump pyschlage to 2024.2.0 ([@dknowles2] - [#111079])
+- Fix race in otbr config flow ([@bdraco] - [#111044])
+- Migrate Bluetooth coordinators to use Debouncer async_schedule_call ([@bdraco] - [#111077])
+- Add sensor platform for husqvarna_automower ([@Thomas55555] - [#110410])
+- Remove reserved UpdateFailed exception in AsusWRT ([@ollo69] - [#110910])
+- Move backup/* WS commands to the backup integration ([@ludeeus] - [#110651])
+- Add myuplink switch platform ([@astrandb] - [#110810])
+- Bump microBeesPy to 0.3.2 ([@FedDam] - [#111067]) ([microBees docs])
+- Bump dawidd6/action-download-artifact from 3.1.1 to 3.1.2 (@dependabot - [#111120])
+- Add switch platform for husqvarna_automower ([@Thomas55555] - [#110139])
+- Disable AEMET legacy options ([@Noltari] - [#107795])
+- Replace dash with hard hyphen in myuplink entity names ([@astrandb] - [#111074])
+- Bump georss-qld-bushfire-alert-client to 0.7 ([@exxamalte] - [#111075])
+- Bump pydrawise to 2024.2.0 ([@dknowles2] - [#111080])
+- 2024.2.3 ([@frenck] - [#111133])
+- Revert "Move backup/* WS commands to the backup integration" ([@ludeeus] - [#111136])
+- Use async_update_reload_and_abort helper in discord ([@jpbede] - [#111104])
+- Handle media position in Bravia TV ([@Drafteed] - [#107080])
+- Remove filter of -1 in Shelly block based sensors ([@thecode] - [#111116])
+- Bump pyunifiprotect to 4.23.3 ([@AngellusMortis] - [#111059])
+- Cache formatting of mac addresses ([@bdraco] - [#111140])
+- bump bring-api to 0.4.1 ([@tr4nt0r] - [#111149])
+- Bump rova to 0.4.0 ([@rkruisselbrink] - [#111131])
+- Add number entities to change heat pump program temperatures in ViCare integration ([@CFenner] - [#109315])
+- Update AEMET-OpenData to v0.5.0 ([@Noltari] - [#111155])
+- Refactor Debouncer usage in august ([@bdraco] - [#111102])
+- Correct myUplink dash replacement ([@astrandb] - [#111143])
+- Bump `brother` library to version 4.0.0 ([@bieniu] - [#111157])
+- Simplify ESPHome entity removal process ([@bdraco] - [#111076])
+- Fix lingering timer in enphase_envoy test ([@bdraco] - [#111165])
+- Avoid creating tasks for dependencies already being setup ([@bdraco] - [#111034])
+- Add base class AndroidTVEntity to AndroidTV ([@ollo69] - [#105945])
+- Add metadata for UniFi Protect Media Source ([@AngellusMortis] - [#109389])
+- Update pylutron-caseta to 0.20.0 ([@mdonoughe] - [#111169])
+- Improve error reporting in tplink config flow ([@bdraco] - [#111166])
+- Rework how shade updates are processed in powerview ([@kingy444] - [#110928])
+- Fix stale sensors for Recollect Waste ([@mikeodr] - [#111174])
+- Bump plexapi to 4.15.10 ([@jjlawren] - [#111180])
+- Optimize mqtt device cleanup ([@jbouwh] - [#111170])
+- Fix race in openalpr_cloud tests ([@bdraco] - [#111185])
+- Convert hardware system status websocket api to a normal function ([@bdraco] - [#111172])
+- Bump pytraccar from 2.1.0 to 2.1.1 ([@ludeeus] - [#111188])
+- Update AEMET-OpenData to v0.5.1 ([@Noltari] - [#111191])
+- Bump github/codeql-action from 3.24.3 to 3.24.4 (@dependabot - [#111184])
+- Enable SIM114 ruff rule ([@joostlek] - [#111125])
+- Update coverage to 7.4.2 ([@cdce8p] - [#111194])
+- Update beautifulsoup4 to 4.12.3 ([@cdce8p] - [#111195])
+- Convert hassio websocket_apis that did not await to normal functions ([@bdraco] - [#111173])
+- Avoid creating tasks to register hassio panels ([@bdraco] - [#111206])
+- Migrate zha to use Debouncer.async_schedule_call ([@bdraco] - [#111103])
+- Add device counter entities to ZHA ([@dmulcahey] - [#111175])
+- Fix race in ESPHome entity test ([@bdraco] - [#111179])
+- Avoid yalexs_ble delaying startup when the lock is not advertising ([@bdraco] - [#111167])
+- YAML loader performance improvements ([@bdraco] - [#111199])
+- Avoid creating tasks for automation and script validation ([@bdraco] - [#111181])
+- Improve performance of filtering HomeKit entities ([@bdraco] - [#111201])
+- Refactor storage collections to reduce tasks during startup ([@bdraco] - [#111182])
+- Refactor keyed event trackers to reduce future refactoring risk ([@bdraco] - [#111150])
+- Avoid linear search to remove from the entity registry index ([@bdraco] - [#111138])
+- Bump python-hpilo to 4.4.3 ([@Nirostar] - [#110325])
+- Isolate systemmonitor from psutil shared state ([@gjohansson-ST] - [#111110])
+- Avoid rechecking for missing platforms in the loader ([@bdraco] - [#111204])
+- Avoid scheduling a task to add each entity when not using update_before_add ([@bdraco] - [#110951])
+- Code improvements for microbees component ([@rlippmann] - [#111208]) ([microBees docs])
+- Update pylint to 3.0.4 ([@cdce8p] - [#111229])
+- Avoid creating task per device when adding legacy device trackers ([@bdraco] - [#111220])
+- Bump ZHA dependencies ([@dmulcahey] - [#111227])
+- Fix bluetooth manager stop missing callback decorator ([@bdraco] - [#111232])
+- Improve tplink authenticate description wording ([@rytilahti] - [#111250])
+- Convert debouncer async_shutdown to be a normal function ([@bdraco] - [#111257])
+- Avoid reschedule churn in Storage.async_delay_save ([@bdraco] - [#111091])
+- Bump cryptography to 42.0.5 ([@bdraco] - [#111259])
+- Add debugging to coordinator output in System Monitor ([@gjohansson-ST] - [#111244])
+- Bump `pysnmp-lextudio` library to version 6.0.2 ([@bieniu] - [#111193])
+- Subscribe to Traccar Server events ([@ludeeus] - [#111262])
+- Fix bring! comment pep8 conformity ([@miaucl] - [#111276])
+- Update pipdeptree to 2.15.1 ([@cdce8p] - [#111269])
+- Update pytest-socket to 0.7.0 ([@cdce8p] - [#111270])
+- Update pytest-sugar to 1.0.0 ([@cdce8p] - [#111271])
+- Update coverage to 7.4.3 ([@cdce8p] - [#111267])
+- Bump habluetooth to 2.4.1 ([@bdraco] - [#111236])
+- Add Airzone Cloud Air Quality zone sensors ([@Noltari] - [#106571])
+- Add Airzone Cloud Air Quality zone binary sensors ([@Noltari] - [#106573])
+- Bump odp-amsterdam to v6.0.1 ([@klaasnicolaas] - [#111296])
+- Update pytest-timeout to 2.2.0 ([@cdce8p] - [#111272])
+- Bump yalexs-ble to 2.4.2 ([@bdraco] - [#111247])
+- Nuki add battery critical binary sensor ([@steffenrapp] - [#111285])
+- Add strings to the options attribute ([@dougiteixeira] - [#111302])
+- Bump motionblinds to 0.6.23 ([@starkillerOG] - [#111265])
+- Add light platform to microBees and change docstring in sensor ([@FedDam] - [#111093]) ([microBees docs])
+- Add diagnostics support for AEMET ([@Noltari] - [#111218])
+- Add diagnostics to System Monitor ([@gjohansson-ST] - [#111291])
+- Add ECO temp to Generic Thermostat ([@Minims] - [#110471])
+- Remove obsolete entities from System Monitor automatically ([@gjohansson-ST] - [#111231])
+- Fix `async_validate_location` arguments order ([@engrbm87] - [#111277])
+- Bump pydiscovergy to 3.0.0 ([@jpbede] - [#111305])
+- Unifi websocket manager ([@Kane610] - [#111041])
+- Fix workday blocking the event loop ([@bdraco] - [#111310])
+- Fix profiler.lru_stats always throwing an exception ([@bdraco] - [#111249])
+- Freeze time in aemet diagnostics test ([@jpbede] - [#111308])
+- Load translations at setup time if they were not loaded at bootstrap ([@bdraco] - [#110921])
+- Reduce Bluetooth setup time ([@bdraco] - [#111304])
+- Add myuplink number platform ([@astrandb] - [#111154])
+- Fix sql integration no recorder ([@gjohansson-ST] - [#111263])
+- Bump tplink-omada-client to 1.3.11 ([@MarkGodwin] - [#111273])
+- Add icons translations for airvisual ([@joostlek] - [#111318])
+- Bump ibeacon-ble to 1.2.0 ([@bdraco] - [#111315])
+- Update python-homewizard-energy to 4.3.1 ([@cdce8p] - [#111311])
+- Add icon translations to alarmdecoder ([@joostlek] - [#111319])
+- Add icon translations to amberelectric ([@joostlek] - [#111321])
+- Add icon translations to aftership ([@joostlek] - [#111317])
+- Add icon translations to Blue current ([@joostlek] - [#111347])
+- Add icon translations to Balboa ([@joostlek] - [#111343])
+- Add icon translations to apcupsd ([@joostlek] - [#111342])
+- Add icon translations to aosmith ([@joostlek] - [#111340])
+- Use device class icon in Anthem AV ([@joostlek] - [#111339])
+- Add icon translations to Android TV ([@joostlek] - [#111338])
+- Add icon translations to Blink ([@joostlek] - [#111346])
+- Add icon translations to Comelit ([@joostlek] - [#111358])
+- Add icon translations to DNS IP ([@joostlek] - [#111369])
+- Refactor deprecated workday argument ([@cdce8p] - [#111379])
+- Make matter import in google_assistant late to avoid blocking the event loop ([@bdraco] - [#111335])
+- Add icon translations to Nuki ([@steffenrapp] - [#111377])
+- Nuki add binary sensor for battery charging ([@steffenrapp] - [#111320])
+- Add icon translations to Cast ([@joostlek] - [#111352])
+- Add icon translations to Bring ([@joostlek] - [#111351])
+- Add icon translations to Cloud ([@joostlek] - [#111355])
+- Add icon translations to Coolmaster ([@joostlek] - [#111359])
+- Add icon translations to Cert expiry ([@joostlek] - [#111354])
+- Add icon translations to Daikin ([@joostlek] - [#111362])
+- Use device class icon in Crownstone ([@joostlek] - [#111361])
+- Use device class icon in cpu-speed ([@joostlek] - [#111360])
+- Add icon translations to Color extractor ([@joostlek] - [#111357])
+- Add icon translations to Cloudflare ([@joostlek] - [#111356])
+- Add icon translations to Bosch SHC ([@joostlek] - [#111350])
+- Add icon translations to Dremel 3D printer ([@joostlek] - [#111371])
+- Add icon translations to Doorbird ([@joostlek] - [#111370])
+- Add icon translations to Dexcom ([@joostlek] - [#111368])
+- Bump Geosphere to v0.3.6 ([@killer0071234] - [#111376])
+- Add icons translations for android_ip_webcam ([@joostlek] - [#111324])
+- Add icons translations for ambiclimate ([@joostlek] - [#111322])
+- Make hardware setup in hassio a normal function ([@bdraco] - [#111328])
+- Allow EM Setpoint in Honeywell ([@mkmer] - [#111332])
+- Adjustment post move to WS in Traccar Server ([@ludeeus] - [#111337])
+- Add icon translations to Deconz ([@joostlek] - [#111363])
+- Update aionotion to 2024.02.2 ([@cdce8p] - [#111388])
+- Update pylint to 3.1.0 ([@cdce8p] - [#111392])
+- Fix flakey utility meter test ([@bdraco] - [#111400])
+- Update pytest to 8.0.2 ([@cdce8p] - [#111399])
+- Add Nuki ID as serial number ([@steffenrapp] - [#111381])
+- Run pylint sorted platform check also when platform has type annotations ([@jpbede] - [#111407])
+- Fix Glances translation keys on CPU load, Memory use, Swap use ([@wittypluck] - [#111401])
+- Update ciso8601 to 2.3.1 ([@cdce8p] - [#111389])
+- Bump homematicip to 1.1.0 ([@hahn-th] - [#111385])
+- Bump bluetooth-adapters to 0.18.0 ([@bdraco] - [#111316])
+- Update bcrypt to 4.1.2 ([@cdce8p] - [#111283])
+- Enable CONF_STATION_UPDATES by default on AEMET ([@Noltari] - [#111214])
+- Add icon translations to EasyEnergy ([@joostlek] - [#111413])
+- Add icon translations to Ecoforest ([@joostlek] - [#111417])
+- Add icon translations to Electric Kiwi ([@joostlek] - [#111422])
+- Add icon translations to edl21 ([@joostlek] - [#111420])
+- Add icon translations to Ecobee ([@joostlek] - [#111416])
+- Add icon translations to Dynalite ([@joostlek] - [#111412])
+- Fix KNX cover schema for voluptuous 0.14.2 ([@farmio] - [#111427])
+- Bump tesla-fleet-api to 0.4.6 in Teslemetry ([@Bre77] - [#111127])
+- Bump aioesphomeapi to 22.1.0 ([@dougiteixeira] - [#111435])
+- Update freezegun to 1.4.0 ([@cdce8p] - [#111268])
+- Fix uneeded state update in Idasen Desk sensor ([@abmantis] - [#111433])
+- Esphome text sensor device class ([@dougiteixeira] - [#111057])
+- Add sensors for energy storage system to ViCare integration ([@CFenner] - [#106600])
+- Add @astrandb as myuplink codeowner ([@astrandb] - [#111449])
+- Add TechnoVE auto charge switch ([@Moustachauve] - [#109093])
+- Add validation to water_heater set_operation mode at entity component ([@jbouwh] - [#111168])
+- Add Motionblinds virtual integration Acomax ([@starkillerOG] - [#111458])
+- Improve handling mqtt command template exceptions ([@jbouwh] - [#110499])
+- Add Motionblinds virtual integration Krispol ([@starkillerOG] - [#111456])
+- Add Motionblinds virtual integration Madeco ([@starkillerOG] - [#111455])
+- Improve logging of google_assistant messages ([@emontnemery] - [#110637])
+- Add @tronix117 as overkiz codeowner ([@Tronix117] - [#111464])
+- Bump vallox-websocket-api to 5.1.0 ([@yozik04] - [#111471])
+- Bump Python-roborock to 0.39.2 ([@Lash-L] - [#111479])
+- Add webmin integration ([@autinerd] - [#106976])
+- Fix race in dlna_dmr test ([@bdraco] - [#111428])
+- Bump myuplink lib to 0.5.0 ([@astrandb] - [#111447])
+- Update idasen-ha to v2.5.1 to fix regression ([@abmantis] - [#111439])
+- 2024.2.4 ([@balloob] - [#111441])
+- Switch nmap_tracker to use aiooui ([@bdraco] - [#111415])
+- Add support for eager tasks ([@bdraco] - [#111425])
+- Remove `@bind_hass` from async_active_zone and make callback function ([@jpbede] - [#111488])
+- Use discovery flow helper for hardware integrations ([@bdraco] - [#111437])
+- Update xknx to 2.12.1 and xknxproject to 3.7.0 ([@farmio] - [#111460])
+- Add `single_config_entry` manifest option ([@jpbede] - [#109505])
+- Image entity media source ([@OnFreund] - [#104743])
+- Update rfxtrx library to handle connection retries ([@elupus] - [#111366])
+- Remove JuiceNet integration ([@emontnemery] - [#111477])
+- Add hvac_action to flexit_bacnet climate entity ([@lellky] - [#110498])
+- Bump pyMicrobot to 0.0.17 ([@spycle] - [#111496])
+- Reolink trigger ReAuth when credentials invalid during update ([@starkillerOG] - [#111492])
+- Add support for importing integrations in the executor ([@bdraco] - [#111336])
+- Improve code comment for Chrome frame bug in Camera ([@OnFreund] - [#111504])
+- Fix dict changing size during iteration in deconz ([@bdraco] - [#111523])
+- Add support to Lutron lights for color and temperature control ([@eclair4151] - [#109019])
+- Import radio_browser in the executor to avoid blocking the event loop ([@bdraco] - [#111519])
+- Import influxdb in the executor to avoid blocking the event loop ([@bdraco] - [#111520])
+- WeatherFlow Forecast (REST API) ([@jeeftor] - [#106615])
+- Import mqtt in the executor to avoid blocking the event loop ([@bdraco] - [#111521])
+- Add icon translations to Flo ([@joostlek] - [#111542])
+- Bump aioshelly to 8.0.2 ([@thecode] - [#111414])
+- Avoid call to `hass.helpers` in permobile ([@jpbede] - [#111541])
+- Add Tado add meter readings service ([@niro1987] - [#111552])
+- Add icon translations to Fritz ([@joostlek] - [#111547])
+- Fix text in docstrings and debug logging for loader ([@bdraco] - [#111560])
+- Add speech-to-text cooldown for local wake word ([@synesthesiam] - [#108806])
+- Use an eager task to update multiple entities ([@bdraco] - [#111556])
+- Create tasks eagerly in the discovery flow helper ([@bdraco] - [#111557])
+- Reduce latency to set up websocket forwarding in hassio ([@bdraco] - [#111558])
+- Reduce latency to connect websocket writer ([@bdraco] - [#111559])
+- Convert person start to be a callback function ([@bdraco] - [#111571])
+- Start the debouncer task eagerly ([@bdraco] - [#111569])
+- Start automations with eager tasks ([@bdraco] - [#111568])
+- Bump yalexs to 1.11.4 ([@bdraco] - [#111567])
+- Make unifiprotect fallback update an eager task ([@bdraco] - [#111580])
+- Use eager_start for sonos ping background task ([@bdraco] - [#111578])
+- Refactor rainmachine to increase chance of reusing the connection ([@bdraco] - [#111573])
+- Migrate gather_with_limited_concurrency to use create_eager_task ([@bdraco] - [#111565])
+- Use eager start for august subscriber refreshes ([@bdraco] - [#111581])
+- Use eager task creation for entity platform polling ([@bdraco] - [#111575])
+- Import zeroconf in the executor to avoid blocking the event loop ([@bdraco] - [#111591])
+- Import dhcp in the executor to avoid blocking the event loop ([@bdraco] - [#111589])
+- Import samsungtv in the executor to avoid blocking the event loop ([@bdraco] - [#111588])
+- Import wemo in the executor to avoid blocking the event loop ([@bdraco] - [#111587])
+- Import thread in the executor to avoid blocking the event loop ([@bdraco] - [#111586])
+- ESPHome: Pass through wake_word_phrase from on-device microWakeWord ([@jesserockz] - [#111585])
+- Import spotify in the executor to avoid blocking the event loop ([@bdraco] - [#111594])
+- Import august in the executor to avoid blocking the event loop ([@bdraco] - [#111595])
+- Use an eager task in the update coordinator scheduled refresh ([@bdraco] - [#111570])
+- Create component setup tasks eagerly in bootstrap ([@bdraco] - [#111511])
+- Import usb in the executor to avoid blocking the event loop ([@bdraco] - [#111592])
+- Fully fix race in removing entities ([@bdraco] - [#111499])
+- Load config entry platforms eagerly ([@bdraco] - [#111498])
+- Create bootstrap tasks eagerly ([@bdraco] - [#111497])
+- Remove zeroconf from ssdp after deps ([@bdraco] - [#111326])
+- Reduce bootstrap code ([@bdraco] - [#111450])
+- Import ssdp in the executor to avoid blocking the event loop ([@bdraco] - [#111593])
+- Update pyipp to 0.14.5 ([@ctalkington] - [#111590])
+- Refactor eafm to avoid creating entities in the coordinator update ([@bdraco] - [#111601])
+- Bump deebot-client to 6.0.2 ([@edenhaus] - [#111507])
+- Make core tests that should run in the event loop coros ([@bdraco] - [#111605])
+- Add icon translations to Geocaching ([@joostlek] - [#111613])
+- Add icon translations to Garages Amsterdam ([@joostlek] - [#111610])
+- Deprecate Logi Circle integration ([@emontnemery] - [#111491])
+- Bump actions/download-artifact from 4.1.2 to 4.1.3 (@dependabot - [#111602])
+- Update python-slugify to 8.0.4 ([@cdce8p] - [#111284])
+- Update typing-extensions to 4.10.0 ([@cdce8p] - [#111538])
+- Add device list to ZHA config entry diagnostics ([@dmulcahey] - [#111549])
+- Import zwave_js in the executor to avoid blocking the event loop ([@bdraco] - [#111622])
+- Add statistics keep_last_sample option ([@brenank] - [#88655])
+- Deprecate the Ambiclimate integration ([@emontnemery] - [#111627])
+- Deprecate mailbox platform ([@edenhaus] - [#110930])
+- Extend ZHA thermostat local temperature calibration range for Sonoff TRVZB ([@TheNoim] - [#109691])
+- Import xbox in the executor to avoid blocking the event loop ([@bdraco] - [#111625])
+- Import airvisual in the executor to avoid blocking the event loop ([@bdraco] - [#111624])
+- Import shelly in the executor to avoid blocking the event loop ([@bdraco] - [#111623])
+- Add icon translations to Fully kiosk ([@joostlek] - [#111609])
+- Use an eager task to setup entity platforms ([@bdraco] - [#111574])
+- Ensure all data is set in seventeentrack before adding entities ([@bdraco] - [#111603])
+- Avoid call to `hass.helpers.store` in LabelRegistry ([@jpbede] - [#111555])
+- Always allow ignore and unignore flows for single config entry integrations ([@emontnemery] - [#111631])
+- Wolflink connection pooling ([@janrothkegel] - [#111483])
+- Fix rfxtrx flaky reconnect test ([@MartinHjelmare] - [#111635])
+- Avoid race condition with UDP voice server starting in ESPHome ([@synesthesiam] - [#111644])
+- Move backup/* WS commands to the backup integration ([@ludeeus] - [#111636])
+- Import bluetooth in the executor to avoid blocking the event loop ([@bdraco] - [#111596])
+- Update list of integrations known to violate color mode rules ([@emontnemery] - [#111647])
+- Break out UniFi get_unifi_api function ([@Kane610] - [#111323])
+- Return FlowResultType.ABORT when violating single_config_entry ([@emontnemery] - [#111637])
+- 2024.2.5 ([@balloob] - [#111648])
+- Add button platform to microBees ([@FedDam] - [#111141]) ([microBees docs])
+- Bump aiounifi to v72 ([@Kane610] - [#111649])
+- Use eager task creation to add entities to entity platform ([@bdraco] - [#111553])
+- Bump pyenphase to 1.19.1 ([@catsmanac] - [#111653])
+- Bump aiohomekit to 3.1.5 ([@bdraco] - [#111663])
+- Fix Switcher test update CI failure ([@thecode] - [#111667])
+- Bad Request from supervisor should be error ([@mdegat01] - [#111162])
+- Add ODROID-M1S as a supported OS hardware board ([@sairon] - [#111022])
+- Add icon translations to Goodwe ([@joostlek] - [#111655])
+- Add icon translations to Google Sheets ([@joostlek] - [#111661])
+- Add icon translations to Google Mail ([@joostlek] - [#111660])
+- Add icon translations to Google Generative AI Conversation ([@joostlek] - [#111659])
+- Add icon translations to Google Assistant ([@joostlek] - [#111657])
+- Add Grid import export to Enphase Envoy ([@catsmanac] - [#110884])
+- Add icon translations to Goalzero ([@joostlek] - [#111630])
+- Use eager_start for shelly task creation ([@bdraco] - [#111671])
+- Remove `@bind_hass` from `camera` functions ([@jpbede] - [#111494])
+- Cleanup BLE-only controls when migrating HomeKit BLE device to Thread ([@Jc2k] - [#110334])
+- Avoid call to `hass.helpers.store` in FloorRegistry ([@jpbede] - [#111554])
+- Use eager_start for background service call tasks ([@bdraco] - [#111620])
+- Add icon translations to Energyzero ([@joostlek] - [#111513])
+- Migrate setup to use eager tasks ([@bdraco] - [#111619])
+- Small speed up to Bluetooth setup ([@bdraco] - [#111677])
+- Use eager_start for homekit task creation ([@bdraco] - [#111675])
+- Await service calls in emulated_hue instead of making them blocking ([@bdraco] - [#111674])
+- Update httpx to 0.27.0 and httpcore to 1.0.4 ([@bdraco] - [#111681])
+- Bump aioshelly to 8.1.1 ([@chemelli74] - [#111678])
+- Drop `@bind_hass` use from hassio component ([@jpbede] - [#111522])
+- Add icon translations to Google ([@joostlek] - [#111656])
+- Add icon translations to Foscam ([@joostlek] - [#111546])
+- Bump pysignalclirestapi to 0.3.23 ([@bbernhard] - [#111501])
+- Add icon translations to Generic camera ([@joostlek] - [#111612])
+- Reduce task overhead in homekit_controller ([@bdraco] - [#111670])
+- Reduce hassio setup time ([@bdraco] - [#111686])
+- Reduce latency in storage by making the tasks eager ([@bdraco] - [#111500])
+- Add icon translations to Flume ([@joostlek] - [#111543])
+- Avoid tracking tasks that finish right away ([@bdraco] - [#111690])
+- Import xiaomi_ble in the executor to avoid blocking the event loop ([@bdraco] - [#111693])
+- Make homekit_controller platform load tasks eagerly ([@bdraco] - [#111701])
+- Add icon translations to Epson ([@joostlek] - [#111528])
+- Add icon translations to Glances ([@joostlek] - [#111615])
+- Add icon translations to GDACS ([@joostlek] - [#111611])
+- Add icon translations to FiveM ([@joostlek] - [#111539])
+- Add icon translations to Environment Canada ([@joostlek] - [#111527])
+- Add icon translations to Escea ([@joostlek] - [#111529])
+- Add icon translations to Fireservicerota ([@joostlek] - [#111537])
+- Add icon translations to Fastdotcom ([@joostlek] - [#111534])
+- Add icon translations to Eufylife BLE ([@joostlek] - [#111530])
+- Add icon translations to FAA delays ([@joostlek] - [#111533])
+- Add icon translations to Google Assistant SDK ([@joostlek] - [#111658])
+- Avoid creating system monitor disk sensors for non-dirs ([@bdraco] - [#111695])
+- Add icon translations to Filesize ([@joostlek] - [#111536])
+- Revert "Remove `@bind_hass` from `camera` functions" ([@jpbede] - [#111703])
+- Revert "Remove `@bind_hass` from async_active_zone and make callback function" ([@jpbede] - [#111704])
+- Revert "Drop `@bind_hass` use from hassio component (#111522)" ([@jpbede] - [#111705])
+- Add icon translations to Denon avr ([@joostlek] - [#111364])
+- Add icon translations to Devolo home network ([@joostlek] - [#111367])
+- Tado code quality improvements ([@erwindouna] - [#107678])
+- Add icon translations to Gree ([@joostlek] - [#111662])
+- Add icon translations to Fronius ([@joostlek] - [#111608])
+- Bump blebox_uniapi to 2.2.1 ([@swistakm] - [#108918])
+- Import mobile_app in the executor to avoid blocking the event loop ([@bdraco] - [#111692])
+- Use eager tasks in a few more places in bootstrap ([@bdraco] - [#111697])
+- Make entity component platform setup tasks eager ([@bdraco] - [#111698])
+- Use eager tasks when updating entity state after service calls ([@bdraco] - [#111702])
+- Add icon translations to DSMR ([@joostlek] - [#111411])
+- Add icon translations to DROP connect ([@joostlek] - [#111373])
+- Add icon translations to BMW ([@joostlek] - [#111348])
+- Add icon translations to Guardian ([@joostlek] - [#111712])
+- Add Comelit humidifier/dehumidifier ([@chemelli74] - [#111203])
+- Add entities for Balboa Spa pumps ([@snoack] - [#111245])
+- Add icon translations to HVV departures ([@joostlek] - [#111728])
+- Adapt Axis integration to library refactoring ([@Kane610] - [#110898])
+- Bump github/codeql-action from 3.24.4 to 3.24.5 (@dependabot - [#111448])
+- Import tplink in the executor to avoid blocking the event loop ([@bdraco] - [#111691])
+- Import nexia in the executor to avoid blocking the event loop ([@bdraco] - [#111694])
+- Allow translating device names ([@emontnemery] - [#110711])
+- Add entities for Balboa Spa lights ([@snoack] - [#111252])
+- Add icon translations to Homematic IP Cloud ([@joostlek] - [#111723])
+- Add icon translations to Homekit Controller ([@joostlek] - [#111720])
+- Add icon translations to Home connect ([@joostlek] - [#111718])
+- Add icon translations to Hive ([@joostlek] - [#111717])
+- Add icon translations to Heos ([@joostlek] - [#111716])
+- Add icon translations to Hassio ([@joostlek] - [#111715])
+- Add icon translations to Harmony ([@joostlek] - [#111714])
+- Add icon translations to Homekit ([@joostlek] - [#111719])
+- Add ecovacs lawn mover ([@Augar] - [#111673])
+- Add icon translations to Huawei LTE ([@joostlek] - [#111724])
+- Add icon translations to Huisbaasje ([@joostlek] - [#111726])
+- Remove gather for loading generated files in zeroconf ([@bdraco] - [#111699])
+- Use eager tasks in ssdp ([@bdraco] - [#111696])
+- Update frontend to 20240228.0 ([@bramkragten] - [#111736])
+- Cleanup swiss_public_transport error logging ([@miaucl] - [#111741])
+- Import plex in the executor to avoid blocking the event loop ([@bdraco] - [#111743])
+- Eagerly unload config entries in tests ([@bdraco] - [#111707])
+- Import powerwall in the executor to avoid blocking the event loop ([@bdraco] - [#111749])
+- Bump aioraven to 0.5.1 ([@cottsay] - [#111600])
+- Use new zigpy OTA providers for ZHA ([@puddly] - [#111159])
+- Add Ecovacs goat switch entities ([@Augar] - [#111751])
+- Add overkiz support for Atlantic Shogun ZoneControl 2.0 (AtlanticPassAPCHeatingAndCoolingZone) ([@Tronix117] - [#110510])
+- Fix calendar trigger to survive config entry reloads ([@allenporter] - [#111334])
+- Read min/max number of showers from state for DomesticHotWaterProduction in Overkiz integration ([@yanuino] - [#111535])
+- Improve ZHA group color modes ([@puddly] - [#111669])
+- Pre-import api, config, and lovelace in bootstrap to avoid loading them at runtime ([@bdraco] - [#111752])
+- Move DATA_LOGGING constant to homeassistant.const ([@bdraco] - [#111763])
+- Bump Python Matter Server to 5.7.0 ([@marcelveldt] - [#111765])
+- Import isy994 in the executor to avoid blocking the event loop ([@bdraco] - [#111766])
+- Import cryptography early since importing openssl is not thread-safe ([@bdraco] - [#111768])
+- Bump aiohue to 4.7.1 ([@marcelveldt] - [#111770])
+- Import blink in the executor to avoid blocking the event loop ([@bdraco] - [#111772])
+- Import coinbase in the executor to avoid blocking the event loop ([@bdraco] - [#111774])
+- Import androidtv_remote in the executor to avoid blocking the event loop ([@bdraco] - [#111776])
+- Import opower in the executor to avoid blocking the event loop ([@bdraco] - [#111778])
+- Import backup in the executor to avoid blocking the event loop ([@bdraco] - [#111781])
+- Bump securetar to 2024.2.1 ([@bdraco] - [#111782])
+- Fix time trigger tests with leap year ([@bdraco] - [#111785])
+- Import analytics_insights in the executor to avoid blocking the event loop ([@bdraco] - [#111786])
+- Fix flux_led blocking startup by waiting for discovery ([@bdraco] - [#111787])
+- Fix tplink blocking startup by waiting for discovery ([@bdraco] - [#111788])
+- Fix steamist blocking startup by waiting for discovery ([@bdraco] - [#111789])
+- Import discord in the executor to avoid blocking the event loop ([@bdraco] - [#111790])
+- Bump intents and add sentence tests ([@synesthesiam] - [#111791])
+- get_matter_device_info: Test the Matter config entry is set up ([@balloob] - [#111792])
+- Add support for ZHA entities exposed by Zigpy quirks ([@dmulcahey] - [#111176])
+- Deprecate `hass.components` and log warning if used inside custom component ([@jpbede] - [#111508])
+- Fix race in config entry setup again ([@bdraco] - [#111800])
+- Include filename in exception when loading a json file fails ([@bdraco] - [#111802])
+- Import cryptography OpenSSL backend ([@balloob] - [#111840])
+- Support HitachiAirToAirHeatPump (ovp:HLinkMainController) in Overkiz integration ([@dotvav] - [#102159])
+- Update frontend to 20240228.1 ([@bramkragten] - [#111859])
+- Move HassSetPosition to homeassistant domain ([@synesthesiam] - [#111867])
+- Fallback to event loop import on deadlock ([@bdraco] - [#111868])
+- Use correct service name with Wyoming satellite + local wake word detection ([@synesthesiam] - [#111870])
+- Fix circular imports in core integrations ([@bdraco] - [#111875])
+- Add missing unit of measurement for tolerance option in proximity ([@mib1185] - [#111876])
+- Update aioairzone to v0.7.5 ([@Noltari] - [#111879])
+- Bump habluetooth to 2.4.2 ([@bdraco] - [#111885])
+- Deconz fix gradient color mode ([@Kane610] - [#111890])
+- Fix unsupported device type in deCONZ integration ([@Kane610] - [#111892])
+- Limit executor imports to a single thread ([@bdraco] - [#111898])
+- Change `hass.components` removal version in log to 2024.9 ([@jpbede] - [#111903])
+- Bump pyOverkiz to 1.13.8 ([@iMicknl] - [#111930])
+- Update frontend to 20240301.0 ([@piitaya] - [#111961])
+- Update reporting for media_source.async_resolve_media ([@balloob] - [#111969])
+- Bump Zigpy to 0.63.3 ([@dmulcahey] - [#112002])
+- Fix minor language issues in strings.json ([@chelming] - [#112006])
+- Update aioairzone-cloud to v0.4.5 ([@Noltari] - [#112034])
+- Use description key instead of name for Tibber RT unique ID ([@ludeeus] - [#112035])
+- Fix config schema for velux ([@ludeeus] - [#112037])
+- Bump weatherflow4py to v0.1.12 ([@jeeftor] - [#112040])
+- Import anonymize_data in unifiprotect init to avoid it being imported in the event loop ([@bdraco] - [#112052])
+- Bump unifi-discovery to 1.1.8 ([@bdraco] - [#112056])
+- Bump bthome-ble to 3.6.0 ([@thecode] - [#112060])
+- Add device class for permobil record distance sensor ([@IsakNyberg] - [#112062])
+- Only load camera prefs once ([@balloob] - [#112064])
+- Bump pydrawise to 2024.3.0 ([@dknowles2] - [#112066])
+- Fix setup failure due to temporary DNS issue in Minecraft Server ([@elmurato] - [#112068])
+- Ensure all homekit_controller controllers are imported in advance ([@bdraco] - [#112079])
+- Fix bootstrap being fetched three times during unifiprotect startup ([@bdraco] - [#112082])
+- Fix executor being overloaded in caldav ([@bdraco] - [#112084])
+- Avoid expensive inspect calls in config validators ([@bdraco] - [#112085])
+- Handle exception in ViCare integration ([@CFenner] - [#111128])
+- Bump bring-api to 0.5.4 ([@tr4nt0r] - [#111654])
+- Bump Zigpy to 0.63.4 ([@dmulcahey] - [#112117])
+- Bump reolink-aio to 0.8.9 ([@starkillerOG] - [#112124])
+- Ignore failing gas stations in Tankerkoening ([@mib1185] - [#112125])
+- Fix ZHA groups page ([@dmulcahey] - [#112140])
+- Limit rainbird aiohttp client session to a single connection ([@allenporter] - [#112146])
+- Add rainbird request debouncer and immediately update entity switch state ([@allenporter] - [#112152])
+- Update frontend to 20240304.0 ([@piitaya] - [#112263])
+- Fix deCONZ light entity might not report a supported color mode ([@Kane610] - [#112116])
+- Bump python_roborock to 0.40.0 ([@Lash-L] - [#112238])
+- Update aioairzone to v0.7.6 ([@Noltari] - [#112264])
+- Bump bring-api to 0.5.5 ([@tr4nt0r] - [#112266])
+- Allow duplicate modbus addresses on different devices ([@janiversen] - [#112434])
+- Do not use list comprehension in async_add_entities in Unifi ([@Kane610] - [#112435])
+- Fix handling missing parameter by bumping axis library to v50 ([@Kane610] - [#112437])
+- Bump holidays to 0.44 ([@gjohansson-ST] - [#112442])
+- Update xknx to 2.12.2 - Fix thread leak on unsuccessful connections ([@farmio] - [#112450])
+- Avoid errors when there is no internet connection in Husqvarna Automower ([@Thomas55555] - [#111101])
+- Add custom integration block list ([@emontnemery] - [#112481])
+- Update frontend to 20240306.0 ([@bramkragten] - [#112492])
+- Bump pytedee_async to 0.2.15 ([@zweckj] - [#112495])
+- Allow start_time >= 1.1.7 ([@emontnemery] - [#112500])
+
+## Release 2024.3.1 - March 14
+
+- Fix optional Jellyfin RunTimeTicks ([@j-stienstra] - [#108254])
+- Add auto fan mode icon ([@mattmccormack] - [#110185])
+- Ignore AussieBroadband services that don't support usage information ([@FieldofClay] - [#110253])
+- Use friendly name for camera media source ([@OnFreund] - [#110882])
+- Improve discovering upnp/igd device by always using the SSDP-discovery for the Unique Device Name ([@StevenLooman] - [#111487])
+- Update the numato-gpio dependency of the numato integration to v0.12.0 ([@clssn] - [#112272])
+- Disable updating ZHA coordinator path from discovery info ([@puddly] - [#112415])
+- Bump intents to 2024.3.6 ([@synesthesiam] - [#112515])
+- Weatherflow_cloud backing lib bump ([@jeeftor] - [#112262])
+- Bump weatherflow4py to 0.1.14 ([@jeeftor] - [#112554])
+- Restore the juicenet integration ([@emontnemery] - [#112578])
+- Fix incorrect filtering of unsupported locales in bring-api ([@tr4nt0r] - [#112589])
+- Include pytedee_async logger in tedee integration ([@zweckj] - [#112590])
+- Issue warning modbus configuration when modbus configuration is empty ([@janiversen] - [#112618])
+- modbus scan_interval: 0 is correct configuration ([@janiversen] - [#112619])
+- Update frontend to 20240307.0 ([@bramkragten] - [#112620])
+- Make hass-nabucasa a core requirement ([@emontnemery] - [#112623])
+- Bump aioautomower to 2024.3.0 ([@Thomas55555] - [#112627])
+- Bump pymodbus to v3.6.5 ([@janiversen] - [#112629])
+- Bump axis to v52 ([@Kane610] - [#112632])
+- Update Loqed helper for more logging ([@mikewoudenberg] - [#112646])
+- Bump weatherflow4py to 0.1.17 ([@jeeftor] - [#112661])
+- Bump `aionotion` to 2024.03.0 ([@bachya] - [#112675])
+- Make sure Notion saves new refresh token upon startup ([@bachya] - [#112676])
+- Fix tado climate service ([@alinbalutoiu] - [#112686])
+- Downgrade `pysnmp-lextudio` to version `5.0.34` ([@bieniu] - [#112696])
+- Allow duplicate names in different modbus entities ([@janiversen] - [#112701])
+- Guard against db corruption when renaming entities ([@bdraco] - [#112718])
+- Fix local calendar handling of empty recurrence ids ([@allenporter] - [#112745])
+- Bump pyenphase to 1.19.2 ([@catsmanac] - [#112747])
+- Bump bthome-ble to 3.7.0 ([@thecode] - [#112783])
+- Upgrade `pysnmp-lextudio` to version `6.0.9` ([@lextm] - [#112795])
+- Bump openwrt-luci-rpc version to 1.1.17 ([@mrchi] - [#112796])
+- Fix google_asssistant sensor state reporting ([@jbouwh] - [#112838])
+- Fix MJPEG fallback when still image URL is missing with basic auth ([@bdraco] - [#112861])
+- Bump boschshcpy to 0.2.82 ([@FlyingFeng2021] - [#112890])
+- Add missing translation placeholder in Hydrawise ([@dknowles2] - [#113007])
+- Bump bthome-ble to 3.8.0 ([@Ernst79] - [#113008])
+- Bump axis to v53 ([@Kane610] - [#113019])
+- Fix availability for GIOS index sensors ([@bieniu] - [#113021])
+- Bump ical to 7.0.1 and always use home assistant timezone for local todo dtstart ([@allenporter] - [#113034])
+- Fix some handle leaks in rainforest_raven ([@cottsay] - [#113035])
+- Fix hvac_mode for viessmann devices with heatingCooling mode ([@folke] - [#113054])
+- components/gardena_bluetooth: Improve avaliability reliability ([@alistair23] - [#113056])
+- Fix for controlling Hue switch entities ([@marcelveldt] - [#113064])
+- Bump rova to 0.4.1 ([@LukasdeBoer] - [#113066])
+- Fix colormode attribute on grouped Hue light ([@marcelveldt] - [#113071])
+- Bump axis to v54 ([@Kane610] - [#113091])
+- Bump aiodhcpwatcher to 0.8.1 ([@bdraco] - [#113096])
+- bump pytedee_async to 0.2.16 ([@zweckj] - [#113135])
+- Add message from Bad Request errors to HassioAPIError ([@agners] - [#113144])
+- Bump intents to 2023.3.12 ([@synesthesiam] - [#113160])
+- Bump airthings_ble to 0.7.1 ([@LaStrada] - [#113172])
+- Bump rokuecp to 0.19.2 ([@ctalkington] - [#113198])
+- Bump `brother` library to version `4.0.2` ([@bieniu] - [#113235])
+- Hotfix import error in ZHA for 2024.3.1 patch release ([@frenck] - [#113250])
+- Fix Twitch auth token refresh ([@jonnybergdahl] - [#112833])
+- Fix failing google diagnostics test ([@bdraco] - [#113095])
+- Add diagnostics for IPP ([@ctalkington] - [#113205])
+- Apply suggestion failures fail supervisor repair ([@mdegat01] - [#113372])
+- Supervisor issues update retries on failure ([@mdegat01] - [#113373])
+- Add loggers to Husqvarna Automower ([@Thomas55555] - [#113381])
+- Bump pyipp to 0.15.0 ([@ctalkington] - [#113204])
+
+[#108254]: https://github.com/home-assistant/core/pull/108254
+[#110185]: https://github.com/home-assistant/core/pull/110185
+[#110253]: https://github.com/home-assistant/core/pull/110253
+[#110882]: https://github.com/home-assistant/core/pull/110882
+[#111133]: https://github.com/home-assistant/core/pull/111133
+[#111441]: https://github.com/home-assistant/core/pull/111441
+[#111487]: https://github.com/home-assistant/core/pull/111487
+[#111648]: https://github.com/home-assistant/core/pull/111648
+[#112262]: https://github.com/home-assistant/core/pull/112262
+[#112272]: https://github.com/home-assistant/core/pull/112272
+[#112415]: https://github.com/home-assistant/core/pull/112415
+[#112515]: https://github.com/home-assistant/core/pull/112515
+[#112516]: https://github.com/home-assistant/core/pull/112516
+[#112554]: https://github.com/home-assistant/core/pull/112554
+[#112578]: https://github.com/home-assistant/core/pull/112578
+[#112589]: https://github.com/home-assistant/core/pull/112589
+[#112590]: https://github.com/home-assistant/core/pull/112590
+[#112618]: https://github.com/home-assistant/core/pull/112618
+[#112619]: https://github.com/home-assistant/core/pull/112619
+[#112620]: https://github.com/home-assistant/core/pull/112620
+[#112623]: https://github.com/home-assistant/core/pull/112623
+[#112627]: https://github.com/home-assistant/core/pull/112627
+[#112629]: https://github.com/home-assistant/core/pull/112629
+[#112632]: https://github.com/home-assistant/core/pull/112632
+[#112646]: https://github.com/home-assistant/core/pull/112646
+[#112661]: https://github.com/home-assistant/core/pull/112661
+[#112675]: https://github.com/home-assistant/core/pull/112675
+[#112676]: https://github.com/home-assistant/core/pull/112676
+[#112686]: https://github.com/home-assistant/core/pull/112686
+[#112696]: https://github.com/home-assistant/core/pull/112696
+[#112701]: https://github.com/home-assistant/core/pull/112701
+[#112718]: https://github.com/home-assistant/core/pull/112718
+[#112745]: https://github.com/home-assistant/core/pull/112745
+[#112747]: https://github.com/home-assistant/core/pull/112747
+[#112783]: https://github.com/home-assistant/core/pull/112783
+[#112795]: https://github.com/home-assistant/core/pull/112795
+[#112796]: https://github.com/home-assistant/core/pull/112796
+[#112833]: https://github.com/home-assistant/core/pull/112833
+[#112838]: https://github.com/home-assistant/core/pull/112838
+[#112861]: https://github.com/home-assistant/core/pull/112861
+[#112890]: https://github.com/home-assistant/core/pull/112890
+[#113007]: https://github.com/home-assistant/core/pull/113007
+[#113008]: https://github.com/home-assistant/core/pull/113008
+[#113019]: https://github.com/home-assistant/core/pull/113019
+[#113021]: https://github.com/home-assistant/core/pull/113021
+[#113034]: https://github.com/home-assistant/core/pull/113034
+[#113035]: https://github.com/home-assistant/core/pull/113035
+[#113054]: https://github.com/home-assistant/core/pull/113054
+[#113056]: https://github.com/home-assistant/core/pull/113056
+[#113064]: https://github.com/home-assistant/core/pull/113064
+[#113066]: https://github.com/home-assistant/core/pull/113066
+[#113071]: https://github.com/home-assistant/core/pull/113071
+[#113091]: https://github.com/home-assistant/core/pull/113091
+[#113095]: https://github.com/home-assistant/core/pull/113095
+[#113096]: https://github.com/home-assistant/core/pull/113096
+[#113135]: https://github.com/home-assistant/core/pull/113135
+[#113144]: https://github.com/home-assistant/core/pull/113144
+[#113160]: https://github.com/home-assistant/core/pull/113160
+[#113172]: https://github.com/home-assistant/core/pull/113172
+[#113198]: https://github.com/home-assistant/core/pull/113198
+[#113204]: https://github.com/home-assistant/core/pull/113204
+[#113205]: https://github.com/home-assistant/core/pull/113205
+[#113235]: https://github.com/home-assistant/core/pull/113235
+[#113250]: https://github.com/home-assistant/core/pull/113250
+[#113372]: https://github.com/home-assistant/core/pull/113372
+[#113373]: https://github.com/home-assistant/core/pull/113373
+[#113381]: https://github.com/home-assistant/core/pull/113381
+[@Ernst79]: https://github.com/Ernst79
+[@FieldofClay]: https://github.com/FieldofClay
+[@FlyingFeng2021]: https://github.com/FlyingFeng2021
+[@Kane610]: https://github.com/Kane610
+[@LaStrada]: https://github.com/LaStrada
+[@LukasdeBoer]: https://github.com/LukasdeBoer
+[@OnFreund]: https://github.com/OnFreund
+[@StevenLooman]: https://github.com/StevenLooman
+[@Thomas55555]: https://github.com/Thomas55555
+[@agners]: https://github.com/agners
+[@alinbalutoiu]: https://github.com/alinbalutoiu
+[@alistair23]: https://github.com/alistair23
+[@allenporter]: https://github.com/allenporter
+[@bachya]: https://github.com/bachya
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@bramkragten]: https://github.com/bramkragten
+[@catsmanac]: https://github.com/catsmanac
+[@clssn]: https://github.com/clssn
+[@cottsay]: https://github.com/cottsay
+[@ctalkington]: https://github.com/ctalkington
+[@dknowles2]: https://github.com/dknowles2
+[@emontnemery]: https://github.com/emontnemery
+[@folke]: https://github.com/folke
+[@frenck]: https://github.com/frenck
+[@j-stienstra]: https://github.com/j-stienstra
+[@janiversen]: https://github.com/janiversen
+[@jbouwh]: https://github.com/jbouwh
+[@jeeftor]: https://github.com/jeeftor
+[@jonnybergdahl]: https://github.com/jonnybergdahl
+[@lextm]: https://github.com/lextm
+[@marcelveldt]: https://github.com/marcelveldt
+[@mattmccormack]: https://github.com/mattmccormack
+[@mdegat01]: https://github.com/mdegat01
+[@mikewoudenberg]: https://github.com/mikewoudenberg
+[@mrchi]: https://github.com/mrchi
+[@puddly]: https://github.com/puddly
+[@synesthesiam]: https://github.com/synesthesiam
+[@thecode]: https://github.com/thecode
+[@tr4nt0r]: https://github.com/tr4nt0r
+[@zweckj]: https://github.com/zweckj
+
+## Release 2024.3.2 - March 22
+
+- Streamline Notion config entry updates (refresh token and user ID) ([@bachya] - [#112832])
+- Bump aioautomower to 2024.3.2 ([@Thomas55555] - [#113162])
+- Bump aioautomower to 2024.3.3 ([@Thomas55555] - [#113430])
+- Check for EA release channel for UniFi Protect ([@AngellusMortis] - [#113432])
+- Bump `pysnmp-lextudio` to version `6.0.11` ([@lextm] - [#113463])
+- Tado fix water heater ([@erwindouna] - [#113464])
+- Bump aiodhcpwatcher to 0.8.2 ([@bdraco] - [#113466])
+- Bump axis to v55 ([@Kane610] - [#113479])
+- Bump croniter to 2.0.2 ([@dgomes] - [#113494])
+- Revert setting communication delay in Risco init ([@OnFreund] - [#113497])
+- Bump pyrisco to 0.5.10 ([@OnFreund] - [#113505])
+- Fix missing context when running script from template entity ([@emontnemery] - [#113523])
+- Bump ical to 7.0.3 to fix local-todo persisted with invalid DTSTART values ([@allenporter] - [#113526])
+- Fix Airthings BLE illuminance sensor name ([@joostlek] - [#113560])
+- Ignore Shelly block update with cfgChanged None ([@thecode] - [#113587])
+- Catch `TimeoutError` in `Brother` config flow ([@bieniu] - [#113593])
+- Bump axis to v56 ([@Kane610] - [#113608])
+- Bump pyunifiprotect to 5.0.1 ([@AngellusMortis] - [#113630])
+- Bump pyunifiprotect to 5.0.2 ([@AngellusMortis] - [#113651])
+- Add removal condition to Shelly battery sensor ([@bieniu] - [#113703])
+- Bump aioraven to 0.5.2 ([@cottsay] - [#113714])
+- Fix unknown values in onewire ([@epenet] - [#113731])
+- Bump pymodbus v3.6.6 ([@janiversen] - [#113796])
+- Catch API errors in cast media_player service handlers ([@emontnemery] - [#113839])
+- Bump pychromecast to 14.0.1 ([@emontnemery] - [#113841])
+- Fix startup race in cast ([@emontnemery] - [#113843])
+- Redact the area of traccar server geofences ([@ludeeus] - [#113861])
+- Bump pytedee_async to 0.2.17 ([@zweckj] - [#113933])
+- Bump axis to v57 ([@Kane610] - [#113952])
+
+[#111133]: https://github.com/home-assistant/core/pull/111133
+[#111441]: https://github.com/home-assistant/core/pull/111441
+[#111648]: https://github.com/home-assistant/core/pull/111648
+[#112516]: https://github.com/home-assistant/core/pull/112516
+[#112832]: https://github.com/home-assistant/core/pull/112832
+[#113162]: https://github.com/home-assistant/core/pull/113162
+[#113249]: https://github.com/home-assistant/core/pull/113249
+[#113430]: https://github.com/home-assistant/core/pull/113430
+[#113432]: https://github.com/home-assistant/core/pull/113432
+[#113463]: https://github.com/home-assistant/core/pull/113463
+[#113464]: https://github.com/home-assistant/core/pull/113464
+[#113466]: https://github.com/home-assistant/core/pull/113466
+[#113479]: https://github.com/home-assistant/core/pull/113479
+[#113494]: https://github.com/home-assistant/core/pull/113494
+[#113497]: https://github.com/home-assistant/core/pull/113497
+[#113505]: https://github.com/home-assistant/core/pull/113505
+[#113523]: https://github.com/home-assistant/core/pull/113523
+[#113526]: https://github.com/home-assistant/core/pull/113526
+[#113560]: https://github.com/home-assistant/core/pull/113560
+[#113587]: https://github.com/home-assistant/core/pull/113587
+[#113593]: https://github.com/home-assistant/core/pull/113593
+[#113608]: https://github.com/home-assistant/core/pull/113608
+[#113630]: https://github.com/home-assistant/core/pull/113630
+[#113651]: https://github.com/home-assistant/core/pull/113651
+[#113703]: https://github.com/home-assistant/core/pull/113703
+[#113714]: https://github.com/home-assistant/core/pull/113714
+[#113731]: https://github.com/home-assistant/core/pull/113731
+[#113796]: https://github.com/home-assistant/core/pull/113796
+[#113839]: https://github.com/home-assistant/core/pull/113839
+[#113841]: https://github.com/home-assistant/core/pull/113841
+[#113843]: https://github.com/home-assistant/core/pull/113843
+[#113861]: https://github.com/home-assistant/core/pull/113861
+[#113933]: https://github.com/home-assistant/core/pull/113933
+[#113952]: https://github.com/home-assistant/core/pull/113952
+[@AngellusMortis]: https://github.com/AngellusMortis
+[@Kane610]: https://github.com/Kane610
+[@OnFreund]: https://github.com/OnFreund
+[@Thomas55555]: https://github.com/Thomas55555
+[@allenporter]: https://github.com/allenporter
+[@bachya]: https://github.com/bachya
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@cottsay]: https://github.com/cottsay
+[@dgomes]: https://github.com/dgomes
+[@emontnemery]: https://github.com/emontnemery
+[@epenet]: https://github.com/epenet
+[@erwindouna]: https://github.com/erwindouna
+[@frenck]: https://github.com/frenck
+[@janiversen]: https://github.com/janiversen
+[@joostlek]: https://github.com/joostlek
+[@lextm]: https://github.com/lextm
+[@ludeeus]: https://github.com/ludeeus
+[@thecode]: https://github.com/thecode
+[@zweckj]: https://github.com/zweckj
+
+## Release 2024.3.3 - March 22
+
+- Update cosign to 2.2.3 ([@frenck] - [#113996])
+- Bump axis to v58 ([@Kane610] - [#114008])
+
+[#113996]: https://github.com/home-assistant/core/pull/113996
+[#114008]: https://github.com/home-assistant/core/pull/114008
+[@frenck]: https://github.com/frenck
+[@Kane610]: https://github.com/Kane610
+
+[#100418]: https://github.com/home-assistant/core/pull/100418
+[#101012]: https://github.com/home-assistant/core/pull/101012
+[#101641]: https://github.com/home-assistant/core/pull/101641
+[#101688]: https://github.com/home-assistant/core/pull/101688
+[#102159]: https://github.com/home-assistant/core/pull/102159
+[#102662]: https://github.com/home-assistant/core/pull/102662
+[#104680]: https://github.com/home-assistant/core/pull/104680
+[#104743]: https://github.com/home-assistant/core/pull/104743
+[#105693]: https://github.com/home-assistant/core/pull/105693
+[#105762]: https://github.com/home-assistant/core/pull/105762
+[#105796]: https://github.com/home-assistant/core/pull/105796
+[#105945]: https://github.com/home-assistant/core/pull/105945
+[#105985]: https://github.com/home-assistant/core/pull/105985
+[#106525]: https://github.com/home-assistant/core/pull/106525
+[#106527]: https://github.com/home-assistant/core/pull/106527
+[#106571]: https://github.com/home-assistant/core/pull/106571
+[#106573]: https://github.com/home-assistant/core/pull/106573
+[#106600]: https://github.com/home-assistant/core/pull/106600
+[#106615]: https://github.com/home-assistant/core/pull/106615
+[#106918]: https://github.com/home-assistant/core/pull/106918
+[#106976]: https://github.com/home-assistant/core/pull/106976
+[#107080]: https://github.com/home-assistant/core/pull/107080
+[#107600]: https://github.com/home-assistant/core/pull/107600
+[#107606]: https://github.com/home-assistant/core/pull/107606
+[#107648]: https://github.com/home-assistant/core/pull/107648
+[#107678]: https://github.com/home-assistant/core/pull/107678
+[#107795]: https://github.com/home-assistant/core/pull/107795
+[#108081]: https://github.com/home-assistant/core/pull/108081
+[#108125]: https://github.com/home-assistant/core/pull/108125
+[#108205]: https://github.com/home-assistant/core/pull/108205
+[#108237]: https://github.com/home-assistant/core/pull/108237
+[#108258]: https://github.com/home-assistant/core/pull/108258
+[#108318]: https://github.com/home-assistant/core/pull/108318
+[#108374]: https://github.com/home-assistant/core/pull/108374
+[#108412]: https://github.com/home-assistant/core/pull/108412
+[#108454]: https://github.com/home-assistant/core/pull/108454
+[#108505]: https://github.com/home-assistant/core/pull/108505
+[#108567]: https://github.com/home-assistant/core/pull/108567
+[#108585]: https://github.com/home-assistant/core/pull/108585
+[#108602]: https://github.com/home-assistant/core/pull/108602
+[#108796]: https://github.com/home-assistant/core/pull/108796
+[#108797]: https://github.com/home-assistant/core/pull/108797
+[#108806]: https://github.com/home-assistant/core/pull/108806
+[#108906]: https://github.com/home-assistant/core/pull/108906
+[#108918]: https://github.com/home-assistant/core/pull/108918
+[#109014]: https://github.com/home-assistant/core/pull/109014
+[#109019]: https://github.com/home-assistant/core/pull/109019
+[#109073]: https://github.com/home-assistant/core/pull/109073
+[#109093]: https://github.com/home-assistant/core/pull/109093
+[#109120]: https://github.com/home-assistant/core/pull/109120
+[#109187]: https://github.com/home-assistant/core/pull/109187
+[#109238]: https://github.com/home-assistant/core/pull/109238
+[#109240]: https://github.com/home-assistant/core/pull/109240
+[#109258]: https://github.com/home-assistant/core/pull/109258
+[#109272]: https://github.com/home-assistant/core/pull/109272
+[#109278]: https://github.com/home-assistant/core/pull/109278
+[#109298]: https://github.com/home-assistant/core/pull/109298
+[#109303]: https://github.com/home-assistant/core/pull/109303
+[#109312]: https://github.com/home-assistant/core/pull/109312
+[#109315]: https://github.com/home-assistant/core/pull/109315
+[#109320]: https://github.com/home-assistant/core/pull/109320
+[#109327]: https://github.com/home-assistant/core/pull/109327
+[#109334]: https://github.com/home-assistant/core/pull/109334
+[#109348]: https://github.com/home-assistant/core/pull/109348
+[#109351]: https://github.com/home-assistant/core/pull/109351
+[#109352]: https://github.com/home-assistant/core/pull/109352
+[#109354]: https://github.com/home-assistant/core/pull/109354
+[#109355]: https://github.com/home-assistant/core/pull/109355
+[#109358]: https://github.com/home-assistant/core/pull/109358
+[#109363]: https://github.com/home-assistant/core/pull/109363
+[#109366]: https://github.com/home-assistant/core/pull/109366
+[#109389]: https://github.com/home-assistant/core/pull/109389
+[#109390]: https://github.com/home-assistant/core/pull/109390
+[#109400]: https://github.com/home-assistant/core/pull/109400
+[#109406]: https://github.com/home-assistant/core/pull/109406
+[#109432]: https://github.com/home-assistant/core/pull/109432
+[#109460]: https://github.com/home-assistant/core/pull/109460
+[#109484]: https://github.com/home-assistant/core/pull/109484
+[#109485]: https://github.com/home-assistant/core/pull/109485
+[#109489]: https://github.com/home-assistant/core/pull/109489
+[#109495]: https://github.com/home-assistant/core/pull/109495
+[#109505]: https://github.com/home-assistant/core/pull/109505
+[#109507]: https://github.com/home-assistant/core/pull/109507
+[#109513]: https://github.com/home-assistant/core/pull/109513
+[#109516]: https://github.com/home-assistant/core/pull/109516
+[#109521]: https://github.com/home-assistant/core/pull/109521
+[#109526]: https://github.com/home-assistant/core/pull/109526
+[#109531]: https://github.com/home-assistant/core/pull/109531
+[#109577]: https://github.com/home-assistant/core/pull/109577
+[#109587]: https://github.com/home-assistant/core/pull/109587
+[#109588]: https://github.com/home-assistant/core/pull/109588
+[#109601]: https://github.com/home-assistant/core/pull/109601
+[#109602]: https://github.com/home-assistant/core/pull/109602
+[#109604]: https://github.com/home-assistant/core/pull/109604
+[#109607]: https://github.com/home-assistant/core/pull/109607
+[#109613]: https://github.com/home-assistant/core/pull/109613
+[#109617]: https://github.com/home-assistant/core/pull/109617
+[#109625]: https://github.com/home-assistant/core/pull/109625
+[#109629]: https://github.com/home-assistant/core/pull/109629
+[#109633]: https://github.com/home-assistant/core/pull/109633
+[#109634]: https://github.com/home-assistant/core/pull/109634
+[#109635]: https://github.com/home-assistant/core/pull/109635
+[#109637]: https://github.com/home-assistant/core/pull/109637
+[#109638]: https://github.com/home-assistant/core/pull/109638
+[#109639]: https://github.com/home-assistant/core/pull/109639
+[#109640]: https://github.com/home-assistant/core/pull/109640
+[#109642]: https://github.com/home-assistant/core/pull/109642
+[#109643]: https://github.com/home-assistant/core/pull/109643
+[#109645]: https://github.com/home-assistant/core/pull/109645
+[#109660]: https://github.com/home-assistant/core/pull/109660
+[#109665]: https://github.com/home-assistant/core/pull/109665
+[#109667]: https://github.com/home-assistant/core/pull/109667
+[#109669]: https://github.com/home-assistant/core/pull/109669
+[#109670]: https://github.com/home-assistant/core/pull/109670
+[#109672]: https://github.com/home-assistant/core/pull/109672
+[#109676]: https://github.com/home-assistant/core/pull/109676
+[#109677]: https://github.com/home-assistant/core/pull/109677
+[#109678]: https://github.com/home-assistant/core/pull/109678
+[#109679]: https://github.com/home-assistant/core/pull/109679
+[#109680]: https://github.com/home-assistant/core/pull/109680
+[#109681]: https://github.com/home-assistant/core/pull/109681
+[#109682]: https://github.com/home-assistant/core/pull/109682
+[#109683]: https://github.com/home-assistant/core/pull/109683
+[#109684]: https://github.com/home-assistant/core/pull/109684
+[#109685]: https://github.com/home-assistant/core/pull/109685
+[#109686]: https://github.com/home-assistant/core/pull/109686
+[#109687]: https://github.com/home-assistant/core/pull/109687
+[#109691]: https://github.com/home-assistant/core/pull/109691
+[#109693]: https://github.com/home-assistant/core/pull/109693
+[#109696]: https://github.com/home-assistant/core/pull/109696
+[#109698]: https://github.com/home-assistant/core/pull/109698
+[#109699]: https://github.com/home-assistant/core/pull/109699
+[#109700]: https://github.com/home-assistant/core/pull/109700
+[#109703]: https://github.com/home-assistant/core/pull/109703
+[#109704]: https://github.com/home-assistant/core/pull/109704
+[#109706]: https://github.com/home-assistant/core/pull/109706
+[#109711]: https://github.com/home-assistant/core/pull/109711
+[#109712]: https://github.com/home-assistant/core/pull/109712
+[#109723]: https://github.com/home-assistant/core/pull/109723
+[#109724]: https://github.com/home-assistant/core/pull/109724
+[#109726]: https://github.com/home-assistant/core/pull/109726
+[#109729]: https://github.com/home-assistant/core/pull/109729
+[#109731]: https://github.com/home-assistant/core/pull/109731
+[#109735]: https://github.com/home-assistant/core/pull/109735
+[#109736]: https://github.com/home-assistant/core/pull/109736
+[#109738]: https://github.com/home-assistant/core/pull/109738
+[#109758]: https://github.com/home-assistant/core/pull/109758
+[#109768]: https://github.com/home-assistant/core/pull/109768
+[#109771]: https://github.com/home-assistant/core/pull/109771
+[#109774]: https://github.com/home-assistant/core/pull/109774
+[#109776]: https://github.com/home-assistant/core/pull/109776
+[#109780]: https://github.com/home-assistant/core/pull/109780
+[#109784]: https://github.com/home-assistant/core/pull/109784
+[#109786]: https://github.com/home-assistant/core/pull/109786
+[#109791]: https://github.com/home-assistant/core/pull/109791
+[#109796]: https://github.com/home-assistant/core/pull/109796
+[#109798]: https://github.com/home-assistant/core/pull/109798
+[#109803]: https://github.com/home-assistant/core/pull/109803
+[#109811]: https://github.com/home-assistant/core/pull/109811
+[#109813]: https://github.com/home-assistant/core/pull/109813
+[#109831]: https://github.com/home-assistant/core/pull/109831
+[#109836]: https://github.com/home-assistant/core/pull/109836
+[#109849]: https://github.com/home-assistant/core/pull/109849
+[#109850]: https://github.com/home-assistant/core/pull/109850
+[#109854]: https://github.com/home-assistant/core/pull/109854
+[#109855]: https://github.com/home-assistant/core/pull/109855
+[#109856]: https://github.com/home-assistant/core/pull/109856
+[#109857]: https://github.com/home-assistant/core/pull/109857
+[#109858]: https://github.com/home-assistant/core/pull/109858
+[#109860]: https://github.com/home-assistant/core/pull/109860
+[#109867]: https://github.com/home-assistant/core/pull/109867
+[#109872]: https://github.com/home-assistant/core/pull/109872
+[#109876]: https://github.com/home-assistant/core/pull/109876
+[#109877]: https://github.com/home-assistant/core/pull/109877
+[#109878]: https://github.com/home-assistant/core/pull/109878
+[#109879]: https://github.com/home-assistant/core/pull/109879
+[#109880]: https://github.com/home-assistant/core/pull/109880
+[#109881]: https://github.com/home-assistant/core/pull/109881
+[#109888]: https://github.com/home-assistant/core/pull/109888
+[#109890]: https://github.com/home-assistant/core/pull/109890
+[#109896]: https://github.com/home-assistant/core/pull/109896
+[#109925]: https://github.com/home-assistant/core/pull/109925
+[#109928]: https://github.com/home-assistant/core/pull/109928
+[#109938]: https://github.com/home-assistant/core/pull/109938
+[#109950]: https://github.com/home-assistant/core/pull/109950
+[#109952]: https://github.com/home-assistant/core/pull/109952
+[#109980]: https://github.com/home-assistant/core/pull/109980
+[#109986]: https://github.com/home-assistant/core/pull/109986
+[#109990]: https://github.com/home-assistant/core/pull/109990
+[#110003]: https://github.com/home-assistant/core/pull/110003
+[#110014]: https://github.com/home-assistant/core/pull/110014
+[#110018]: https://github.com/home-assistant/core/pull/110018
+[#110021]: https://github.com/home-assistant/core/pull/110021
+[#110023]: https://github.com/home-assistant/core/pull/110023
+[#110048]: https://github.com/home-assistant/core/pull/110048
+[#110049]: https://github.com/home-assistant/core/pull/110049
+[#110053]: https://github.com/home-assistant/core/pull/110053
+[#110059]: https://github.com/home-assistant/core/pull/110059
+[#110060]: https://github.com/home-assistant/core/pull/110060
+[#110064]: https://github.com/home-assistant/core/pull/110064
+[#110070]: https://github.com/home-assistant/core/pull/110070
+[#110071]: https://github.com/home-assistant/core/pull/110071
+[#110076]: https://github.com/home-assistant/core/pull/110076
+[#110077]: https://github.com/home-assistant/core/pull/110077
+[#110094]: https://github.com/home-assistant/core/pull/110094
+[#110095]: https://github.com/home-assistant/core/pull/110095
+[#110096]: https://github.com/home-assistant/core/pull/110096
+[#110097]: https://github.com/home-assistant/core/pull/110097
+[#110109]: https://github.com/home-assistant/core/pull/110109
+[#110115]: https://github.com/home-assistant/core/pull/110115
+[#110117]: https://github.com/home-assistant/core/pull/110117
+[#110118]: https://github.com/home-assistant/core/pull/110118
+[#110119]: https://github.com/home-assistant/core/pull/110119
+[#110128]: https://github.com/home-assistant/core/pull/110128
+[#110129]: https://github.com/home-assistant/core/pull/110129
+[#110130]: https://github.com/home-assistant/core/pull/110130
+[#110131]: https://github.com/home-assistant/core/pull/110131
+[#110135]: https://github.com/home-assistant/core/pull/110135
+[#110136]: https://github.com/home-assistant/core/pull/110136
+[#110138]: https://github.com/home-assistant/core/pull/110138
+[#110139]: https://github.com/home-assistant/core/pull/110139
+[#110158]: https://github.com/home-assistant/core/pull/110158
+[#110179]: https://github.com/home-assistant/core/pull/110179
+[#110180]: https://github.com/home-assistant/core/pull/110180
+[#110183]: https://github.com/home-assistant/core/pull/110183
+[#110192]: https://github.com/home-assistant/core/pull/110192
+[#110193]: https://github.com/home-assistant/core/pull/110193
+[#110194]: https://github.com/home-assistant/core/pull/110194
+[#110196]: https://github.com/home-assistant/core/pull/110196
+[#110197]: https://github.com/home-assistant/core/pull/110197
+[#110202]: https://github.com/home-assistant/core/pull/110202
+[#110204]: https://github.com/home-assistant/core/pull/110204
+[#110209]: https://github.com/home-assistant/core/pull/110209
+[#110222]: https://github.com/home-assistant/core/pull/110222
+[#110224]: https://github.com/home-assistant/core/pull/110224
+[#110229]: https://github.com/home-assistant/core/pull/110229
+[#110231]: https://github.com/home-assistant/core/pull/110231
+[#110248]: https://github.com/home-assistant/core/pull/110248
+[#110249]: https://github.com/home-assistant/core/pull/110249
+[#110255]: https://github.com/home-assistant/core/pull/110255
+[#110262]: https://github.com/home-assistant/core/pull/110262
+[#110267]: https://github.com/home-assistant/core/pull/110267
+[#110277]: https://github.com/home-assistant/core/pull/110277
+[#110278]: https://github.com/home-assistant/core/pull/110278
+[#110279]: https://github.com/home-assistant/core/pull/110279
+[#110290]: https://github.com/home-assistant/core/pull/110290
+[#110291]: https://github.com/home-assistant/core/pull/110291
+[#110302]: https://github.com/home-assistant/core/pull/110302
+[#110303]: https://github.com/home-assistant/core/pull/110303
+[#110305]: https://github.com/home-assistant/core/pull/110305
+[#110306]: https://github.com/home-assistant/core/pull/110306
+[#110307]: https://github.com/home-assistant/core/pull/110307
+[#110308]: https://github.com/home-assistant/core/pull/110308
+[#110309]: https://github.com/home-assistant/core/pull/110309
+[#110310]: https://github.com/home-assistant/core/pull/110310
+[#110311]: https://github.com/home-assistant/core/pull/110311
+[#110312]: https://github.com/home-assistant/core/pull/110312
+[#110313]: https://github.com/home-assistant/core/pull/110313
+[#110314]: https://github.com/home-assistant/core/pull/110314
+[#110317]: https://github.com/home-assistant/core/pull/110317
+[#110320]: https://github.com/home-assistant/core/pull/110320
+[#110325]: https://github.com/home-assistant/core/pull/110325
+[#110326]: https://github.com/home-assistant/core/pull/110326
+[#110328]: https://github.com/home-assistant/core/pull/110328
+[#110330]: https://github.com/home-assistant/core/pull/110330
+[#110331]: https://github.com/home-assistant/core/pull/110331
+[#110332]: https://github.com/home-assistant/core/pull/110332
+[#110334]: https://github.com/home-assistant/core/pull/110334
+[#110336]: https://github.com/home-assistant/core/pull/110336
+[#110343]: https://github.com/home-assistant/core/pull/110343
+[#110344]: https://github.com/home-assistant/core/pull/110344
+[#110346]: https://github.com/home-assistant/core/pull/110346
+[#110349]: https://github.com/home-assistant/core/pull/110349
+[#110350]: https://github.com/home-assistant/core/pull/110350
+[#110355]: https://github.com/home-assistant/core/pull/110355
+[#110358]: https://github.com/home-assistant/core/pull/110358
+[#110361]: https://github.com/home-assistant/core/pull/110361
+[#110362]: https://github.com/home-assistant/core/pull/110362
+[#110363]: https://github.com/home-assistant/core/pull/110363
+[#110364]: https://github.com/home-assistant/core/pull/110364
+[#110365]: https://github.com/home-assistant/core/pull/110365
+[#110367]: https://github.com/home-assistant/core/pull/110367
+[#110368]: https://github.com/home-assistant/core/pull/110368
+[#110370]: https://github.com/home-assistant/core/pull/110370
+[#110371]: https://github.com/home-assistant/core/pull/110371
+[#110372]: https://github.com/home-assistant/core/pull/110372
+[#110373]: https://github.com/home-assistant/core/pull/110373
+[#110374]: https://github.com/home-assistant/core/pull/110374
+[#110376]: https://github.com/home-assistant/core/pull/110376
+[#110377]: https://github.com/home-assistant/core/pull/110377
+[#110378]: https://github.com/home-assistant/core/pull/110378
+[#110380]: https://github.com/home-assistant/core/pull/110380
+[#110383]: https://github.com/home-assistant/core/pull/110383
+[#110386]: https://github.com/home-assistant/core/pull/110386
+[#110388]: https://github.com/home-assistant/core/pull/110388
+[#110390]: https://github.com/home-assistant/core/pull/110390
+[#110391]: https://github.com/home-assistant/core/pull/110391
+[#110392]: https://github.com/home-assistant/core/pull/110392
+[#110393]: https://github.com/home-assistant/core/pull/110393
+[#110394]: https://github.com/home-assistant/core/pull/110394
+[#110395]: https://github.com/home-assistant/core/pull/110395
+[#110399]: https://github.com/home-assistant/core/pull/110399
+[#110400]: https://github.com/home-assistant/core/pull/110400
+[#110401]: https://github.com/home-assistant/core/pull/110401
+[#110402]: https://github.com/home-assistant/core/pull/110402
+[#110403]: https://github.com/home-assistant/core/pull/110403
+[#110404]: https://github.com/home-assistant/core/pull/110404
+[#110405]: https://github.com/home-assistant/core/pull/110405
+[#110406]: https://github.com/home-assistant/core/pull/110406
+[#110407]: https://github.com/home-assistant/core/pull/110407
+[#110408]: https://github.com/home-assistant/core/pull/110408
+[#110409]: https://github.com/home-assistant/core/pull/110409
+[#110410]: https://github.com/home-assistant/core/pull/110410
+[#110413]: https://github.com/home-assistant/core/pull/110413
+[#110415]: https://github.com/home-assistant/core/pull/110415
+[#110416]: https://github.com/home-assistant/core/pull/110416
+[#110417]: https://github.com/home-assistant/core/pull/110417
+[#110418]: https://github.com/home-assistant/core/pull/110418
+[#110419]: https://github.com/home-assistant/core/pull/110419
+[#110421]: https://github.com/home-assistant/core/pull/110421
+[#110422]: https://github.com/home-assistant/core/pull/110422
+[#110423]: https://github.com/home-assistant/core/pull/110423
+[#110424]: https://github.com/home-assistant/core/pull/110424
+[#110425]: https://github.com/home-assistant/core/pull/110425
+[#110428]: https://github.com/home-assistant/core/pull/110428
+[#110429]: https://github.com/home-assistant/core/pull/110429
+[#110430]: https://github.com/home-assistant/core/pull/110430
+[#110431]: https://github.com/home-assistant/core/pull/110431
+[#110435]: https://github.com/home-assistant/core/pull/110435
+[#110441]: https://github.com/home-assistant/core/pull/110441
+[#110442]: https://github.com/home-assistant/core/pull/110442
+[#110446]: https://github.com/home-assistant/core/pull/110446
+[#110448]: https://github.com/home-assistant/core/pull/110448
+[#110452]: https://github.com/home-assistant/core/pull/110452
+[#110461]: https://github.com/home-assistant/core/pull/110461
+[#110465]: https://github.com/home-assistant/core/pull/110465
+[#110466]: https://github.com/home-assistant/core/pull/110466
+[#110467]: https://github.com/home-assistant/core/pull/110467
+[#110470]: https://github.com/home-assistant/core/pull/110470
+[#110471]: https://github.com/home-assistant/core/pull/110471
+[#110474]: https://github.com/home-assistant/core/pull/110474
+[#110477]: https://github.com/home-assistant/core/pull/110477
+[#110479]: https://github.com/home-assistant/core/pull/110479
+[#110484]: https://github.com/home-assistant/core/pull/110484
+[#110485]: https://github.com/home-assistant/core/pull/110485
+[#110498]: https://github.com/home-assistant/core/pull/110498
+[#110499]: https://github.com/home-assistant/core/pull/110499
+[#110501]: https://github.com/home-assistant/core/pull/110501
+[#110502]: https://github.com/home-assistant/core/pull/110502
+[#110504]: https://github.com/home-assistant/core/pull/110504
+[#110509]: https://github.com/home-assistant/core/pull/110509
+[#110510]: https://github.com/home-assistant/core/pull/110510
+[#110517]: https://github.com/home-assistant/core/pull/110517
+[#110521]: https://github.com/home-assistant/core/pull/110521
+[#110522]: https://github.com/home-assistant/core/pull/110522
+[#110543]: https://github.com/home-assistant/core/pull/110543
+[#110545]: https://github.com/home-assistant/core/pull/110545
+[#110558]: https://github.com/home-assistant/core/pull/110558
+[#110559]: https://github.com/home-assistant/core/pull/110559
+[#110560]: https://github.com/home-assistant/core/pull/110560
+[#110561]: https://github.com/home-assistant/core/pull/110561
+[#110562]: https://github.com/home-assistant/core/pull/110562
+[#110564]: https://github.com/home-assistant/core/pull/110564
+[#110565]: https://github.com/home-assistant/core/pull/110565
+[#110567]: https://github.com/home-assistant/core/pull/110567
+[#110568]: https://github.com/home-assistant/core/pull/110568
+[#110572]: https://github.com/home-assistant/core/pull/110572
+[#110573]: https://github.com/home-assistant/core/pull/110573
+[#110574]: https://github.com/home-assistant/core/pull/110574
+[#110575]: https://github.com/home-assistant/core/pull/110575
+[#110577]: https://github.com/home-assistant/core/pull/110577
+[#110578]: https://github.com/home-assistant/core/pull/110578
+[#110579]: https://github.com/home-assistant/core/pull/110579
+[#110580]: https://github.com/home-assistant/core/pull/110580
+[#110581]: https://github.com/home-assistant/core/pull/110581
+[#110583]: https://github.com/home-assistant/core/pull/110583
+[#110584]: https://github.com/home-assistant/core/pull/110584
+[#110585]: https://github.com/home-assistant/core/pull/110585
+[#110586]: https://github.com/home-assistant/core/pull/110586
+[#110587]: https://github.com/home-assistant/core/pull/110587
+[#110589]: https://github.com/home-assistant/core/pull/110589
+[#110590]: https://github.com/home-assistant/core/pull/110590
+[#110591]: https://github.com/home-assistant/core/pull/110591
+[#110592]: https://github.com/home-assistant/core/pull/110592
+[#110593]: https://github.com/home-assistant/core/pull/110593
+[#110594]: https://github.com/home-assistant/core/pull/110594
+[#110596]: https://github.com/home-assistant/core/pull/110596
+[#110597]: https://github.com/home-assistant/core/pull/110597
+[#110598]: https://github.com/home-assistant/core/pull/110598
+[#110599]: https://github.com/home-assistant/core/pull/110599
+[#110600]: https://github.com/home-assistant/core/pull/110600
+[#110601]: https://github.com/home-assistant/core/pull/110601
+[#110602]: https://github.com/home-assistant/core/pull/110602
+[#110603]: https://github.com/home-assistant/core/pull/110603
+[#110604]: https://github.com/home-assistant/core/pull/110604
+[#110605]: https://github.com/home-assistant/core/pull/110605
+[#110606]: https://github.com/home-assistant/core/pull/110606
+[#110607]: https://github.com/home-assistant/core/pull/110607
+[#110608]: https://github.com/home-assistant/core/pull/110608
+[#110609]: https://github.com/home-assistant/core/pull/110609
+[#110610]: https://github.com/home-assistant/core/pull/110610
+[#110611]: https://github.com/home-assistant/core/pull/110611
+[#110613]: https://github.com/home-assistant/core/pull/110613
+[#110615]: https://github.com/home-assistant/core/pull/110615
+[#110616]: https://github.com/home-assistant/core/pull/110616
+[#110617]: https://github.com/home-assistant/core/pull/110617
+[#110622]: https://github.com/home-assistant/core/pull/110622
+[#110625]: https://github.com/home-assistant/core/pull/110625
+[#110632]: https://github.com/home-assistant/core/pull/110632
+[#110636]: https://github.com/home-assistant/core/pull/110636
+[#110637]: https://github.com/home-assistant/core/pull/110637
+[#110651]: https://github.com/home-assistant/core/pull/110651
+[#110653]: https://github.com/home-assistant/core/pull/110653
+[#110657]: https://github.com/home-assistant/core/pull/110657
+[#110662]: https://github.com/home-assistant/core/pull/110662
+[#110666]: https://github.com/home-assistant/core/pull/110666
+[#110667]: https://github.com/home-assistant/core/pull/110667
+[#110669]: https://github.com/home-assistant/core/pull/110669
+[#110674]: https://github.com/home-assistant/core/pull/110674
+[#110680]: https://github.com/home-assistant/core/pull/110680
+[#110687]: https://github.com/home-assistant/core/pull/110687
+[#110688]: https://github.com/home-assistant/core/pull/110688
+[#110690]: https://github.com/home-assistant/core/pull/110690
+[#110693]: https://github.com/home-assistant/core/pull/110693
+[#110694]: https://github.com/home-assistant/core/pull/110694
+[#110698]: https://github.com/home-assistant/core/pull/110698
+[#110699]: https://github.com/home-assistant/core/pull/110699
+[#110700]: https://github.com/home-assistant/core/pull/110700
+[#110701]: https://github.com/home-assistant/core/pull/110701
+[#110704]: https://github.com/home-assistant/core/pull/110704
+[#110711]: https://github.com/home-assistant/core/pull/110711
+[#110712]: https://github.com/home-assistant/core/pull/110712
+[#110724]: https://github.com/home-assistant/core/pull/110724
+[#110726]: https://github.com/home-assistant/core/pull/110726
+[#110727]: https://github.com/home-assistant/core/pull/110727
+[#110728]: https://github.com/home-assistant/core/pull/110728
+[#110729]: https://github.com/home-assistant/core/pull/110729
+[#110732]: https://github.com/home-assistant/core/pull/110732
+[#110741]: https://github.com/home-assistant/core/pull/110741
+[#110743]: https://github.com/home-assistant/core/pull/110743
+[#110745]: https://github.com/home-assistant/core/pull/110745
+[#110748]: https://github.com/home-assistant/core/pull/110748
+[#110750]: https://github.com/home-assistant/core/pull/110750
+[#110751]: https://github.com/home-assistant/core/pull/110751
+[#110752]: https://github.com/home-assistant/core/pull/110752
+[#110756]: https://github.com/home-assistant/core/pull/110756
+[#110757]: https://github.com/home-assistant/core/pull/110757
+[#110760]: https://github.com/home-assistant/core/pull/110760
+[#110766]: https://github.com/home-assistant/core/pull/110766
+[#110769]: https://github.com/home-assistant/core/pull/110769
+[#110770]: https://github.com/home-assistant/core/pull/110770
+[#110771]: https://github.com/home-assistant/core/pull/110771
+[#110772]: https://github.com/home-assistant/core/pull/110772
+[#110785]: https://github.com/home-assistant/core/pull/110785
+[#110786]: https://github.com/home-assistant/core/pull/110786
+[#110788]: https://github.com/home-assistant/core/pull/110788
+[#110791]: https://github.com/home-assistant/core/pull/110791
+[#110792]: https://github.com/home-assistant/core/pull/110792
+[#110795]: https://github.com/home-assistant/core/pull/110795
+[#110799]: https://github.com/home-assistant/core/pull/110799
+[#110810]: https://github.com/home-assistant/core/pull/110810
+[#110811]: https://github.com/home-assistant/core/pull/110811
+[#110812]: https://github.com/home-assistant/core/pull/110812
+[#110814]: https://github.com/home-assistant/core/pull/110814
+[#110815]: https://github.com/home-assistant/core/pull/110815
+[#110817]: https://github.com/home-assistant/core/pull/110817
+[#110821]: https://github.com/home-assistant/core/pull/110821
+[#110823]: https://github.com/home-assistant/core/pull/110823
+[#110825]: https://github.com/home-assistant/core/pull/110825
+[#110826]: https://github.com/home-assistant/core/pull/110826
+[#110828]: https://github.com/home-assistant/core/pull/110828
+[#110830]: https://github.com/home-assistant/core/pull/110830
+[#110843]: https://github.com/home-assistant/core/pull/110843
+[#110844]: https://github.com/home-assistant/core/pull/110844
+[#110846]: https://github.com/home-assistant/core/pull/110846
+[#110849]: https://github.com/home-assistant/core/pull/110849
+[#110862]: https://github.com/home-assistant/core/pull/110862
+[#110865]: https://github.com/home-assistant/core/pull/110865
+[#110867]: https://github.com/home-assistant/core/pull/110867
+[#110869]: https://github.com/home-assistant/core/pull/110869
+[#110870]: https://github.com/home-assistant/core/pull/110870
+[#110871]: https://github.com/home-assistant/core/pull/110871
+[#110872]: https://github.com/home-assistant/core/pull/110872
+[#110875]: https://github.com/home-assistant/core/pull/110875
+[#110876]: https://github.com/home-assistant/core/pull/110876
+[#110878]: https://github.com/home-assistant/core/pull/110878
+[#110884]: https://github.com/home-assistant/core/pull/110884
+[#110886]: https://github.com/home-assistant/core/pull/110886
+[#110887]: https://github.com/home-assistant/core/pull/110887
+[#110889]: https://github.com/home-assistant/core/pull/110889
+[#110890]: https://github.com/home-assistant/core/pull/110890
+[#110892]: https://github.com/home-assistant/core/pull/110892
+[#110894]: https://github.com/home-assistant/core/pull/110894
+[#110895]: https://github.com/home-assistant/core/pull/110895
+[#110896]: https://github.com/home-assistant/core/pull/110896
+[#110898]: https://github.com/home-assistant/core/pull/110898
+[#110899]: https://github.com/home-assistant/core/pull/110899
+[#110900]: https://github.com/home-assistant/core/pull/110900
+[#110901]: https://github.com/home-assistant/core/pull/110901
+[#110902]: https://github.com/home-assistant/core/pull/110902
+[#110903]: https://github.com/home-assistant/core/pull/110903
+[#110907]: https://github.com/home-assistant/core/pull/110907
+[#110908]: https://github.com/home-assistant/core/pull/110908
+[#110909]: https://github.com/home-assistant/core/pull/110909
+[#110910]: https://github.com/home-assistant/core/pull/110910
+[#110911]: https://github.com/home-assistant/core/pull/110911
+[#110912]: https://github.com/home-assistant/core/pull/110912
+[#110913]: https://github.com/home-assistant/core/pull/110913
+[#110914]: https://github.com/home-assistant/core/pull/110914
+[#110915]: https://github.com/home-assistant/core/pull/110915
+[#110916]: https://github.com/home-assistant/core/pull/110916
+[#110917]: https://github.com/home-assistant/core/pull/110917
+[#110918]: https://github.com/home-assistant/core/pull/110918
+[#110921]: https://github.com/home-assistant/core/pull/110921
+[#110922]: https://github.com/home-assistant/core/pull/110922
+[#110925]: https://github.com/home-assistant/core/pull/110925
+[#110926]: https://github.com/home-assistant/core/pull/110926
+[#110927]: https://github.com/home-assistant/core/pull/110927
+[#110928]: https://github.com/home-assistant/core/pull/110928
+[#110930]: https://github.com/home-assistant/core/pull/110930
+[#110946]: https://github.com/home-assistant/core/pull/110946
+[#110947]: https://github.com/home-assistant/core/pull/110947
+[#110951]: https://github.com/home-assistant/core/pull/110951
+[#110955]: https://github.com/home-assistant/core/pull/110955
+[#110960]: https://github.com/home-assistant/core/pull/110960
+[#110964]: https://github.com/home-assistant/core/pull/110964
+[#110965]: https://github.com/home-assistant/core/pull/110965
+[#110966]: https://github.com/home-assistant/core/pull/110966
+[#110967]: https://github.com/home-assistant/core/pull/110967
+[#110969]: https://github.com/home-assistant/core/pull/110969
+[#110976]: https://github.com/home-assistant/core/pull/110976
+[#110977]: https://github.com/home-assistant/core/pull/110977
+[#110978]: https://github.com/home-assistant/core/pull/110978
+[#110980]: https://github.com/home-assistant/core/pull/110980
+[#110982]: https://github.com/home-assistant/core/pull/110982
+[#110985]: https://github.com/home-assistant/core/pull/110985
+[#110986]: https://github.com/home-assistant/core/pull/110986
+[#110987]: https://github.com/home-assistant/core/pull/110987
+[#110988]: https://github.com/home-assistant/core/pull/110988
+[#110991]: https://github.com/home-assistant/core/pull/110991
+[#110995]: https://github.com/home-assistant/core/pull/110995
+[#111000]: https://github.com/home-assistant/core/pull/111000
+[#111004]: https://github.com/home-assistant/core/pull/111004
+[#111006]: https://github.com/home-assistant/core/pull/111006
+[#111008]: https://github.com/home-assistant/core/pull/111008
+[#111010]: https://github.com/home-assistant/core/pull/111010
+[#111016]: https://github.com/home-assistant/core/pull/111016
+[#111017]: https://github.com/home-assistant/core/pull/111017
+[#111018]: https://github.com/home-assistant/core/pull/111018
+[#111022]: https://github.com/home-assistant/core/pull/111022
+[#111026]: https://github.com/home-assistant/core/pull/111026
+[#111027]: https://github.com/home-assistant/core/pull/111027
+[#111028]: https://github.com/home-assistant/core/pull/111028
+[#111032]: https://github.com/home-assistant/core/pull/111032
+[#111033]: https://github.com/home-assistant/core/pull/111033
+[#111034]: https://github.com/home-assistant/core/pull/111034
+[#111035]: https://github.com/home-assistant/core/pull/111035
+[#111041]: https://github.com/home-assistant/core/pull/111041
+[#111042]: https://github.com/home-assistant/core/pull/111042
+[#111044]: https://github.com/home-assistant/core/pull/111044
+[#111048]: https://github.com/home-assistant/core/pull/111048
+[#111051]: https://github.com/home-assistant/core/pull/111051
+[#111052]: https://github.com/home-assistant/core/pull/111052
+[#111053]: https://github.com/home-assistant/core/pull/111053
+[#111054]: https://github.com/home-assistant/core/pull/111054
+[#111055]: https://github.com/home-assistant/core/pull/111055
+[#111056]: https://github.com/home-assistant/core/pull/111056
+[#111057]: https://github.com/home-assistant/core/pull/111057
+[#111059]: https://github.com/home-assistant/core/pull/111059
+[#111067]: https://github.com/home-assistant/core/pull/111067
+[#111071]: https://github.com/home-assistant/core/pull/111071
+[#111074]: https://github.com/home-assistant/core/pull/111074
+[#111075]: https://github.com/home-assistant/core/pull/111075
+[#111076]: https://github.com/home-assistant/core/pull/111076
+[#111077]: https://github.com/home-assistant/core/pull/111077
+[#111079]: https://github.com/home-assistant/core/pull/111079
+[#111080]: https://github.com/home-assistant/core/pull/111080
+[#111081]: https://github.com/home-assistant/core/pull/111081
+[#111086]: https://github.com/home-assistant/core/pull/111086
+[#111087]: https://github.com/home-assistant/core/pull/111087
+[#111088]: https://github.com/home-assistant/core/pull/111088
+[#111091]: https://github.com/home-assistant/core/pull/111091
+[#111092]: https://github.com/home-assistant/core/pull/111092
+[#111093]: https://github.com/home-assistant/core/pull/111093
+[#111096]: https://github.com/home-assistant/core/pull/111096
+[#111101]: https://github.com/home-assistant/core/pull/111101
+[#111102]: https://github.com/home-assistant/core/pull/111102
+[#111103]: https://github.com/home-assistant/core/pull/111103
+[#111104]: https://github.com/home-assistant/core/pull/111104
+[#111110]: https://github.com/home-assistant/core/pull/111110
+[#111116]: https://github.com/home-assistant/core/pull/111116
+[#111120]: https://github.com/home-assistant/core/pull/111120
+[#111125]: https://github.com/home-assistant/core/pull/111125
+[#111127]: https://github.com/home-assistant/core/pull/111127
+[#111128]: https://github.com/home-assistant/core/pull/111128
+[#111131]: https://github.com/home-assistant/core/pull/111131
+[#111133]: https://github.com/home-assistant/core/pull/111133
+[#111136]: https://github.com/home-assistant/core/pull/111136
+[#111138]: https://github.com/home-assistant/core/pull/111138
+[#111140]: https://github.com/home-assistant/core/pull/111140
+[#111141]: https://github.com/home-assistant/core/pull/111141
+[#111143]: https://github.com/home-assistant/core/pull/111143
+[#111149]: https://github.com/home-assistant/core/pull/111149
+[#111150]: https://github.com/home-assistant/core/pull/111150
+[#111154]: https://github.com/home-assistant/core/pull/111154
+[#111155]: https://github.com/home-assistant/core/pull/111155
+[#111157]: https://github.com/home-assistant/core/pull/111157
+[#111159]: https://github.com/home-assistant/core/pull/111159
+[#111162]: https://github.com/home-assistant/core/pull/111162
+[#111165]: https://github.com/home-assistant/core/pull/111165
+[#111166]: https://github.com/home-assistant/core/pull/111166
+[#111167]: https://github.com/home-assistant/core/pull/111167
+[#111168]: https://github.com/home-assistant/core/pull/111168
+[#111169]: https://github.com/home-assistant/core/pull/111169
+[#111170]: https://github.com/home-assistant/core/pull/111170
+[#111172]: https://github.com/home-assistant/core/pull/111172
+[#111173]: https://github.com/home-assistant/core/pull/111173
+[#111174]: https://github.com/home-assistant/core/pull/111174
+[#111175]: https://github.com/home-assistant/core/pull/111175
+[#111176]: https://github.com/home-assistant/core/pull/111176
+[#111179]: https://github.com/home-assistant/core/pull/111179
+[#111180]: https://github.com/home-assistant/core/pull/111180
+[#111181]: https://github.com/home-assistant/core/pull/111181
+[#111182]: https://github.com/home-assistant/core/pull/111182
+[#111184]: https://github.com/home-assistant/core/pull/111184
+[#111185]: https://github.com/home-assistant/core/pull/111185
+[#111188]: https://github.com/home-assistant/core/pull/111188
+[#111191]: https://github.com/home-assistant/core/pull/111191
+[#111193]: https://github.com/home-assistant/core/pull/111193
+[#111194]: https://github.com/home-assistant/core/pull/111194
+[#111195]: https://github.com/home-assistant/core/pull/111195
+[#111199]: https://github.com/home-assistant/core/pull/111199
+[#111201]: https://github.com/home-assistant/core/pull/111201
+[#111203]: https://github.com/home-assistant/core/pull/111203
+[#111204]: https://github.com/home-assistant/core/pull/111204
+[#111206]: https://github.com/home-assistant/core/pull/111206
+[#111208]: https://github.com/home-assistant/core/pull/111208
+[#111214]: https://github.com/home-assistant/core/pull/111214
+[#111218]: https://github.com/home-assistant/core/pull/111218
+[#111220]: https://github.com/home-assistant/core/pull/111220
+[#111227]: https://github.com/home-assistant/core/pull/111227
+[#111229]: https://github.com/home-assistant/core/pull/111229
+[#111231]: https://github.com/home-assistant/core/pull/111231
+[#111232]: https://github.com/home-assistant/core/pull/111232
+[#111236]: https://github.com/home-assistant/core/pull/111236
+[#111244]: https://github.com/home-assistant/core/pull/111244
+[#111245]: https://github.com/home-assistant/core/pull/111245
+[#111247]: https://github.com/home-assistant/core/pull/111247
+[#111249]: https://github.com/home-assistant/core/pull/111249
+[#111250]: https://github.com/home-assistant/core/pull/111250
+[#111252]: https://github.com/home-assistant/core/pull/111252
+[#111257]: https://github.com/home-assistant/core/pull/111257
+[#111259]: https://github.com/home-assistant/core/pull/111259
+[#111262]: https://github.com/home-assistant/core/pull/111262
+[#111263]: https://github.com/home-assistant/core/pull/111263
+[#111265]: https://github.com/home-assistant/core/pull/111265
+[#111267]: https://github.com/home-assistant/core/pull/111267
+[#111268]: https://github.com/home-assistant/core/pull/111268
+[#111269]: https://github.com/home-assistant/core/pull/111269
+[#111270]: https://github.com/home-assistant/core/pull/111270
+[#111271]: https://github.com/home-assistant/core/pull/111271
+[#111272]: https://github.com/home-assistant/core/pull/111272
+[#111273]: https://github.com/home-assistant/core/pull/111273
+[#111276]: https://github.com/home-assistant/core/pull/111276
+[#111277]: https://github.com/home-assistant/core/pull/111277
+[#111283]: https://github.com/home-assistant/core/pull/111283
+[#111284]: https://github.com/home-assistant/core/pull/111284
+[#111285]: https://github.com/home-assistant/core/pull/111285
+[#111291]: https://github.com/home-assistant/core/pull/111291
+[#111296]: https://github.com/home-assistant/core/pull/111296
+[#111302]: https://github.com/home-assistant/core/pull/111302
+[#111304]: https://github.com/home-assistant/core/pull/111304
+[#111305]: https://github.com/home-assistant/core/pull/111305
+[#111308]: https://github.com/home-assistant/core/pull/111308
+[#111310]: https://github.com/home-assistant/core/pull/111310
+[#111311]: https://github.com/home-assistant/core/pull/111311
+[#111315]: https://github.com/home-assistant/core/pull/111315
+[#111316]: https://github.com/home-assistant/core/pull/111316
+[#111317]: https://github.com/home-assistant/core/pull/111317
+[#111318]: https://github.com/home-assistant/core/pull/111318
+[#111319]: https://github.com/home-assistant/core/pull/111319
+[#111320]: https://github.com/home-assistant/core/pull/111320
+[#111321]: https://github.com/home-assistant/core/pull/111321
+[#111322]: https://github.com/home-assistant/core/pull/111322
+[#111323]: https://github.com/home-assistant/core/pull/111323
+[#111324]: https://github.com/home-assistant/core/pull/111324
+[#111326]: https://github.com/home-assistant/core/pull/111326
+[#111328]: https://github.com/home-assistant/core/pull/111328
+[#111332]: https://github.com/home-assistant/core/pull/111332
+[#111334]: https://github.com/home-assistant/core/pull/111334
+[#111335]: https://github.com/home-assistant/core/pull/111335
+[#111336]: https://github.com/home-assistant/core/pull/111336
+[#111337]: https://github.com/home-assistant/core/pull/111337
+[#111338]: https://github.com/home-assistant/core/pull/111338
+[#111339]: https://github.com/home-assistant/core/pull/111339
+[#111340]: https://github.com/home-assistant/core/pull/111340
+[#111342]: https://github.com/home-assistant/core/pull/111342
+[#111343]: https://github.com/home-assistant/core/pull/111343
+[#111346]: https://github.com/home-assistant/core/pull/111346
+[#111347]: https://github.com/home-assistant/core/pull/111347
+[#111348]: https://github.com/home-assistant/core/pull/111348
+[#111350]: https://github.com/home-assistant/core/pull/111350
+[#111351]: https://github.com/home-assistant/core/pull/111351
+[#111352]: https://github.com/home-assistant/core/pull/111352
+[#111354]: https://github.com/home-assistant/core/pull/111354
+[#111355]: https://github.com/home-assistant/core/pull/111355
+[#111356]: https://github.com/home-assistant/core/pull/111356
+[#111357]: https://github.com/home-assistant/core/pull/111357
+[#111358]: https://github.com/home-assistant/core/pull/111358
+[#111359]: https://github.com/home-assistant/core/pull/111359
+[#111360]: https://github.com/home-assistant/core/pull/111360
+[#111361]: https://github.com/home-assistant/core/pull/111361
+[#111362]: https://github.com/home-assistant/core/pull/111362
+[#111363]: https://github.com/home-assistant/core/pull/111363
+[#111364]: https://github.com/home-assistant/core/pull/111364
+[#111366]: https://github.com/home-assistant/core/pull/111366
+[#111367]: https://github.com/home-assistant/core/pull/111367
+[#111368]: https://github.com/home-assistant/core/pull/111368
+[#111369]: https://github.com/home-assistant/core/pull/111369
+[#111370]: https://github.com/home-assistant/core/pull/111370
+[#111371]: https://github.com/home-assistant/core/pull/111371
+[#111373]: https://github.com/home-assistant/core/pull/111373
+[#111376]: https://github.com/home-assistant/core/pull/111376
+[#111377]: https://github.com/home-assistant/core/pull/111377
+[#111379]: https://github.com/home-assistant/core/pull/111379
+[#111381]: https://github.com/home-assistant/core/pull/111381
+[#111385]: https://github.com/home-assistant/core/pull/111385
+[#111388]: https://github.com/home-assistant/core/pull/111388
+[#111389]: https://github.com/home-assistant/core/pull/111389
+[#111392]: https://github.com/home-assistant/core/pull/111392
+[#111399]: https://github.com/home-assistant/core/pull/111399
+[#111400]: https://github.com/home-assistant/core/pull/111400
+[#111401]: https://github.com/home-assistant/core/pull/111401
+[#111407]: https://github.com/home-assistant/core/pull/111407
+[#111411]: https://github.com/home-assistant/core/pull/111411
+[#111412]: https://github.com/home-assistant/core/pull/111412
+[#111413]: https://github.com/home-assistant/core/pull/111413
+[#111414]: https://github.com/home-assistant/core/pull/111414
+[#111415]: https://github.com/home-assistant/core/pull/111415
+[#111416]: https://github.com/home-assistant/core/pull/111416
+[#111417]: https://github.com/home-assistant/core/pull/111417
+[#111420]: https://github.com/home-assistant/core/pull/111420
+[#111422]: https://github.com/home-assistant/core/pull/111422
+[#111425]: https://github.com/home-assistant/core/pull/111425
+[#111427]: https://github.com/home-assistant/core/pull/111427
+[#111428]: https://github.com/home-assistant/core/pull/111428
+[#111433]: https://github.com/home-assistant/core/pull/111433
+[#111435]: https://github.com/home-assistant/core/pull/111435
+[#111437]: https://github.com/home-assistant/core/pull/111437
+[#111439]: https://github.com/home-assistant/core/pull/111439
+[#111441]: https://github.com/home-assistant/core/pull/111441
+[#111447]: https://github.com/home-assistant/core/pull/111447
+[#111448]: https://github.com/home-assistant/core/pull/111448
+[#111449]: https://github.com/home-assistant/core/pull/111449
+[#111450]: https://github.com/home-assistant/core/pull/111450
+[#111455]: https://github.com/home-assistant/core/pull/111455
+[#111456]: https://github.com/home-assistant/core/pull/111456
+[#111458]: https://github.com/home-assistant/core/pull/111458
+[#111460]: https://github.com/home-assistant/core/pull/111460
+[#111464]: https://github.com/home-assistant/core/pull/111464
+[#111471]: https://github.com/home-assistant/core/pull/111471
+[#111477]: https://github.com/home-assistant/core/pull/111477
+[#111479]: https://github.com/home-assistant/core/pull/111479
+[#111483]: https://github.com/home-assistant/core/pull/111483
+[#111488]: https://github.com/home-assistant/core/pull/111488
+[#111491]: https://github.com/home-assistant/core/pull/111491
+[#111492]: https://github.com/home-assistant/core/pull/111492
+[#111494]: https://github.com/home-assistant/core/pull/111494
+[#111496]: https://github.com/home-assistant/core/pull/111496
+[#111497]: https://github.com/home-assistant/core/pull/111497
+[#111498]: https://github.com/home-assistant/core/pull/111498
+[#111499]: https://github.com/home-assistant/core/pull/111499
+[#111500]: https://github.com/home-assistant/core/pull/111500
+[#111501]: https://github.com/home-assistant/core/pull/111501
+[#111504]: https://github.com/home-assistant/core/pull/111504
+[#111507]: https://github.com/home-assistant/core/pull/111507
+[#111508]: https://github.com/home-assistant/core/pull/111508
+[#111511]: https://github.com/home-assistant/core/pull/111511
+[#111513]: https://github.com/home-assistant/core/pull/111513
+[#111519]: https://github.com/home-assistant/core/pull/111519
+[#111520]: https://github.com/home-assistant/core/pull/111520
+[#111521]: https://github.com/home-assistant/core/pull/111521
+[#111522]: https://github.com/home-assistant/core/pull/111522
+[#111523]: https://github.com/home-assistant/core/pull/111523
+[#111527]: https://github.com/home-assistant/core/pull/111527
+[#111528]: https://github.com/home-assistant/core/pull/111528
+[#111529]: https://github.com/home-assistant/core/pull/111529
+[#111530]: https://github.com/home-assistant/core/pull/111530
+[#111533]: https://github.com/home-assistant/core/pull/111533
+[#111534]: https://github.com/home-assistant/core/pull/111534
+[#111535]: https://github.com/home-assistant/core/pull/111535
+[#111536]: https://github.com/home-assistant/core/pull/111536
+[#111537]: https://github.com/home-assistant/core/pull/111537
+[#111538]: https://github.com/home-assistant/core/pull/111538
+[#111539]: https://github.com/home-assistant/core/pull/111539
+[#111541]: https://github.com/home-assistant/core/pull/111541
+[#111542]: https://github.com/home-assistant/core/pull/111542
+[#111543]: https://github.com/home-assistant/core/pull/111543
+[#111546]: https://github.com/home-assistant/core/pull/111546
+[#111547]: https://github.com/home-assistant/core/pull/111547
+[#111549]: https://github.com/home-assistant/core/pull/111549
+[#111552]: https://github.com/home-assistant/core/pull/111552
+[#111553]: https://github.com/home-assistant/core/pull/111553
+[#111554]: https://github.com/home-assistant/core/pull/111554
+[#111555]: https://github.com/home-assistant/core/pull/111555
+[#111556]: https://github.com/home-assistant/core/pull/111556
+[#111557]: https://github.com/home-assistant/core/pull/111557
+[#111558]: https://github.com/home-assistant/core/pull/111558
+[#111559]: https://github.com/home-assistant/core/pull/111559
+[#111560]: https://github.com/home-assistant/core/pull/111560
+[#111565]: https://github.com/home-assistant/core/pull/111565
+[#111567]: https://github.com/home-assistant/core/pull/111567
+[#111568]: https://github.com/home-assistant/core/pull/111568
+[#111569]: https://github.com/home-assistant/core/pull/111569
+[#111570]: https://github.com/home-assistant/core/pull/111570
+[#111571]: https://github.com/home-assistant/core/pull/111571
+[#111573]: https://github.com/home-assistant/core/pull/111573
+[#111574]: https://github.com/home-assistant/core/pull/111574
+[#111575]: https://github.com/home-assistant/core/pull/111575
+[#111578]: https://github.com/home-assistant/core/pull/111578
+[#111580]: https://github.com/home-assistant/core/pull/111580
+[#111581]: https://github.com/home-assistant/core/pull/111581
+[#111585]: https://github.com/home-assistant/core/pull/111585
+[#111586]: https://github.com/home-assistant/core/pull/111586
+[#111587]: https://github.com/home-assistant/core/pull/111587
+[#111588]: https://github.com/home-assistant/core/pull/111588
+[#111589]: https://github.com/home-assistant/core/pull/111589
+[#111590]: https://github.com/home-assistant/core/pull/111590
+[#111591]: https://github.com/home-assistant/core/pull/111591
+[#111592]: https://github.com/home-assistant/core/pull/111592
+[#111593]: https://github.com/home-assistant/core/pull/111593
+[#111594]: https://github.com/home-assistant/core/pull/111594
+[#111595]: https://github.com/home-assistant/core/pull/111595
+[#111596]: https://github.com/home-assistant/core/pull/111596
+[#111600]: https://github.com/home-assistant/core/pull/111600
+[#111601]: https://github.com/home-assistant/core/pull/111601
+[#111602]: https://github.com/home-assistant/core/pull/111602
+[#111603]: https://github.com/home-assistant/core/pull/111603
+[#111605]: https://github.com/home-assistant/core/pull/111605
+[#111608]: https://github.com/home-assistant/core/pull/111608
+[#111609]: https://github.com/home-assistant/core/pull/111609
+[#111610]: https://github.com/home-assistant/core/pull/111610
+[#111611]: https://github.com/home-assistant/core/pull/111611
+[#111612]: https://github.com/home-assistant/core/pull/111612
+[#111613]: https://github.com/home-assistant/core/pull/111613
+[#111615]: https://github.com/home-assistant/core/pull/111615
+[#111619]: https://github.com/home-assistant/core/pull/111619
+[#111620]: https://github.com/home-assistant/core/pull/111620
+[#111622]: https://github.com/home-assistant/core/pull/111622
+[#111623]: https://github.com/home-assistant/core/pull/111623
+[#111624]: https://github.com/home-assistant/core/pull/111624
+[#111625]: https://github.com/home-assistant/core/pull/111625
+[#111627]: https://github.com/home-assistant/core/pull/111627
+[#111630]: https://github.com/home-assistant/core/pull/111630
+[#111631]: https://github.com/home-assistant/core/pull/111631
+[#111635]: https://github.com/home-assistant/core/pull/111635
+[#111636]: https://github.com/home-assistant/core/pull/111636
+[#111637]: https://github.com/home-assistant/core/pull/111637
+[#111644]: https://github.com/home-assistant/core/pull/111644
+[#111647]: https://github.com/home-assistant/core/pull/111647
+[#111648]: https://github.com/home-assistant/core/pull/111648
+[#111649]: https://github.com/home-assistant/core/pull/111649
+[#111653]: https://github.com/home-assistant/core/pull/111653
+[#111654]: https://github.com/home-assistant/core/pull/111654
+[#111655]: https://github.com/home-assistant/core/pull/111655
+[#111656]: https://github.com/home-assistant/core/pull/111656
+[#111657]: https://github.com/home-assistant/core/pull/111657
+[#111658]: https://github.com/home-assistant/core/pull/111658
+[#111659]: https://github.com/home-assistant/core/pull/111659
+[#111660]: https://github.com/home-assistant/core/pull/111660
+[#111661]: https://github.com/home-assistant/core/pull/111661
+[#111662]: https://github.com/home-assistant/core/pull/111662
+[#111663]: https://github.com/home-assistant/core/pull/111663
+[#111667]: https://github.com/home-assistant/core/pull/111667
+[#111669]: https://github.com/home-assistant/core/pull/111669
+[#111670]: https://github.com/home-assistant/core/pull/111670
+[#111671]: https://github.com/home-assistant/core/pull/111671
+[#111673]: https://github.com/home-assistant/core/pull/111673
+[#111674]: https://github.com/home-assistant/core/pull/111674
+[#111675]: https://github.com/home-assistant/core/pull/111675
+[#111677]: https://github.com/home-assistant/core/pull/111677
+[#111678]: https://github.com/home-assistant/core/pull/111678
+[#111681]: https://github.com/home-assistant/core/pull/111681
+[#111686]: https://github.com/home-assistant/core/pull/111686
+[#111690]: https://github.com/home-assistant/core/pull/111690
+[#111691]: https://github.com/home-assistant/core/pull/111691
+[#111692]: https://github.com/home-assistant/core/pull/111692
+[#111693]: https://github.com/home-assistant/core/pull/111693
+[#111694]: https://github.com/home-assistant/core/pull/111694
+[#111695]: https://github.com/home-assistant/core/pull/111695
+[#111696]: https://github.com/home-assistant/core/pull/111696
+[#111697]: https://github.com/home-assistant/core/pull/111697
+[#111698]: https://github.com/home-assistant/core/pull/111698
+[#111699]: https://github.com/home-assistant/core/pull/111699
+[#111701]: https://github.com/home-assistant/core/pull/111701
+[#111702]: https://github.com/home-assistant/core/pull/111702
+[#111703]: https://github.com/home-assistant/core/pull/111703
+[#111704]: https://github.com/home-assistant/core/pull/111704
+[#111705]: https://github.com/home-assistant/core/pull/111705
+[#111707]: https://github.com/home-assistant/core/pull/111707
+[#111712]: https://github.com/home-assistant/core/pull/111712
+[#111714]: https://github.com/home-assistant/core/pull/111714
+[#111715]: https://github.com/home-assistant/core/pull/111715
+[#111716]: https://github.com/home-assistant/core/pull/111716
+[#111717]: https://github.com/home-assistant/core/pull/111717
+[#111718]: https://github.com/home-assistant/core/pull/111718
+[#111719]: https://github.com/home-assistant/core/pull/111719
+[#111720]: https://github.com/home-assistant/core/pull/111720
+[#111723]: https://github.com/home-assistant/core/pull/111723
+[#111724]: https://github.com/home-assistant/core/pull/111724
+[#111726]: https://github.com/home-assistant/core/pull/111726
+[#111728]: https://github.com/home-assistant/core/pull/111728
+[#111736]: https://github.com/home-assistant/core/pull/111736
+[#111741]: https://github.com/home-assistant/core/pull/111741
+[#111743]: https://github.com/home-assistant/core/pull/111743
+[#111749]: https://github.com/home-assistant/core/pull/111749
+[#111751]: https://github.com/home-assistant/core/pull/111751
+[#111752]: https://github.com/home-assistant/core/pull/111752
+[#111763]: https://github.com/home-assistant/core/pull/111763
+[#111765]: https://github.com/home-assistant/core/pull/111765
+[#111766]: https://github.com/home-assistant/core/pull/111766
+[#111768]: https://github.com/home-assistant/core/pull/111768
+[#111770]: https://github.com/home-assistant/core/pull/111770
+[#111772]: https://github.com/home-assistant/core/pull/111772
+[#111774]: https://github.com/home-assistant/core/pull/111774
+[#111776]: https://github.com/home-assistant/core/pull/111776
+[#111778]: https://github.com/home-assistant/core/pull/111778
+[#111781]: https://github.com/home-assistant/core/pull/111781
+[#111782]: https://github.com/home-assistant/core/pull/111782
+[#111785]: https://github.com/home-assistant/core/pull/111785
+[#111786]: https://github.com/home-assistant/core/pull/111786
+[#111787]: https://github.com/home-assistant/core/pull/111787
+[#111788]: https://github.com/home-assistant/core/pull/111788
+[#111789]: https://github.com/home-assistant/core/pull/111789
+[#111790]: https://github.com/home-assistant/core/pull/111790
+[#111791]: https://github.com/home-assistant/core/pull/111791
+[#111792]: https://github.com/home-assistant/core/pull/111792
+[#111800]: https://github.com/home-assistant/core/pull/111800
+[#111802]: https://github.com/home-assistant/core/pull/111802
+[#111840]: https://github.com/home-assistant/core/pull/111840
+[#111859]: https://github.com/home-assistant/core/pull/111859
+[#111867]: https://github.com/home-assistant/core/pull/111867
+[#111868]: https://github.com/home-assistant/core/pull/111868
+[#111870]: https://github.com/home-assistant/core/pull/111870
+[#111875]: https://github.com/home-assistant/core/pull/111875
+[#111876]: https://github.com/home-assistant/core/pull/111876
+[#111879]: https://github.com/home-assistant/core/pull/111879
+[#111885]: https://github.com/home-assistant/core/pull/111885
+[#111890]: https://github.com/home-assistant/core/pull/111890
+[#111892]: https://github.com/home-assistant/core/pull/111892
+[#111898]: https://github.com/home-assistant/core/pull/111898
+[#111903]: https://github.com/home-assistant/core/pull/111903
+[#111930]: https://github.com/home-assistant/core/pull/111930
+[#111961]: https://github.com/home-assistant/core/pull/111961
+[#111969]: https://github.com/home-assistant/core/pull/111969
+[#112002]: https://github.com/home-assistant/core/pull/112002
+[#112006]: https://github.com/home-assistant/core/pull/112006
+[#112034]: https://github.com/home-assistant/core/pull/112034
+[#112035]: https://github.com/home-assistant/core/pull/112035
+[#112037]: https://github.com/home-assistant/core/pull/112037
+[#112040]: https://github.com/home-assistant/core/pull/112040
+[#112052]: https://github.com/home-assistant/core/pull/112052
+[#112056]: https://github.com/home-assistant/core/pull/112056
+[#112060]: https://github.com/home-assistant/core/pull/112060
+[#112062]: https://github.com/home-assistant/core/pull/112062
+[#112064]: https://github.com/home-assistant/core/pull/112064
+[#112066]: https://github.com/home-assistant/core/pull/112066
+[#112068]: https://github.com/home-assistant/core/pull/112068
+[#112079]: https://github.com/home-assistant/core/pull/112079
+[#112082]: https://github.com/home-assistant/core/pull/112082
+[#112084]: https://github.com/home-assistant/core/pull/112084
+[#112085]: https://github.com/home-assistant/core/pull/112085
+[#112116]: https://github.com/home-assistant/core/pull/112116
+[#112117]: https://github.com/home-assistant/core/pull/112117
+[#112124]: https://github.com/home-assistant/core/pull/112124
+[#112125]: https://github.com/home-assistant/core/pull/112125
+[#112140]: https://github.com/home-assistant/core/pull/112140
+[#112146]: https://github.com/home-assistant/core/pull/112146
+[#112152]: https://github.com/home-assistant/core/pull/112152
+[#112238]: https://github.com/home-assistant/core/pull/112238
+[#112263]: https://github.com/home-assistant/core/pull/112263
+[#112264]: https://github.com/home-assistant/core/pull/112264
+[#112266]: https://github.com/home-assistant/core/pull/112266
+[#112434]: https://github.com/home-assistant/core/pull/112434
+[#112435]: https://github.com/home-assistant/core/pull/112435
+[#112437]: https://github.com/home-assistant/core/pull/112437
+[#112442]: https://github.com/home-assistant/core/pull/112442
+[#112450]: https://github.com/home-assistant/core/pull/112450
+[#112481]: https://github.com/home-assistant/core/pull/112481
+[#112492]: https://github.com/home-assistant/core/pull/112492
+[#112495]: https://github.com/home-assistant/core/pull/112495
+[#112500]: https://github.com/home-assistant/core/pull/112500
+[#88655]: https://github.com/home-assistant/core/pull/88655
+[#89155]: https://github.com/home-assistant/core/pull/89155
+[#95093]: https://github.com/home-assistant/core/pull/95093
+[#96044]: https://github.com/home-assistant/core/pull/96044
+[#96773]: https://github.com/home-assistant/core/pull/96773
+[#96906]: https://github.com/home-assistant/core/pull/96906
+[#97023]: https://github.com/home-assistant/core/pull/97023
+[#97206]: https://github.com/home-assistant/core/pull/97206
+[#97401]: https://github.com/home-assistant/core/pull/97401
+[#97402]: https://github.com/home-assistant/core/pull/97402
+[#99573]: https://github.com/home-assistant/core/pull/99573
+[#99899]: https://github.com/home-assistant/core/pull/99899
+[@AidasK]: https://github.com/AidasK
+[@AngellusMortis]: https://github.com/AngellusMortis
+[@Augar]: https://github.com/Augar
+[@Betacart]: https://github.com/Betacart
+[@Bre77]: https://github.com/Bre77
+[@CFenner]: https://github.com/CFenner
+[@DeerMaximum]: https://github.com/DeerMaximum
+[@Drafteed]: https://github.com/Drafteed
+[@Ernst79]: https://github.com/Ernst79
+[@FedDam]: https://github.com/FedDam
+[@Floris272]: https://github.com/Floris272
+[@IsakNyberg]: https://github.com/IsakNyberg
+[@Jc2k]: https://github.com/Jc2k
+[@Kane610]: https://github.com/Kane610
+[@LaStrada]: https://github.com/LaStrada
+[@Lash-L]: https://github.com/Lash-L
+[@LennP]: https://github.com/LennP
+[@MarkGodwin]: https://github.com/MarkGodwin
+[@MartinHjelmare]: https://github.com/MartinHjelmare
+[@Minims]: https://github.com/Minims
+[@Moustachauve]: https://github.com/Moustachauve
+[@Nirostar]: https://github.com/Nirostar
+[@Noltari]: https://github.com/Noltari
+[@OnFreund]: https://github.com/OnFreund
+[@Orhideous]: https://github.com/Orhideous
+[@PiotrMachowski]: https://github.com/PiotrMachowski
+[@Shulyaka]: https://github.com/Shulyaka
+[@StephenBrown2]: https://github.com/StephenBrown2
+[@TheJulianJES]: https://github.com/TheJulianJES
+[@TheNoim]: https://github.com/TheNoim
+[@Thomas55555]: https://github.com/Thomas55555
+[@Tronix117]: https://github.com/Tronix117
+[@abmantis]: https://github.com/abmantis
+[@akx]: https://github.com/akx
+[@allenporter]: https://github.com/allenporter
+[@arturpragacz]: https://github.com/arturpragacz
+[@astrandb]: https://github.com/astrandb
+[@autinerd]: https://github.com/autinerd
+[@bachya]: https://github.com/bachya
+[@balloob]: https://github.com/balloob
+[@bbernhard]: https://github.com/bbernhard
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@bouwew]: https://github.com/bouwew
+[@bramkragten]: https://github.com/bramkragten
+[@brenank]: https://github.com/brenank
+[@catsmanac]: https://github.com/catsmanac
+[@cdce8p]: https://github.com/cdce8p
+[@cgarwood]: https://github.com/cgarwood
+[@chamberlain2007]: https://github.com/chamberlain2007
+[@chammp]: https://github.com/chammp
+[@chelming]: https://github.com/chelming
+[@chemelli74]: https://github.com/chemelli74
+[@codyc1515]: https://github.com/codyc1515
+[@cottsay]: https://github.com/cottsay
+[@crhan]: https://github.com/crhan
+[@crug80]: https://github.com/crug80
+[@ctalkington]: https://github.com/ctalkington
+[@dcmeglio]: https://github.com/dcmeglio
+[@deosrc]: https://github.com/deosrc
+[@dieselrabbit]: https://github.com/dieselrabbit
+[@dknowles2]: https://github.com/dknowles2
+[@dmulcahey]: https://github.com/dmulcahey
+[@dotvav]: https://github.com/dotvav
+[@dougiteixeira]: https://github.com/dougiteixeira
+[@drsgoodall]: https://github.com/drsgoodall
+[@dupondje]: https://github.com/dupondje
+[@eclair4151]: https://github.com/eclair4151
+[@edenhaus]: https://github.com/edenhaus
+[@eifinger]: https://github.com/eifinger
+[@elmurato]: https://github.com/elmurato
+[@elupus]: https://github.com/elupus
+[@emontnemery]: https://github.com/emontnemery
+[@engrbm87]: https://github.com/engrbm87
+[@erwindouna]: https://github.com/erwindouna
+[@exxamalte]: https://github.com/exxamalte
+[@farmio]: https://github.com/farmio
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@hahn-th]: https://github.com/hahn-th
+[@iMicknl]: https://github.com/iMicknl
+[@iliessens]: https://github.com/iliessens
+[@janiversen]: https://github.com/janiversen
+[@janrothkegel]: https://github.com/janrothkegel
+[@jbouwh]: https://github.com/jbouwh
+[@jeeftor]: https://github.com/jeeftor
+[@jesserockz]: https://github.com/jesserockz
+[@jimmyd-be]: https://github.com/jimmyd-be
+[@jjlawren]: https://github.com/jjlawren
+[@jkossis]: https://github.com/jkossis
+[@joostlek]: https://github.com/joostlek
+[@jpbede]: https://github.com/jpbede
+[@jrieger]: https://github.com/jrieger
+[@kbickar]: https://github.com/kbickar
+[@killer0071234]: https://github.com/killer0071234
+[@kingy444]: https://github.com/kingy444
+[@klaasnicolaas]: https://github.com/klaasnicolaas
+[@krmarien]: https://github.com/krmarien
+[@lellky]: https://github.com/lellky
+[@livioavalle]: https://github.com/livioavalle
+[@ludeeus]: https://github.com/ludeeus
+[@marcelveldt]: https://github.com/marcelveldt
+[@marcolettieri]: https://github.com/marcolettieri
+[@matrixd2]: https://github.com/matrixd2
+[@mdegat01]: https://github.com/mdegat01
+[@mdonoughe]: https://github.com/mdonoughe
+[@miaucl]: https://github.com/miaucl
+[@mib1185]: https://github.com/mib1185
+[@mikeodr]: https://github.com/mikeodr
+[@mill1000]: https://github.com/mill1000
+[@mkmer]: https://github.com/mkmer
+[@niro1987]: https://github.com/niro1987
+[@ol-iver]: https://github.com/ol-iver
+[@ollo69]: https://github.com/ollo69
+[@pajzo]: https://github.com/pajzo
+[@pawlizio]: https://github.com/pawlizio
+[@piitaya]: https://github.com/piitaya
+[@pilotopirx]: https://github.com/pilotopirx
+[@pree]: https://github.com/pree
+[@puddly]: https://github.com/puddly
+[@raman325]: https://github.com/raman325
+[@rb28z2]: https://github.com/rb28z2
+[@rfleming71]: https://github.com/rfleming71
+[@rikroe]: https://github.com/rikroe
+[@rkruisselbrink]: https://github.com/rkruisselbrink
+[@rlippmann]: https://github.com/rlippmann
+[@rytilahti]: https://github.com/rytilahti
+[@sairon]: https://github.com/sairon
+[@sdb9696]: https://github.com/sdb9696
+[@snoack]: https://github.com/snoack
+[@some-guy-23]: https://github.com/some-guy-23
+[@spycle]: https://github.com/spycle
+[@stackia]: https://github.com/stackia
+[@starkillerOG]: https://github.com/starkillerOG
+[@steffenrapp]: https://github.com/steffenrapp
+[@swartzd]: https://github.com/swartzd
+[@swistakm]: https://github.com/swistakm
+[@synesthesiam]: https://github.com/synesthesiam
+[@thecode]: https://github.com/thecode
+[@timmo001]: https://github.com/timmo001
+[@tkdrob]: https://github.com/tkdrob
+[@tl-sl]: https://github.com/tl-sl
+[@tr4nt0r]: https://github.com/tr4nt0r
+[@tronikos]: https://github.com/tronikos
+[@wittypluck]: https://github.com/wittypluck
+[@yanuino]: https://github.com/yanuino
+[@yozik04]: https://github.com/yozik04
+[@zweckj]: https://github.com/zweckj
diff --git a/source/changelogs/core-2024.4.markdown b/source/changelogs/core-2024.4.markdown
new file mode 100644
index 00000000000..a7d0caa5d98
--- /dev/null
+++ b/source/changelogs/core-2024.4.markdown
@@ -0,0 +1,3433 @@
+---
+title: Full changelog for Home Assistant Core 2024.4
+description: Detailed changelog for the Home Assistant Core 2024.4 release
+replace_regex: \s\(\[?[a-z0-9\-\s_]+\]?\)$
+---
+
+These are all the changes included in the Home Assistant Core 2024.4 release.
+
+For a summary in a more readable format:
+[Release notes blog for this release](/blog/2024/04/03/release-20244/).
+
+## All changes
+
+- Add permobil entity ([@IsakNyberg] - [#111761])
+- Bump version to 2024.4.0.dev0 ([@bramkragten] - [#111755])
+- Improve zha coordinator typing ([@cdce8p] - [#111767])
+- Add normalized name registry items base class ([@jpbede] - [#111666])
+- Remove 'values' from services validation ([@balloob] - [#111440])
+- Use proper constant in Airzone Cloud climate tests ([@Noltari] - [#111747])
+- Axis improve coverage binary tests ([@Kane610] - [#111758])
+- Add icon translations to Hue ([@joostlek] - [#111725])
+- Import enphase_envoy in the executor to avoid blocking the event loop ([@bdraco] - [#111805])
+- Add icon translations to IPP ([@joostlek] - [#111846])
+- Import discovergy in the executor to avoid blocking the event loop ([@jpbede] - [#111824])
+- Import homekit in the executor to avoid blocking the event loop ([@bdraco] - [#111809])
+- Import upnp in the executor to avoid blocking the event loop ([@bdraco] - [#111808])
+- Import logbook in the executor to avoid blocking the event loop ([@bdraco] - [#111807])
+- Import flux_led in the executor to avoid blocking the event loop ([@bdraco] - [#111806])
+- Import rest in the executor to avoid blocking the event loop ([@bdraco] - [#111804])
+- Remove areas template filter ([@emontnemery] - [#111827])
+- Add generic classes BaseFlowHandler and BaseFlowManager ([@emontnemery] - [#111814])
+- Remove unused translation key from Ecovacs mower ([@edenhaus] - [#111754])
+- Add icon translations to Laundrify ([@joostlek] - [#111856])
+- Add icon translations to Lastfm ([@joostlek] - [#111855])
+- Add icon translations to Justnimbus ([@joostlek] - [#111849])
+- Add icon translations to Kaleidescape ([@joostlek] - [#111850])
+- Add icon translations to Intellifire ([@joostlek] - [#111845])
+- Add icon translations to KNX ([@joostlek] - [#111852])
+- Migrate integrations a-d to generic flowhandler ([@emontnemery] - [#111861])
+- Migrate integrations e-h to generic flowhandler ([@emontnemery] - [#111862])
+- Migrate integrations u-z to generic flowhandler ([@emontnemery] - [#111866])
+- Migrate integrations i-m to generic flowhandler ([@emontnemery] - [#111863])
+- Migrate integrations n-r to generic flowhandler ([@emontnemery] - [#111864])
+- Migrate integrations s-t to generic flowhandler ([@emontnemery] - [#111865])
+- Switch influxdb to use a SimpleQueue ([@bdraco] - [#111798])
+- Remove unused variable in stats _sorted_statistics_to_dict ([@bdraco] - [#111912])
+- Add person tracking for UniFi Protect ([@AngellusMortis] - [#111289])
+- Add Vallox filter replacement date ([@yozik04] - [#111391])
+- Bump actions/cache from 4.0.0 to 4.0.1 (@dependabot - [#111916])
+- Bump github/codeql-action from 3.24.5 to 3.24.6 (@dependabot - [#111917])
+- Add icon translations to Kodi ([@joostlek] - [#111853])
+- Add icon translations to Enocean ([@joostlek] - [#111514])
+- Add icon translations to EZVIZ ([@joostlek] - [#111532])
+- Add icon translations to Flipr ([@joostlek] - [#111540])
+- Add icon translations to Flux LED ([@joostlek] - [#111545])
+- Add icon translations to Hydrawise ([@joostlek] - [#111810])
+- Add reconfigure step to config flow ([@gjohansson-ST] - [#108794])
+- Add icon translations to Medcom BLE ([@joostlek] - [#111904])
+- Add icon translations to Keymitt BLE ([@joostlek] - [#111851])
+- Add icon translations to IFTTT ([@joostlek] - [#111842])
+- Add icon translations to Idasen desk ([@joostlek] - [#111813])
+- Add icon translations to Lidarr ([@joostlek] - [#111896])
+- Add icon translations to LCN ([@joostlek] - [#111895])
+- Remove config flow specifics from FlowResult ([@emontnemery] - [#111932])
+- Add icon translations to LifX ([@joostlek] - [#111897])
+- Add icon translations to min max ([@joostlek] - [#111908])
+- Add icon translations to Minecraft Server ([@joostlek] - [#111928])
+- Add icon translations to Mill ([@joostlek] - [#111907])
+- Update mypy to a custom version ([@cdce8p] - [#111258])
+- Add icon translations to Litterrobot ([@joostlek] - [#111899])
+- Add icon translations to Local IP ([@joostlek] - [#111900])
+- Add icon translations to Lyric ([@joostlek] - [#111902])
+- Add icon translations to Motioneye ([@joostlek] - [#111936])
+- Add icon translations to Monoprice ([@joostlek] - [#111934])
+- Fix utility meter reset without tarrifs ([@gibwar] - [#102884])
+- Fix LingeringTask after test completion in enphase_envoy ([@catsmanac] - [#111940])
+- Fix loader test warning ([@cdce8p] - [#111965])
+- Add icon translations to MQTT ([@joostlek] - [#111945])
+- Add icon translations to Neato ([@joostlek] - [#111947])
+- Add icon translations to Nanoleaf ([@joostlek] - [#111946])
+- Add icon translations to Motion blinds ([@joostlek] - [#111935])
+- Add icon translations to Modem callerID ([@joostlek] - [#111929])
+- Use default icon for Melcloud ([@joostlek] - [#111905])
+- Fix generic HassJob typing ([@cdce8p] - [#111973])
+- Fix util create_eager_task typing ([@cdce8p] - [#111976])
+- Add icon translations to OpenUV ([@joostlek] - [#111996])
+- Add icon translations to Notion ([@joostlek] - [#111984])
+- Add icon translations to Modern Forms ([@joostlek] - [#111933])
+- Add icon translations to Nextcloud ([@joostlek] - [#111982])
+- Add icon translations to NZBGet ([@joostlek] - [#111985])
+- Add icon translations to Netgear LTE ([@joostlek] - [#111974])
+- Add icon translations to Omnilogic ([@joostlek] - [#111989])
+- Add icon translations to Ondilo ico ([@joostlek] - [#111990])
+- Add icon translations to Octoprint ([@joostlek] - [#111988])
+- Add icon translations to Opensky ([@joostlek] - [#111994])
+- Add icon translations to Openhome ([@joostlek] - [#111993])
+- Add icon translations to OpenAI Conversation ([@joostlek] - [#111992])
+- Add icon translations to ovo energy ([@joostlek] - [#111997])
+- Reduce ESPHome reconnect time ([@bdraco] - [#112001])
+- Reduce samsungtv startup time ([@bdraco] - [#112007])
+- Convert command_line to use asyncio for subprocesses ([@bdraco] - [#111927])
+- Apply better names to a couple of dicts in Axis config flow ([@Kane610] - [#111964])
+- Add icon translations to Nmap tracker ([@joostlek] - [#111983])
+- Add icon translations to Opentherm gw ([@joostlek] - [#111995])
+- Add entity and icon translations to Onvif ([@joostlek] - [#111991])
+- Add icon translations to Netgear ([@joostlek] - [#111972])
+- Remove deprecated `hass.components.hassio` usage ([@jpbede] - [#111878])
+- Streamline naming in the Axis integration ([@Kane610] - [#112044])
+- Simplify load_executor check in loader ([@bdraco] - [#112029])
+- Import co2signal in the executor to avoid blocking the event loop ([@bdraco] - [#112058])
+- Import ambient_station in the executor to avoid blocking the event loop ([@bdraco] - [#112053])
+- Refactor file_upload to avoid janus dep ([@bdraco] - [#112032])
+- Import snmp in the executor to avoid blocking the event loop ([@bdraco] - [#112065])
+- Pre-import more frontend deps to avoid importing when the event loop is running ([@bdraco] - [#112031])
+- Switch config to use async_get_component/async_get_platform ([@bdraco] - [#112071])
+- Import switchbot in the executor to avoid blocking the event loop ([@bdraco] - [#112077])
+- Import smtp in the executor to avoid blocking the loop ([@bdraco] - [#112089])
+- Import integrations using sense-energy in the executor to avoid loop blocking ([@bdraco] - [#112087])
+- Import baf in the executor to avoid blocking the event loop ([@bdraco] - [#112086])
+- Import caldav in the executor to avoid blocking the event loop ([@bdraco] - [#112081])
+- Import yeelight in the executor to avoid blocking the event loop ([@bdraco] - [#112080])
+- Import template in the executor to avoid blocking the event loop ([@bdraco] - [#112070])
+- Import stream in the executor to avoid blocking the event loop ([@bdraco] - [#112078])
+- Avoid trying to import platforms that do not exist ([@bdraco] - [#112028])
+- Preload platform integrations to better group executor usage ([@bdraco] - [#112010])
+- Move Ping binary sensor attributes to sensor entities ([@jpbede] - [#112004])
+- Add YoLInk YS7905-UC Support ([@matrixd2] - [#111709])
+- Fix flakey airzone_cloud tests by avoiding creation of the websocket ([@Noltari] - [#112102])
+- Add icon translations to Nextbus ([@joostlek] - [#111981])
+- Add icon translations to Nexia ([@joostlek] - [#111980])
+- Add tests for number of devices created in myuplink ([@astrandb] - [#111816])
+- Load wyoming in the executor to avoid blocking the event loop ([@bdraco] - [#112107])
+- Add event platform to rfxtrx ([@elupus] - [#111526])
+- Add comment to integration platform helper about blocking I/O ([@bdraco] - [#112103])
+- Address late review for Ping ([@jpbede] - [#112123])
+- Import steamist in the executor to avoid blocking the loop ([@bdraco] - [#112111])
+- Move all System Monitor updates into single Data Update Coordinator ([@gjohansson-ST] - [#112055])
+- Add the ability to resume cleaning on start button ([@Lash-L] - [#112122])
+- Clean up setup and teardown of Axis integration ([@Kane610] - [#112120])
+- Exclude tankerkoenig attributes from recording ([@jpbede] - [#112109])
+- Avoid calling async_get_component twice for each component being setup ([@bdraco] - [#112096])
+- Import screenlogic in the executor to avoid blocking the loop ([@bdraco] - [#112097])
+- Avoid compiling entity service schema when passed defaults ([@bdraco] - [#112099])
+- Add package detection to Reolink ([@starkillerOG] - [#112126])
+- Try to preload the config platform when loading a component ([@bdraco] - [#112104])
+- Fix flakey tplink test ([@bdraco] - [#112135])
+- Add icon translations to Melnor ([@joostlek] - [#111906])
+- Ensure setup loads top level component before platforms ([@bdraco] - [#112057])
+- Add Reolink PTZ patrol start/stop ([@starkillerOG] - [#112129])
+- Fix async_prepare_setup_platform test ([@bdraco] - [#112143])
+- Fix places not changed to hub in Axis tests ([@Kane610] - [#112128])
+- Split up hassio coordinator and data into new file to allow preload ([@bdraco] - [#112147])
+- Preload config flow if it exists when loading a component ([@bdraco] - [#112145])
+- Migrate condition/state/trigger helper to use async_get_platform ([@bdraco] - [#112144])
+- Use MockConfigEntry in hue tests ([@bdraco] - [#112149])
+- Fix async_get_component loading in the executor when the module is already loaded ([@bdraco] - [#112153])
+- Add types throughout the prometheus tests ([@agoode] - [#112156])
+- Run more of hassio setup in in tasks ([@bdraco] - [#112151])
+- Streamline UniFi entity descriptions ([@Kane610] - [#112136])
+- Avoid multiple executor jobs with concurrent calls to async_get_component ([@bdraco] - [#112155])
+- Ignore unsupported devices (room sensors, floor heating) in ViCare integration ([@CFenner] - [#112106])
+- Group loading of platforms in the import executor ([@bdraco] - [#112141])
+- Improve mqtt value template error logging ([@jbouwh] - [#110492])
+- Import recorder and common recorder platforms before asyncio starts ([@bdraco] - [#112131])
+- Group platform loads in homekit_controller to minimize executor use ([@bdraco] - [#112148])
+- Avoid using coordinator in config flow of APCUPSD ([@yuxincs] - [#112121])
+- Update System Bridge to support version 4.x.x and above ([@timmo001] - [#107957])
+- Add local API support to elmax ([@albertogeniola] - [#94392])
+- Bump actions/download-artifact from 4.1.3 to 4.1.4 (@dependabot - [#112159])
+- Remove unused test helper mock_area_registry ([@emontnemery] - [#112172])
+- Migrate config to use async_get_component ([@bdraco] - [#112160])
+- Migrate device_automation to use async_get_platform ([@bdraco] - [#112162])
+- Migrate rest to use eager tasks for setup ([@bdraco] - [#112166])
+- Migrate application_credentials to use async_get_platform ([@bdraco] - [#112161])
+- Import in the executor by default for core integrations ([@bdraco] - [#112127])
+- Update systembridgeconnector to 4.0.2 ([@timmo001] - [#112174])
+- Issues template function ([@RoboMagus] - [#95206])
+- Fix pylint/mypy on elmax integration ([@Noltari] - [#112211])
+- Add icon translations to Snapcast ([@joostlek] - [#112229])
+- Add icon translations to Rainbird ([@joostlek] - [#112200])
+- Add icon translations to RFXCOM RFXtrx ([@joostlek] - [#112209])
+- Add icon translations to Simplisafe ([@joostlek] - [#112224])
+- Add icon translations to Ridwell ([@joostlek] - [#112210])
+- Add icon translations to Recollect Waste ([@joostlek] - [#112204])
+- Add icon translations to Private BLE Device ([@joostlek] - [#112185])
+- Add icon translations to PurpleAir ([@joostlek] - [#112192])
+- Add icon translations to Rainmachine ([@joostlek] - [#112202])
+- Add icon translations to Renault ([@joostlek] - [#112205])
+- Add icon translations to Solarlog ([@joostlek] - [#112232])
+- Add icon translations to Songpal ([@joostlek] - [#112234])
+- Add icon translations to Philips TV ([@joostlek] - [#112179])
+- Add icon translations to Smarttub ([@joostlek] - [#112227])
+- Add icon translations to sabNZBd ([@joostlek] - [#112219])
+- Add icon translations to Slack ([@joostlek] - [#112226])
+- Add icon translations to Season ([@joostlek] - [#112221])
+- Add icon translations to Screenlogic ([@joostlek] - [#112220])
+- Change log level for System Bridge service handlers ([@timmo001] - [#112175])
+- Add icon translations to Roon ([@joostlek] - [#112218])
+- Add icon translations to Swiss public transport ([@joostlek] - [#112254])
+- Address srp_energy late review comment ([@briglx] - [#105756])
+- Add Hyperion sensor to report active priority on each instance ([@belangp] - [#102333])
+- Add icon translations to Sensibo ([@joostlek] - [#112222])
+- Fix authentication issues for asekopool ([@hopkins-tk] - [#99495])
+- Fix spaceapi attribute for closed icon ([@Xiretza] - [#108596])
+- Add sensor platform to Teslemetry ([@Bre77] - [#109088])
+- Add config flow to homeworks ([@emontnemery] - [#112042])
+- Enable strict typing of homeworks ([@emontnemery] - [#112267])
+- Add device and enable entity name for Lutron homeworks ([@emontnemery] - [#112268])
+- Add icon translations to Steamist ([@joostlek] - [#112246])
+- Add icon translations to Starlink ([@joostlek] - [#112244])
+- Add icon translations to Squeezebox ([@joostlek] - [#112240])
+- Add icon translations to Streamlabswater ([@joostlek] - [#112247])
+- Add permobil binary sensor ([@IsakNyberg] - [#112130])
+- Add icon translations to Sure Petcare ([@joostlek] - [#112253])
+- Add icon translations to Spotify ([@joostlek] - [#112239])
+- Remove callback decorator from coroutine ([@Kane610] - [#112276])
+- Update pytest to 8.1.0 ([@cdce8p] - [#112173])
+- Reduce some linear searches to cleanup the device registry ([@bdraco] - [#112277])
+- Ensure hassio diagnostics get imported with the integration ([@bdraco] - [#112286])
+- Add support for preloading platforms in the loader ([@bdraco] - [#112282])
+- Add icon translations to Elkm1 ([@joostlek] - [#111512])
+- Refactor integration platforms to import in the executor ([@bdraco] - [#112168])
+- Remove unnecessary access to UniFi hub object in tests ([@Kane610] - [#112275])
+- Add icon translations to SMS ([@joostlek] - [#112228])
+- Add icon translations to Rainforest Raven ([@joostlek] - [#112201])
+- Add icon translations to Plum lightpad ([@joostlek] - [#112183])
+- Add icon translations to Profiler ([@joostlek] - [#112186])
+- Add icon translations to Prosegur ([@joostlek] - [#112187])
+- Add icon translations to Prusalink ([@joostlek] - [#112188])
+- Add icon translations to PS4 ([@joostlek] - [#112190])
+- Add icon translations to QBittorrent ([@joostlek] - [#112193])
+- Add icon translations to QNap QSW ([@joostlek] - [#112194])
+- Add icon translations to Rachio ([@joostlek] - [#112195])
+- Add icon translations to Radarr ([@joostlek] - [#112196])
+- Add icon translations to Radiotherm ([@joostlek] - [#112197])
+- Add icon translations to RDW ([@joostlek] - [#112203])
+- Add icon translations to Renson ([@joostlek] - [#112207])
+- Add icon translations to Ring ([@joostlek] - [#112212])
+- Add icon translations to Rituals perfume genie ([@joostlek] - [#112213])
+- Add icon translations to Roomba ([@joostlek] - [#112217])
+- Add icon translations to Skybell ([@joostlek] - [#112225])
+- Add icon translations to Snooz ([@joostlek] - [#112230])
+- Add icon translations to Solaredge ([@joostlek] - [#112231])
+- Add icon translations to Soundtouch ([@joostlek] - [#112236])
+- Add icon translations to Subaru ([@joostlek] - [#112252])
+- Deprecate old config options for MQTT json light ([@jbouwh] - [#111676])
+- Add icon translations to P1 monitor ([@joostlek] - [#111998])
+- Add icon translations to Speedtestdotnet ([@joostlek] - [#112237])
+- Use default icon in Romy ([@joostlek] - [#112215])
+- Add icon translations to Shopping list ([@joostlek] - [#112223])
+- Add icon translations to Pi-hole ([@joostlek] - [#112180])
+- Add icon translations to PECO ([@joostlek] - [#112169])
+- Add icon translations to Permobil ([@joostlek] - [#112170])
+- Add icon translations to Plex ([@joostlek] - [#112182])
+- Cleanup rainbird aiohttp client cleanup on EVENT_HOMEASSISTANT_CLOSE ([@allenporter] - [#112292])
+- Add icon translations to Switcher kis ([@joostlek] - [#112296])
+- Add icon translations to Systemmonitor ([@joostlek] - [#112300])
+- Add icon translations to Tautulli ([@joostlek] - [#112305])
+- Add icon translations to Trafikverket Train ([@joostlek] - [#112322])
+- Add icon translations to Trafikverket Ferry ([@joostlek] - [#112321])
+- Add icon translations to Trafikverket Camera ([@joostlek] - [#112320])
+- Add icon translations to Trafikverket Weather station ([@joostlek] - [#112323])
+- Add icon translations to Workday ([@joostlek] - [#112359])
+- Add icon translations to Yale ([@joostlek] - [#112361])
+- Add icon translations to YouTube ([@joostlek] - [#112365])
+- Add icon translations to YoLink ([@joostlek] - [#112364])
+- Add icon translations to Yardian ([@joostlek] - [#112362])
+- Add icon translations to Xiaomi Aqara ([@joostlek] - [#112360])
+- Add icon translations to Weatherkit ([@joostlek] - [#112354])
+- Add icon translations to Synology DSM ([@joostlek] - [#112299])
+- Add icon translations to Trend ([@joostlek] - [#112325])
+- Add icon translations to TP-Link ([@joostlek] - [#112317])
+- Add icon translations to Tesla Wall Connector ([@joostlek] - [#112309])
+- Add icon translations to Tolo ([@joostlek] - [#112313])
+- Add icon translations to Tile ([@joostlek] - [#112310])
+- Add icon translations to Todoist ([@joostlek] - [#112312])
+- Add icon translations to Template ([@joostlek] - [#112308])
+- Add icon translations to Syncthing ([@joostlek] - [#112297])
+- Add icon translations to Tedee ([@joostlek] - [#112307])
+- Update aioairzone-cloud to v0.4.6 ([@Noltari] - [#112198])
+- Add support for System Bridge service responses ([@timmo001] - [#100055])
+- Remove async_entity_ids and get_entity_ids from entity registry ([@bdraco] - [#112311])
+- Add Beaufort to wind_speed ([@fwestenberg] - [#105795])
+- Add icon translations to WebOS TV ([@joostlek] - [#112355])
+- Add icon translations to Watttime ([@joostlek] - [#112351])
+- Add icon translations to Uptimerobot ([@joostlek] - [#112336])
+- Initialize triggers eagerly ([@bdraco] - [#112294])
+- Migrate remaining calls in config modules to async_get_component ([@bdraco] - [#112293])
+- Migrate system flows to use the discovery helper ([@bdraco] - [#112291])
+- Simplify loader preload logic for config_flows ([@bdraco] - [#112290])
+- Remove entity description mixin in Accuweather ([@joostlek] - [#112375])
+- Remove entity description mixin in Bravia TV ([@joostlek] - [#112395])
+- Remove entity description mixin in Brother ([@joostlek] - [#112396])
+- Add icon translations to Vizio ([@joostlek] - [#112348])
+- Remove entity description mixin in Balboa ([@joostlek] - [#112389])
+- Remove entity description mixin in BMW ([@joostlek] - [#112391])
+- Remove entity description mixin in Bond ([@joostlek] - [#112393])
+- Remove entity description mixin in Bosch SHC ([@joostlek] - [#112394])
+- Remove entity description mixin in Dovado ([@joostlek] - [#112402])
+- Remove entity description mixin in Ecobee ([@joostlek] - [#112408])
+- Add icon translations to Vodafone Station ([@joostlek] - [#112349])
+- Remove entity description mixin in AirQ ([@joostlek] - [#112377])
+- Remove entity description mixin in Aladdin Connect ([@joostlek] - [#112379])
+- Remove entity description mixin in Azure DevOps ([@joostlek] - [#112385])
+- Add comments why we use loop.create_task in core ([@MartinHjelmare] - [#112372])
+- Remove entity description mixin in Dormakaba dKey ([@joostlek] - [#112401])
+- Add button to homeworks ([@emontnemery] - [#112269])
+- Remove entity description mixin in Airzone ([@joostlek] - [#112378])
+- Remove list comprehension when adding entities in Nextcloud ([@jpbede] - [#112429])
+- Remove list comprehension when adding entities in opengarage ([@jpbede] - [#112430])
+- Remove entity description mixin in Electric Kiwi ([@joostlek] - [#112411])
+- Migrate Azure DevOps to has entity name ([@joostlek] - [#112420])
+- Remove entity description mixin in Devolo Home Network ([@joostlek] - [#112399])
+- Remove list comprehension when adding entities in Smartthings ([@jpbede] - [#112432])
+- Remove list comprehension when adding entities in Wallbox ([@jpbede] - [#112433])
+- Remove the deprecated YAML support for Aftership ([@jpbede] - [#112390])
+- Add icon translations to Azure DevOps ([@joostlek] - [#112436])
+- Small cleanup in Dexcom ([@joostlek] - [#112425])
+- Break out UniFi config handling to own class ([@Kane610] - [#111325])
+- Rename reconfigure step in apple_tv ([@gjohansson-ST] - [#112438])
+- Remove myself as a codeowner for neato ([@dshokouhi] - [#112410])
+- Remove entity description mixin in AirNow ([@joostlek] - [#112376])
+- Add icon translations to Vilfo ([@joostlek] - [#112347])
+- Add icon translations to Verisure ([@joostlek] - [#112342])
+- Add icon translations to Vallox ([@joostlek] - [#112339])
+- Remove entity description mixin in Abode ([@joostlek] - [#112374])
+- Add icon translations to Velbus ([@joostlek] - [#112340])
+- Add icon translations to Ukraine Alarm ([@joostlek] - [#112330])
+- Add icon translations to Twitch ([@joostlek] - [#112329])
+- Remove entity description mixin in Android IP Webcam ([@joostlek] - [#112380])
+- Remove entity description mixin in Aseko ([@joostlek] - [#112382])
+- Remove entity description mixin in Awair ([@joostlek] - [#112384])
+- Remove entity description mixin in Comfoconnect ([@joostlek] - [#112397])
+- Remove entity description mixin in Daikin ([@joostlek] - [#112398])
+- Remove entity description mixin in Doorbird ([@joostlek] - [#112400])
+- Remove entity description mixin in Ecoforest ([@joostlek] - [#112409])
+- Add icon translations to Tomorrowio ([@joostlek] - [#112315])
+- Add TypeVar default for FlowResult ([@emontnemery] - [#112345])
+- Bump dorny/paths-filter from 3.0.1 to 3.0.2 (@dependabot - [#112158])
+- Bump SQLAlchemy to 2.0.28 ([@bdraco] - [#112314])
+- Pre import image_upload to avoid loading it after asyncio has started ([@bdraco] - [#112444])
+- Pre import webhook before asyncio starts ([@bdraco] - [#112441])
+- Limit legacy state translations to custom components ([@bdraco] - [#112295])
+- Remove list comprehension when adding entities in Vallox ([@jpbede] - [#112446])
+- Remove entity description mixin in BAF ([@joostlek] - [#112386])
+- Fix config modules being imported in the event loop ([@bdraco] - [#112462])
+- Adjust MAX_LOAD_CONCURRENTLY constant to allow 6 storage loaders ([@bdraco] - [#112468])
+- Add system_health to the hassio pre-imports to avoid a late executor job ([@bdraco] - [#112466])
+- Start fetching the source ip sooner in http to reduce setup time ([@bdraco] - [#112461])
+- Load network storage in a task to reduce startup time ([@bdraco] - [#112460])
+- Fix incorrect scope on checking files to load in translations ([@bdraco] - [#112457])
+- Migrate remaining get_platform in config to async_get_platform ([@bdraco] - [#112469])
+- Migrate remaining get_platform in check_config to async_get_platform ([@bdraco] - [#112470])
+- Add icon translations to Zeversolar ([@joostlek] - [#112367])
+- Remove myself as maintainer of the Rejseplanen integration ([@DarkFox] - [#112426])
+- Add icon translations to Tado ([@joostlek] - [#112301])
+- Add icon translations to iCloud ([@joostlek] - [#111812])
+- Add icon translations to Weatherflow ([@joostlek] - [#112353])
+- Add icon translations to Vesync ([@joostlek] - [#112344])
+- Add icon translations to Velux ([@joostlek] - [#112341])
+- Add icon translations to Tradfri ([@joostlek] - [#112319])
+- Add icon translations to UPnP ([@joostlek] - [#112335])
+- Add icon translations to Totalconnect ([@joostlek] - [#112316])
+- Add icon translations to TechnoVE ([@joostlek] - [#112306])
+- Add icon translations to Tami4 ([@joostlek] - [#112304])
+- Use default icon for Lupusec ([@joostlek] - [#111901])
+- Add icon translations to iBeacon ([@joostlek] - [#111811])
+- Add icon translations to V2C ([@joostlek] - [#112338])
+- Add test to ensure bootstrap continues if an integraton raises CancelledError ([@bdraco] - [#112472])
+- Avoid waiting for integration platforms in the parent integration ([@bdraco] - [#112467])
+- Add Reolink play quick reply message ([@starkillerOG] - [#112134])
+- Deprecate attributes of Nuki entities ([@steffenrapp] - [#111419])
+- Remove deprecated `hass.components` usage in config entry flow ([@jpbede] - [#111880])
+- Bump tesla-fleet-api to 0.4.9 ([@Bre77] - [#112288])
+- Remove deprecated `hass.components` usage in mobile_app ([@jpbede] - [#111888])
+- Wait to start emulated_hue until the started event ([@bdraco] - [#112477])
+- Fix detection of DLI sockets in wemo ([@bdraco] - [#112485])
+- Bump Wandalen/wretry.action from 1.4.4 to 1.4.5 (@dependabot - [#111700])
+- Remove entity description mixin in Enphase Envoy ([@joostlek] - [#112486])
+- Post System Bridge 4.x.x integration improvements ([@timmo001] - [#112189])
+- Add icon translations to Reolink ([@joostlek] - [#112208])
+- Improve integration_entities template function ([@emontnemery] - [#111943])
+- Remove constructor in WLED Options flow ([@joostlek] - [#112456])
+- Add icon translations to Tailwind ([@joostlek] - [#112303])
+- Add icon translations to Elgato ([@joostlek] - [#111423])
+- Add icon translations to Twentemilieu ([@joostlek] - [#112327])
+- Fix typo in Reolink translation keys ([@joostlek] - [#112489])
+- Remove entity description mixin in EnOcean ([@joostlek] - [#112483])
+- Add icon translations to Zone ([@joostlek] - [#112370])
+- Add icon translations to Zodiac ([@joostlek] - [#112369])
+- Add icon translations to Wilight ([@joostlek] - [#112357])
+- Add icon translations to ViCare ([@joostlek] - [#112346])
+- Add icon translations to UPB ([@joostlek] - [#112333])
+- Add icon translations to Tuya ([@joostlek] - [#112326])
+- Add icon translations to Transmission ([@joostlek] - [#112324])
+- Add icon translations to TP-Link Omada ([@joostlek] - [#112318])
+- Add icon translations to Poolsense ([@joostlek] - [#112184])
+- Add icon translations to Starline ([@joostlek] - [#112241])
+- Add icon translations to iZone ([@joostlek] - [#111848])
+- Add icon translations to isy994 ([@joostlek] - [#111847])
+- Add icon translations to Insteon ([@joostlek] - [#111844])
+- Add Shelly restart required binary sensor ([@chemelli74] - [#112493])
+- Remove entity description mixin in August ([@joostlek] - [#112383])
+- Add icon translations to Zerproc ([@joostlek] - [#112366])
+- Add icon translations to Whois ([@joostlek] - [#112356])
+- Add icon translations to Tailscale ([@joostlek] - [#112302])
+- Disable Shelly diagnostic binary sensor ([@chemelli74] - [#112497])
+- Remove entity description mixin in EasyEnergy ([@joostlek] - [#112407])
+- Remove entity description mixin in EnergyZero ([@joostlek] - [#112412])
+- Remove entity description mixin in Dremel 3D Printer ([@joostlek] - [#112405])
+- Add icon translations to Sonarr ([@joostlek] - [#112233])
+- Add icon translations to Wallbox ([@joostlek] - [#112350])
+- Enable some PERF rules ([@joostlek] - [#112498])
+- Simplify color mode logic in Tuya light ([@emontnemery] - [#110327])
+- Use an eager task for Sonos async_update_device_properties ([@bdraco] - [#112488])
+- Fix sonos overloading the executor when there are many devices ([@bdraco] - [#112482])
+- Add snapshot tests to webmin ([@autinerd] - [#112518])
+- Remove hourly weather entity from Environment Canada ([@gjohansson-ST] - [#112447])
+- Reduce executor jobs needed to setup filesize ([@bdraco] - [#112490])
+- Increase bootstrap preload test timeout ([@bdraco] - [#112520])
+- Fix homekit creating executor jobs to resolve default listen ips ([@bdraco] - [#112522])
+- Avoid importing counter and proximity integrations in logbook ([@bdraco] - [#112528])
+- Add icon translations to Waze Travel Time ([@joostlek] - [#112352])
+- Log tasks that are being waited on when startup is blocked ([@bdraco] - [#112542])
+- Move analytics setup to later stage to avoid delaying frontend startup ([@bdraco] - [#112535])
+- Pre import the rest of the recorder platforms before asyncio starts ([@bdraco] - [#112289])
+- Avoid having to work out the job type for each entity service at startup ([@bdraco] - [#112557])
+- Pass job type to event listeners when creating entities ([@bdraco] - [#112551])
+- Make HassJob job_type lookup lazy ([@bdraco] - [#112563])
+- Bump aioesphomeapi to 23.1.0 ([@jesserockz] - [#112560])
+- Speed up the frame helper ([@bdraco] - [#112562])
+- Bump Wandalen/wretry.action from 1.4.5 to 1.4.7 (@dependabot - [#112575])
+- Add icon translations to Twinkly ([@joostlek] - [#112328])
+- Make FlowResult a generic type ([@emontnemery] - [#111952])
+- Change KEY_HASS to be an aiohttp AppKey ([@cdce8p] - [#111954])
+- Avoid extracting the stack twice in system_log ([@bdraco] - [#112572])
+- Use KEY_HASS [h-z] ([@cdce8p] - [#112610])
+- Use KEY_HASS [a-g] ([@cdce8p] - [#112609])
+- Fix Bang and olufsen naming ([@joostlek] - [#111344])
+- Remove local imports of hass-nabucasa ([@emontnemery] - [#112634])
+- Log waiting tasks in bootstrap that are delaying startup ([@bdraco] - [#112637])
+- Schedule polling as periodic tasks ([@bdraco] - [#112640])
+- Fix homekit_controller delaying startup and shutdown ([@bdraco] - [#112671])
+- Fix dhcp delaying shutdown ([@bdraco] - [#112670])
+- Make zeroconf lookups background tasks ([@bdraco] - [#112669])
+- Close hue api if setup fails ([@bdraco] - [#112164])
+- Avoid writing registries to disk during startup ([@bdraco] - [#112662])
+- Bump python-telegram-bot package to 21.0.1 ([@malkstar] - [#110297])
+- Speed up importing mqtt platforms ([@bdraco] - [#112682])
+- Use aiohttp.AppKey for http ban keys ([@cdce8p] - [#112657])
+- Add TypeVar defaults for DataUpdateCoordinator ([@cdce8p] - [#111949])
+- Add reauthentication for husqvarna_automower ([@Thomas55555] - [#109930])
+- Use aiohttp.AppKey for http cors keys ([@cdce8p] - [#112658])
+- Bump devcontainer to 1-3.12 ([@edenhaus] - [#108709])
+- Update systembridgeconnector to version 4.0.3 ([@timmo001] - [#112608])
+- Make Event data generic ([@cdce8p] - [#111955])
+- Add empty line after module docstring [d-f] ([@cdce8p] - [#112698])
+- Add empty line after module docstring [s] ([@cdce8p] - [#112704])
+- Add empty line after module docstring [tests t-z] ([@cdce8p] - [#112712])
+- Add empty line after module docstring [tests q-s] ([@cdce8p] - [#112711])
+- Add empty line after module docstring [tests f-k] ([@cdce8p] - [#112709])
+- Add empty line after module docstring [tests a-e] ([@cdce8p] - [#112708])
+- Add empty line after module docstring [a-d] ([@cdce8p] - [#112697])
+- Add empty line after module docstring [g-i] ([@cdce8p] - [#112699])
+- Add empty line after module docstring [tests l-p] ([@cdce8p] - [#112710])
+- Add empty line after module docstring [j-m] ([@cdce8p] - [#112700])
+- Add empty line after module docstring [n-q] ([@cdce8p] - [#112702])
+- Add empty line after module docstring [r] ([@cdce8p] - [#112703])
+- Add empty line after module docstring [t-v] ([@cdce8p] - [#112705])
+- Add empty line after module docstring [w-z] ([@cdce8p] - [#112706])
+- Add empty line after module docstring [helpers + other] ([@cdce8p] - [#112707])
+- Remove Python 3.11 from CI ([@frenck] - [#112626])
+- Remove built-in support for import_executor in manifest ([@balloob] - [#112725])
+- Use more f-strings [ruff] ([@cdce8p] - [#112695])
+- Add empty line after module docstring (2) [components] ([@cdce8p] - [#112736])
+- Add empty line after module docstring (2) [tests.components] ([@cdce8p] - [#112737])
+- Add empty line after module docstring (2) [other] ([@cdce8p] - [#112738])
+- Replace EventType with Event [a-g] ([@cdce8p] - [#112739])
+- Replace EventType with Event [h-i] ([@cdce8p] - [#112740])
+- Replace EventType with Event [l-s] ([@cdce8p] - [#112741])
+- Replace EventType with Event [t-z] ([@cdce8p] - [#112742])
+- Replace EventType with Event [helpers] ([@cdce8p] - [#112743])
+- Add diagnostics to webmin ([@autinerd] - [#112543])
+- Update byte string formatting ([@cdce8p] - [#112752])
+- Add empty line after module docstring (3) ([@cdce8p] - [#112750])
+- Replace EventType with Event [missing] ([@cdce8p] - [#112753])
+- Update EventBus listen type signatures ([@cdce8p] - [#112760])
+- Remove entity description mixin in Fully Kiosk ([@joostlek] - [#112768])
+- Remove entity description mixin in Flume ([@joostlek] - [#112765])
+- Remove entity description mixin in HomeKit Device ([@joostlek] - [#112775])
+- Remove entity description mixin in iBeacon ([@joostlek] - [#112779])
+- Avoid trying to load translations for integrations that have none ([@bdraco] - [#112683])
+- Replace periodic tasks with background tasks ([@bdraco] - [#112726])
+- Fix race reloading homekit_controller ([@bdraco] - [#112790])
+- Add Event typing to websocket_api for entity subscriptions ([@bdraco] - [#112786])
+- Improve entity translation typing ([@bdraco] - [#112788])
+- Run service call tasks eagerly ([@bdraco] - [#112791])
+- Use Mapping as default for Event data ([@cdce8p] - [#112769])
+- Use eager_start for homeassistant triggers ([@bdraco] - [#112801])
+- Use eager_start for tasks to register integration platforms ([@bdraco] - [#112800])
+- Break out UniFi platform registration to its own class ([@Kane610] - [#112514])
+- Unifi more polish on entity description ([@Kane610] - [#112281])
+- Cache the job type for entity service calls ([@bdraco] - [#112793])
+- Make SSDP tasks background HassJob to avoid delaying startup ([@bdraco] - [#112668])
+- Give the UniFi integration better control over what data to load ([@Kane610] - [#112804])
+- Move restoring inactive clients method into UniFi entity loader ([@Kane610] - [#112805])
+- Remove entity description mixin in Jellyfin ([@joostlek] - [#112782])
+- Remove entity description mixin in Goodwe ([@joostlek] - [#112773])
+- Move wireless clients into entity_loader ([@Kane610] - [#112813])
+- Cleanup mqtt discovery code ([@jbouwh] - [#112749])
+- Update modbus test to include a dummy sensor ([@janiversen] - [#112820])
+- Revert "Cleanup mqtt discovery code" ([@jbouwh] - [#112818])
+- Remove deprecated CLOSE_COMM_ON_ERROR from modbus ([@janiversen] - [#112821])
+- Remove entity description mixin in Huawei LTE ([@joostlek] - [#112777])
+- Remove outdated prettier and yamllint `azure-*.yml` ignores ([@scop] - [#112819])
+- Remove deprecated retry_on_empty from modbus ([@janiversen] - [#112822])
+- Remove entity description mixin in Glances ([@joostlek] - [#112772])
+- Remove entity description mixin in EZVIZ ([@joostlek] - [#112764])
+- Remove entity description mixin in Environment Canada ([@joostlek] - [#112763])
+- Remove entity description mixin in Google wifi ([@joostlek] - [#112774])
+- Remove entity description mixin in idasen desk ([@joostlek] - [#112780])
+- Remove entity description mixin in Honeywell ([@joostlek] - [#112776])
+- Remove entity description mixin in Geocaching ([@joostlek] - [#112770])
+- Remove entity description mixin in AVM Fritz!Tools ([@joostlek] - [#112767])
+- Use eager_start for discovery listeners ([@bdraco] - [#112803])
+- Rename get_deconz_session to get_deconz_api ([@Kane610] - [#112826])
+- Split out Axis config data ([@Kane610] - [#112825])
+- Add icon translations to Yeelight ([@joostlek] - [#112363])
+- Bump mastodon.py version to 1.8.1 ([@thejeffreystone] - [#112728])
+- Improve performance of image streams ([@bdraco] - [#112810])
+- Allow Just-in-Time platform setup for mqtt ([@jbouwh] - [#112720])
+- Enphase Envoy refactor and extend diagnostics ([@catsmanac] - [#109080])
+- Avoid saving auth right after we load it during startup ([@bdraco] - [#112008])
+- Schedule coroutines with eager_task from async_track_state_change_event ([@bdraco] - [#112807])
+- Remove entity description mixin in IPP ([@joostlek] - [#112781])
+- Cleanup mqtt PLATFORMS constant and CI-test platform filters ([@jbouwh] - [#112847])
+- Only read cpu once during systemmonitor setup ([@bdraco] - [#112863])
+- Schedule coroutine functions eagerly when async_listen uses run_immediately ([@bdraco] - [#112846])
+- Update pytest to 8.1.1 ([@cdce8p] - [#112859])
+- Refactor handling of device updates in ESPHome ([@bdraco] - [#112864])
+- Split out deCONZ hub ([@Kane610] - [#112854])
+- Bump yalexs to 2.0.0 ([@abjorck] - [#111706])
+- Add Locks to Xiaomi-BLE ([@Ernst79] - [#111156])
+- Remove entity description mixin in Freebox ([@joostlek] - [#112766])
+- Remove entity description mixin in Private BLE Device ([@joostlek] - [#112922])
+- Remove entity description mixin in Netgear ([@joostlek] - [#112911])
+- Remove entity description mixin in SFR Box ([@joostlek] - [#112937])
+- Remove entity description mixin in Renault ([@joostlek] - [#112925])
+- Remove entity description mixin in Roku ([@joostlek] - [#112931])
+- Remove entity description mixin in Overkiz ([@joostlek] - [#112914])
+- Remove entity description mixin in Trafikverket Weatherstation ([@joostlek] - [#112957])
+- Remove entity description mixin in Trafikverket Train ([@joostlek] - [#112956])
+- Remove entity description mixin in Trafikverket Ferry ([@joostlek] - [#112955])
+- Remove entity description mixin in Trafikverket Camera ([@joostlek] - [#112954])
+- Remove entity description mixin in Sensibo ([@joostlek] - [#112936])
+- Improve 17track tests ([@shaiu] - [#112734])
+- Fix mqtt platform setup race ([@jbouwh] - [#112888])
+- Run debouncer tasks eagerly to avoid scheduling on the event loop ([@bdraco] - [#112789])
+- Import custom components in the executor by default ([@bdraco] - [#112177])
+- Remove entity description mixin in Vodafone Station ([@joostlek] - [#112967])
+- Remove entity description mixin in Zeversolar ([@joostlek] - [#112977])
+- Remove entity description mixin in Youtube ([@joostlek] - [#112975])
+- Remove entity description mixin in WAQI ([@joostlek] - [#112970])
+- Remove entity description mixin in Tradfri ([@joostlek] - [#112953])
+- Use async_at_started in Speedtest.Net ([@gjohansson-ST] - [#112110])
+- Remove entity description mixin in Permobil ([@joostlek] - [#112918])
+- Remove entity description mixin in PEGELONLINE ([@joostlek] - [#112917])
+- Remove entity description mixin in Melcloud ([@joostlek] - [#112905])
+- Remove entity description mixin in Justnimbus ([@joostlek] - [#112893])
+- Remove entity description mixin in LaCrosse View ([@joostlek] - [#112900])
+- Move wsdot fixture to integration test ([@joostlek] - [#112996])
+- Move uk_transport fixture to integration test ([@joostlek] - [#112995])
+- Move OpenALPR cloud fixture to integration test ([@joostlek] - [#112994])
+- Remove not needed hass.async_block_till_done in test ([@jbouwh] - [#113002])
+- Remove entity description mixin in Switcher Kis ([@joostlek] - [#112945])
+- Remove entity description mixin in Nettigo Air Monitor ([@joostlek] - [#112909])
+- Remove entity description mixin in Tractive ([@joostlek] - [#112952])
+- Remove entity description mixin in Synology DSM ([@joostlek] - [#112946])
+- Add icon translations to Picnic ([@joostlek] - [#112181])
+- Add icon translations to Husqvarna automower ([@joostlek] - [#111727])
+- Remove entity description mixin in Shelly ([@joostlek] - [#112938])
+- Migrate APCUPSD to has entity name ([@yuxincs] - [#112997])
+- Fix race condition when ZHA group members change ([@dmulcahey] - [#113030])
+- Ignore logging events in zha websocket tests ([@bdraco] - [#113031])
+- Fix Bang & Olufsen enum naming ([@joostlek] - [#113022])
+- Bump aioesphomeapi to 23.1.1 ([@bdraco] - [#113016])
+- Enable more SIM ruff rules ([@joostlek] - [#113015])
+- Migrate duckdns to use async_run_hass_job ([@bdraco] - [#113012])
+- Avoid scheduling person updates on the event loop ([@bdraco] - [#113010])
+- Move Microsoft face fixture to integration test ([@joostlek] - [#112993])
+- Move metoffice fixture to integration test ([@joostlek] - [#112992])
+- Move london_air fixture to integration test ([@joostlek] - [#112991])
+- Move Feedreader fixture to integration test ([@joostlek] - [#112989])
+- Schedule tasks eagerly when called from hass.add_job ([@bdraco] - [#113014])
+- Move openhardwaremonitor fixture to integration tests ([@joostlek] - [#112982])
+- Remove entity description mixin in V2C ([@joostlek] - [#112960])
+- Remove a redundant check in APCUPSD's config flow ([@yuxincs] - [#113032])
+- Rename mqtt platform setup method ([@jbouwh] - [#113042])
+- Fix google assistant cloud sync test ([@bdraco] - [#113044])
+- Fix CoreState in cloud google assistant tests ([@bdraco] - [#113045])
+- Allow Shelly CoAP to honour default network adapter ([@chemelli74] - [#110997])
+- Remove entity description mixin in Vilfo ([@joostlek] - [#112966])
+- Remove entity description mixin in Tado ([@joostlek] - [#112947])
+- Add tests for Aussie Broadband diagnostics ([@Bre77] - [#113049])
+- Bump aioslimproto to 3.0.0 ([@marcelveldt] - [#113046])
+- Remove entity description mixin in Opower ([@joostlek] - [#112913])
+- Bump Wandalen/wretry.action from 1.4.7 to 1.4.8 (@dependabot - [#113038])
+- Remove entity description mixin in WeatherFlow ([@joostlek] - [#112971])
+- Remove entity description mixin in Starlink ([@joostlek] - [#112943])
+- Remove entity description mixin in Schlage ([@joostlek] - [#112934])
+- Remove entity description mixin in Kaleidescape ([@joostlek] - [#112896])
+- Remove entity description mixin in Launch Library ([@joostlek] - [#112902])
+- Remove entity description mixin in Kaiterra ([@joostlek] - [#112895])
+- Move yandex transport fixture to integration test ([@joostlek] - [#112988])
+- Remove entity description mixin in Meater ([@joostlek] - [#112904])
+- Remove entity description mixin in Minecraft Server ([@joostlek] - [#112908])
+- Remove YAML configuration from WAQI ([@joostlek] - [#113027])
+- Bump webmin-xmlrpc to 0.0.2 ([@autinerd] - [#113004])
+- Remove entity description mixin in QNAP QSW ([@joostlek] - [#112924])
+- Remove entity description mixin in Wallbox ([@joostlek] - [#112969])
+- Remove entity description mixin in SABnzbd ([@joostlek] - [#112933])
+- Remove entity description mixin in Honeywell Lyric ([@joostlek] - [#112903])
+- Remove entity description mixin in Z-Wave.js ([@joostlek] - [#112979])
+- Remove entity description mixin in Zamg ([@joostlek] - [#112976])
+- Remove entity description mixin in Yalexs BLE ([@joostlek] - [#112974])
+- Remove entity description mixin in Xiaomi Miio ([@joostlek] - [#112973])
+- Remove entity description mixin in Whirlpool ([@joostlek] - [#112972])
+- Remove entity description mixin in VeSync ([@joostlek] - [#112965])
+- Remove entity description mixin in Venstar ([@joostlek] - [#112964])
+- Remove entity description mixin in Vallox ([@joostlek] - [#112963])
+- Remove entity description mixin in Tuya ([@joostlek] - [#112959])
+- Remove entity description mixin in Transmission ([@joostlek] - [#112958])
+- Remove entity description mixin in Tolo ([@joostlek] - [#112951])
+- Remove entity description mixin in Tautulli ([@joostlek] - [#112949])
+- Remove entity description mixin in Steamist ([@joostlek] - [#112944])
+- Remove entity description mixin in Solaredge ([@joostlek] - [#112942])
+- Remove entity description mixin in Smappee ([@joostlek] - [#112941])
+- Remove entity description mixin in SleepIQ ([@joostlek] - [#112940])
+- Remove entity description mixin in Skybell ([@joostlek] - [#112939])
+- Remove entity description mixin in Roomba ([@joostlek] - [#112932])
+- Remove entity description mixin in Ring ([@joostlek] - [#112928])
+- Remove entity description mixin in Roborock ([@joostlek] - [#112930])
+- Remove entity description mixin in Meteo-France ([@joostlek] - [#112907])
+- Remove entity description mixin in Rituals Perfume Genie ([@joostlek] - [#112929])
+- Remove entity description mixin in Renson ([@joostlek] - [#112926])
+- Remove entity description mixin in Pure Energie ([@joostlek] - [#112923])
+- Remove entity description in Point ([@joostlek] - [#112921])
+- Remove entity description mixin in Picnic ([@joostlek] - [#112920])
+- Remove entity description mixin in Pi-hole ([@joostlek] - [#112919])
+- Remove entity description mixin in PECO ([@joostlek] - [#112915])
+- Remove entity description mixin in Onvif ([@joostlek] - [#112912])
+- Remove entity description mixin in Netatmo ([@joostlek] - [#112910])
+- Remove entity description mixin in Melnor ([@joostlek] - [#112906])
+- Remove entity description mixin in Landisgyr Heat Meter ([@joostlek] - [#112901])
+- Remove entity description mixin in Kraken ([@joostlek] - [#112899])
+- Remove entity description mixin in Kostal Plenticore ([@joostlek] - [#112898])
+- Remove entity description mixin in Juicenet ([@joostlek] - [#112892])
+- Use UV instead of PIP in the CI ([@edenhaus] - [#113051])
+- Fix adding Hue bridge manually by IP ([@marcelveldt] - [#113055])
+- Bump xiaomi-ble to 0.27.0 ([@Ernst79] - [#113013])
+- Add ConfigFlow for seventeentrack integration ([@shaiu] - [#111196])
+- Move HomematicIP Cloud fixture to integration test ([@joostlek] - [#112987])
+- Prepare ring update service for deprecation ([@sdb9696] - [#108781])
+- Enable even more SIM ruff rules ([@joostlek] - [#113017])
+- Fix for Hue not applying effect in scene ([@marcelveldt] - [#113057])
+- Fix here_travel_time creating many refresh requests at startup ([@bdraco] - [#113041])
+- Remove entity description mixin in Github ([@joostlek] - [#112771])
+- Ensure wemo discovery is run in a background task ([@bdraco] - [#112665])
+- Remove fixtures from global fixtures folder ([@joostlek] - [#113060])
+- Improve lists in integrations [A] ([@joostlek] - [#113006])
+- Change airthings pressure sensor device_class to atmospheric pressure ([@OndraM] - [#113005])
+- Bump `regenmaschine` to 2024.03.0 ([@bachya] - [#113074])
+- Improve lists in integrations [C-D] ([@joostlek] - [#113072])
+- Improve lists in integrations [B] ([@joostlek] - [#113069])
+- Add icon translations to Version ([@joostlek] - [#112343])
+- Only load services.yaml for integrations that have it ([@balloob] - [#112732])
+- Start tasks eagerly in for async_at_start(ed) ([@bdraco] - [#112802])
+- Migrate dispatcher to create tasks eagerly ([@bdraco] - [#112845])
+- Migrate _async_when_setup to use eager_start ([@bdraco] - [#112872])
+- Ensure that the ring integration always raises HomeAssistantError for user actions ([@sdb9696] - [#109893])
+- Fix race in script stop that could cause async_stop to hang forever ([@bdraco] - [#113089])
+- Fix location data in Teslemetry ([@Bre77] - [#112866])
+- Migrate async_run_job to use eager_start for tasks ([@bdraco] - [#113011])
+- Reduce latency to populate initial HKC bluetooth device state ([@bdraco] - [#113103])
+- Make sonos ssdp discovery callback a callback function ([@bdraco] - [#113107])
+- Make sonos household_coordinator setup a callback function ([@bdraco] - [#113108])
+- Make sonos binary sensor entity creation callback functions ([@bdraco] - [#113109])
+- Add support for run_immediately to async_listen_once ([@bdraco] - [#113020])
+- Run coroutines as eager tasks in async_run_hass_job ([@bdraco] - [#111683])
+- Make cast async_cast_discovered a callback function ([@bdraco] - [#113111])
+- Migrate homekit to use async_at_started ([@bdraco] - [#113102])
+- Make restore state started a callback function ([@bdraco] - [#113110])
+- Use run_immediately for starting discovery at the started event ([@bdraco] - [#113112])
+- Update timezone in supervisor in an eager task ([@bdraco] - [#113113])
+- Migrate scene platform to use async_add_executor_job ([@bdraco] - [#113114])
+- Attach template triggers at start eagerly ([@bdraco] - [#113120])
+- Add run_immediately to the zone core config update async_listen ([@bdraco] - [#113119])
+- Remove unnecessary use of async_run_job in script helper ([@bdraco] - [#113118])
+- Remove unnecessary use of async_add_job in openalpr_cloud ([@bdraco] - [#113116])
+- Await discovery_function in the DiscoveryFlowHandler instead of wrapping it in a task ([@bdraco] - [#113115])
+- Simplify automation startup logic ([@bdraco] - [#113122])
+- Migrate remaining call in check_config helper to use async_get_component ([@bdraco] - [#113123])
+- Import homeassistant trigger platforms in the executor ([@bdraco] - [#113124])
+- Switch the reload helper to use async_get_component ([@bdraco] - [#113126])
+- Add A6 family code for DS2438 1-Wire sensor ([@definitio] - [#112844])
+- Add missing device info to Husqvarna Automower ([@Thomas55555] - [#113090])
+- Add scheduled mode to renault charge mode ([@slyoldfox] - [#105967])
+- Add reconfigure flow to homeworks ([@emontnemery] - [#112419])
+- Validate state_class with last_reset_value_template for mqtt sensors ([@jbouwh] - [#113099])
+- Update vallox_websocket_api to 5.1.1 ([@yozik04] - [#113139])
+- Bump Wandalen/wretry.action from 1.4.8 to 1.4.9 (@dependabot - [#113132])
+- Convert sets to list before passing to the JSON serializer in the registries ([@bdraco] - [#113133])
+- Add the ability to create Debouncer tasks as background tasks ([@bdraco] - [#113128])
+- Add device_id to sentence trigger and external conversation APIs ([@synesthesiam] - [#113094])
+- Remove deprecated `hass.components` usage in device_sun_light_trigger ([@jpbede] - [#111881])
+- Add motion detection enable/disable to ring camera platform ([@sdb9696] - [#108789])
+- Remove entity description mixin in Screenlogic ([@joostlek] - [#112935])
+- Remove deprecated `hass.components` usage in service tests ([@jpbede] - [#111883])
+- Clean up Abode imports ([@joostlek] - [#113138])
+- Improve lists in integrations [E-F] ([@joostlek] - [#113075])
+- Make august activity update a background task ([@bdraco] - [#112652])
+- Make Bluetooth active coordinator debouncers run tasks in the background ([@bdraco] - [#113129])
+- Ensure HKC debounced availability poll does not block startup ([@bdraco] - [#113130])
+- Avoid multiple executor jobs to add wemo devices ([@bdraco] - [#112484])
+- Add icon translations to Lametric ([@joostlek] - [#111854])
+- Add options update listener for Speedtest.Net ([@gjohansson-ST] - [#112108])
+- Add binary_sensor to homeworks ([@emontnemery] - [#112418])
+- Fix Axis unique ID ([@Kane610] - [#112132])
+- Use enum device class in Dexcom ([@joostlek] - [#112423])
+- Add icons to Teslemetry ([@Bre77] - [#112546])
+- Sonos reduce test time ([@PeteRager] - [#111688])
+- Avoid some event loop overhead for ESPHome listeners ([@bdraco] - [#113173])
+- Add "language" to strings.json ([@autinerd] - [#112869])
+- Move Notion coordinator to its own module ([@bachya] - [#112756])
+- Add icon translations to Bond ([@joostlek] - [#111349])
+- Fix System Bridge media source data URL ([@timmo001] - [#112612])
+- Small improvement to test run time ([@bdraco] - [#113175])
+- Remove ZHA IasZone sensor migration ([@TheJulianJES] - [#111893])
+- Add a task name to the config entry retry tasks ([@bdraco] - [#113188])
+- Fix radon precision for Airthings BLE ([@LaStrada] - [#113185])
+- ESPHome: Catch and re-raise client library errors as HomeAssistantErrors ([@jesserockz] - [#113026])
+- Properly mark Plex update sensor when current ([@jjlawren] - [#113197])
+- ESPHome: Add Date Entity support ([@jesserockz] - [#112475])
+- Bump radios to 0.3.1 ([@bdraco] - [#112850])
+- Bump github/codeql-action from 3.24.6 to 3.24.7 (@dependabot - [#113207])
+- Bump Wandalen/wretry.action from 1.4.9 to 1.4.10 (@dependabot - [#113206])
+- Update pytest artifact actions to v4 ([@cdce8p] - [#110906])
+- Improve lists for MQTT integration ([@jbouwh] - [#113184])
+- Migrate one time listeners to use async_run_hass_job ([@bdraco] - [#113179])
+- Bump actions/checkout from 4.1.1 to 4.1.2 (@dependabot - [#113208])
+- Migrate torque to use async_add_hass_job ([@bdraco] - [#113218])
+- Only extract traceback once in system_log ([@bdraco] - [#113201])
+- Simplify entity _attr cached_property getter implementation ([@bdraco] - [#113195])
+- Migrate harmony to use async_run_hass_job ([@bdraco] - [#113178])
+- Ensure apple_tv connect loop is cancelled on shutdown ([@bdraco] - [#113191])
+- Simplify clearing _attr cached_property in entities ([@bdraco] - [#113136])
+- Add diagnostics platform to IPMA ([@dgomes] - [#105697])
+- Update dsmr reader codeowner ([@joostlek] - [#108152])
+- Constrain pycountry to >=23.12.11 ([@bdraco] - [#112849])
+- Remove HassJob wrapping from the DataUpdateCoordinator ([@bdraco] - [#113192])
+- Add processes services to System Bridge ([@timmo001] - [#103564])
+- Improve lists in integrations [I-K] ([@joostlek] - [#113221])
+- Deprecate `homeassistant.components.is_on` function ([@jpbede] - [#111891])
+- Improve lists in integrations [G-H] ([@joostlek] - [#113168])
+- CI: Move pytest-github-actions-annotate-failures to test deps, upgrade ([@akx] - [#104604])
+- Improve lists in integrations [P-Q] ([@joostlek] - [#113236])
+- Run coordinator shutdown eagerly ([@bdraco] - [#113174])
+- Use `single_config_entry` in Accuweather manifest ([@bieniu] - [#111548])
+- Improve lists in integrations [T-U] ([@joostlek] - [#113243])
+- Parameterize some tests in generic_thermostat ([@esciara] - [#105643])
+- Add icon translations to Roku ([@joostlek] - [#112214])
+- Remove remaining async_add_job calls in core ([@bdraco] - [#113217])
+- Improve lists in integrations [V-W] ([@joostlek] - [#113252])
+- Use async_update_reload_and_abort helper in tailwind ([@jpbede] - [#110885])
+- Rework Melissa tests ([@joostlek] - [#113241])
+- Improve lists in integrations [X-Z] ([@joostlek] - [#113253])
+- Improve lists in integrations [L-M] ([@joostlek] - [#113227])
+- Improve lists in integrations [N-O] ([@joostlek] - [#113231])
+- Improve lists in integrations [R-S] ([@joostlek] - [#113233])
+- Split out deCONZ config model ([@Kane610] - [#112851])
+- Add service icons to Bluesound ([@joostlek] - [#113281])
+- Add service icons to Browser ([@joostlek] - [#113283])
+- Add service icons to Command line ([@joostlek] - [#113285])
+- Ensure apple_tv setup retries later on timeout ([@bdraco] - [#113367])
+- Bump aiodns to 3.1.1 ([@bdraco] - [#113371])
+- Bump bluetooth-auto-recovery to 1.4.0 ([@bdraco] - [#113368])
+- Bump aiodiscover to 2.0.0 ([@bdraco] - [#113337])
+- Fix uv cache dir env [ci] ([@cdce8p] - [#113312])
+- Avoid pre-importing config_flows if the integration does not support migration ([@bdraco] - [#113369])
+- Bump ha-ffmpeg to 3.2.0 ([@bdraco] - [#113297])
+- Add default_config to the bootstrap pre-imports ([@bdraco] - [#113263])
+- Migrate solax away from using async_add_job ([@bdraco] - [#113257])
+- Remove async_add_job calls from configurator ([@bdraco] - [#113256])
+- Migrate script integration to create eager tasks ([@bdraco] - [#113189])
+- Add a helper to import modules from the event loop ([@bdraco] - [#113169])
+- Remove async_add_job calls from qwikswitch ([@bdraco] - [#113258])
+- Add service icons to REST command ([@joostlek] - [#113347])
+- Fix group loading too late resulting in incorrect state ([@bdraco] - [#113262])
+- Remove usage of async_add_job in tests ([@bdraco] - [#113259])
+- Add service icons to Unifi ([@joostlek] - [#113360])
+- Bump opower to 0.4.0 ([@tronikos] - [#113390])
+- Bump gassist-text to 0.0.11 ([@tronikos] - [#113386])
+- Bump docker/login-action from 3.0.0 to 3.1.0 (@dependabot - [#113384])
+- Add service icons to Debug py ([@joostlek] - [#113287])
+- Add virtual integration Sacramento Municipal Utility District (SMUD) ([@tronikos] - [#113389])
+- Add service icons to Filter ([@joostlek] - [#113295])
+- Improve loops and lists ([@joostlek] - [#113269])
+- Enable ISC ruff rule ([@joostlek] - [#113270])
+- Remove old migration from lovelace ([@emontnemery] - [#113388])
+- Update ring integration imports ([@sdb9696] - [#113397])
+- Migrate auth to use async_import_module to avoid blocking I/O in the event loop ([@bdraco] - [#113387])
+- Fix telegram_bot doing blocking I/O in the event loop to import platforms ([@bdraco] - [#113383])
+- Migrate sun to use single_config_entry ([@bdraco] - [#113370])
+- Add service icons to Zoneminder ([@joostlek] - [#113366])
+- Fix smartthings doing blocking I/O in the event loop to import platforms ([@bdraco] - [#113382])
+- Add service icons to Wake on LAN ([@joostlek] - [#113362])
+- Add service icons to System Log ([@joostlek] - [#113355])
+- Add service icons to Statistics ([@joostlek] - [#113353])
+- Add service icons to Universal ([@joostlek] - [#113361])
+- Add service icons to Alert ([@joostlek] - [#113274])
+- Add service icons to System Bridge ([@joostlek] - [#113354])
+- Add service icons to Timer ([@joostlek] - [#113358])
+- Add service icons to SMTP ([@joostlek] - [#113351])
+- Add service icons to Schedule ([@joostlek] - [#113350])
+- Add service icons to Recorder ([@joostlek] - [#113344])
+- Add service icons to Snips ([@joostlek] - [#113352])
+- Add service icons to Ombi ([@joostlek] - [#113339])
+- Move modbus check_config to setup, to have access to hass ([@janiversen] - [#112828])
+- Bump hass-nabucasa from 0.78.0 to 0.79.0 ([@ludeeus] - [#113405])
+- Add floor support to areas WebSocket API ([@frenck] - [#113402])
+- Add service icons to Yamaha ([@joostlek] - [#113365])
+- Add service icons to Wemo ([@joostlek] - [#113363])
+- Add service icons to Telegram bot ([@joostlek] - [#113357])
+- Add service icons to Toon ([@joostlek] - [#113359])
+- Add service icons to Telegram ([@joostlek] - [#113356])
+- Add service icons to Route53 ([@joostlek] - [#113349])
+- Add service icons to RFLink ([@joostlek] - [#113348])
+- Add service icons to Remember the milk ([@joostlek] - [#113345])
+- Add service icons to Xiaomi Miio ([@joostlek] - [#113364])
+- Add service icons to QVR Pro ([@joostlek] - [#113343])
+- Add service icons to Python Scripts ([@joostlek] - [#113342])
+- Add service icons to Pilight ([@joostlek] - [#113341])
+- Add service icons to nx584 ([@joostlek] - [#113338])
+- Add service icons to Nissan Leaf ([@joostlek] - [#113336])
+- Add service icons to Netatmo ([@joostlek] - [#113335])
+- Add service icons to Media Extractor ([@joostlek] - [#113329])
+- Add service icons to Microsoft Face ([@joostlek] - [#113330])
+- Add service icons to Minio ([@joostlek] - [#113331])
+- Add service icons to Ness alarm ([@joostlek] - [#113333])
+- Add service icons to Matrix ([@joostlek] - [#113328])
+- Add service icons to Lovelace ([@joostlek] - [#113327])
+- Add service icons to Logi circle ([@joostlek] - [#113326])
+- Add service icons to Local file ([@joostlek] - [#113323])
+- Add service icons to Keyboard ([@joostlek] - [#113322])
+- Add service icons to Kef ([@joostlek] - [#113321])
+- Add service icons to Keba ([@joostlek] - [#113320])
+- Add service icons to Iperf3 ([@joostlek] - [#113319])
+- Add service icons to Intent Script ([@joostlek] - [#113318])
+- Add service icons to Input Text ([@joostlek] - [#113317])
+- Add service icons to Input Select ([@joostlek] - [#113316])
+- Add service icons to Input button ([@joostlek] - [#113313])
+- Add service icons to Input Number ([@joostlek] - [#113315])
+- Add service icons to IHC ([@joostlek] - [#113311])
+- Add service icons to HTML5 ([@joostlek] - [#113309])
+- Add service icons to Homematic ([@joostlek] - [#113308])
+- Add service icons to Home Assistant ([@joostlek] - [#113307])
+- Add service icons to Habitica ([@joostlek] - [#113303])
+- Add service icons to Geniushub ([@joostlek] - [#113301])
+- Add service icons to Generic Thermostat ([@joostlek] - [#113300])
+- Add service icons to Frontend ([@joostlek] - [#113299])
+- Add service icons to Freebox ([@joostlek] - [#113298])
+- Add service icons to Ffmpeg ([@joostlek] - [#113294])
+- Add service icons to Evohome ([@joostlek] - [#113293])
+- Add service icons to Foursquare ([@joostlek] - [#113296])
+- Add service icons to Envisalink ([@joostlek] - [#113292])
+- Add service icons to HDMI CEC ([@joostlek] - [#113304])
+- Add service icons to Ebusd ([@joostlek] - [#113291])
+- Add service icons to Downloader ([@joostlek] - [#113289])
+- Add service icons to Dominos ([@joostlek] - [#113288])
+- Add service icons to Logbook ([@joostlek] - [#113324])
+- Add service icons to Logger ([@joostlek] - [#113325])
+- Add service icons to Input Datetime ([@joostlek] - [#113314])
+- Add service icons to Conversation ([@joostlek] - [#113286])
+- Add service icons to DuckDNS ([@joostlek] - [#113290])
+- Add service icons to Agent DVR ([@joostlek] - [#113273])
+- Bump tololib to 1.1.0 ([@MatthiasLohr] - [#113268])
+- Add service icons to Advantage air ([@joostlek] - [#113272])
+- Add service icons to Channels ([@joostlek] - [#113284])
+- Add service icons to Modbus ([@joostlek] - [#113332])
+- Add service icons to Backup ([@joostlek] - [#113277])
+- Add service icons to Bayesian ([@joostlek] - [#113278])
+- Add service icons to Bluetooth Tracker ([@joostlek] - [#113282])
+- Add service icons to History Stats ([@joostlek] - [#113306])
+- Add service icons to Group ([@joostlek] - [#113302])
+- Add service icons to REST ([@joostlek] - [#113346])
+- Add service icons to Amcrest ([@joostlek] - [#113276])
+- Add service icons to Blackbird ([@joostlek] - [#113280])
+- Add service icons to Persistent Notification ([@joostlek] - [#113340])
+- Deprecate the map integration ([@emontnemery] - [#113215])
+- Enable PERF ruff rules ([@joostlek] - [#113408])
+- Fix icon mistakes ([@joostlek] - [#113420])
+- Add service icons to Utility meter ([@joostlek] - [#113419])
+- Add service icons to Demo ([@joostlek] - [#113414])
+- Bump weatherflow_cloud backing lib v0.2.13 ([@jeeftor] - [#113181])
+- Add service icons to Scene ([@joostlek] - [#113418])
+- Add service icons to ADS ([@joostlek] - [#113412])
+- Add UniFi Protect service to remove privacy zones ([@AngellusMortis] - [#111292])
+- Add icon translations to Unifi protect ([@joostlek] - [#112332])
+- Add floors to service target ([@frenck] - [#110850])
+- add switch platform for tolo ([@MatthiasLohr] - [#113440])
+- Allow entity platforms without entity_component in icon validation ([@joostlek] - [#113422])
+- Add service icons to Fan ([@joostlek] - [#113415])
+- Fix alarm control panel icons ([@joostlek] - [#113413])
+- Add service icons to Abode ([@joostlek] - [#113411])
+- Add icon translations to ZHA ([@joostlek] - [#112368])
+- Fix calling sync api in counter/ffmpeg/device_tracker tests ([@bdraco] - [#113441])
+- Deprecate async_run_job and async_add_job ([@bdraco] - [#113260])
+- Add service icons to Climate ([@joostlek] - [#113409])
+- Add aroma therapy select entity for tolo integration ([@MatthiasLohr] - [#113442])
+- Revert "Remove unused test helper mock_area_registry" ([@jbouwh] - [#113453])
+- Fix hassfest icons check for notify and image_processing ([@jbouwh] - [#113446])
+- Add aliases support to floor registry WebSocket API ([@frenck] - [#113401])
+- Support lutron transition time and flash for lights ([@wilburCforce] - [#109185])
+- Change modbus integration to use async library calls ([@janiversen] - [#113450])
+- Add service icons to Notify ([@joostlek] - [#113417])
+- Add service icons to Image processing ([@joostlek] - [#113416])
+- Bump aiooncue to 0.3.7 ([@PeteRager] - [#113451])
+- Add icon translations to myuplink ([@astrandb] - [#111466])
+- Construct storage data in the executor to avoid blocking the event loop ([@bdraco] - [#113465])
+- Reduce overhead to save the larger registries ([@bdraco] - [#113462])
+- Avoid creating another ssl context in cert_expiry ([@bdraco] - [#113467])
+- Bump aiodhcpwatcher to 1.0.0 ([@bdraco] - [#113469])
+- Reduce script overhead by avoiding creation of many tasks ([@bdraco] - [#113183])
+- Fix scene integration doing blocking I/O in the event loop to import platforms ([@bdraco] - [#113391])
+- Fix delayed registry check to only using the short delay at running ([@bdraco] - [#113471])
+- Start script runs eagerly ([@bdraco] - [#113190])
+- Remove unused tts fixture ([@emontnemery] - [#113480])
+- Move loading of ha-av to the executor ([@bdraco] - [#113485])
+- Remove supports_encryption check from mobile_app ([@bdraco] - [#113490])
+- Improve State docstring ([@emontnemery] - [#113501])
+- Avoid multiple context switches to setup a sonos speaker ([@bdraco] - [#113378])
+- Address late review on adding an error sensor to Husqvarna Automower ([@Thomas55555] - [#113242])
+- Add missing mystrom sensor ([@slyoldfox] - [#113225])
+- Remove old update unique id function from deCONZ binary sensor ([@Kane610] - [#112536])
+- Create more relevant names for myuplink DeviceInfo ([@astrandb] - [#111502])
+- Add icon translations to Moon ([@dougiteixeira] - [#111386])
+- Use `single_config_entry` in KNX manifest ([@farmio] - [#112526])
+- Remove OpenCV integration ([@thecode] - [#113455])
+- Ensure TurboJPEG is imported in the executor ([@bdraco] - [#113504])
+- Use on state icons by default in Balboa spa integration ([@snoack] - [#111911])
+- Add Ring Intercom support ([@cosimomeli] - [#109819])
+- Add theme color support to labels ([@frenck] - [#113404])
+- Add category registry ([@frenck] - [#110897])
+- create issues for modbus config errors ([@janiversen] - [#113431])
+- Speed up ffmpeg setup ([@bdraco] - [#113496])
+- Filter out irrelevant entities on SMO20 devices in myuplink ([@astrandb] - [#113493])
+- Remove Sonos migrations ([@joostlek] - [#113506])
+- Add diagnostics platform to Fastdotcom ([@erwindouna] - [#111525])
+- Remove modbus create_issue from init ([@janiversen] - [#113510])
+- Add Ring Intercom open door button ([@cosimomeli] - [#113514])
+- Add icon translations to Sonos ([@joostlek] - [#112235])
+- Add missing icon for Unifi protect service ([@joostlek] - [#113508])
+- Protect SupervisorIssues.update method ([@mdegat01] - [#113425])
+- Bump opower to 0.4.1 ([@drewclauson] - [#113509])
+- Remove repetitive words in comments and docstrings ([@soonsouth] - [#113529])
+- Add Fyta integration ([@dontinelli] - [#110816])
+- Use Volume Flow Rate device class in BTHome ([@joostlek] - [#113530])
+- Freeze timezone in bmw_connected_drive tests ([@Thomas55555] - [#113533])
+- Fix MyUplink tests ([@joostlek] - [#113534])
+- Support configuring Axis to use HTTPS ([@Kane610] - [#113271])
+- Use Volume Flow Rate device class in DROP connect ([@joostlek] - [#113528])
+- Use Volume Flow Rate device class in Opentherm gw ([@joostlek] - [#113531])
+- Do not allow modbus config without entities ([@janiversen] - [#113516])
+- Use single_config_entry in jellyfin manifest ([@ctalkington] - [#113202])
+- Import and create pyudev for usb in the executor ([@bdraco] - [#113478])
+- Remove old update of sensor unique id in deCONZ ([@Kane610] - [#113527])
+- Remove old update of number unique id in deCONZ ([@Kane610] - [#113524])
+- Remove old update of group unique id in deCONZ ([@Kane610] - [#112533])
+- Add missing continue in legacy recorder history function ([@emontnemery] - [#113535])
+- fix mqtt siren test asserts ([@autinerd] - [#113550])
+- fix homekit test asserts ([@autinerd] - [#113549])
+- Speed up loading sun ([@bdraco] - [#113544])
+- Revert "Avoid pre-importing config_flows if the integration does not … ([@gjohansson-ST] - [#113553])
+- Add missing async_block_till_done to jellyfin test_invalid_auth test ([@bdraco] - [#113556])
+- Avoid calling entry.async_migrate in sonarr tests ([@bdraco] - [#113557])
+- Remove danielperna84 as codeowner ([@danielperna84] - [#109662])
+- Add translations for devolo Home Network exceptions ([@Shutgun] - [#105755])
+- Restore group config_flow pre-import ([@bdraco] - [#113558])
+- Send keep-alive frames in image proxy stream ([@OnFreund] - [#113542])
+- Add profiler set_asyncio_debug service ([@bdraco] - [#113447])
+- Remove group integration platforms that use the default states ([@bdraco] - [#113562])
+- Fix lingering hassio issues test ([@jbouwh] - [#113569])
+- Cleanup some circular imports in group ([@bdraco] - [#113554])
+- Add ruff B005, B015, B032 and fix occurrences ([@autinerd] - [#113543])
+- Improve typing of State.as_compressed_state ([@emontnemery] - [#113540])
+- Move group config flow pre-import to its init ([@bdraco] - [#113564])
+- Reduce bottlenecks in bootstrap by ordering the setup of integrations ([@bdraco] - [#113570])
+- Fix unifiprotect tests for ruff B018 ([@autinerd] - [#113584])
+- Fix freedompro tests for ruff B018 ([@autinerd] - [#113583])
+- Add additional sensors to Teslemetry ([@Bre77] - [#112555])
+- Add battery discharge sensor to ViCare integration ([@CFenner] - [#113502])
+- Shelly config flow test wait for tasks to finish ([@thecode] - [#113588])
+- Use async_create_task in recorder init tests ([@bdraco] - [#113586])
+- Add JVC Projector Sensors ([@msavazzi] - [#108949])
+- Enable ruff RUF005 and fix occurrences ([@autinerd] - [#113589])
+- Remove unnecessary method in UniFi entity loader ([@Kane610] - [#113597])
+- Axis use entity description in switch platform ([@Kane610] - [#113595])
+- Clean up unneeded ruff noqa directives ([@autinerd] - [#113616])
+- Remove deprecated `hass.components` from mysensors ([@jpbede] - [#113611])
+- Freeze time on profile test ([@jbouwh] - [#113618])
+- Add a guard to handle unhashable platforms in config ([@bdraco] - [#113607])
+- Avoid creating tasks in homeassistant_alerts when the debouncer will not fire ([@bdraco] - [#113580])
+- Gather loading platforms in async_process_component_config ([@bdraco] - [#113573])
+- Fix vulcan calendar offset ([@Antoni-Czaplicki] - [#113604])
+- Add ruff rules PIE790, PIE794, PIE807, PIE810 ([@autinerd] - [#113617])
+- Remove deprecated `hass.components` from legacy device tracker platform ([@jpbede] - [#113612])
+- Fix race in removing modified devices from the entity registry ([@bdraco] - [#113623])
+- snmp: Better sensor support to resolve previous issues ([@lextm] - [#113624])
+- Generate HomeAssistantError message from English translations ([@jbouwh] - [#113305])
+- Add ruff rule PIE804 ([@autinerd] - [#113620])
+- Remove ignore for ruff PLC0208 ([@autinerd] - [#113537])
+- Use `mock_platform` for button entity component tests instead of `hass.components` ([@jpbede] - [#113627])
+- Add new fields from UniFi Protect v3 ([@AngellusMortis] - [#113631])
+- Run apple_tv shutdown eagerly at the stop event ([@bdraco] - [#113637])
+- Run shelly coordinator shutdown immediately at the stop event ([@bdraco] - [#113633])
+- Shutdown config entry manager immediately at the stop event ([@bdraco] - [#113632])
+- Shutdown homekit eagerly at the stop event ([@bdraco] - [#113639])
+- Consolidate ruff PL and Q rules ([@autinerd] - [#113555])
+- Run functions from ssdp listeners immediately ([@bdraco] - [#113634])
+- Fix zeroconf shutting down too early ([@bdraco] - [#113638])
+- Run entity component shutdown immediately ([@bdraco] - [#113635])
+- Create config entry async_on_unload tasks eagerly ([@bdraco] - [#113626])
+- Bump snapcast to 2.3.6 ([@luar123] - [#113606])
+- Cleanup sonos shutdown process ([@bdraco] - [#113654])
+- Deprecate UniFi Protect HDR switch and package sensor ([@AngellusMortis] - [#113636])
+- Add ruff rule PIE800 ([@autinerd] - [#113619])
+- Eagerly shutdown unifiprotect at the stop event ([@bdraco] - [#113655])
+- Run yalexs_ble shutdown with run_immediately ([@bdraco] - [#113653])
+- Eagerly shutdown homekit_controller at the stop event ([@bdraco] - [#113650])
+- Run bond shutdown listener with run_immediately ([@bdraco] - [#113657])
+- Save bluetooth passive data eagerly at the stop event ([@bdraco] - [#113648])
+- Add run_immediately to bluetooth listeners ([@bdraco] - [#113659])
+- Add tests of homeworks binary sensor ([@emontnemery] - [#113577])
+- Add tests of homeworks light ([@emontnemery] - [#113579])
+- Add ruff rule PIE808 ([@autinerd] - [#113621])
+- Add tests of homeworks button ([@emontnemery] - [#113578])
+- Add tests of homeworks __init__ ([@emontnemery] - [#113581])
+- Replace pylint pointless-statement with ruff B018 ([@autinerd] - [#113582])
+- Improve debug logging in Tankerkoenig ([@mib1185] - [#113674])
+- Remove deprecated `hass.components` from image_processing platform ([@jpbede] - [#113613])
+- Add Ruff LOG rules ([@autinerd] - [#113677])
+- Freeze time on zwave_js update test ([@jbouwh] - [#113625])
+- Re-ignore Ruff rule PLC1901 ([@autinerd] - [#113675])
+- Add WAN port connection control to TP-Link Omada gateways ([@MarkGodwin] - [#111431])
+- Use `mock_platform` for event entity component tests instead of `hass.components` ([@jpbede] - [#113667])
+- Migrate stream listeners to use run_immediately and eager tasks ([@bdraco] - [#113660])
+- Remove deprecated `hass.components` from network helper function ([@jpbede] - [#113615])
+- Remove deprecated `hass.components` from withings webhook tests ([@jpbede] - [#113687])
+- Add run_immediately to usb start/stop listeners ([@bdraco] - [#113658])
+- Move ESPHome disconnects to the close event ([@bdraco] - [#113652])
+- Run entity registry write_unavailable_states immediately at start ([@bdraco] - [#113647])
+- Run registry cleanup listeners immediately ([@bdraco] - [#113646])
+- Migrate registry for labels and categories to run_immediately ([@bdraco] - [#113645])
+- Start and stop template cache watcher to run_immediately ([@bdraco] - [#113644])
+- Cache late imported async_get_exception_message for HomeAssistantError ([@jbouwh] - [#113683])
+- Enable Ruff RSE ([@autinerd] - [#113695])
+- Improve scaffold test_config_flow ([@jwillemsen] - [#113229])
+- Adjust config flow pre-import comment in group ([@bdraco] - [#113702])
+- Migrate isy994 listeners to use run_immediately ([@bdraco] - [#113661])
+- Bump xiaomi-ble to 0.27.1 ([@Ernst79] - [#113686])
+- Bump dawidd6/action-download-artifact from 3.1.2 to 3.1.3 (@dependabot - [#113720])
+- Move legacy device_tracker setup to a tracked task ([@bdraco] - [#113715])
+- Run august stop listener with run_immediately ([@bdraco] - [#113729])
+- Move legacy notify setup to use tracked tasks ([@bdraco] - [#113716])
+- Move legacy stt setup to use tracked tasks ([@bdraco] - [#113718])
+- Move legacy tts setup to use tracked tasks ([@bdraco] - [#113717])
+- Add first batch of Ruff PT rules ([@autinerd] - [#113665])
+- Get HomeAssistantError message from translation cache only ([@jbouwh] - [#113688])
+- Get ServiceValidationError message from translation cache only ([@jbouwh] - [#113704])
+- Run dhcp listeners with run_immediately ([@bdraco] - [#113726])
+- Bump apprise to 1.7.4 ([@caronc] - [#113629])
+- Add Downloader config flow, including tests ([@erwindouna] - [#98722])
+- Allow configuring Starlink sleep schedule ([@boswelja] - [#103057])
+- Add additional buttons to OctoPrint ([@Xitee1] - [#103139])
+- Add camera in use and pending reboot binary sensors to System Bridge ([@timmo001] - [#104095])
+- Log cannot connect exception in Tedee config flow ([@zweckj] - [#113740])
+- Patch Discovery timeout in govee light local ([@joostlek] - [#113692])
+- Add support for Tuya dimmer module ([@mjh1] - [#113741])
+- Add config flow to Rova ([@GidoHakvoort] - [#113596])
+- Axis use entity description light platform ([@Kane610] - [#113602])
+- Remove deprecated `hass.components` from netatmo webhook tests ([@jpbede] - [#113691])
+- Add WebSocket support for handling labels on device registry ([@frenck] - [#113758])
+- Add WebSocket support for assigning labels to entities ([@frenck] - [#113757])
+- Streamline naming in deCONZ integration ([@Kane610] - [#111977])
+- Add WebSocket support for handling labels on areas registry ([@frenck] - [#113755])
+- Add labels to service target ([@frenck] - [#113753])
+- Run websocket shutdown listener with run_immediately ([@bdraco] - [#113727])
+- Refactor integration startup time to show wall clock time ([@bdraco] - [#113707])
+- Bump PyMetno to 0.12.0 ([@bdraco] - [#113777])
+- Start live history/logbook with eager tasks ([@bdraco] - [#113779])
+- Bump dawidd6/action-download-artifact from 3.1.3 to 3.1.4 (@dependabot - [#113788])
+- Bump github/codeql-action from 3.24.7 to 3.24.8 (@dependabot - [#113789])
+- Require an icon for a service ([@joostlek] - [#112373])
+- Create tasks eagerly with core create_task ([@bdraco] - [#113781])
+- Align Comelit climate code to humidifier ([@chemelli74] - [#113747])
+- Migrate restore_state shutdown to use run_immediately ([@bdraco] - [#113786])
+- Use async api in template weather to create tasks ([@bdraco] - [#113784])
+- Use async api in yamaha_musiccast to create tasks ([@bdraco] - [#113785])
+- Use async api in generic_thermostat to create tasks ([@bdraco] - [#113783])
+- Call async task creation api in apple_tv ([@bdraco] - [#113782])
+- Start energy load platform task eagerly ([@bdraco] - [#113778])
+- Bump sunweg to 2.1.1 ([@rokam] - [#113767])
+- Enable Ruff rule PT007 ([@autinerd] - [#113764])
+- Update Home Assistant base image to 2024.03.0 ([@frenck] - [#113797])
+- Add WS command cloud/remove_data ([@emontnemery] - [#109821])
+- Add Room Audio Control to Control4 Integration ([@nalin29] - [#87821])
+- Simplify UV install in CI ([@edenhaus] - [#113803])
+- Allow retries on communication exceptions for Aurora ABB Powerone solar inverter ([@davet2001] - [#104492])
+- Bump bthome-ble to 3.8.1 ([@Ernst79] - [#113800])
+- Migrate Harmony to has entity name ([@joostlek] - [#104737])
+- Find referenced floors in automations & scripts ([@frenck] - [#113802])
+- Add binary sensor platform for Husqvarna Automower ([@Thomas55555] - [#113248])
+- Add device_tracker platform for husqvarna_automower ([@Thomas55555] - [#111403])
+- Find referenced labels in automations & scripts ([@frenck] - [#113812])
+- Revert get_model from myuplink lib ([@astrandb] - [#113811])
+- Do not patch `asyncio.timeout` in govee light local test ([@jpbede] - [#113819])
+- Fix flakey profiler object growth tests ([@bdraco] - [#113825])
+- Fix duplicate events in live logbook ([@bdraco] - [#113828])
+- Remove deprecated `hass.components` from http test ([@jpbede] - [#113823])
+- Remove deprecated `hass.components` from cloud client test ([@jpbede] - [#113820])
+- Remove deprecated `hass.components` from person test ([@jpbede] - [#113822])
+- Only wait for import flows in setup of there is a config flow ([@bdraco] - [#113780])
+- Fix template sensor test relying on event bus debug logging ([@bdraco] - [#113842])
+- Migrate samsungtv stop to use run_immediately ([@bdraco] - [#113834])
+- Migrate camera listeners to use run_immediately ([@bdraco] - [#113840])
+- Only create one executor job to shutdown wemo ([@bdraco] - [#113836])
+- Migrate legacy device_tracker shutdown to use run_immediately ([@bdraco] - [#113835])
+- Use `mock_platform` for light entity component tests instead of `hass.components` ([@jpbede] - [#113845])
+- Remove deprecated `hass.components` from vilfo config flow tests ([@jpbede] - [#113821])
+- Update actions/cache to 4.0.2 ([@cdce8p] - [#113817])
+- Upgrade whirlpool integration to add shared appliances and allow brand selection ([@NodeJSmith] - [#111687])
+- Reduce overhead to write dlna_dmr state ([@bdraco] - [#113776])
+- Avoid expensive db queries at startup to check if data is migrated ([@bdraco] - [#113773])
+- Bump aioesphomeapi to 23.2.0 ([@jesserockz] - [#113854])
+- Add icon translations to Github ([@joostlek] - [#111614])
+- Fix flapping device tracker test ([@bdraco] - [#113859])
+- Fix flapping stream hls test ([@bdraco] - [#113858])
+- Remove deprecated `hass.components` from group light tests and use fixture ([@jpbede] - [#113862])
+- Avoid creating unneeded Context and Event objects when firing events ([@emontnemery] - [#113798])
+- Deprecate cloud tts gender ([@MartinHjelmare] - [#112256])
+- Remove Amcrest camera unique id migration ([@joostlek] - [#113870])
+- Bump bluecurrent-api to 1.2.2 ([@Floris272] - [#110483])
+- Bump numato-gpio to v0.13.0 ([@clssn] - [#113182])
+- Add floor template functions ([@frenck] - [#110847])
+- Make temperature a required parameter for tado climate service ([@alinbalutoiu] - [#113872])
+- Update Amcrest services.yaml ([@tuday2] - [#111161])
+- Change quotes in cloud translations ([@piitaya] - [#113871])
+- Add matter device serial number ([@MartinHjelmare] - [#113878])
+- Provide better debug capabilities for the Traccar Server integration ([@ludeeus] - [#113868])
+- Remove obsolete issue strings in WAQI ([@joostlek] - [#113884])
+- YoLink fix cover incorrect state ([@matrixd2] - [#104975])
+- Bump aioshelly to 8.2.0 ([@chemelli74] - [#113886])
+- Bump islamic_prayer_times to 0.0.12 ([@uchagani] - [#113744])
+- Fix duplicate events in live history ([@bdraco] - [#113896])
+- Add State.last_reported ([@emontnemery] - [#113511])
+- Small cleanup to unifiprotect subscriptions ([@bdraco] - [#113901])
+- Fix flakey test_reading_yaml_config test ([@bdraco] - [#113902])
+- Fix system_info importing hassio in the event loop ([@bdraco] - [#113903])
+- Cache parsing the url for the device registry ([@bdraco] - [#113910])
+- Use faster time compare in history and live logbook ([@bdraco] - [#113897])
+- Reduce overhead to clear cache in button state ([@bdraco] - [#113895])
+- Refactor rate limit helper to track time in seconds ([@bdraco] - [#113898])
+- Use intersection for determine_script_action ([@bdraco] - [#113915])
+- Reduce overhead to construct and validate entity service schema ([@bdraco] - [#113920])
+- ESPHome: Add Time Entity support ([@jesserockz] - [#113852])
+- Fetch MaxLengthExceeded exception mesage from the translation cache ([@jbouwh] - [#113904])
+- Fetch ServiceNotFound message from translation cache ([@jbouwh] - [#113893])
+- Load system info with base functionality ([@bdraco] - [#113923])
+- Add run_immediately to the trace stop listener ([@bdraco] - [#113922])
+- Only calculate native value once per update in systemmonitor ([@bdraco] - [#113921])
+- Add a fast path for async_get_platform ([@bdraco] - [#113917])
+- Enable Ruff PT023, disable PT011, PT012, PT018 ([@autinerd] - [#113900])
+- Upgrade Modbus quality scale to platinum ([@janiversen] - [#113482])
+- Add diagnostics to Husqvarna Automower ([@Thomas55555] - [#111857])
+- modbus: Remove PARALLEL_UPDATES from base_platform ([@janiversen] - [#113928])
+- Split light fixture from implementation to only import when fixture is actually used ([@jpbede] - [#113892])
+- Add transmission-integration path and protocol ([@idelsink] - [#104334])
+- Remove AUX heating from demo climate ([@emontnemery] - [#113929])
+- Add Reolink hdd/sd card storage sensor ([@starkillerOG] - [#110961])
+- Bump Wandalen/wretry.action from 1.4.10 to 2.0.0 (@dependabot - [#113888])
+- Remove deprecated `hass.components` from flux switch tests and use fixture ([@jpbede] - [#113875])
+- Add Bluetooth support to La Marzocco integration ([@zweckj] - [#108287])
+- Add availability to Scrape config flow ([@gjohansson-ST] - [#105516])
+- Add select platform to Husqvarna Automower ([@Thomas55555] - [#113816])
+- Remove unrelated patching from scrape test ([@bdraco] - [#113951])
+- Add support for Shelly RPC devices custom TCP port ([@chemelli74] - [#110860])
+- Add Shelly RGB/RGBW profiles support ([@thecode] - [#113808])
+- Fix grammar in async_get_platform comment ([@bdraco] - [#113948])
+- Avoid writing HomeKit state to disk unless its missing ([@bdraco] - [#111970])
+- Improve user error messages for generic camera ([@davet2001] - [#112814])
+- Add guard to HomeAssistantError `__str__` method to prevent a recursive loop ([@jbouwh] - [#113913])
+- Bump pyenphase to 1.20.0 ([@catsmanac] - [#113963])
+- Fix argument name in async_update_ha_state warning message ([@MrXANA91] - [#113969])
+- Pre import mobile app platforms to avoid having to wait on them ([@bdraco] - [#113966])
+- Deprecate the panel_iframe integration ([@emontnemery] - [#113410])
+- Group wemo platform forwards to reduce overhead ([@bdraco] - [#113972])
+- Return default repairs flow for cloud TTS issues ([@ludeeus] - [#113981])
+- Correct HomeAssistantError __str__ implementation and test ([@jbouwh] - [#113991])
+- Update JVC Projector polling time to be more responsive for automations ([@msavazzi] - [#113765])
+- Add binary sensor platform to microBees ([@FedDam] - [#111190])
+- Add icon translations to Wiz ([@joostlek] - [#112358])
+- Add reformatting commits to .git-blame-ignore-revs ([@akx] - [#110481])
+- Add cover platform to microBees ([@FedDam] - [#111135])
+- Axis use entity descripton binary sensor platform ([@Kane610] - [#113705])
+- Remember entered IP when error happend while setting up HomeWizard ([@DCSBL] - [#113815])
+- Remove hourly weather entity from Aemet ([@gjohansson-ST] - [#110764])
+- Remove hourly weather entity from NWS ([@gjohansson-ST] - [#112503])
+- Add new HomeWizard Energy Socket to tests ([@DCSBL] - [#113406])
+- Use uv instead of pip on production images ([@edenhaus] - [#112496])
+- Remove deprecated `hass.components` from frontend tests ([@jpbede] - [#114011])
+- Remove deprecated `hass.components` from scene tests ([@jpbede] - [#114014])
+- Remove deprecated `hass.components` from zeroconf tests ([@jpbede] - [#114013])
+- Remove deprecated `hass.components` from conversation tests and use light setup fixture ([@jpbede] - [#114012])
+- Rename device to api in Axis integration ([@Kane610] - [#113965])
+- Tweak marking private methods in UniFi, no need to mark inner functio… ([@Kane610] - [#113964])
+- Speed up recorder startup by making schema query read only ([@bdraco] - [#113987])
+- Define and use entity description in Axis entity base class ([@Kane610] - [#114007])
+- Add home battery storage entities for enphase_envoy ([@catsmanac] - [#114015])
+- Add missing is_closed property to powerview tilt only entities ([@kingy444] - [#113792])
+- Improve deCONZ test_non_color_light_reports_color ([@Kane610] - [#114021])
+- Add ecobee indefinite away preset, remove unusable/broken presets ([@alexsydell] - [#108636])
+- Update pytest warnings filter ([@cdce8p] - [#114036])
+- Update byte string formatting (2) ([@cdce8p] - [#114039])
+- Update empty line formatting after module docstring ([@cdce8p] - [#114040])
+- Move powerview timeout logic to the upstream api ([@kingy444] - [#113984])
+- Improve axis tests ([@Kane610] - [#114035])
+- Combine recorder and frontend bootstrap step ([@bdraco] - [#113985])
+- Add Powerview Type 11 ([@kingy444] - [#114047])
+- Move setup of legacy device_tracker see service to legacy setup task ([@bdraco] - [#114043])
+- Fix missing linked device on Overkiz integration ([@Tronix117] - [#114006])
+- Load light profiles in a task to avoid delaying platform setup ([@bdraco] - [#114038])
+- Smhi add reconfigure step to config flow ([@gjohansson-ST] - [#114044])
+- Fix flakey stream hls test ([@bdraco] - [#114046])
+- Fix after deps not being considered for integrations before stage 1 ([@bdraco] - [#114045])
+- Fix building images for nightlies ([@edenhaus] - [#114054])
+- Show correct ipv6 address in System Monitor ([@gjohansson-ST] - [#114024])
+- Reduce sqlalchemy reflection overhead at recorder setup time ([@bdraco] - [#113989])
+- Migrate UpdateCoordinator to its own file in aurora_abb_powerone ([@davet2001] - [#114053])
+- Create registry matrix to run publishing for images in parallel ([@edenhaus] - [#114060])
+- Enable turn_on / turn_off features for HitachiAirToAirHeatPump in Overkiz ([@iMicknl] - [#112990])
+- Bump pyrisco to 0.6.0 ([@OnFreund] - [#114063])
+- Fix bug in roon media player to use correct 'seek position' while playing a track. ([@pavoni] - [#113999])
+- Bump holidays to 0.45 ([@gjohansson-ST] - [#114069])
+- Add Rachio smart hose timer support ([@brg468] - [#107901])
+- Add Lutron Serena tilt only wood blinds ([@wujiaqi] - [#113791])
+- Add Risco system binary sensors ([@OnFreund] - [#114062])
+- Use a constant to reference `homeassistant` domain ([@jbouwh] - [#113889])
+- Fix setup timings when config entry platform loads are not awaited ([@bdraco] - [#113959])
+- Refactor recorder states tests ([@bdraco] - [#114073])
+- Catch Mill timeout error ([@joostlek] - [#114068])
+- Fix Shelly WallDisplay device power ([@thecode] - [#114071])
+- Centralize loading Axis entities ([@Kane610] - [#114018])
+- Avoid creating inner function in EntityComponent setup ([@bdraco] - [#114050])
+- Add more sensors to aurora_abb_powerone ([@davet2001] - [#114074])
+- Add reconfigure step to holiday ([@gjohansson-ST] - [#114057])
+- Migrate nut to use aionut ([@bdraco] - [#114078])
+- Allow retry during Config Flow in Advantage Air ([@Bre77] - [#114083])
+- Small performance improvement to template expand ([@bdraco] - [#114086])
+- Optimize loading of translations ([@bdraco] - [#114089])
+- Bump gcal-sync to 6.0.4 ([@allenporter] - [#114085])
+- Bump tplink_omada to 1.3.12 for ER7212PC support ([@MarkGodwin] - [#114077])
+- Add vehicle config to coordinator to fix bug in Teslemetry ([@Bre77] - [#113850])
+- Improve blue current integration code ([@Floris272] - [#114004])
+- Add more sensors to aurora_abb_powerone (part 2) ([@davet2001] - [#114097])
+- Add reconfigure flow to Axis integration ([@Kane610] - [#114067])
+- Fix flapping device_tracker test_bad_platform test ([@bdraco] - [#114102])
+- Tado: fix 113982 ([@niro1987] - [#114109])
+- Fix launch library translation keys ([@LarsStegman] - [#114093])
+- Replace if in range check ([@cdce8p] - [#114107])
+- Bump xiaomi-ble to 0.28.0 ([@Ernst79] - [#114120])
+- Ensure discovery can setup legacy device tracker platforms ([@bdraco] - [#114101])
+- Fetch ServiceNotFound message from translation cache and fix super ([@jbouwh] - [#114084])
+- Use TypeVarTuple for add_job and run_job methods ([@cdce8p] - [#114122])
+- Fix google assistant diagnostics test ([@jbouwh] - [#114111])
+- Cancel config entry setup retry at shutdown ([@bdraco] - [#114124])
+- Bump aionut to 4.1.0 ([@bdraco] - [#114125])
+- Implement diagnostics platform for APCUPSD ([@yuxincs] - [#112284])
+- Bump aionut to 4.2.1 ([@bdraco] - [#114132])
+- Bump yolink-api to 0.4.1 fix water depth sensor error when device is not initialize ([@matrixd2] - [#113994])
+- Bump aionut to 4.3.2 ([@bdraco] - [#114142])
+- Covert system_log services to be callbacks ([@bdraco] - [#114143])
+- Add repair for UniFi Protect if RTSP is disabled on camera ([@AngellusMortis] - [#114088])
+- Bump github/codeql-action from 3.24.8 to 3.24.9 (@dependabot - [#114151])
+- Bump Wandalen/wretry.action from 2.0.0 to 2.1.0 (@dependabot - [#114150])
+- Bump vilfo-api-client to 0.5.0 ([@ManneW] - [#114082])
+- Update pre-commit to 3.7.0 ([@cdce8p] - [#114154])
+- Use uv and sort jobs in builder.yml ([@edenhaus] - [#114153])
+- Update pytest-asyncio to 0.23.6 ([@cdce8p] - [#114155])
+- Generate ConfigValidationError message from English translations ([@jbouwh] - [#113844])
+- Add climate fan modes for Airzone Cloud Aidoo devices ([@Noltari] - [#103574])
+- Update coverage to 7.4.4 ([@cdce8p] - [#114158])
+- Update pytest-timeout to 2.3.1 ([@cdce8p] - [#114161])
+- Update respx to 0.21.0 ([@cdce8p] - [#114163])
+- Update pipdeptree to 2.16.1 ([@cdce8p] - [#114159])
+- Bump plugwise to v0.37.1 ([@bouwew] - [#113245])
+- Update pyOpenSSL to 24.1.0 ([@cdce8p] - [#114165])
+- Update yamllint to 1.35.1 ([@cdce8p] - [#114166])
+- Update pytest-cov to 5.0.0 ([@cdce8p] - [#114160])
+- Allow debugging tests by default in vscode ([@jbouwh] - [#114065])
+- Update typing-extensions to 4.11.0rc1 ([@cdce8p] - [#114116])
+- Avoid homekit random id generation for existing entries ([@bdraco] - [#114144])
+- Remove hourly weather entity from met_eireann ([@gjohansson-ST] - [#112449])
+- Update types packages ([@cdce8p] - [#114164])
+- Fix spelling [runtime] ([@cdce8p] - [#114169])
+- Fix spelling [docstrings + comments] ([@cdce8p] - [#114168])
+- Update pytest-unordered to 0.6.0 ([@cdce8p] - [#114162])
+- Update codespell to 2.2.6 ([@cdce8p] - [#114167])
+- Use enums to define choices in tolo ([@MatthiasLohr] - [#113992])
+- Refactor homekit device linking to use the device index ([@bdraco] - [#114145])
+- Add Withings webhook manager ([@joostlek] - [#106311])
+- Add base entity to romy integration ([@xeniter] - [#113750])
+- Updated temp offset logging in tado component ([@343max] - [#106308])
+- Bump pywaze to 1.0.0 ([@eifinger] - [#108613])
+- Bump aioautomower to 2024.3.4 ([@Thomas55555] - [#114127])
+- Adapt to Axis library file structure changes ([@Kane610] - [#114181])
+- Fix Axis not generate unique IDs ([@Kane610] - [#114115])
+- Refactor options flow in dnsip ([@gjohansson-ST] - [#114058])
+- Add Ecovacs last job event entity ([@edenhaus] - [#113826])
+- Add reauth support to NUT ([@bdraco] - [#114131])
+- Add restrictions for listening to event_reported events ([@emontnemery] - [#114183])
+- Telegram bot proxy params deprecation ([@malkstar] - [#112778])
+- Add generic test component platform setup function ([@jpbede] - [#114016])
+- Fix Shelly reauth flow ([@thecode] - [#114180])
+- Improve test coverage mqtt discovery test ([@jbouwh] - [#114188])
+- Remove deprecated `hass.components` from system_health tests ([@jpbede] - [#114207])
+- Bump anyio to 4.3.0 ([@bdraco] - [#114198])
+- Bump ruff to 0.3.4 ([@joostlek] - [#112690])
+- Use new `setup_test_component_platform` helper instead of test fixture for light platform ([@jpbede] - [#114200])
+- Bump SQLAlchemy to 2.0.29 ([@bdraco] - [#114208])
+- Preload storage for integrations we know we are going to setup ([@bdraco] - [#114192])
+- Revert "Update typing-extensions to 4.11.0rc1 (#114116)" ([@cdce8p] - [#114216])
+- Rework Axis entity loader to have a better internal storage structure ([@Kane610] - [#114114])
+- Remove async_get_device_class_lookup from entity_registry ([@bdraco] - [#114212])
+- Add YoLink Water Meter Support ([@matrixd2] - [#114148])
+- Bump pyenphase to 1.20.1 ([@catsmanac] - [#114218])
+- Add Motionblinds BLE integration ([@LennP] - [#109497])
+- Fix motion blinds formatting ([@joostlek] - [#114222])
+- Allow pre-releases for "Adjust nightly version" only ([@edenhaus] - [#114219])
+- Add more timestamp sensors to swiss_public_transport ([@miaucl] - [#107916])
+- Add label template functions ([@frenck] - [#111024])
+- Implement Identify button and Cloud connection toggle for HomeWizard Watermeter ([@DCSBL] - [#113814])
+- Don't allow listening to state_reported in event triggers ([@emontnemery] - [#114191])
+- Add test to ensure non callback event filter is rejected ([@emontnemery] - [#114182])
+- Allow string formatting for dispatcher SignalType ([@cdce8p] - [#114174])
+- Add ruff commit to git-blame-ignore-revs ([@cdce8p] - [#114229])
+- Drop Python 3.11 support ([@frenck] - [#114220])
+- Bump motionblindsble to 0.0.9 ([@LennP] - [#114232])
+- Remove test cases for task eager_start <3.12 ([@cdce8p] - [#114243])
+- Default floor level to None (and allow unsetting it) ([@frenck] - [#114249])
+- Refactor Riemann sum integral sensor to prepare for time based trigger ([@ronweikamp] - [#113932])
+- Allow numeric state trigger/condition against zone entities ([@frenck] - [#114221])
+- Use `setup_test_component_platform` helper for update entity component tests instead of `hass.components` ([@jpbede] - [#114203])
+- Add label selector ([@frenck] - [#111029])
+- Small performance improvements to energy sensors ([@bdraco] - [#114149])
+- Bump bring-api to 0.5.7 ([@tr4nt0r] - [#114252])
+- Fix ruff-format on energy sensor ([@bdraco] - [#114261])
+- Restore scapy pin to >=2.5.0 ([@bdraco] - [#114253])
+- Remove unused code in ESPHome entry_data ([@bdraco] - [#114263])
+- Do not late import config_entry in `setup_test_component_platform` test helper ([@jpbede] - [#114260])
+- Use `setup_test_component_platform` func for number entity component tests instead of `hass.components` ([@jpbede] - [#114017])
+- Add Ollama conversation agent ([@synesthesiam] - [#113962])
+- Fix Opower accounts that report cost less regularly than usage ([@tronikos] - [#114034])
+- Combine tts cache init executor jobs ([@bdraco] - [#114271])
+- Add Motionblinds brand ([@LennP] - [#114235])
+- Bump actions/setup-python from 5.0.0 to 5.1.0 (@dependabot - [#114276])
+- Bump ondilo_ico to 0.4.0 ([@JeromeHXP] - [#114022])
+- Move SignalTypes to util ([@cdce8p] - [#114236])
+- Run recorder shutdown tasks eagerly ([@bdraco] - [#113018])
+- Refactor/fix search component, including labels & floors support ([@frenck] - [#114206])
+- Bump aiounifi to v73 ([@Kane610] - [#114278])
+- Avoid delaying automation/script startup for sample blueprints ([@bdraco] - [#114277])
+- Refactor yeelight scanner to avoid creating tasks to wait for scanner start ([@bdraco] - [#113919])
+- Add select to Motionblinds BLE integration ([@LennP] - [#114228])
+- Add buttons to Motionblinds BLE integration ([@LennP] - [#114227])
+- Address late review of 17track config flow ([@shaiu] - [#114283])
+- Remove hourly weather entity from metoffice ([@gjohansson-ST] - [#112452])
+- Allow Humidifier.current_humidity to be a float ([@cdce8p] - [#111297])
+- Do not override state property in `MockEntity` ([@jpbede] - [#114231])
+- Allow float for int argument type [pylint plugin] ([@cdce8p] - [#114105])
+- Use `setup_test_component_platform` func for cover entity component tests instead of `hass.components` ([@jpbede] - [#114010])
+- Update mypy-dev to 1.10.0a3 ([@cdce8p] - [#114289])
+- Record state.last_reported ([@emontnemery] - [#114201])
+- Add tests to Rova ([@joostlek] - [#114285])
+- Use SignalType to improve typing [esphome] ([@cdce8p] - [#114296])
+- Use SignalType to improve typing [bthome] ([@cdce8p] - [#114295])
+- Update bump_version.py to append also the time to nightlies and add possibility to set manual a nightly version ([@edenhaus] - [#114300])
+- Add coordinator to Rova ([@joostlek] - [#114288])
+- Use `setup_test_component_platform` helper for binary_sensor entity component tests instead of `hass.components` ([@jpbede] - [#114293])
+- Use SignalType to improve typing [core] ([@cdce8p] - [#114298])
+- Use `setup_test_component_platform` helper for alarm_control_panel entity component tests instead of `hass.components` ([@jpbede] - [#114301])
+- Fix missing powerview shade data when initial refresh fails ([@bdraco] - [#113033])
+- Fix version_bump --set-nightly-version ([@edenhaus] - [#114304])
+- Bump pyprusalink to 2.1.1 and support Prusa MK3 ([@the-ress] - [#114210])
+- Raise issue if not Rova area anymore ([@joostlek] - [#114309])
+- Fix exception when logging out from cloud ([@emontnemery] - [#114306])
+- Add support for PoE control of TP-Link Omada Gateways ([@MarkGodwin] - [#114138])
+- Start deprecation of auxiliary heater in ClimateEntity ([@gjohansson-ST] - [#112532])
+- Refactor switcher kis ([@YogevBokobza] - [#114281])
+- Migrate Rova to has entity name ([@joostlek] - [#114303])
+- Version Bump for WeatherFlow Cloud Backing Lib ([@jeeftor] - [#114302])
+- Finish ROVA init tests ([@joostlek] - [#114315])
+- Bump intents to 2024.3.27 ([@synesthesiam] - [#114312])
+- Change min and max humidity for MQTT climate and humidifier ([@jbouwh] - [#114292])
+- Remove deprecated forecast attribute from WeatherEntity ([@gjohansson-ST] - [#110761])
+- Defensively validate ZHA quirks v2 supplied entity metadata ([@dmulcahey] - [#112643])
+- Handle TypeError in Spotify ([@joostlek] - [#114317])
+- Fix icons for Motionblinds BLE integration ([@LennP] - [#114321])
+- Fix feedback in ROVA ([@joostlek] - [#114308])
+- Use SignalType to improve typing [homekit] ([@cdce8p] - [#114297])
+- Support the Home Assistant Connect ZBT-1 ([@puddly] - [#114213])
+- Update frontend to 20240327.0 ([@bramkragten] - [#114322])
+- Use fallback voice for selected language in cloud ([@MartinHjelmare] - [#114246])
+- Bump zha-quirks to 0.0.113 ([@TheJulianJES] - [#114311])
+- Bump pyduotecno to 2024.3.2 ([@Cereal2nd] - [#114320])
+- Fix Matter airconditioner discovery of climate platform ([@marcelveldt] - [#114326])
+- Avoid changing local time on Nobø Ecohub ([@oyvindwe] - [#114332])
+- Don't access States.last_reported_ts before it's added ([@emontnemery] - [#114333])
+- Download translations only once in the build pipeline ([@edenhaus] - [#114335])
+- Remove checked in translations ([@edenhaus] - [#114336])
+- Revert velocity change in powerview ([@bdraco] - [#114337])
+- Add more Ollama models ([@synesthesiam] - [#114339])
+- Bump fjaraskupan to 2.3.0 ([@elupus] - [#114344])
+- Fix empty delays in script helper ([@bdraco] - [#114346])
+- Bump pyunifiprotect to 5.1.2 ([@AngellusMortis] - [#114348])
+- Fix script for checking on existing translations ([@edenhaus] - [#114354])
+- Improve utility meter restore state tests ([@emontnemery] - [#114356])
+- Improve device class of utility meter ([@emontnemery] - [#114368])
+- Update pytile to 2023.12.0 ([@cdce8p] - [#114370])
+- Fix streamlabswater feedback ([@joostlek] - [#114371])
+- Fix Suez water feedback ([@joostlek] - [#114372])
+- Fix Swiss public transport feedback ([@joostlek] - [#114373])
+- Fix Lupusec feedback ([@joostlek] - [#114374])
+- Adapt Tractive integration the latest API changes ([@bieniu] - [#114380])
+- Fix hassfest service icons check for custom integrations ([@frenck] - [#114389])
+- Filter preferred TTS format options if not supported ([@synesthesiam] - [#114392])
+- Fix area search for entities of devices ([@frenck] - [#114394])
+- Update frontend to 20240328.0 ([@piitaya] - [#114396])
+- Bump aioraven to 0.5.3 ([@cottsay] - [#114397])
+- Follow real AtlanticPassAPCZoneControlZone physical mode on Overkiz (HEAT, COOL or HEAT_COOL) ([@Tronix117] - [#111830])
+- Add overkiz heating status, absence mode, and boost mode binary sensors for Atlantic Water Heater ([@ALERTua] - [#114184])
+- Add overkiz water targets temperature numbers for Atlantic water heater ([@ALERTua] - [#114185])
+- Add overkiz bottom tank water temperature and core control water temperature for Atlantic Water Heater ([@ALERTua] - [#114186])
+- Avoid concurrent radio operations with powerview hubs ([@bdraco] - [#114399])
+- Cleanup some plex tasks that delayed startup ([@bdraco] - [#114418])
+- Bump python-ring-doorbell to 0.8.8 ([@sdb9696] - [#114431])
+- Bump pyoverkiz to 1.13.9 ([@iMicknl] - [#114442])
+- Log warnings in Renault initialisation ([@epenet] - [#114445])
+- Bump async-upnp-client to 0.38.3 ([@StevenLooman] - [#114447])
+- Update frontend to 20240329.0 ([@piitaya] - [#114452])
+- Avoid tracking import executor jobs ([@bdraco] - [#114453])
+- Update frontend to 20240329.1 ([@piitaya] - [#114459])
+- Cleanup Shelly RGBW light entities ([@thecode] - [#114410])
+- Mark executor jobs as background unless created from a tracked task ([@bdraco] - [#114450])
+- Add initial support for floors to intents ([@synesthesiam] - [#114456])
+- Improve sonos test synchronization ([@bdraco] - [#114468])
+- Fix Overkiz Hitachi OVP air-to-air heat pump ([@dotvav] - [#114487])
+- Fix late load of anyio doing blocking I/O in the event loop ([@bdraco] - [#114491])
+- Fix workday doing blocking I/O in the event loop ([@bdraco] - [#114492])
+- Fix server update from breaking setup in Speedtest.NET ([@gjohansson-ST] - [#114524])
+- Bump axis to v60 ([@Kane610] - [#114544])
+- Fix wrong icons ([@joostlek] - [#114567])
+- Bump velbusaio to 2024.4.0 ([@Cereal2nd] - [#114569])
+- Reduce usage of executer threads in AVM Fritz!Tools ([@mib1185] - [#114570])
+- Filter out ignored entries in ssdp step of AVM Fritz!SmartHome ([@mib1185] - [#114574])
+- Bump plexapi to 4.15.11 ([@jjlawren] - [#114581])
+- Fix reolink media source data access ([@MartinHjelmare] - [#114593])
+- Bump zeroconf to 0.132.0 ([@bdraco] - [#114596])
+- Add missing platforms_exist guard to check_config ([@bdraco] - [#114600])
+- Fix memory leak when importing a platform fails ([@bdraco] - [#114602])
+- Avoid storing raw extracted traceback in system_log ([@bdraco] - [#114603])
+- Bump whirlpool-sixth-sense to 0.18.7 ([@mkmer] - [#114606])
+- Display sonos album title with URL encoding ([@PeteRager] - [#113693])
+- Bump roombapy to 1.8.1 ([@joostlek] - [#114478])
+- Improve Shelly RPC device update progress ([@bieniu] - [#114566])
+- Fix battery heater in Tessie ([@Bre77] - [#114568])
+- Add diagnostic platform to Whirlpool ([@mkmer] - [#114578])
+- Catch potential ValueError when getting or setting Starlink sleep values ([@boswelja] - [#114607])
+- Bump opower to 0.4.2 ([@max2697] - [#114608])
+- Add floor selector ([@frenck] - [#114614])
+- Fix Starlink integration startup issue ([@Fexiven] - [#114615])
+- Update frontend to 20240402.0 ([@bramkragten] - [#114627])
+- Reduce ZHA OTA logbook entries and extraneous updates ([@puddly] - [#114591])
+- Fix Overkiz Hitachi OVP air-to-air heat pump ([@dotvav] - [#114611])
+- Bump ring_doorbell integration to 0.8.9 ([@sdb9696] - [#114631])
+- Update frontend to 20240402.1 ([@bramkragten] - [#114646])
+- Fix Sonos play imported playlists ([@PeteRager] - [#113934])
+- Bump aiounifi to v74 ([@Kane610] - [#114649])
+- Add missing state to the Tractive tracker state sensor ([@bieniu] - [#114654])
+- Bump holidays to 0.46 ([@gjohansson-ST] - [#114657])
+- Avoid trying to load platform that are known to not exist in async_prepare_setup_platform ([@bdraco] - [#114659])
+- Update frontend to 20240402.2 ([@bramkragten] - [#114683])
+- Rename Motionblinds BLE integration to Motionblinds Bluetooth ([@LennP] - [#114584])
+- Bump flexit_bacnet to 2.2.1 ([@lellky] - [#114641])
+- Import zha quirks in the executor ([@dmulcahey] - [#114685])
+- Fix Downloader config flow ([@joostlek] - [#114718])
+- Avoid blocking IO in downloader config flow ([@joostlek] - [#114741])
+- Update frontend to 20240403.0 ([@bramkragten] - [#114747])
+- Allow passing area/device/entity IDs to floor_id and floor_name ([@edenhaus] - [#114748])
+- Bump intents ([@synesthesiam] - [#114755])
+- Update frontend to 20240403.1 ([@bramkragten] - [#114756])
+- Fix Synology DSM setup in case no Surveillance Station permission ([@mib1185] - [#114757])
+- Fix for Sonos URL encoding problem #102557 ([@IngoK1] - [#109518])
+- Use `setup_test_component_platform` helper for sensor entity component tests instead of `hass.components` ([@jpbede] - [#114316])
+
+
+## Release 2024.4.1 - April 5
+
+- Update aioairzone-cloud to v0.4.7 ([@Noltari] - [#114761])
+- Bump myuplink dependency to 0.6.0 ([@astrandb] - [#114767])
+- Update romy to 0.0.9 ([@cdce8p] - [#114360])
+- Update romy to 0.0.10 ([@xeniter] - [#114785])
+- Fix unhandled `KeyError` during Notion setup ([@bachya] - [#114787])
+- Fix Lutron light brightness values ([@cdheiser] - [#114794])
+- Fix type cast in snmp ([@lextm] - [#114795])
+- Handle ambiguous script actions by using action map order ([@bdraco] - [#114825])
+- Bump opower to 0.4.3 ([@tronikos] - [#114826])
+- Refactor ConfigStore to avoid needing to pass config_dir ([@bdraco] - [#114827])
+- Avoid blocking IO in downloader initialization ([@joostlek] - [#114841])
+- Fix Downloader YAML import ([@joostlek] - [#114844])
+- Update frontend to 20240404.0 ([@bramkragten] - [#114859])
+- Fix Axis camera platform support HTTPS ([@Kane610] - [#114886])
+- Bump weatherflow4py to 0.2.20 ([@jeeftor] - [#114888])
+- Fix Axis reconfigure step not providing protocols as alternatives but as string ([@Kane610] - [#114889])
+- Update frontend to 20240404.1 ([@bramkragten] - [#114890])
+- Ensure all tables have the default table args in the db_schema ([@bdraco] - [#114895])
+- Reduce august polling frequency ([@bdraco] - [#114904])
+- Show correct model string in myuplink ([@astrandb] - [#114921])
+- Create right import issues in Downloader ([@joostlek] - [#114922])
+- Fix cast dashboard in media browser ([@joostlek] - [#114924])
+- Pin systembridgemodels to 4.0.4 ([@timmo001] - [#114842])
+- Fix ROVA validation ([@joostlek] - [#114938])
+
+[#114360]: https://github.com/home-assistant/core/pull/114360
+[#114761]: https://github.com/home-assistant/core/pull/114761
+[#114764]: https://github.com/home-assistant/core/pull/114764
+[#114767]: https://github.com/home-assistant/core/pull/114767
+[#114785]: https://github.com/home-assistant/core/pull/114785
+[#114787]: https://github.com/home-assistant/core/pull/114787
+[#114794]: https://github.com/home-assistant/core/pull/114794
+[#114795]: https://github.com/home-assistant/core/pull/114795
+[#114825]: https://github.com/home-assistant/core/pull/114825
+[#114826]: https://github.com/home-assistant/core/pull/114826
+[#114827]: https://github.com/home-assistant/core/pull/114827
+[#114841]: https://github.com/home-assistant/core/pull/114841
+[#114842]: https://github.com/home-assistant/core/pull/114842
+[#114844]: https://github.com/home-assistant/core/pull/114844
+[#114859]: https://github.com/home-assistant/core/pull/114859
+[#114886]: https://github.com/home-assistant/core/pull/114886
+[#114888]: https://github.com/home-assistant/core/pull/114888
+[#114889]: https://github.com/home-assistant/core/pull/114889
+[#114890]: https://github.com/home-assistant/core/pull/114890
+[#114895]: https://github.com/home-assistant/core/pull/114895
+[#114904]: https://github.com/home-assistant/core/pull/114904
+[#114921]: https://github.com/home-assistant/core/pull/114921
+[#114922]: https://github.com/home-assistant/core/pull/114922
+[#114924]: https://github.com/home-assistant/core/pull/114924
+[#114938]: https://github.com/home-assistant/core/pull/114938
+[@Kane610]: https://github.com/Kane610
+[@Noltari]: https://github.com/Noltari
+[@astrandb]: https://github.com/astrandb
+[@bachya]: https://github.com/bachya
+[@bdraco]: https://github.com/bdraco
+[@bramkragten]: https://github.com/bramkragten
+[@cdce8p]: https://github.com/cdce8p
+[@cdheiser]: https://github.com/cdheiser
+[@frenck]: https://github.com/frenck
+[@jeeftor]: https://github.com/jeeftor
+[@joostlek]: https://github.com/joostlek
+[@lextm]: https://github.com/lextm
+[@timmo001]: https://github.com/timmo001
+[@tronikos]: https://github.com/tronikos
+[@xeniter]: https://github.com/xeniter
+
+## Release 2024.4.2 - April 8
+
+- Fix hang in SNMP device_tracker implementation ([@nmaggioni] - [#112815])
+- Fix missing if statement in homematic ([@bbr111] - [#114832])
+- Bump pylitterbot to 2023.4.11 ([@natekspencer] - [#114918])
+- Fix Snapcast Config flow ([@joostlek] - [#114952])
+- Bump axis to v61 ([@Kane610] - [#114964])
+- Filter out fuzzy translations from Lokalise ([@joostlek] - [#114968])
+- Upgrade to pynobo 1.8.1 ([@oyvindwe] - [#114982])
+- Fix dictionary changed size during iteration in prometheus ([@bdraco] - [#115005])
+- Bump `brother` to version 4.1.0 ([@bieniu] - [#115021])
+- Bump yolink-api to 0.4.2 ([@matrixd2] - [#115026])
+- Update xknxproject to 3.7.1 ([@farmio] - [#115053])
+- Fix synology_dsm availablity ([@bdraco] - [#115073])
+- Downgrade hass-nabucasa from 0.80.0 to 0.78.0 ([@ludeeus] - [#115078])
+- Bump velbus-aio to 2024.4.1 ([@Cereal2nd] - [#115109])
+- Terminate scripts with until and while conditions that execute more than 10000 times ([@bdraco] - [#115110])
+- improve handling of incorrect values in fyta integration ([@dontinelli] - [#115134])
+- Bump fyta_cli to 0.3.5 ([@dontinelli] - [#115143])
+- Fix fibaro sensor additional sensor lookup ([@rappenze] - [#115148])
+- Write timer entity state before firing events ([@bdraco] - [#115151])
+- Avoid checking for polling if an entity fails to add ([@bdraco] - [#115159])
+- Only reset requested utility meter with no tariff ([@gibwar] - [#115170])
+
+[#112815]: https://github.com/home-assistant/core/pull/112815
+[#114764]: https://github.com/home-assistant/core/pull/114764
+[#114832]: https://github.com/home-assistant/core/pull/114832
+[#114918]: https://github.com/home-assistant/core/pull/114918
+[#114934]: https://github.com/home-assistant/core/pull/114934
+[#114952]: https://github.com/home-assistant/core/pull/114952
+[#114964]: https://github.com/home-assistant/core/pull/114964
+[#114968]: https://github.com/home-assistant/core/pull/114968
+[#114982]: https://github.com/home-assistant/core/pull/114982
+[#115005]: https://github.com/home-assistant/core/pull/115005
+[#115021]: https://github.com/home-assistant/core/pull/115021
+[#115026]: https://github.com/home-assistant/core/pull/115026
+[#115053]: https://github.com/home-assistant/core/pull/115053
+[#115073]: https://github.com/home-assistant/core/pull/115073
+[#115078]: https://github.com/home-assistant/core/pull/115078
+[#115109]: https://github.com/home-assistant/core/pull/115109
+[#115110]: https://github.com/home-assistant/core/pull/115110
+[#115134]: https://github.com/home-assistant/core/pull/115134
+[#115143]: https://github.com/home-assistant/core/pull/115143
+[#115148]: https://github.com/home-assistant/core/pull/115148
+[#115151]: https://github.com/home-assistant/core/pull/115151
+[#115159]: https://github.com/home-assistant/core/pull/115159
+[#115170]: https://github.com/home-assistant/core/pull/115170
+[@Cereal2nd]: https://github.com/Cereal2nd
+[@Kane610]: https://github.com/Kane610
+[@bbr111]: https://github.com/bbr111
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@dontinelli]: https://github.com/dontinelli
+[@farmio]: https://github.com/farmio
+[@frenck]: https://github.com/frenck
+[@gibwar]: https://github.com/gibwar
+[@joostlek]: https://github.com/joostlek
+[@ludeeus]: https://github.com/ludeeus
+[@matrixd2]: https://github.com/matrixd2
+[@natekspencer]: https://github.com/natekspencer
+[@nmaggioni]: https://github.com/nmaggioni
+[@oyvindwe]: https://github.com/oyvindwe
+[@rappenze]: https://github.com/rappenze
+
+## Release 2024.4.3 - April 12
+
+- Bump aiohttp to 3.9.4 ([@bdraco] - [#110730])
+- Add support for adopt data disk repair ([@mdegat01] - [#114891])
+- Improve Risco exception logging ([@OnFreund] - [#115232])
+- Configurable maximum concurrency in Risco local ([@OnFreund] - [#115226])
+- Fix misssing timeout in caldav ([@bdraco] - [#115247])
+- Fix Google Tasks parsing of remove responses ([@allenporter] - [#115258])
+- Bump forecast-solar lib to v3.1.0 ([@klaasnicolaas] - [#115272])
+- Support backup of add-ons with hyphens ([@agners] - [#115274])
+- Bump pymodbus v3.6.7 ([@janiversen] - [#115279])
+- Bump yt-dlp to 2024.04.09 ([@joostlek] - [#115295])
+- Fix Aranet failure when the Bluetooth proxy is not providing a device name ([@thecode] - [#115298])
+- Bump zha-quirks to 0.0.114 ([@TheJulianJES] - [#115299])
+- Ensure automations do not execute from a trigger if they are disabled ([@bdraco] - [#115305])
+- Bump bleak-retry-connector 3.5.0 ([@bdraco] - [#115328])
+- Secure against resetting a non active modbus ([@janiversen] - [#115364])
+- Solve modbus test problem ([@janiversen] - [#115376])
+- Fix deadlock in holidays dynamic loading ([@bdraco] - [#115385])
+- Bump whirlpool-sixth-sense to 0.18.8 ([@NodeJSmith] - [#115393])
+- Fix bug in rainbird switch when turning off a switch that is already off ([@allenporter] - [#115421])
+- Bump pybotvac to 0.0.25 ([@Santobert] - [#115435])
+- Update frontend to 20240404.2 ([@bramkragten] - [#115460])
+
+[#110730]: https://github.com/home-assistant/core/pull/110730
+[#114764]: https://github.com/home-assistant/core/pull/114764
+[#114891]: https://github.com/home-assistant/core/pull/114891
+[#114934]: https://github.com/home-assistant/core/pull/114934
+[#115186]: https://github.com/home-assistant/core/pull/115186
+[#115226]: https://github.com/home-assistant/core/pull/115226
+[#115232]: https://github.com/home-assistant/core/pull/115232
+[#115247]: https://github.com/home-assistant/core/pull/115247
+[#115258]: https://github.com/home-assistant/core/pull/115258
+[#115272]: https://github.com/home-assistant/core/pull/115272
+[#115274]: https://github.com/home-assistant/core/pull/115274
+[#115279]: https://github.com/home-assistant/core/pull/115279
+[#115295]: https://github.com/home-assistant/core/pull/115295
+[#115298]: https://github.com/home-assistant/core/pull/115298
+[#115299]: https://github.com/home-assistant/core/pull/115299
+[#115305]: https://github.com/home-assistant/core/pull/115305
+[#115328]: https://github.com/home-assistant/core/pull/115328
+[#115364]: https://github.com/home-assistant/core/pull/115364
+[#115376]: https://github.com/home-assistant/core/pull/115376
+[#115385]: https://github.com/home-assistant/core/pull/115385
+[#115393]: https://github.com/home-assistant/core/pull/115393
+[#115421]: https://github.com/home-assistant/core/pull/115421
+[#115435]: https://github.com/home-assistant/core/pull/115435
+[#115460]: https://github.com/home-assistant/core/pull/115460
+[@NodeJSmith]: https://github.com/NodeJSmith
+[@OnFreund]: https://github.com/OnFreund
+[@Santobert]: https://github.com/Santobert
+[@TheJulianJES]: https://github.com/TheJulianJES
+[@agners]: https://github.com/agners
+[@allenporter]: https://github.com/allenporter
+[@bdraco]: https://github.com/bdraco
+[@bramkragten]: https://github.com/bramkragten
+[@frenck]: https://github.com/frenck
+[@janiversen]: https://github.com/janiversen
+[@joostlek]: https://github.com/joostlek
+[@klaasnicolaas]: https://github.com/klaasnicolaas
+[@mdegat01]: https://github.com/mdegat01
+[@thecode]: https://github.com/thecode
+
+## Release 2024.4.4 - April 23
+
+- Bump slixmpp version to 1.8.5 ([@ravermeister] - [#114448])
+- Make Withings recoverable after internet outage ([@joostlek] - [#115124])
+- Fix Hyperion light not updating state ([@avee87] - [#115389])
+- Add scheduled mode to renault charge mode ([@slyoldfox] - [#115427])
+- Bump zeroconf to 0.132.1 ([@bdraco] - [#115501])
+- Bump zeroconf to 0.132.2 ([@bdraco] - [#115505])
+- Update pillow to 10.3.0 ([@cdce8p] - [#115524])
+- Fix race in TimestampDataUpdateCoordinator ([@bdraco] - [#115542])
+- Fix Teslemetry sensor values ([@Bre77] - [#115571])
+- Modbus: Bump pymodbus v3.6.8 ([@janiversen] - [#115574])
+- Fix sensor entity description in Teslemetry ([@Bre77] - [#115614])
+- Bump httpcore to 1.0.5 ([@bdraco] - [#115672])
+- Bump sqlparse to 0.5.0 ([@bdraco] - [#115681])
+- Bump aiohttp to 3.9.5 ([@bdraco] - [#115727])
+- Bump renault-api to 0.2.2 ([@epenet] - [#115738])
+- Fix homeworks import flow ([@emontnemery] - [#115761])
+- Allow [##:##:##] type keypad address in homeworks ([@emontnemery] - [#115762])
+- Add missing media_player features to Samsung TV ([@chemelli74] - [#115788])
+- Bump aiounifi to v75 ([@Kane610] - [#115819])
+- Ensure scripts with timeouts of zero timeout immediately ([@bdraco] - [#115830])
+- Fix KeyError error when fetching sensors (Airthings) ([@LaStrada] - [#115844])
+- Bump plexapi to 4.15.12 ([@jjlawren] - [#115872])
+- Bump ical to 8.0.0 ([@allenporter] - [#115907])
+- Fix geo location attributes of Tankerkoenig sensors ([@mib1185] - [#115914])
+- Use start helper in squeezebox for server discovery ([@rajlaud] - [#115978])
+
+[#114448]: https://github.com/home-assistant/core/pull/114448
+[#114764]: https://github.com/home-assistant/core/pull/114764
+[#114934]: https://github.com/home-assistant/core/pull/114934
+[#115124]: https://github.com/home-assistant/core/pull/115124
+[#115186]: https://github.com/home-assistant/core/pull/115186
+[#115389]: https://github.com/home-assistant/core/pull/115389
+[#115427]: https://github.com/home-assistant/core/pull/115427
+[#115463]: https://github.com/home-assistant/core/pull/115463
+[#115501]: https://github.com/home-assistant/core/pull/115501
+[#115505]: https://github.com/home-assistant/core/pull/115505
+[#115524]: https://github.com/home-assistant/core/pull/115524
+[#115542]: https://github.com/home-assistant/core/pull/115542
+[#115571]: https://github.com/home-assistant/core/pull/115571
+[#115574]: https://github.com/home-assistant/core/pull/115574
+[#115614]: https://github.com/home-assistant/core/pull/115614
+[#115672]: https://github.com/home-assistant/core/pull/115672
+[#115681]: https://github.com/home-assistant/core/pull/115681
+[#115727]: https://github.com/home-assistant/core/pull/115727
+[#115738]: https://github.com/home-assistant/core/pull/115738
+[#115761]: https://github.com/home-assistant/core/pull/115761
+[#115762]: https://github.com/home-assistant/core/pull/115762
+[#115788]: https://github.com/home-assistant/core/pull/115788
+[#115819]: https://github.com/home-assistant/core/pull/115819
+[#115830]: https://github.com/home-assistant/core/pull/115830
+[#115844]: https://github.com/home-assistant/core/pull/115844
+[#115872]: https://github.com/home-assistant/core/pull/115872
+[#115907]: https://github.com/home-assistant/core/pull/115907
+[#115914]: https://github.com/home-assistant/core/pull/115914
+[#115978]: https://github.com/home-assistant/core/pull/115978
+[@Bre77]: https://github.com/Bre77
+[@Kane610]: https://github.com/Kane610
+[@LaStrada]: https://github.com/LaStrada
+[@allenporter]: https://github.com/allenporter
+[@avee87]: https://github.com/avee87
+[@bdraco]: https://github.com/bdraco
+[@cdce8p]: https://github.com/cdce8p
+[@chemelli74]: https://github.com/chemelli74
+[@emontnemery]: https://github.com/emontnemery
+[@epenet]: https://github.com/epenet
+[@frenck]: https://github.com/frenck
+[@janiversen]: https://github.com/janiversen
+[@jjlawren]: https://github.com/jjlawren
+[@joostlek]: https://github.com/joostlek
+[@mib1185]: https://github.com/mib1185
+[@rajlaud]: https://github.com/rajlaud
+[@ravermeister]: https://github.com/ravermeister
+[@slyoldfox]: https://github.com/slyoldfox
+
+[#100055]: https://github.com/home-assistant/core/pull/100055
+[#102333]: https://github.com/home-assistant/core/pull/102333
+[#102884]: https://github.com/home-assistant/core/pull/102884
+[#103057]: https://github.com/home-assistant/core/pull/103057
+[#103139]: https://github.com/home-assistant/core/pull/103139
+[#103564]: https://github.com/home-assistant/core/pull/103564
+[#103574]: https://github.com/home-assistant/core/pull/103574
+[#104095]: https://github.com/home-assistant/core/pull/104095
+[#104334]: https://github.com/home-assistant/core/pull/104334
+[#104492]: https://github.com/home-assistant/core/pull/104492
+[#104604]: https://github.com/home-assistant/core/pull/104604
+[#104737]: https://github.com/home-assistant/core/pull/104737
+[#104975]: https://github.com/home-assistant/core/pull/104975
+[#105516]: https://github.com/home-assistant/core/pull/105516
+[#105643]: https://github.com/home-assistant/core/pull/105643
+[#105697]: https://github.com/home-assistant/core/pull/105697
+[#105755]: https://github.com/home-assistant/core/pull/105755
+[#105756]: https://github.com/home-assistant/core/pull/105756
+[#105795]: https://github.com/home-assistant/core/pull/105795
+[#105967]: https://github.com/home-assistant/core/pull/105967
+[#106308]: https://github.com/home-assistant/core/pull/106308
+[#106311]: https://github.com/home-assistant/core/pull/106311
+[#107901]: https://github.com/home-assistant/core/pull/107901
+[#107916]: https://github.com/home-assistant/core/pull/107916
+[#107957]: https://github.com/home-assistant/core/pull/107957
+[#108152]: https://github.com/home-assistant/core/pull/108152
+[#108287]: https://github.com/home-assistant/core/pull/108287
+[#108596]: https://github.com/home-assistant/core/pull/108596
+[#108613]: https://github.com/home-assistant/core/pull/108613
+[#108636]: https://github.com/home-assistant/core/pull/108636
+[#108709]: https://github.com/home-assistant/core/pull/108709
+[#108781]: https://github.com/home-assistant/core/pull/108781
+[#108789]: https://github.com/home-assistant/core/pull/108789
+[#108794]: https://github.com/home-assistant/core/pull/108794
+[#108949]: https://github.com/home-assistant/core/pull/108949
+[#109080]: https://github.com/home-assistant/core/pull/109080
+[#109088]: https://github.com/home-assistant/core/pull/109088
+[#109185]: https://github.com/home-assistant/core/pull/109185
+[#109497]: https://github.com/home-assistant/core/pull/109497
+[#109518]: https://github.com/home-assistant/core/pull/109518
+[#109662]: https://github.com/home-assistant/core/pull/109662
+[#109819]: https://github.com/home-assistant/core/pull/109819
+[#109821]: https://github.com/home-assistant/core/pull/109821
+[#109893]: https://github.com/home-assistant/core/pull/109893
+[#109930]: https://github.com/home-assistant/core/pull/109930
+[#110297]: https://github.com/home-assistant/core/pull/110297
+[#110327]: https://github.com/home-assistant/core/pull/110327
+[#110481]: https://github.com/home-assistant/core/pull/110481
+[#110483]: https://github.com/home-assistant/core/pull/110483
+[#110492]: https://github.com/home-assistant/core/pull/110492
+[#110761]: https://github.com/home-assistant/core/pull/110761
+[#110764]: https://github.com/home-assistant/core/pull/110764
+[#110816]: https://github.com/home-assistant/core/pull/110816
+[#110847]: https://github.com/home-assistant/core/pull/110847
+[#110850]: https://github.com/home-assistant/core/pull/110850
+[#110860]: https://github.com/home-assistant/core/pull/110860
+[#110885]: https://github.com/home-assistant/core/pull/110885
+[#110897]: https://github.com/home-assistant/core/pull/110897
+[#110906]: https://github.com/home-assistant/core/pull/110906
+[#110961]: https://github.com/home-assistant/core/pull/110961
+[#110997]: https://github.com/home-assistant/core/pull/110997
+[#111024]: https://github.com/home-assistant/core/pull/111024
+[#111029]: https://github.com/home-assistant/core/pull/111029
+[#111135]: https://github.com/home-assistant/core/pull/111135
+[#111156]: https://github.com/home-assistant/core/pull/111156
+[#111161]: https://github.com/home-assistant/core/pull/111161
+[#111190]: https://github.com/home-assistant/core/pull/111190
+[#111196]: https://github.com/home-assistant/core/pull/111196
+[#111258]: https://github.com/home-assistant/core/pull/111258
+[#111289]: https://github.com/home-assistant/core/pull/111289
+[#111292]: https://github.com/home-assistant/core/pull/111292
+[#111297]: https://github.com/home-assistant/core/pull/111297
+[#111325]: https://github.com/home-assistant/core/pull/111325
+[#111344]: https://github.com/home-assistant/core/pull/111344
+[#111349]: https://github.com/home-assistant/core/pull/111349
+[#111386]: https://github.com/home-assistant/core/pull/111386
+[#111391]: https://github.com/home-assistant/core/pull/111391
+[#111403]: https://github.com/home-assistant/core/pull/111403
+[#111419]: https://github.com/home-assistant/core/pull/111419
+[#111423]: https://github.com/home-assistant/core/pull/111423
+[#111431]: https://github.com/home-assistant/core/pull/111431
+[#111440]: https://github.com/home-assistant/core/pull/111440
+[#111466]: https://github.com/home-assistant/core/pull/111466
+[#111502]: https://github.com/home-assistant/core/pull/111502
+[#111512]: https://github.com/home-assistant/core/pull/111512
+[#111514]: https://github.com/home-assistant/core/pull/111514
+[#111525]: https://github.com/home-assistant/core/pull/111525
+[#111526]: https://github.com/home-assistant/core/pull/111526
+[#111532]: https://github.com/home-assistant/core/pull/111532
+[#111540]: https://github.com/home-assistant/core/pull/111540
+[#111545]: https://github.com/home-assistant/core/pull/111545
+[#111548]: https://github.com/home-assistant/core/pull/111548
+[#111614]: https://github.com/home-assistant/core/pull/111614
+[#111666]: https://github.com/home-assistant/core/pull/111666
+[#111676]: https://github.com/home-assistant/core/pull/111676
+[#111683]: https://github.com/home-assistant/core/pull/111683
+[#111687]: https://github.com/home-assistant/core/pull/111687
+[#111688]: https://github.com/home-assistant/core/pull/111688
+[#111700]: https://github.com/home-assistant/core/pull/111700
+[#111706]: https://github.com/home-assistant/core/pull/111706
+[#111709]: https://github.com/home-assistant/core/pull/111709
+[#111725]: https://github.com/home-assistant/core/pull/111725
+[#111727]: https://github.com/home-assistant/core/pull/111727
+[#111747]: https://github.com/home-assistant/core/pull/111747
+[#111754]: https://github.com/home-assistant/core/pull/111754
+[#111755]: https://github.com/home-assistant/core/pull/111755
+[#111758]: https://github.com/home-assistant/core/pull/111758
+[#111761]: https://github.com/home-assistant/core/pull/111761
+[#111767]: https://github.com/home-assistant/core/pull/111767
+[#111798]: https://github.com/home-assistant/core/pull/111798
+[#111804]: https://github.com/home-assistant/core/pull/111804
+[#111805]: https://github.com/home-assistant/core/pull/111805
+[#111806]: https://github.com/home-assistant/core/pull/111806
+[#111807]: https://github.com/home-assistant/core/pull/111807
+[#111808]: https://github.com/home-assistant/core/pull/111808
+[#111809]: https://github.com/home-assistant/core/pull/111809
+[#111810]: https://github.com/home-assistant/core/pull/111810
+[#111811]: https://github.com/home-assistant/core/pull/111811
+[#111812]: https://github.com/home-assistant/core/pull/111812
+[#111813]: https://github.com/home-assistant/core/pull/111813
+[#111814]: https://github.com/home-assistant/core/pull/111814
+[#111816]: https://github.com/home-assistant/core/pull/111816
+[#111824]: https://github.com/home-assistant/core/pull/111824
+[#111827]: https://github.com/home-assistant/core/pull/111827
+[#111830]: https://github.com/home-assistant/core/pull/111830
+[#111842]: https://github.com/home-assistant/core/pull/111842
+[#111844]: https://github.com/home-assistant/core/pull/111844
+[#111845]: https://github.com/home-assistant/core/pull/111845
+[#111846]: https://github.com/home-assistant/core/pull/111846
+[#111847]: https://github.com/home-assistant/core/pull/111847
+[#111848]: https://github.com/home-assistant/core/pull/111848
+[#111849]: https://github.com/home-assistant/core/pull/111849
+[#111850]: https://github.com/home-assistant/core/pull/111850
+[#111851]: https://github.com/home-assistant/core/pull/111851
+[#111852]: https://github.com/home-assistant/core/pull/111852
+[#111853]: https://github.com/home-assistant/core/pull/111853
+[#111854]: https://github.com/home-assistant/core/pull/111854
+[#111855]: https://github.com/home-assistant/core/pull/111855
+[#111856]: https://github.com/home-assistant/core/pull/111856
+[#111857]: https://github.com/home-assistant/core/pull/111857
+[#111861]: https://github.com/home-assistant/core/pull/111861
+[#111862]: https://github.com/home-assistant/core/pull/111862
+[#111863]: https://github.com/home-assistant/core/pull/111863
+[#111864]: https://github.com/home-assistant/core/pull/111864
+[#111865]: https://github.com/home-assistant/core/pull/111865
+[#111866]: https://github.com/home-assistant/core/pull/111866
+[#111878]: https://github.com/home-assistant/core/pull/111878
+[#111880]: https://github.com/home-assistant/core/pull/111880
+[#111881]: https://github.com/home-assistant/core/pull/111881
+[#111883]: https://github.com/home-assistant/core/pull/111883
+[#111888]: https://github.com/home-assistant/core/pull/111888
+[#111891]: https://github.com/home-assistant/core/pull/111891
+[#111893]: https://github.com/home-assistant/core/pull/111893
+[#111895]: https://github.com/home-assistant/core/pull/111895
+[#111896]: https://github.com/home-assistant/core/pull/111896
+[#111897]: https://github.com/home-assistant/core/pull/111897
+[#111899]: https://github.com/home-assistant/core/pull/111899
+[#111900]: https://github.com/home-assistant/core/pull/111900
+[#111901]: https://github.com/home-assistant/core/pull/111901
+[#111902]: https://github.com/home-assistant/core/pull/111902
+[#111904]: https://github.com/home-assistant/core/pull/111904
+[#111905]: https://github.com/home-assistant/core/pull/111905
+[#111906]: https://github.com/home-assistant/core/pull/111906
+[#111907]: https://github.com/home-assistant/core/pull/111907
+[#111908]: https://github.com/home-assistant/core/pull/111908
+[#111911]: https://github.com/home-assistant/core/pull/111911
+[#111912]: https://github.com/home-assistant/core/pull/111912
+[#111916]: https://github.com/home-assistant/core/pull/111916
+[#111917]: https://github.com/home-assistant/core/pull/111917
+[#111927]: https://github.com/home-assistant/core/pull/111927
+[#111928]: https://github.com/home-assistant/core/pull/111928
+[#111929]: https://github.com/home-assistant/core/pull/111929
+[#111932]: https://github.com/home-assistant/core/pull/111932
+[#111933]: https://github.com/home-assistant/core/pull/111933
+[#111934]: https://github.com/home-assistant/core/pull/111934
+[#111935]: https://github.com/home-assistant/core/pull/111935
+[#111936]: https://github.com/home-assistant/core/pull/111936
+[#111940]: https://github.com/home-assistant/core/pull/111940
+[#111943]: https://github.com/home-assistant/core/pull/111943
+[#111945]: https://github.com/home-assistant/core/pull/111945
+[#111946]: https://github.com/home-assistant/core/pull/111946
+[#111947]: https://github.com/home-assistant/core/pull/111947
+[#111949]: https://github.com/home-assistant/core/pull/111949
+[#111952]: https://github.com/home-assistant/core/pull/111952
+[#111954]: https://github.com/home-assistant/core/pull/111954
+[#111955]: https://github.com/home-assistant/core/pull/111955
+[#111964]: https://github.com/home-assistant/core/pull/111964
+[#111965]: https://github.com/home-assistant/core/pull/111965
+[#111970]: https://github.com/home-assistant/core/pull/111970
+[#111972]: https://github.com/home-assistant/core/pull/111972
+[#111973]: https://github.com/home-assistant/core/pull/111973
+[#111974]: https://github.com/home-assistant/core/pull/111974
+[#111976]: https://github.com/home-assistant/core/pull/111976
+[#111977]: https://github.com/home-assistant/core/pull/111977
+[#111980]: https://github.com/home-assistant/core/pull/111980
+[#111981]: https://github.com/home-assistant/core/pull/111981
+[#111982]: https://github.com/home-assistant/core/pull/111982
+[#111983]: https://github.com/home-assistant/core/pull/111983
+[#111984]: https://github.com/home-assistant/core/pull/111984
+[#111985]: https://github.com/home-assistant/core/pull/111985
+[#111988]: https://github.com/home-assistant/core/pull/111988
+[#111989]: https://github.com/home-assistant/core/pull/111989
+[#111990]: https://github.com/home-assistant/core/pull/111990
+[#111991]: https://github.com/home-assistant/core/pull/111991
+[#111992]: https://github.com/home-assistant/core/pull/111992
+[#111993]: https://github.com/home-assistant/core/pull/111993
+[#111994]: https://github.com/home-assistant/core/pull/111994
+[#111995]: https://github.com/home-assistant/core/pull/111995
+[#111996]: https://github.com/home-assistant/core/pull/111996
+[#111997]: https://github.com/home-assistant/core/pull/111997
+[#111998]: https://github.com/home-assistant/core/pull/111998
+[#112001]: https://github.com/home-assistant/core/pull/112001
+[#112004]: https://github.com/home-assistant/core/pull/112004
+[#112007]: https://github.com/home-assistant/core/pull/112007
+[#112008]: https://github.com/home-assistant/core/pull/112008
+[#112010]: https://github.com/home-assistant/core/pull/112010
+[#112028]: https://github.com/home-assistant/core/pull/112028
+[#112029]: https://github.com/home-assistant/core/pull/112029
+[#112031]: https://github.com/home-assistant/core/pull/112031
+[#112032]: https://github.com/home-assistant/core/pull/112032
+[#112042]: https://github.com/home-assistant/core/pull/112042
+[#112044]: https://github.com/home-assistant/core/pull/112044
+[#112053]: https://github.com/home-assistant/core/pull/112053
+[#112055]: https://github.com/home-assistant/core/pull/112055
+[#112057]: https://github.com/home-assistant/core/pull/112057
+[#112058]: https://github.com/home-assistant/core/pull/112058
+[#112065]: https://github.com/home-assistant/core/pull/112065
+[#112070]: https://github.com/home-assistant/core/pull/112070
+[#112071]: https://github.com/home-assistant/core/pull/112071
+[#112077]: https://github.com/home-assistant/core/pull/112077
+[#112078]: https://github.com/home-assistant/core/pull/112078
+[#112080]: https://github.com/home-assistant/core/pull/112080
+[#112081]: https://github.com/home-assistant/core/pull/112081
+[#112086]: https://github.com/home-assistant/core/pull/112086
+[#112087]: https://github.com/home-assistant/core/pull/112087
+[#112089]: https://github.com/home-assistant/core/pull/112089
+[#112096]: https://github.com/home-assistant/core/pull/112096
+[#112097]: https://github.com/home-assistant/core/pull/112097
+[#112099]: https://github.com/home-assistant/core/pull/112099
+[#112102]: https://github.com/home-assistant/core/pull/112102
+[#112103]: https://github.com/home-assistant/core/pull/112103
+[#112104]: https://github.com/home-assistant/core/pull/112104
+[#112106]: https://github.com/home-assistant/core/pull/112106
+[#112107]: https://github.com/home-assistant/core/pull/112107
+[#112108]: https://github.com/home-assistant/core/pull/112108
+[#112109]: https://github.com/home-assistant/core/pull/112109
+[#112110]: https://github.com/home-assistant/core/pull/112110
+[#112111]: https://github.com/home-assistant/core/pull/112111
+[#112120]: https://github.com/home-assistant/core/pull/112120
+[#112121]: https://github.com/home-assistant/core/pull/112121
+[#112122]: https://github.com/home-assistant/core/pull/112122
+[#112123]: https://github.com/home-assistant/core/pull/112123
+[#112126]: https://github.com/home-assistant/core/pull/112126
+[#112127]: https://github.com/home-assistant/core/pull/112127
+[#112128]: https://github.com/home-assistant/core/pull/112128
+[#112129]: https://github.com/home-assistant/core/pull/112129
+[#112130]: https://github.com/home-assistant/core/pull/112130
+[#112131]: https://github.com/home-assistant/core/pull/112131
+[#112132]: https://github.com/home-assistant/core/pull/112132
+[#112134]: https://github.com/home-assistant/core/pull/112134
+[#112135]: https://github.com/home-assistant/core/pull/112135
+[#112136]: https://github.com/home-assistant/core/pull/112136
+[#112141]: https://github.com/home-assistant/core/pull/112141
+[#112143]: https://github.com/home-assistant/core/pull/112143
+[#112144]: https://github.com/home-assistant/core/pull/112144
+[#112145]: https://github.com/home-assistant/core/pull/112145
+[#112147]: https://github.com/home-assistant/core/pull/112147
+[#112148]: https://github.com/home-assistant/core/pull/112148
+[#112149]: https://github.com/home-assistant/core/pull/112149
+[#112151]: https://github.com/home-assistant/core/pull/112151
+[#112153]: https://github.com/home-assistant/core/pull/112153
+[#112155]: https://github.com/home-assistant/core/pull/112155
+[#112156]: https://github.com/home-assistant/core/pull/112156
+[#112158]: https://github.com/home-assistant/core/pull/112158
+[#112159]: https://github.com/home-assistant/core/pull/112159
+[#112160]: https://github.com/home-assistant/core/pull/112160
+[#112161]: https://github.com/home-assistant/core/pull/112161
+[#112162]: https://github.com/home-assistant/core/pull/112162
+[#112164]: https://github.com/home-assistant/core/pull/112164
+[#112166]: https://github.com/home-assistant/core/pull/112166
+[#112168]: https://github.com/home-assistant/core/pull/112168
+[#112169]: https://github.com/home-assistant/core/pull/112169
+[#112170]: https://github.com/home-assistant/core/pull/112170
+[#112172]: https://github.com/home-assistant/core/pull/112172
+[#112173]: https://github.com/home-assistant/core/pull/112173
+[#112174]: https://github.com/home-assistant/core/pull/112174
+[#112175]: https://github.com/home-assistant/core/pull/112175
+[#112177]: https://github.com/home-assistant/core/pull/112177
+[#112179]: https://github.com/home-assistant/core/pull/112179
+[#112180]: https://github.com/home-assistant/core/pull/112180
+[#112181]: https://github.com/home-assistant/core/pull/112181
+[#112182]: https://github.com/home-assistant/core/pull/112182
+[#112183]: https://github.com/home-assistant/core/pull/112183
+[#112184]: https://github.com/home-assistant/core/pull/112184
+[#112185]: https://github.com/home-assistant/core/pull/112185
+[#112186]: https://github.com/home-assistant/core/pull/112186
+[#112187]: https://github.com/home-assistant/core/pull/112187
+[#112188]: https://github.com/home-assistant/core/pull/112188
+[#112189]: https://github.com/home-assistant/core/pull/112189
+[#112190]: https://github.com/home-assistant/core/pull/112190
+[#112192]: https://github.com/home-assistant/core/pull/112192
+[#112193]: https://github.com/home-assistant/core/pull/112193
+[#112194]: https://github.com/home-assistant/core/pull/112194
+[#112195]: https://github.com/home-assistant/core/pull/112195
+[#112196]: https://github.com/home-assistant/core/pull/112196
+[#112197]: https://github.com/home-assistant/core/pull/112197
+[#112198]: https://github.com/home-assistant/core/pull/112198
+[#112200]: https://github.com/home-assistant/core/pull/112200
+[#112201]: https://github.com/home-assistant/core/pull/112201
+[#112202]: https://github.com/home-assistant/core/pull/112202
+[#112203]: https://github.com/home-assistant/core/pull/112203
+[#112204]: https://github.com/home-assistant/core/pull/112204
+[#112205]: https://github.com/home-assistant/core/pull/112205
+[#112207]: https://github.com/home-assistant/core/pull/112207
+[#112208]: https://github.com/home-assistant/core/pull/112208
+[#112209]: https://github.com/home-assistant/core/pull/112209
+[#112210]: https://github.com/home-assistant/core/pull/112210
+[#112211]: https://github.com/home-assistant/core/pull/112211
+[#112212]: https://github.com/home-assistant/core/pull/112212
+[#112213]: https://github.com/home-assistant/core/pull/112213
+[#112214]: https://github.com/home-assistant/core/pull/112214
+[#112215]: https://github.com/home-assistant/core/pull/112215
+[#112217]: https://github.com/home-assistant/core/pull/112217
+[#112218]: https://github.com/home-assistant/core/pull/112218
+[#112219]: https://github.com/home-assistant/core/pull/112219
+[#112220]: https://github.com/home-assistant/core/pull/112220
+[#112221]: https://github.com/home-assistant/core/pull/112221
+[#112222]: https://github.com/home-assistant/core/pull/112222
+[#112223]: https://github.com/home-assistant/core/pull/112223
+[#112224]: https://github.com/home-assistant/core/pull/112224
+[#112225]: https://github.com/home-assistant/core/pull/112225
+[#112226]: https://github.com/home-assistant/core/pull/112226
+[#112227]: https://github.com/home-assistant/core/pull/112227
+[#112228]: https://github.com/home-assistant/core/pull/112228
+[#112229]: https://github.com/home-assistant/core/pull/112229
+[#112230]: https://github.com/home-assistant/core/pull/112230
+[#112231]: https://github.com/home-assistant/core/pull/112231
+[#112232]: https://github.com/home-assistant/core/pull/112232
+[#112233]: https://github.com/home-assistant/core/pull/112233
+[#112234]: https://github.com/home-assistant/core/pull/112234
+[#112235]: https://github.com/home-assistant/core/pull/112235
+[#112236]: https://github.com/home-assistant/core/pull/112236
+[#112237]: https://github.com/home-assistant/core/pull/112237
+[#112239]: https://github.com/home-assistant/core/pull/112239
+[#112240]: https://github.com/home-assistant/core/pull/112240
+[#112241]: https://github.com/home-assistant/core/pull/112241
+[#112244]: https://github.com/home-assistant/core/pull/112244
+[#112246]: https://github.com/home-assistant/core/pull/112246
+[#112247]: https://github.com/home-assistant/core/pull/112247
+[#112252]: https://github.com/home-assistant/core/pull/112252
+[#112253]: https://github.com/home-assistant/core/pull/112253
+[#112254]: https://github.com/home-assistant/core/pull/112254
+[#112256]: https://github.com/home-assistant/core/pull/112256
+[#112267]: https://github.com/home-assistant/core/pull/112267
+[#112268]: https://github.com/home-assistant/core/pull/112268
+[#112269]: https://github.com/home-assistant/core/pull/112269
+[#112275]: https://github.com/home-assistant/core/pull/112275
+[#112276]: https://github.com/home-assistant/core/pull/112276
+[#112277]: https://github.com/home-assistant/core/pull/112277
+[#112281]: https://github.com/home-assistant/core/pull/112281
+[#112282]: https://github.com/home-assistant/core/pull/112282
+[#112284]: https://github.com/home-assistant/core/pull/112284
+[#112286]: https://github.com/home-assistant/core/pull/112286
+[#112288]: https://github.com/home-assistant/core/pull/112288
+[#112289]: https://github.com/home-assistant/core/pull/112289
+[#112290]: https://github.com/home-assistant/core/pull/112290
+[#112291]: https://github.com/home-assistant/core/pull/112291
+[#112292]: https://github.com/home-assistant/core/pull/112292
+[#112293]: https://github.com/home-assistant/core/pull/112293
+[#112294]: https://github.com/home-assistant/core/pull/112294
+[#112295]: https://github.com/home-assistant/core/pull/112295
+[#112296]: https://github.com/home-assistant/core/pull/112296
+[#112297]: https://github.com/home-assistant/core/pull/112297
+[#112299]: https://github.com/home-assistant/core/pull/112299
+[#112300]: https://github.com/home-assistant/core/pull/112300
+[#112301]: https://github.com/home-assistant/core/pull/112301
+[#112302]: https://github.com/home-assistant/core/pull/112302
+[#112303]: https://github.com/home-assistant/core/pull/112303
+[#112304]: https://github.com/home-assistant/core/pull/112304
+[#112305]: https://github.com/home-assistant/core/pull/112305
+[#112306]: https://github.com/home-assistant/core/pull/112306
+[#112307]: https://github.com/home-assistant/core/pull/112307
+[#112308]: https://github.com/home-assistant/core/pull/112308
+[#112309]: https://github.com/home-assistant/core/pull/112309
+[#112310]: https://github.com/home-assistant/core/pull/112310
+[#112311]: https://github.com/home-assistant/core/pull/112311
+[#112312]: https://github.com/home-assistant/core/pull/112312
+[#112313]: https://github.com/home-assistant/core/pull/112313
+[#112314]: https://github.com/home-assistant/core/pull/112314
+[#112315]: https://github.com/home-assistant/core/pull/112315
+[#112316]: https://github.com/home-assistant/core/pull/112316
+[#112317]: https://github.com/home-assistant/core/pull/112317
+[#112318]: https://github.com/home-assistant/core/pull/112318
+[#112319]: https://github.com/home-assistant/core/pull/112319
+[#112320]: https://github.com/home-assistant/core/pull/112320
+[#112321]: https://github.com/home-assistant/core/pull/112321
+[#112322]: https://github.com/home-assistant/core/pull/112322
+[#112323]: https://github.com/home-assistant/core/pull/112323
+[#112324]: https://github.com/home-assistant/core/pull/112324
+[#112325]: https://github.com/home-assistant/core/pull/112325
+[#112326]: https://github.com/home-assistant/core/pull/112326
+[#112327]: https://github.com/home-assistant/core/pull/112327
+[#112328]: https://github.com/home-assistant/core/pull/112328
+[#112329]: https://github.com/home-assistant/core/pull/112329
+[#112330]: https://github.com/home-assistant/core/pull/112330
+[#112332]: https://github.com/home-assistant/core/pull/112332
+[#112333]: https://github.com/home-assistant/core/pull/112333
+[#112335]: https://github.com/home-assistant/core/pull/112335
+[#112336]: https://github.com/home-assistant/core/pull/112336
+[#112338]: https://github.com/home-assistant/core/pull/112338
+[#112339]: https://github.com/home-assistant/core/pull/112339
+[#112340]: https://github.com/home-assistant/core/pull/112340
+[#112341]: https://github.com/home-assistant/core/pull/112341
+[#112342]: https://github.com/home-assistant/core/pull/112342
+[#112343]: https://github.com/home-assistant/core/pull/112343
+[#112344]: https://github.com/home-assistant/core/pull/112344
+[#112345]: https://github.com/home-assistant/core/pull/112345
+[#112346]: https://github.com/home-assistant/core/pull/112346
+[#112347]: https://github.com/home-assistant/core/pull/112347
+[#112348]: https://github.com/home-assistant/core/pull/112348
+[#112349]: https://github.com/home-assistant/core/pull/112349
+[#112350]: https://github.com/home-assistant/core/pull/112350
+[#112351]: https://github.com/home-assistant/core/pull/112351
+[#112352]: https://github.com/home-assistant/core/pull/112352
+[#112353]: https://github.com/home-assistant/core/pull/112353
+[#112354]: https://github.com/home-assistant/core/pull/112354
+[#112355]: https://github.com/home-assistant/core/pull/112355
+[#112356]: https://github.com/home-assistant/core/pull/112356
+[#112357]: https://github.com/home-assistant/core/pull/112357
+[#112358]: https://github.com/home-assistant/core/pull/112358
+[#112359]: https://github.com/home-assistant/core/pull/112359
+[#112360]: https://github.com/home-assistant/core/pull/112360
+[#112361]: https://github.com/home-assistant/core/pull/112361
+[#112362]: https://github.com/home-assistant/core/pull/112362
+[#112363]: https://github.com/home-assistant/core/pull/112363
+[#112364]: https://github.com/home-assistant/core/pull/112364
+[#112365]: https://github.com/home-assistant/core/pull/112365
+[#112366]: https://github.com/home-assistant/core/pull/112366
+[#112367]: https://github.com/home-assistant/core/pull/112367
+[#112368]: https://github.com/home-assistant/core/pull/112368
+[#112369]: https://github.com/home-assistant/core/pull/112369
+[#112370]: https://github.com/home-assistant/core/pull/112370
+[#112372]: https://github.com/home-assistant/core/pull/112372
+[#112373]: https://github.com/home-assistant/core/pull/112373
+[#112374]: https://github.com/home-assistant/core/pull/112374
+[#112375]: https://github.com/home-assistant/core/pull/112375
+[#112376]: https://github.com/home-assistant/core/pull/112376
+[#112377]: https://github.com/home-assistant/core/pull/112377
+[#112378]: https://github.com/home-assistant/core/pull/112378
+[#112379]: https://github.com/home-assistant/core/pull/112379
+[#112380]: https://github.com/home-assistant/core/pull/112380
+[#112382]: https://github.com/home-assistant/core/pull/112382
+[#112383]: https://github.com/home-assistant/core/pull/112383
+[#112384]: https://github.com/home-assistant/core/pull/112384
+[#112385]: https://github.com/home-assistant/core/pull/112385
+[#112386]: https://github.com/home-assistant/core/pull/112386
+[#112389]: https://github.com/home-assistant/core/pull/112389
+[#112390]: https://github.com/home-assistant/core/pull/112390
+[#112391]: https://github.com/home-assistant/core/pull/112391
+[#112393]: https://github.com/home-assistant/core/pull/112393
+[#112394]: https://github.com/home-assistant/core/pull/112394
+[#112395]: https://github.com/home-assistant/core/pull/112395
+[#112396]: https://github.com/home-assistant/core/pull/112396
+[#112397]: https://github.com/home-assistant/core/pull/112397
+[#112398]: https://github.com/home-assistant/core/pull/112398
+[#112399]: https://github.com/home-assistant/core/pull/112399
+[#112400]: https://github.com/home-assistant/core/pull/112400
+[#112401]: https://github.com/home-assistant/core/pull/112401
+[#112402]: https://github.com/home-assistant/core/pull/112402
+[#112405]: https://github.com/home-assistant/core/pull/112405
+[#112407]: https://github.com/home-assistant/core/pull/112407
+[#112408]: https://github.com/home-assistant/core/pull/112408
+[#112409]: https://github.com/home-assistant/core/pull/112409
+[#112410]: https://github.com/home-assistant/core/pull/112410
+[#112411]: https://github.com/home-assistant/core/pull/112411
+[#112412]: https://github.com/home-assistant/core/pull/112412
+[#112418]: https://github.com/home-assistant/core/pull/112418
+[#112419]: https://github.com/home-assistant/core/pull/112419
+[#112420]: https://github.com/home-assistant/core/pull/112420
+[#112423]: https://github.com/home-assistant/core/pull/112423
+[#112425]: https://github.com/home-assistant/core/pull/112425
+[#112426]: https://github.com/home-assistant/core/pull/112426
+[#112429]: https://github.com/home-assistant/core/pull/112429
+[#112430]: https://github.com/home-assistant/core/pull/112430
+[#112432]: https://github.com/home-assistant/core/pull/112432
+[#112433]: https://github.com/home-assistant/core/pull/112433
+[#112436]: https://github.com/home-assistant/core/pull/112436
+[#112438]: https://github.com/home-assistant/core/pull/112438
+[#112441]: https://github.com/home-assistant/core/pull/112441
+[#112444]: https://github.com/home-assistant/core/pull/112444
+[#112446]: https://github.com/home-assistant/core/pull/112446
+[#112447]: https://github.com/home-assistant/core/pull/112447
+[#112449]: https://github.com/home-assistant/core/pull/112449
+[#112452]: https://github.com/home-assistant/core/pull/112452
+[#112456]: https://github.com/home-assistant/core/pull/112456
+[#112457]: https://github.com/home-assistant/core/pull/112457
+[#112460]: https://github.com/home-assistant/core/pull/112460
+[#112461]: https://github.com/home-assistant/core/pull/112461
+[#112462]: https://github.com/home-assistant/core/pull/112462
+[#112466]: https://github.com/home-assistant/core/pull/112466
+[#112467]: https://github.com/home-assistant/core/pull/112467
+[#112468]: https://github.com/home-assistant/core/pull/112468
+[#112469]: https://github.com/home-assistant/core/pull/112469
+[#112470]: https://github.com/home-assistant/core/pull/112470
+[#112472]: https://github.com/home-assistant/core/pull/112472
+[#112475]: https://github.com/home-assistant/core/pull/112475
+[#112477]: https://github.com/home-assistant/core/pull/112477
+[#112482]: https://github.com/home-assistant/core/pull/112482
+[#112483]: https://github.com/home-assistant/core/pull/112483
+[#112484]: https://github.com/home-assistant/core/pull/112484
+[#112485]: https://github.com/home-assistant/core/pull/112485
+[#112486]: https://github.com/home-assistant/core/pull/112486
+[#112488]: https://github.com/home-assistant/core/pull/112488
+[#112489]: https://github.com/home-assistant/core/pull/112489
+[#112490]: https://github.com/home-assistant/core/pull/112490
+[#112493]: https://github.com/home-assistant/core/pull/112493
+[#112496]: https://github.com/home-assistant/core/pull/112496
+[#112497]: https://github.com/home-assistant/core/pull/112497
+[#112498]: https://github.com/home-assistant/core/pull/112498
+[#112503]: https://github.com/home-assistant/core/pull/112503
+[#112514]: https://github.com/home-assistant/core/pull/112514
+[#112518]: https://github.com/home-assistant/core/pull/112518
+[#112520]: https://github.com/home-assistant/core/pull/112520
+[#112522]: https://github.com/home-assistant/core/pull/112522
+[#112526]: https://github.com/home-assistant/core/pull/112526
+[#112528]: https://github.com/home-assistant/core/pull/112528
+[#112532]: https://github.com/home-assistant/core/pull/112532
+[#112533]: https://github.com/home-assistant/core/pull/112533
+[#112535]: https://github.com/home-assistant/core/pull/112535
+[#112536]: https://github.com/home-assistant/core/pull/112536
+[#112542]: https://github.com/home-assistant/core/pull/112542
+[#112543]: https://github.com/home-assistant/core/pull/112543
+[#112546]: https://github.com/home-assistant/core/pull/112546
+[#112551]: https://github.com/home-assistant/core/pull/112551
+[#112555]: https://github.com/home-assistant/core/pull/112555
+[#112557]: https://github.com/home-assistant/core/pull/112557
+[#112560]: https://github.com/home-assistant/core/pull/112560
+[#112562]: https://github.com/home-assistant/core/pull/112562
+[#112563]: https://github.com/home-assistant/core/pull/112563
+[#112572]: https://github.com/home-assistant/core/pull/112572
+[#112575]: https://github.com/home-assistant/core/pull/112575
+[#112608]: https://github.com/home-assistant/core/pull/112608
+[#112609]: https://github.com/home-assistant/core/pull/112609
+[#112610]: https://github.com/home-assistant/core/pull/112610
+[#112612]: https://github.com/home-assistant/core/pull/112612
+[#112626]: https://github.com/home-assistant/core/pull/112626
+[#112634]: https://github.com/home-assistant/core/pull/112634
+[#112637]: https://github.com/home-assistant/core/pull/112637
+[#112640]: https://github.com/home-assistant/core/pull/112640
+[#112643]: https://github.com/home-assistant/core/pull/112643
+[#112652]: https://github.com/home-assistant/core/pull/112652
+[#112657]: https://github.com/home-assistant/core/pull/112657
+[#112658]: https://github.com/home-assistant/core/pull/112658
+[#112662]: https://github.com/home-assistant/core/pull/112662
+[#112665]: https://github.com/home-assistant/core/pull/112665
+[#112668]: https://github.com/home-assistant/core/pull/112668
+[#112669]: https://github.com/home-assistant/core/pull/112669
+[#112670]: https://github.com/home-assistant/core/pull/112670
+[#112671]: https://github.com/home-assistant/core/pull/112671
+[#112682]: https://github.com/home-assistant/core/pull/112682
+[#112683]: https://github.com/home-assistant/core/pull/112683
+[#112690]: https://github.com/home-assistant/core/pull/112690
+[#112695]: https://github.com/home-assistant/core/pull/112695
+[#112697]: https://github.com/home-assistant/core/pull/112697
+[#112698]: https://github.com/home-assistant/core/pull/112698
+[#112699]: https://github.com/home-assistant/core/pull/112699
+[#112700]: https://github.com/home-assistant/core/pull/112700
+[#112702]: https://github.com/home-assistant/core/pull/112702
+[#112703]: https://github.com/home-assistant/core/pull/112703
+[#112704]: https://github.com/home-assistant/core/pull/112704
+[#112705]: https://github.com/home-assistant/core/pull/112705
+[#112706]: https://github.com/home-assistant/core/pull/112706
+[#112707]: https://github.com/home-assistant/core/pull/112707
+[#112708]: https://github.com/home-assistant/core/pull/112708
+[#112709]: https://github.com/home-assistant/core/pull/112709
+[#112710]: https://github.com/home-assistant/core/pull/112710
+[#112711]: https://github.com/home-assistant/core/pull/112711
+[#112712]: https://github.com/home-assistant/core/pull/112712
+[#112720]: https://github.com/home-assistant/core/pull/112720
+[#112725]: https://github.com/home-assistant/core/pull/112725
+[#112726]: https://github.com/home-assistant/core/pull/112726
+[#112728]: https://github.com/home-assistant/core/pull/112728
+[#112732]: https://github.com/home-assistant/core/pull/112732
+[#112734]: https://github.com/home-assistant/core/pull/112734
+[#112736]: https://github.com/home-assistant/core/pull/112736
+[#112737]: https://github.com/home-assistant/core/pull/112737
+[#112738]: https://github.com/home-assistant/core/pull/112738
+[#112739]: https://github.com/home-assistant/core/pull/112739
+[#112740]: https://github.com/home-assistant/core/pull/112740
+[#112741]: https://github.com/home-assistant/core/pull/112741
+[#112742]: https://github.com/home-assistant/core/pull/112742
+[#112743]: https://github.com/home-assistant/core/pull/112743
+[#112749]: https://github.com/home-assistant/core/pull/112749
+[#112750]: https://github.com/home-assistant/core/pull/112750
+[#112752]: https://github.com/home-assistant/core/pull/112752
+[#112753]: https://github.com/home-assistant/core/pull/112753
+[#112756]: https://github.com/home-assistant/core/pull/112756
+[#112760]: https://github.com/home-assistant/core/pull/112760
+[#112763]: https://github.com/home-assistant/core/pull/112763
+[#112764]: https://github.com/home-assistant/core/pull/112764
+[#112765]: https://github.com/home-assistant/core/pull/112765
+[#112766]: https://github.com/home-assistant/core/pull/112766
+[#112767]: https://github.com/home-assistant/core/pull/112767
+[#112768]: https://github.com/home-assistant/core/pull/112768
+[#112769]: https://github.com/home-assistant/core/pull/112769
+[#112770]: https://github.com/home-assistant/core/pull/112770
+[#112771]: https://github.com/home-assistant/core/pull/112771
+[#112772]: https://github.com/home-assistant/core/pull/112772
+[#112773]: https://github.com/home-assistant/core/pull/112773
+[#112774]: https://github.com/home-assistant/core/pull/112774
+[#112775]: https://github.com/home-assistant/core/pull/112775
+[#112776]: https://github.com/home-assistant/core/pull/112776
+[#112777]: https://github.com/home-assistant/core/pull/112777
+[#112778]: https://github.com/home-assistant/core/pull/112778
+[#112779]: https://github.com/home-assistant/core/pull/112779
+[#112780]: https://github.com/home-assistant/core/pull/112780
+[#112781]: https://github.com/home-assistant/core/pull/112781
+[#112782]: https://github.com/home-assistant/core/pull/112782
+[#112786]: https://github.com/home-assistant/core/pull/112786
+[#112788]: https://github.com/home-assistant/core/pull/112788
+[#112789]: https://github.com/home-assistant/core/pull/112789
+[#112790]: https://github.com/home-assistant/core/pull/112790
+[#112791]: https://github.com/home-assistant/core/pull/112791
+[#112793]: https://github.com/home-assistant/core/pull/112793
+[#112800]: https://github.com/home-assistant/core/pull/112800
+[#112801]: https://github.com/home-assistant/core/pull/112801
+[#112802]: https://github.com/home-assistant/core/pull/112802
+[#112803]: https://github.com/home-assistant/core/pull/112803
+[#112804]: https://github.com/home-assistant/core/pull/112804
+[#112805]: https://github.com/home-assistant/core/pull/112805
+[#112807]: https://github.com/home-assistant/core/pull/112807
+[#112810]: https://github.com/home-assistant/core/pull/112810
+[#112813]: https://github.com/home-assistant/core/pull/112813
+[#112814]: https://github.com/home-assistant/core/pull/112814
+[#112818]: https://github.com/home-assistant/core/pull/112818
+[#112819]: https://github.com/home-assistant/core/pull/112819
+[#112820]: https://github.com/home-assistant/core/pull/112820
+[#112821]: https://github.com/home-assistant/core/pull/112821
+[#112822]: https://github.com/home-assistant/core/pull/112822
+[#112825]: https://github.com/home-assistant/core/pull/112825
+[#112826]: https://github.com/home-assistant/core/pull/112826
+[#112828]: https://github.com/home-assistant/core/pull/112828
+[#112844]: https://github.com/home-assistant/core/pull/112844
+[#112845]: https://github.com/home-assistant/core/pull/112845
+[#112846]: https://github.com/home-assistant/core/pull/112846
+[#112847]: https://github.com/home-assistant/core/pull/112847
+[#112849]: https://github.com/home-assistant/core/pull/112849
+[#112850]: https://github.com/home-assistant/core/pull/112850
+[#112851]: https://github.com/home-assistant/core/pull/112851
+[#112854]: https://github.com/home-assistant/core/pull/112854
+[#112859]: https://github.com/home-assistant/core/pull/112859
+[#112863]: https://github.com/home-assistant/core/pull/112863
+[#112864]: https://github.com/home-assistant/core/pull/112864
+[#112866]: https://github.com/home-assistant/core/pull/112866
+[#112869]: https://github.com/home-assistant/core/pull/112869
+[#112872]: https://github.com/home-assistant/core/pull/112872
+[#112888]: https://github.com/home-assistant/core/pull/112888
+[#112892]: https://github.com/home-assistant/core/pull/112892
+[#112893]: https://github.com/home-assistant/core/pull/112893
+[#112895]: https://github.com/home-assistant/core/pull/112895
+[#112896]: https://github.com/home-assistant/core/pull/112896
+[#112898]: https://github.com/home-assistant/core/pull/112898
+[#112899]: https://github.com/home-assistant/core/pull/112899
+[#112900]: https://github.com/home-assistant/core/pull/112900
+[#112901]: https://github.com/home-assistant/core/pull/112901
+[#112902]: https://github.com/home-assistant/core/pull/112902
+[#112903]: https://github.com/home-assistant/core/pull/112903
+[#112904]: https://github.com/home-assistant/core/pull/112904
+[#112905]: https://github.com/home-assistant/core/pull/112905
+[#112906]: https://github.com/home-assistant/core/pull/112906
+[#112907]: https://github.com/home-assistant/core/pull/112907
+[#112908]: https://github.com/home-assistant/core/pull/112908
+[#112909]: https://github.com/home-assistant/core/pull/112909
+[#112910]: https://github.com/home-assistant/core/pull/112910
+[#112911]: https://github.com/home-assistant/core/pull/112911
+[#112912]: https://github.com/home-assistant/core/pull/112912
+[#112913]: https://github.com/home-assistant/core/pull/112913
+[#112914]: https://github.com/home-assistant/core/pull/112914
+[#112915]: https://github.com/home-assistant/core/pull/112915
+[#112917]: https://github.com/home-assistant/core/pull/112917
+[#112918]: https://github.com/home-assistant/core/pull/112918
+[#112919]: https://github.com/home-assistant/core/pull/112919
+[#112920]: https://github.com/home-assistant/core/pull/112920
+[#112921]: https://github.com/home-assistant/core/pull/112921
+[#112922]: https://github.com/home-assistant/core/pull/112922
+[#112923]: https://github.com/home-assistant/core/pull/112923
+[#112924]: https://github.com/home-assistant/core/pull/112924
+[#112925]: https://github.com/home-assistant/core/pull/112925
+[#112926]: https://github.com/home-assistant/core/pull/112926
+[#112928]: https://github.com/home-assistant/core/pull/112928
+[#112929]: https://github.com/home-assistant/core/pull/112929
+[#112930]: https://github.com/home-assistant/core/pull/112930
+[#112931]: https://github.com/home-assistant/core/pull/112931
+[#112932]: https://github.com/home-assistant/core/pull/112932
+[#112933]: https://github.com/home-assistant/core/pull/112933
+[#112934]: https://github.com/home-assistant/core/pull/112934
+[#112935]: https://github.com/home-assistant/core/pull/112935
+[#112936]: https://github.com/home-assistant/core/pull/112936
+[#112937]: https://github.com/home-assistant/core/pull/112937
+[#112938]: https://github.com/home-assistant/core/pull/112938
+[#112939]: https://github.com/home-assistant/core/pull/112939
+[#112940]: https://github.com/home-assistant/core/pull/112940
+[#112941]: https://github.com/home-assistant/core/pull/112941
+[#112942]: https://github.com/home-assistant/core/pull/112942
+[#112943]: https://github.com/home-assistant/core/pull/112943
+[#112944]: https://github.com/home-assistant/core/pull/112944
+[#112945]: https://github.com/home-assistant/core/pull/112945
+[#112946]: https://github.com/home-assistant/core/pull/112946
+[#112947]: https://github.com/home-assistant/core/pull/112947
+[#112949]: https://github.com/home-assistant/core/pull/112949
+[#112951]: https://github.com/home-assistant/core/pull/112951
+[#112952]: https://github.com/home-assistant/core/pull/112952
+[#112953]: https://github.com/home-assistant/core/pull/112953
+[#112954]: https://github.com/home-assistant/core/pull/112954
+[#112955]: https://github.com/home-assistant/core/pull/112955
+[#112956]: https://github.com/home-assistant/core/pull/112956
+[#112957]: https://github.com/home-assistant/core/pull/112957
+[#112958]: https://github.com/home-assistant/core/pull/112958
+[#112959]: https://github.com/home-assistant/core/pull/112959
+[#112960]: https://github.com/home-assistant/core/pull/112960
+[#112963]: https://github.com/home-assistant/core/pull/112963
+[#112964]: https://github.com/home-assistant/core/pull/112964
+[#112965]: https://github.com/home-assistant/core/pull/112965
+[#112966]: https://github.com/home-assistant/core/pull/112966
+[#112967]: https://github.com/home-assistant/core/pull/112967
+[#112969]: https://github.com/home-assistant/core/pull/112969
+[#112970]: https://github.com/home-assistant/core/pull/112970
+[#112971]: https://github.com/home-assistant/core/pull/112971
+[#112972]: https://github.com/home-assistant/core/pull/112972
+[#112973]: https://github.com/home-assistant/core/pull/112973
+[#112974]: https://github.com/home-assistant/core/pull/112974
+[#112975]: https://github.com/home-assistant/core/pull/112975
+[#112976]: https://github.com/home-assistant/core/pull/112976
+[#112977]: https://github.com/home-assistant/core/pull/112977
+[#112979]: https://github.com/home-assistant/core/pull/112979
+[#112982]: https://github.com/home-assistant/core/pull/112982
+[#112987]: https://github.com/home-assistant/core/pull/112987
+[#112988]: https://github.com/home-assistant/core/pull/112988
+[#112989]: https://github.com/home-assistant/core/pull/112989
+[#112990]: https://github.com/home-assistant/core/pull/112990
+[#112991]: https://github.com/home-assistant/core/pull/112991
+[#112992]: https://github.com/home-assistant/core/pull/112992
+[#112993]: https://github.com/home-assistant/core/pull/112993
+[#112994]: https://github.com/home-assistant/core/pull/112994
+[#112995]: https://github.com/home-assistant/core/pull/112995
+[#112996]: https://github.com/home-assistant/core/pull/112996
+[#112997]: https://github.com/home-assistant/core/pull/112997
+[#113002]: https://github.com/home-assistant/core/pull/113002
+[#113004]: https://github.com/home-assistant/core/pull/113004
+[#113005]: https://github.com/home-assistant/core/pull/113005
+[#113006]: https://github.com/home-assistant/core/pull/113006
+[#113010]: https://github.com/home-assistant/core/pull/113010
+[#113011]: https://github.com/home-assistant/core/pull/113011
+[#113012]: https://github.com/home-assistant/core/pull/113012
+[#113013]: https://github.com/home-assistant/core/pull/113013
+[#113014]: https://github.com/home-assistant/core/pull/113014
+[#113015]: https://github.com/home-assistant/core/pull/113015
+[#113016]: https://github.com/home-assistant/core/pull/113016
+[#113017]: https://github.com/home-assistant/core/pull/113017
+[#113018]: https://github.com/home-assistant/core/pull/113018
+[#113020]: https://github.com/home-assistant/core/pull/113020
+[#113022]: https://github.com/home-assistant/core/pull/113022
+[#113026]: https://github.com/home-assistant/core/pull/113026
+[#113027]: https://github.com/home-assistant/core/pull/113027
+[#113030]: https://github.com/home-assistant/core/pull/113030
+[#113031]: https://github.com/home-assistant/core/pull/113031
+[#113032]: https://github.com/home-assistant/core/pull/113032
+[#113033]: https://github.com/home-assistant/core/pull/113033
+[#113038]: https://github.com/home-assistant/core/pull/113038
+[#113041]: https://github.com/home-assistant/core/pull/113041
+[#113042]: https://github.com/home-assistant/core/pull/113042
+[#113044]: https://github.com/home-assistant/core/pull/113044
+[#113045]: https://github.com/home-assistant/core/pull/113045
+[#113046]: https://github.com/home-assistant/core/pull/113046
+[#113049]: https://github.com/home-assistant/core/pull/113049
+[#113051]: https://github.com/home-assistant/core/pull/113051
+[#113055]: https://github.com/home-assistant/core/pull/113055
+[#113057]: https://github.com/home-assistant/core/pull/113057
+[#113060]: https://github.com/home-assistant/core/pull/113060
+[#113069]: https://github.com/home-assistant/core/pull/113069
+[#113072]: https://github.com/home-assistant/core/pull/113072
+[#113074]: https://github.com/home-assistant/core/pull/113074
+[#113075]: https://github.com/home-assistant/core/pull/113075
+[#113089]: https://github.com/home-assistant/core/pull/113089
+[#113090]: https://github.com/home-assistant/core/pull/113090
+[#113094]: https://github.com/home-assistant/core/pull/113094
+[#113099]: https://github.com/home-assistant/core/pull/113099
+[#113102]: https://github.com/home-assistant/core/pull/113102
+[#113103]: https://github.com/home-assistant/core/pull/113103
+[#113107]: https://github.com/home-assistant/core/pull/113107
+[#113108]: https://github.com/home-assistant/core/pull/113108
+[#113109]: https://github.com/home-assistant/core/pull/113109
+[#113110]: https://github.com/home-assistant/core/pull/113110
+[#113111]: https://github.com/home-assistant/core/pull/113111
+[#113112]: https://github.com/home-assistant/core/pull/113112
+[#113113]: https://github.com/home-assistant/core/pull/113113
+[#113114]: https://github.com/home-assistant/core/pull/113114
+[#113115]: https://github.com/home-assistant/core/pull/113115
+[#113116]: https://github.com/home-assistant/core/pull/113116
+[#113118]: https://github.com/home-assistant/core/pull/113118
+[#113119]: https://github.com/home-assistant/core/pull/113119
+[#113120]: https://github.com/home-assistant/core/pull/113120
+[#113122]: https://github.com/home-assistant/core/pull/113122
+[#113123]: https://github.com/home-assistant/core/pull/113123
+[#113124]: https://github.com/home-assistant/core/pull/113124
+[#113126]: https://github.com/home-assistant/core/pull/113126
+[#113128]: https://github.com/home-assistant/core/pull/113128
+[#113129]: https://github.com/home-assistant/core/pull/113129
+[#113130]: https://github.com/home-assistant/core/pull/113130
+[#113132]: https://github.com/home-assistant/core/pull/113132
+[#113133]: https://github.com/home-assistant/core/pull/113133
+[#113136]: https://github.com/home-assistant/core/pull/113136
+[#113138]: https://github.com/home-assistant/core/pull/113138
+[#113139]: https://github.com/home-assistant/core/pull/113139
+[#113168]: https://github.com/home-assistant/core/pull/113168
+[#113169]: https://github.com/home-assistant/core/pull/113169
+[#113173]: https://github.com/home-assistant/core/pull/113173
+[#113174]: https://github.com/home-assistant/core/pull/113174
+[#113175]: https://github.com/home-assistant/core/pull/113175
+[#113178]: https://github.com/home-assistant/core/pull/113178
+[#113179]: https://github.com/home-assistant/core/pull/113179
+[#113181]: https://github.com/home-assistant/core/pull/113181
+[#113182]: https://github.com/home-assistant/core/pull/113182
+[#113183]: https://github.com/home-assistant/core/pull/113183
+[#113184]: https://github.com/home-assistant/core/pull/113184
+[#113185]: https://github.com/home-assistant/core/pull/113185
+[#113188]: https://github.com/home-assistant/core/pull/113188
+[#113189]: https://github.com/home-assistant/core/pull/113189
+[#113190]: https://github.com/home-assistant/core/pull/113190
+[#113191]: https://github.com/home-assistant/core/pull/113191
+[#113192]: https://github.com/home-assistant/core/pull/113192
+[#113195]: https://github.com/home-assistant/core/pull/113195
+[#113197]: https://github.com/home-assistant/core/pull/113197
+[#113201]: https://github.com/home-assistant/core/pull/113201
+[#113202]: https://github.com/home-assistant/core/pull/113202
+[#113206]: https://github.com/home-assistant/core/pull/113206
+[#113207]: https://github.com/home-assistant/core/pull/113207
+[#113208]: https://github.com/home-assistant/core/pull/113208
+[#113215]: https://github.com/home-assistant/core/pull/113215
+[#113217]: https://github.com/home-assistant/core/pull/113217
+[#113218]: https://github.com/home-assistant/core/pull/113218
+[#113221]: https://github.com/home-assistant/core/pull/113221
+[#113225]: https://github.com/home-assistant/core/pull/113225
+[#113227]: https://github.com/home-assistant/core/pull/113227
+[#113229]: https://github.com/home-assistant/core/pull/113229
+[#113231]: https://github.com/home-assistant/core/pull/113231
+[#113233]: https://github.com/home-assistant/core/pull/113233
+[#113236]: https://github.com/home-assistant/core/pull/113236
+[#113241]: https://github.com/home-assistant/core/pull/113241
+[#113242]: https://github.com/home-assistant/core/pull/113242
+[#113243]: https://github.com/home-assistant/core/pull/113243
+[#113245]: https://github.com/home-assistant/core/pull/113245
+[#113248]: https://github.com/home-assistant/core/pull/113248
+[#113252]: https://github.com/home-assistant/core/pull/113252
+[#113253]: https://github.com/home-assistant/core/pull/113253
+[#113256]: https://github.com/home-assistant/core/pull/113256
+[#113257]: https://github.com/home-assistant/core/pull/113257
+[#113258]: https://github.com/home-assistant/core/pull/113258
+[#113259]: https://github.com/home-assistant/core/pull/113259
+[#113260]: https://github.com/home-assistant/core/pull/113260
+[#113262]: https://github.com/home-assistant/core/pull/113262
+[#113263]: https://github.com/home-assistant/core/pull/113263
+[#113268]: https://github.com/home-assistant/core/pull/113268
+[#113269]: https://github.com/home-assistant/core/pull/113269
+[#113270]: https://github.com/home-assistant/core/pull/113270
+[#113271]: https://github.com/home-assistant/core/pull/113271
+[#113272]: https://github.com/home-assistant/core/pull/113272
+[#113273]: https://github.com/home-assistant/core/pull/113273
+[#113274]: https://github.com/home-assistant/core/pull/113274
+[#113276]: https://github.com/home-assistant/core/pull/113276
+[#113277]: https://github.com/home-assistant/core/pull/113277
+[#113278]: https://github.com/home-assistant/core/pull/113278
+[#113280]: https://github.com/home-assistant/core/pull/113280
+[#113281]: https://github.com/home-assistant/core/pull/113281
+[#113282]: https://github.com/home-assistant/core/pull/113282
+[#113283]: https://github.com/home-assistant/core/pull/113283
+[#113284]: https://github.com/home-assistant/core/pull/113284
+[#113285]: https://github.com/home-assistant/core/pull/113285
+[#113286]: https://github.com/home-assistant/core/pull/113286
+[#113287]: https://github.com/home-assistant/core/pull/113287
+[#113288]: https://github.com/home-assistant/core/pull/113288
+[#113289]: https://github.com/home-assistant/core/pull/113289
+[#113290]: https://github.com/home-assistant/core/pull/113290
+[#113291]: https://github.com/home-assistant/core/pull/113291
+[#113292]: https://github.com/home-assistant/core/pull/113292
+[#113293]: https://github.com/home-assistant/core/pull/113293
+[#113294]: https://github.com/home-assistant/core/pull/113294
+[#113295]: https://github.com/home-assistant/core/pull/113295
+[#113296]: https://github.com/home-assistant/core/pull/113296
+[#113297]: https://github.com/home-assistant/core/pull/113297
+[#113298]: https://github.com/home-assistant/core/pull/113298
+[#113299]: https://github.com/home-assistant/core/pull/113299
+[#113300]: https://github.com/home-assistant/core/pull/113300
+[#113301]: https://github.com/home-assistant/core/pull/113301
+[#113302]: https://github.com/home-assistant/core/pull/113302
+[#113303]: https://github.com/home-assistant/core/pull/113303
+[#113304]: https://github.com/home-assistant/core/pull/113304
+[#113305]: https://github.com/home-assistant/core/pull/113305
+[#113306]: https://github.com/home-assistant/core/pull/113306
+[#113307]: https://github.com/home-assistant/core/pull/113307
+[#113308]: https://github.com/home-assistant/core/pull/113308
+[#113309]: https://github.com/home-assistant/core/pull/113309
+[#113311]: https://github.com/home-assistant/core/pull/113311
+[#113312]: https://github.com/home-assistant/core/pull/113312
+[#113313]: https://github.com/home-assistant/core/pull/113313
+[#113314]: https://github.com/home-assistant/core/pull/113314
+[#113315]: https://github.com/home-assistant/core/pull/113315
+[#113316]: https://github.com/home-assistant/core/pull/113316
+[#113317]: https://github.com/home-assistant/core/pull/113317
+[#113318]: https://github.com/home-assistant/core/pull/113318
+[#113319]: https://github.com/home-assistant/core/pull/113319
+[#113320]: https://github.com/home-assistant/core/pull/113320
+[#113321]: https://github.com/home-assistant/core/pull/113321
+[#113322]: https://github.com/home-assistant/core/pull/113322
+[#113323]: https://github.com/home-assistant/core/pull/113323
+[#113324]: https://github.com/home-assistant/core/pull/113324
+[#113325]: https://github.com/home-assistant/core/pull/113325
+[#113326]: https://github.com/home-assistant/core/pull/113326
+[#113327]: https://github.com/home-assistant/core/pull/113327
+[#113328]: https://github.com/home-assistant/core/pull/113328
+[#113329]: https://github.com/home-assistant/core/pull/113329
+[#113330]: https://github.com/home-assistant/core/pull/113330
+[#113331]: https://github.com/home-assistant/core/pull/113331
+[#113332]: https://github.com/home-assistant/core/pull/113332
+[#113333]: https://github.com/home-assistant/core/pull/113333
+[#113335]: https://github.com/home-assistant/core/pull/113335
+[#113336]: https://github.com/home-assistant/core/pull/113336
+[#113337]: https://github.com/home-assistant/core/pull/113337
+[#113338]: https://github.com/home-assistant/core/pull/113338
+[#113339]: https://github.com/home-assistant/core/pull/113339
+[#113340]: https://github.com/home-assistant/core/pull/113340
+[#113341]: https://github.com/home-assistant/core/pull/113341
+[#113342]: https://github.com/home-assistant/core/pull/113342
+[#113343]: https://github.com/home-assistant/core/pull/113343
+[#113344]: https://github.com/home-assistant/core/pull/113344
+[#113345]: https://github.com/home-assistant/core/pull/113345
+[#113346]: https://github.com/home-assistant/core/pull/113346
+[#113347]: https://github.com/home-assistant/core/pull/113347
+[#113348]: https://github.com/home-assistant/core/pull/113348
+[#113349]: https://github.com/home-assistant/core/pull/113349
+[#113350]: https://github.com/home-assistant/core/pull/113350
+[#113351]: https://github.com/home-assistant/core/pull/113351
+[#113352]: https://github.com/home-assistant/core/pull/113352
+[#113353]: https://github.com/home-assistant/core/pull/113353
+[#113354]: https://github.com/home-assistant/core/pull/113354
+[#113355]: https://github.com/home-assistant/core/pull/113355
+[#113356]: https://github.com/home-assistant/core/pull/113356
+[#113357]: https://github.com/home-assistant/core/pull/113357
+[#113358]: https://github.com/home-assistant/core/pull/113358
+[#113359]: https://github.com/home-assistant/core/pull/113359
+[#113360]: https://github.com/home-assistant/core/pull/113360
+[#113361]: https://github.com/home-assistant/core/pull/113361
+[#113362]: https://github.com/home-assistant/core/pull/113362
+[#113363]: https://github.com/home-assistant/core/pull/113363
+[#113364]: https://github.com/home-assistant/core/pull/113364
+[#113365]: https://github.com/home-assistant/core/pull/113365
+[#113366]: https://github.com/home-assistant/core/pull/113366
+[#113367]: https://github.com/home-assistant/core/pull/113367
+[#113368]: https://github.com/home-assistant/core/pull/113368
+[#113369]: https://github.com/home-assistant/core/pull/113369
+[#113370]: https://github.com/home-assistant/core/pull/113370
+[#113371]: https://github.com/home-assistant/core/pull/113371
+[#113378]: https://github.com/home-assistant/core/pull/113378
+[#113382]: https://github.com/home-assistant/core/pull/113382
+[#113383]: https://github.com/home-assistant/core/pull/113383
+[#113384]: https://github.com/home-assistant/core/pull/113384
+[#113386]: https://github.com/home-assistant/core/pull/113386
+[#113387]: https://github.com/home-assistant/core/pull/113387
+[#113388]: https://github.com/home-assistant/core/pull/113388
+[#113389]: https://github.com/home-assistant/core/pull/113389
+[#113390]: https://github.com/home-assistant/core/pull/113390
+[#113391]: https://github.com/home-assistant/core/pull/113391
+[#113397]: https://github.com/home-assistant/core/pull/113397
+[#113401]: https://github.com/home-assistant/core/pull/113401
+[#113402]: https://github.com/home-assistant/core/pull/113402
+[#113404]: https://github.com/home-assistant/core/pull/113404
+[#113405]: https://github.com/home-assistant/core/pull/113405
+[#113406]: https://github.com/home-assistant/core/pull/113406
+[#113408]: https://github.com/home-assistant/core/pull/113408
+[#113409]: https://github.com/home-assistant/core/pull/113409
+[#113410]: https://github.com/home-assistant/core/pull/113410
+[#113411]: https://github.com/home-assistant/core/pull/113411
+[#113412]: https://github.com/home-assistant/core/pull/113412
+[#113413]: https://github.com/home-assistant/core/pull/113413
+[#113414]: https://github.com/home-assistant/core/pull/113414
+[#113415]: https://github.com/home-assistant/core/pull/113415
+[#113416]: https://github.com/home-assistant/core/pull/113416
+[#113417]: https://github.com/home-assistant/core/pull/113417
+[#113418]: https://github.com/home-assistant/core/pull/113418
+[#113419]: https://github.com/home-assistant/core/pull/113419
+[#113420]: https://github.com/home-assistant/core/pull/113420
+[#113422]: https://github.com/home-assistant/core/pull/113422
+[#113425]: https://github.com/home-assistant/core/pull/113425
+[#113431]: https://github.com/home-assistant/core/pull/113431
+[#113440]: https://github.com/home-assistant/core/pull/113440
+[#113441]: https://github.com/home-assistant/core/pull/113441
+[#113442]: https://github.com/home-assistant/core/pull/113442
+[#113446]: https://github.com/home-assistant/core/pull/113446
+[#113447]: https://github.com/home-assistant/core/pull/113447
+[#113450]: https://github.com/home-assistant/core/pull/113450
+[#113451]: https://github.com/home-assistant/core/pull/113451
+[#113453]: https://github.com/home-assistant/core/pull/113453
+[#113455]: https://github.com/home-assistant/core/pull/113455
+[#113462]: https://github.com/home-assistant/core/pull/113462
+[#113465]: https://github.com/home-assistant/core/pull/113465
+[#113467]: https://github.com/home-assistant/core/pull/113467
+[#113469]: https://github.com/home-assistant/core/pull/113469
+[#113471]: https://github.com/home-assistant/core/pull/113471
+[#113478]: https://github.com/home-assistant/core/pull/113478
+[#113480]: https://github.com/home-assistant/core/pull/113480
+[#113482]: https://github.com/home-assistant/core/pull/113482
+[#113485]: https://github.com/home-assistant/core/pull/113485
+[#113490]: https://github.com/home-assistant/core/pull/113490
+[#113493]: https://github.com/home-assistant/core/pull/113493
+[#113496]: https://github.com/home-assistant/core/pull/113496
+[#113501]: https://github.com/home-assistant/core/pull/113501
+[#113502]: https://github.com/home-assistant/core/pull/113502
+[#113504]: https://github.com/home-assistant/core/pull/113504
+[#113506]: https://github.com/home-assistant/core/pull/113506
+[#113508]: https://github.com/home-assistant/core/pull/113508
+[#113509]: https://github.com/home-assistant/core/pull/113509
+[#113510]: https://github.com/home-assistant/core/pull/113510
+[#113511]: https://github.com/home-assistant/core/pull/113511
+[#113514]: https://github.com/home-assistant/core/pull/113514
+[#113516]: https://github.com/home-assistant/core/pull/113516
+[#113524]: https://github.com/home-assistant/core/pull/113524
+[#113527]: https://github.com/home-assistant/core/pull/113527
+[#113528]: https://github.com/home-assistant/core/pull/113528
+[#113529]: https://github.com/home-assistant/core/pull/113529
+[#113530]: https://github.com/home-assistant/core/pull/113530
+[#113531]: https://github.com/home-assistant/core/pull/113531
+[#113533]: https://github.com/home-assistant/core/pull/113533
+[#113534]: https://github.com/home-assistant/core/pull/113534
+[#113535]: https://github.com/home-assistant/core/pull/113535
+[#113537]: https://github.com/home-assistant/core/pull/113537
+[#113540]: https://github.com/home-assistant/core/pull/113540
+[#113542]: https://github.com/home-assistant/core/pull/113542
+[#113543]: https://github.com/home-assistant/core/pull/113543
+[#113544]: https://github.com/home-assistant/core/pull/113544
+[#113549]: https://github.com/home-assistant/core/pull/113549
+[#113550]: https://github.com/home-assistant/core/pull/113550
+[#113553]: https://github.com/home-assistant/core/pull/113553
+[#113554]: https://github.com/home-assistant/core/pull/113554
+[#113555]: https://github.com/home-assistant/core/pull/113555
+[#113556]: https://github.com/home-assistant/core/pull/113556
+[#113557]: https://github.com/home-assistant/core/pull/113557
+[#113558]: https://github.com/home-assistant/core/pull/113558
+[#113562]: https://github.com/home-assistant/core/pull/113562
+[#113564]: https://github.com/home-assistant/core/pull/113564
+[#113569]: https://github.com/home-assistant/core/pull/113569
+[#113570]: https://github.com/home-assistant/core/pull/113570
+[#113573]: https://github.com/home-assistant/core/pull/113573
+[#113577]: https://github.com/home-assistant/core/pull/113577
+[#113578]: https://github.com/home-assistant/core/pull/113578
+[#113579]: https://github.com/home-assistant/core/pull/113579
+[#113580]: https://github.com/home-assistant/core/pull/113580
+[#113581]: https://github.com/home-assistant/core/pull/113581
+[#113582]: https://github.com/home-assistant/core/pull/113582
+[#113583]: https://github.com/home-assistant/core/pull/113583
+[#113584]: https://github.com/home-assistant/core/pull/113584
+[#113586]: https://github.com/home-assistant/core/pull/113586
+[#113588]: https://github.com/home-assistant/core/pull/113588
+[#113589]: https://github.com/home-assistant/core/pull/113589
+[#113595]: https://github.com/home-assistant/core/pull/113595
+[#113596]: https://github.com/home-assistant/core/pull/113596
+[#113597]: https://github.com/home-assistant/core/pull/113597
+[#113602]: https://github.com/home-assistant/core/pull/113602
+[#113604]: https://github.com/home-assistant/core/pull/113604
+[#113606]: https://github.com/home-assistant/core/pull/113606
+[#113607]: https://github.com/home-assistant/core/pull/113607
+[#113611]: https://github.com/home-assistant/core/pull/113611
+[#113612]: https://github.com/home-assistant/core/pull/113612
+[#113613]: https://github.com/home-assistant/core/pull/113613
+[#113615]: https://github.com/home-assistant/core/pull/113615
+[#113616]: https://github.com/home-assistant/core/pull/113616
+[#113617]: https://github.com/home-assistant/core/pull/113617
+[#113618]: https://github.com/home-assistant/core/pull/113618
+[#113619]: https://github.com/home-assistant/core/pull/113619
+[#113620]: https://github.com/home-assistant/core/pull/113620
+[#113621]: https://github.com/home-assistant/core/pull/113621
+[#113623]: https://github.com/home-assistant/core/pull/113623
+[#113624]: https://github.com/home-assistant/core/pull/113624
+[#113625]: https://github.com/home-assistant/core/pull/113625
+[#113626]: https://github.com/home-assistant/core/pull/113626
+[#113627]: https://github.com/home-assistant/core/pull/113627
+[#113629]: https://github.com/home-assistant/core/pull/113629
+[#113631]: https://github.com/home-assistant/core/pull/113631
+[#113632]: https://github.com/home-assistant/core/pull/113632
+[#113633]: https://github.com/home-assistant/core/pull/113633
+[#113634]: https://github.com/home-assistant/core/pull/113634
+[#113635]: https://github.com/home-assistant/core/pull/113635
+[#113636]: https://github.com/home-assistant/core/pull/113636
+[#113637]: https://github.com/home-assistant/core/pull/113637
+[#113638]: https://github.com/home-assistant/core/pull/113638
+[#113639]: https://github.com/home-assistant/core/pull/113639
+[#113644]: https://github.com/home-assistant/core/pull/113644
+[#113645]: https://github.com/home-assistant/core/pull/113645
+[#113646]: https://github.com/home-assistant/core/pull/113646
+[#113647]: https://github.com/home-assistant/core/pull/113647
+[#113648]: https://github.com/home-assistant/core/pull/113648
+[#113650]: https://github.com/home-assistant/core/pull/113650
+[#113652]: https://github.com/home-assistant/core/pull/113652
+[#113653]: https://github.com/home-assistant/core/pull/113653
+[#113654]: https://github.com/home-assistant/core/pull/113654
+[#113655]: https://github.com/home-assistant/core/pull/113655
+[#113657]: https://github.com/home-assistant/core/pull/113657
+[#113658]: https://github.com/home-assistant/core/pull/113658
+[#113659]: https://github.com/home-assistant/core/pull/113659
+[#113660]: https://github.com/home-assistant/core/pull/113660
+[#113661]: https://github.com/home-assistant/core/pull/113661
+[#113665]: https://github.com/home-assistant/core/pull/113665
+[#113667]: https://github.com/home-assistant/core/pull/113667
+[#113674]: https://github.com/home-assistant/core/pull/113674
+[#113675]: https://github.com/home-assistant/core/pull/113675
+[#113677]: https://github.com/home-assistant/core/pull/113677
+[#113683]: https://github.com/home-assistant/core/pull/113683
+[#113686]: https://github.com/home-assistant/core/pull/113686
+[#113687]: https://github.com/home-assistant/core/pull/113687
+[#113688]: https://github.com/home-assistant/core/pull/113688
+[#113691]: https://github.com/home-assistant/core/pull/113691
+[#113692]: https://github.com/home-assistant/core/pull/113692
+[#113693]: https://github.com/home-assistant/core/pull/113693
+[#113695]: https://github.com/home-assistant/core/pull/113695
+[#113702]: https://github.com/home-assistant/core/pull/113702
+[#113704]: https://github.com/home-assistant/core/pull/113704
+[#113705]: https://github.com/home-assistant/core/pull/113705
+[#113707]: https://github.com/home-assistant/core/pull/113707
+[#113715]: https://github.com/home-assistant/core/pull/113715
+[#113716]: https://github.com/home-assistant/core/pull/113716
+[#113717]: https://github.com/home-assistant/core/pull/113717
+[#113718]: https://github.com/home-assistant/core/pull/113718
+[#113720]: https://github.com/home-assistant/core/pull/113720
+[#113726]: https://github.com/home-assistant/core/pull/113726
+[#113727]: https://github.com/home-assistant/core/pull/113727
+[#113729]: https://github.com/home-assistant/core/pull/113729
+[#113740]: https://github.com/home-assistant/core/pull/113740
+[#113741]: https://github.com/home-assistant/core/pull/113741
+[#113744]: https://github.com/home-assistant/core/pull/113744
+[#113747]: https://github.com/home-assistant/core/pull/113747
+[#113750]: https://github.com/home-assistant/core/pull/113750
+[#113753]: https://github.com/home-assistant/core/pull/113753
+[#113755]: https://github.com/home-assistant/core/pull/113755
+[#113757]: https://github.com/home-assistant/core/pull/113757
+[#113758]: https://github.com/home-assistant/core/pull/113758
+[#113764]: https://github.com/home-assistant/core/pull/113764
+[#113765]: https://github.com/home-assistant/core/pull/113765
+[#113767]: https://github.com/home-assistant/core/pull/113767
+[#113773]: https://github.com/home-assistant/core/pull/113773
+[#113776]: https://github.com/home-assistant/core/pull/113776
+[#113777]: https://github.com/home-assistant/core/pull/113777
+[#113778]: https://github.com/home-assistant/core/pull/113778
+[#113779]: https://github.com/home-assistant/core/pull/113779
+[#113780]: https://github.com/home-assistant/core/pull/113780
+[#113781]: https://github.com/home-assistant/core/pull/113781
+[#113782]: https://github.com/home-assistant/core/pull/113782
+[#113783]: https://github.com/home-assistant/core/pull/113783
+[#113784]: https://github.com/home-assistant/core/pull/113784
+[#113785]: https://github.com/home-assistant/core/pull/113785
+[#113786]: https://github.com/home-assistant/core/pull/113786
+[#113788]: https://github.com/home-assistant/core/pull/113788
+[#113789]: https://github.com/home-assistant/core/pull/113789
+[#113791]: https://github.com/home-assistant/core/pull/113791
+[#113792]: https://github.com/home-assistant/core/pull/113792
+[#113797]: https://github.com/home-assistant/core/pull/113797
+[#113798]: https://github.com/home-assistant/core/pull/113798
+[#113800]: https://github.com/home-assistant/core/pull/113800
+[#113802]: https://github.com/home-assistant/core/pull/113802
+[#113803]: https://github.com/home-assistant/core/pull/113803
+[#113808]: https://github.com/home-assistant/core/pull/113808
+[#113811]: https://github.com/home-assistant/core/pull/113811
+[#113812]: https://github.com/home-assistant/core/pull/113812
+[#113814]: https://github.com/home-assistant/core/pull/113814
+[#113815]: https://github.com/home-assistant/core/pull/113815
+[#113816]: https://github.com/home-assistant/core/pull/113816
+[#113817]: https://github.com/home-assistant/core/pull/113817
+[#113819]: https://github.com/home-assistant/core/pull/113819
+[#113820]: https://github.com/home-assistant/core/pull/113820
+[#113821]: https://github.com/home-assistant/core/pull/113821
+[#113822]: https://github.com/home-assistant/core/pull/113822
+[#113823]: https://github.com/home-assistant/core/pull/113823
+[#113825]: https://github.com/home-assistant/core/pull/113825
+[#113826]: https://github.com/home-assistant/core/pull/113826
+[#113828]: https://github.com/home-assistant/core/pull/113828
+[#113834]: https://github.com/home-assistant/core/pull/113834
+[#113835]: https://github.com/home-assistant/core/pull/113835
+[#113836]: https://github.com/home-assistant/core/pull/113836
+[#113840]: https://github.com/home-assistant/core/pull/113840
+[#113842]: https://github.com/home-assistant/core/pull/113842
+[#113844]: https://github.com/home-assistant/core/pull/113844
+[#113845]: https://github.com/home-assistant/core/pull/113845
+[#113850]: https://github.com/home-assistant/core/pull/113850
+[#113852]: https://github.com/home-assistant/core/pull/113852
+[#113854]: https://github.com/home-assistant/core/pull/113854
+[#113858]: https://github.com/home-assistant/core/pull/113858
+[#113859]: https://github.com/home-assistant/core/pull/113859
+[#113862]: https://github.com/home-assistant/core/pull/113862
+[#113868]: https://github.com/home-assistant/core/pull/113868
+[#113870]: https://github.com/home-assistant/core/pull/113870
+[#113871]: https://github.com/home-assistant/core/pull/113871
+[#113872]: https://github.com/home-assistant/core/pull/113872
+[#113875]: https://github.com/home-assistant/core/pull/113875
+[#113878]: https://github.com/home-assistant/core/pull/113878
+[#113884]: https://github.com/home-assistant/core/pull/113884
+[#113886]: https://github.com/home-assistant/core/pull/113886
+[#113888]: https://github.com/home-assistant/core/pull/113888
+[#113889]: https://github.com/home-assistant/core/pull/113889
+[#113892]: https://github.com/home-assistant/core/pull/113892
+[#113893]: https://github.com/home-assistant/core/pull/113893
+[#113895]: https://github.com/home-assistant/core/pull/113895
+[#113896]: https://github.com/home-assistant/core/pull/113896
+[#113897]: https://github.com/home-assistant/core/pull/113897
+[#113898]: https://github.com/home-assistant/core/pull/113898
+[#113900]: https://github.com/home-assistant/core/pull/113900
+[#113901]: https://github.com/home-assistant/core/pull/113901
+[#113902]: https://github.com/home-assistant/core/pull/113902
+[#113903]: https://github.com/home-assistant/core/pull/113903
+[#113904]: https://github.com/home-assistant/core/pull/113904
+[#113910]: https://github.com/home-assistant/core/pull/113910
+[#113913]: https://github.com/home-assistant/core/pull/113913
+[#113915]: https://github.com/home-assistant/core/pull/113915
+[#113917]: https://github.com/home-assistant/core/pull/113917
+[#113919]: https://github.com/home-assistant/core/pull/113919
+[#113920]: https://github.com/home-assistant/core/pull/113920
+[#113921]: https://github.com/home-assistant/core/pull/113921
+[#113922]: https://github.com/home-assistant/core/pull/113922
+[#113923]: https://github.com/home-assistant/core/pull/113923
+[#113928]: https://github.com/home-assistant/core/pull/113928
+[#113929]: https://github.com/home-assistant/core/pull/113929
+[#113932]: https://github.com/home-assistant/core/pull/113932
+[#113934]: https://github.com/home-assistant/core/pull/113934
+[#113948]: https://github.com/home-assistant/core/pull/113948
+[#113951]: https://github.com/home-assistant/core/pull/113951
+[#113959]: https://github.com/home-assistant/core/pull/113959
+[#113962]: https://github.com/home-assistant/core/pull/113962
+[#113963]: https://github.com/home-assistant/core/pull/113963
+[#113964]: https://github.com/home-assistant/core/pull/113964
+[#113965]: https://github.com/home-assistant/core/pull/113965
+[#113966]: https://github.com/home-assistant/core/pull/113966
+[#113969]: https://github.com/home-assistant/core/pull/113969
+[#113972]: https://github.com/home-assistant/core/pull/113972
+[#113981]: https://github.com/home-assistant/core/pull/113981
+[#113984]: https://github.com/home-assistant/core/pull/113984
+[#113985]: https://github.com/home-assistant/core/pull/113985
+[#113987]: https://github.com/home-assistant/core/pull/113987
+[#113989]: https://github.com/home-assistant/core/pull/113989
+[#113991]: https://github.com/home-assistant/core/pull/113991
+[#113992]: https://github.com/home-assistant/core/pull/113992
+[#113994]: https://github.com/home-assistant/core/pull/113994
+[#113999]: https://github.com/home-assistant/core/pull/113999
+[#114004]: https://github.com/home-assistant/core/pull/114004
+[#114006]: https://github.com/home-assistant/core/pull/114006
+[#114007]: https://github.com/home-assistant/core/pull/114007
+[#114010]: https://github.com/home-assistant/core/pull/114010
+[#114011]: https://github.com/home-assistant/core/pull/114011
+[#114012]: https://github.com/home-assistant/core/pull/114012
+[#114013]: https://github.com/home-assistant/core/pull/114013
+[#114014]: https://github.com/home-assistant/core/pull/114014
+[#114015]: https://github.com/home-assistant/core/pull/114015
+[#114016]: https://github.com/home-assistant/core/pull/114016
+[#114017]: https://github.com/home-assistant/core/pull/114017
+[#114018]: https://github.com/home-assistant/core/pull/114018
+[#114021]: https://github.com/home-assistant/core/pull/114021
+[#114022]: https://github.com/home-assistant/core/pull/114022
+[#114024]: https://github.com/home-assistant/core/pull/114024
+[#114034]: https://github.com/home-assistant/core/pull/114034
+[#114035]: https://github.com/home-assistant/core/pull/114035
+[#114036]: https://github.com/home-assistant/core/pull/114036
+[#114038]: https://github.com/home-assistant/core/pull/114038
+[#114039]: https://github.com/home-assistant/core/pull/114039
+[#114040]: https://github.com/home-assistant/core/pull/114040
+[#114043]: https://github.com/home-assistant/core/pull/114043
+[#114044]: https://github.com/home-assistant/core/pull/114044
+[#114045]: https://github.com/home-assistant/core/pull/114045
+[#114046]: https://github.com/home-assistant/core/pull/114046
+[#114047]: https://github.com/home-assistant/core/pull/114047
+[#114050]: https://github.com/home-assistant/core/pull/114050
+[#114053]: https://github.com/home-assistant/core/pull/114053
+[#114054]: https://github.com/home-assistant/core/pull/114054
+[#114057]: https://github.com/home-assistant/core/pull/114057
+[#114058]: https://github.com/home-assistant/core/pull/114058
+[#114060]: https://github.com/home-assistant/core/pull/114060
+[#114062]: https://github.com/home-assistant/core/pull/114062
+[#114063]: https://github.com/home-assistant/core/pull/114063
+[#114065]: https://github.com/home-assistant/core/pull/114065
+[#114067]: https://github.com/home-assistant/core/pull/114067
+[#114068]: https://github.com/home-assistant/core/pull/114068
+[#114069]: https://github.com/home-assistant/core/pull/114069
+[#114071]: https://github.com/home-assistant/core/pull/114071
+[#114073]: https://github.com/home-assistant/core/pull/114073
+[#114074]: https://github.com/home-assistant/core/pull/114074
+[#114077]: https://github.com/home-assistant/core/pull/114077
+[#114078]: https://github.com/home-assistant/core/pull/114078
+[#114082]: https://github.com/home-assistant/core/pull/114082
+[#114083]: https://github.com/home-assistant/core/pull/114083
+[#114084]: https://github.com/home-assistant/core/pull/114084
+[#114085]: https://github.com/home-assistant/core/pull/114085
+[#114086]: https://github.com/home-assistant/core/pull/114086
+[#114088]: https://github.com/home-assistant/core/pull/114088
+[#114089]: https://github.com/home-assistant/core/pull/114089
+[#114093]: https://github.com/home-assistant/core/pull/114093
+[#114097]: https://github.com/home-assistant/core/pull/114097
+[#114101]: https://github.com/home-assistant/core/pull/114101
+[#114102]: https://github.com/home-assistant/core/pull/114102
+[#114105]: https://github.com/home-assistant/core/pull/114105
+[#114107]: https://github.com/home-assistant/core/pull/114107
+[#114109]: https://github.com/home-assistant/core/pull/114109
+[#114111]: https://github.com/home-assistant/core/pull/114111
+[#114114]: https://github.com/home-assistant/core/pull/114114
+[#114115]: https://github.com/home-assistant/core/pull/114115
+[#114116]: https://github.com/home-assistant/core/pull/114116
+[#114120]: https://github.com/home-assistant/core/pull/114120
+[#114122]: https://github.com/home-assistant/core/pull/114122
+[#114124]: https://github.com/home-assistant/core/pull/114124
+[#114125]: https://github.com/home-assistant/core/pull/114125
+[#114127]: https://github.com/home-assistant/core/pull/114127
+[#114131]: https://github.com/home-assistant/core/pull/114131
+[#114132]: https://github.com/home-assistant/core/pull/114132
+[#114138]: https://github.com/home-assistant/core/pull/114138
+[#114142]: https://github.com/home-assistant/core/pull/114142
+[#114143]: https://github.com/home-assistant/core/pull/114143
+[#114144]: https://github.com/home-assistant/core/pull/114144
+[#114145]: https://github.com/home-assistant/core/pull/114145
+[#114148]: https://github.com/home-assistant/core/pull/114148
+[#114149]: https://github.com/home-assistant/core/pull/114149
+[#114150]: https://github.com/home-assistant/core/pull/114150
+[#114151]: https://github.com/home-assistant/core/pull/114151
+[#114153]: https://github.com/home-assistant/core/pull/114153
+[#114154]: https://github.com/home-assistant/core/pull/114154
+[#114155]: https://github.com/home-assistant/core/pull/114155
+[#114158]: https://github.com/home-assistant/core/pull/114158
+[#114159]: https://github.com/home-assistant/core/pull/114159
+[#114160]: https://github.com/home-assistant/core/pull/114160
+[#114161]: https://github.com/home-assistant/core/pull/114161
+[#114162]: https://github.com/home-assistant/core/pull/114162
+[#114163]: https://github.com/home-assistant/core/pull/114163
+[#114164]: https://github.com/home-assistant/core/pull/114164
+[#114165]: https://github.com/home-assistant/core/pull/114165
+[#114166]: https://github.com/home-assistant/core/pull/114166
+[#114167]: https://github.com/home-assistant/core/pull/114167
+[#114168]: https://github.com/home-assistant/core/pull/114168
+[#114169]: https://github.com/home-assistant/core/pull/114169
+[#114174]: https://github.com/home-assistant/core/pull/114174
+[#114180]: https://github.com/home-assistant/core/pull/114180
+[#114181]: https://github.com/home-assistant/core/pull/114181
+[#114182]: https://github.com/home-assistant/core/pull/114182
+[#114183]: https://github.com/home-assistant/core/pull/114183
+[#114184]: https://github.com/home-assistant/core/pull/114184
+[#114185]: https://github.com/home-assistant/core/pull/114185
+[#114186]: https://github.com/home-assistant/core/pull/114186
+[#114188]: https://github.com/home-assistant/core/pull/114188
+[#114191]: https://github.com/home-assistant/core/pull/114191
+[#114192]: https://github.com/home-assistant/core/pull/114192
+[#114198]: https://github.com/home-assistant/core/pull/114198
+[#114200]: https://github.com/home-assistant/core/pull/114200
+[#114201]: https://github.com/home-assistant/core/pull/114201
+[#114203]: https://github.com/home-assistant/core/pull/114203
+[#114206]: https://github.com/home-assistant/core/pull/114206
+[#114207]: https://github.com/home-assistant/core/pull/114207
+[#114208]: https://github.com/home-assistant/core/pull/114208
+[#114210]: https://github.com/home-assistant/core/pull/114210
+[#114212]: https://github.com/home-assistant/core/pull/114212
+[#114213]: https://github.com/home-assistant/core/pull/114213
+[#114216]: https://github.com/home-assistant/core/pull/114216
+[#114218]: https://github.com/home-assistant/core/pull/114218
+[#114219]: https://github.com/home-assistant/core/pull/114219
+[#114220]: https://github.com/home-assistant/core/pull/114220
+[#114221]: https://github.com/home-assistant/core/pull/114221
+[#114222]: https://github.com/home-assistant/core/pull/114222
+[#114227]: https://github.com/home-assistant/core/pull/114227
+[#114228]: https://github.com/home-assistant/core/pull/114228
+[#114229]: https://github.com/home-assistant/core/pull/114229
+[#114231]: https://github.com/home-assistant/core/pull/114231
+[#114232]: https://github.com/home-assistant/core/pull/114232
+[#114235]: https://github.com/home-assistant/core/pull/114235
+[#114236]: https://github.com/home-assistant/core/pull/114236
+[#114243]: https://github.com/home-assistant/core/pull/114243
+[#114246]: https://github.com/home-assistant/core/pull/114246
+[#114249]: https://github.com/home-assistant/core/pull/114249
+[#114252]: https://github.com/home-assistant/core/pull/114252
+[#114253]: https://github.com/home-assistant/core/pull/114253
+[#114260]: https://github.com/home-assistant/core/pull/114260
+[#114261]: https://github.com/home-assistant/core/pull/114261
+[#114263]: https://github.com/home-assistant/core/pull/114263
+[#114271]: https://github.com/home-assistant/core/pull/114271
+[#114276]: https://github.com/home-assistant/core/pull/114276
+[#114277]: https://github.com/home-assistant/core/pull/114277
+[#114278]: https://github.com/home-assistant/core/pull/114278
+[#114281]: https://github.com/home-assistant/core/pull/114281
+[#114283]: https://github.com/home-assistant/core/pull/114283
+[#114285]: https://github.com/home-assistant/core/pull/114285
+[#114288]: https://github.com/home-assistant/core/pull/114288
+[#114289]: https://github.com/home-assistant/core/pull/114289
+[#114292]: https://github.com/home-assistant/core/pull/114292
+[#114293]: https://github.com/home-assistant/core/pull/114293
+[#114295]: https://github.com/home-assistant/core/pull/114295
+[#114296]: https://github.com/home-assistant/core/pull/114296
+[#114297]: https://github.com/home-assistant/core/pull/114297
+[#114298]: https://github.com/home-assistant/core/pull/114298
+[#114300]: https://github.com/home-assistant/core/pull/114300
+[#114301]: https://github.com/home-assistant/core/pull/114301
+[#114302]: https://github.com/home-assistant/core/pull/114302
+[#114303]: https://github.com/home-assistant/core/pull/114303
+[#114304]: https://github.com/home-assistant/core/pull/114304
+[#114306]: https://github.com/home-assistant/core/pull/114306
+[#114308]: https://github.com/home-assistant/core/pull/114308
+[#114309]: https://github.com/home-assistant/core/pull/114309
+[#114311]: https://github.com/home-assistant/core/pull/114311
+[#114312]: https://github.com/home-assistant/core/pull/114312
+[#114315]: https://github.com/home-assistant/core/pull/114315
+[#114316]: https://github.com/home-assistant/core/pull/114316
+[#114317]: https://github.com/home-assistant/core/pull/114317
+[#114320]: https://github.com/home-assistant/core/pull/114320
+[#114321]: https://github.com/home-assistant/core/pull/114321
+[#114322]: https://github.com/home-assistant/core/pull/114322
+[#114326]: https://github.com/home-assistant/core/pull/114326
+[#114332]: https://github.com/home-assistant/core/pull/114332
+[#114333]: https://github.com/home-assistant/core/pull/114333
+[#114335]: https://github.com/home-assistant/core/pull/114335
+[#114336]: https://github.com/home-assistant/core/pull/114336
+[#114337]: https://github.com/home-assistant/core/pull/114337
+[#114339]: https://github.com/home-assistant/core/pull/114339
+[#114344]: https://github.com/home-assistant/core/pull/114344
+[#114346]: https://github.com/home-assistant/core/pull/114346
+[#114348]: https://github.com/home-assistant/core/pull/114348
+[#114354]: https://github.com/home-assistant/core/pull/114354
+[#114356]: https://github.com/home-assistant/core/pull/114356
+[#114368]: https://github.com/home-assistant/core/pull/114368
+[#114370]: https://github.com/home-assistant/core/pull/114370
+[#114371]: https://github.com/home-assistant/core/pull/114371
+[#114372]: https://github.com/home-assistant/core/pull/114372
+[#114373]: https://github.com/home-assistant/core/pull/114373
+[#114374]: https://github.com/home-assistant/core/pull/114374
+[#114380]: https://github.com/home-assistant/core/pull/114380
+[#114389]: https://github.com/home-assistant/core/pull/114389
+[#114392]: https://github.com/home-assistant/core/pull/114392
+[#114394]: https://github.com/home-assistant/core/pull/114394
+[#114396]: https://github.com/home-assistant/core/pull/114396
+[#114397]: https://github.com/home-assistant/core/pull/114397
+[#114399]: https://github.com/home-assistant/core/pull/114399
+[#114410]: https://github.com/home-assistant/core/pull/114410
+[#114418]: https://github.com/home-assistant/core/pull/114418
+[#114431]: https://github.com/home-assistant/core/pull/114431
+[#114442]: https://github.com/home-assistant/core/pull/114442
+[#114445]: https://github.com/home-assistant/core/pull/114445
+[#114447]: https://github.com/home-assistant/core/pull/114447
+[#114450]: https://github.com/home-assistant/core/pull/114450
+[#114452]: https://github.com/home-assistant/core/pull/114452
+[#114453]: https://github.com/home-assistant/core/pull/114453
+[#114456]: https://github.com/home-assistant/core/pull/114456
+[#114459]: https://github.com/home-assistant/core/pull/114459
+[#114468]: https://github.com/home-assistant/core/pull/114468
+[#114478]: https://github.com/home-assistant/core/pull/114478
+[#114487]: https://github.com/home-assistant/core/pull/114487
+[#114491]: https://github.com/home-assistant/core/pull/114491
+[#114492]: https://github.com/home-assistant/core/pull/114492
+[#114524]: https://github.com/home-assistant/core/pull/114524
+[#114544]: https://github.com/home-assistant/core/pull/114544
+[#114566]: https://github.com/home-assistant/core/pull/114566
+[#114567]: https://github.com/home-assistant/core/pull/114567
+[#114568]: https://github.com/home-assistant/core/pull/114568
+[#114569]: https://github.com/home-assistant/core/pull/114569
+[#114570]: https://github.com/home-assistant/core/pull/114570
+[#114574]: https://github.com/home-assistant/core/pull/114574
+[#114578]: https://github.com/home-assistant/core/pull/114578
+[#114581]: https://github.com/home-assistant/core/pull/114581
+[#114584]: https://github.com/home-assistant/core/pull/114584
+[#114591]: https://github.com/home-assistant/core/pull/114591
+[#114593]: https://github.com/home-assistant/core/pull/114593
+[#114596]: https://github.com/home-assistant/core/pull/114596
+[#114600]: https://github.com/home-assistant/core/pull/114600
+[#114602]: https://github.com/home-assistant/core/pull/114602
+[#114603]: https://github.com/home-assistant/core/pull/114603
+[#114606]: https://github.com/home-assistant/core/pull/114606
+[#114607]: https://github.com/home-assistant/core/pull/114607
+[#114608]: https://github.com/home-assistant/core/pull/114608
+[#114611]: https://github.com/home-assistant/core/pull/114611
+[#114614]: https://github.com/home-assistant/core/pull/114614
+[#114615]: https://github.com/home-assistant/core/pull/114615
+[#114627]: https://github.com/home-assistant/core/pull/114627
+[#114631]: https://github.com/home-assistant/core/pull/114631
+[#114641]: https://github.com/home-assistant/core/pull/114641
+[#114646]: https://github.com/home-assistant/core/pull/114646
+[#114649]: https://github.com/home-assistant/core/pull/114649
+[#114654]: https://github.com/home-assistant/core/pull/114654
+[#114657]: https://github.com/home-assistant/core/pull/114657
+[#114659]: https://github.com/home-assistant/core/pull/114659
+[#114683]: https://github.com/home-assistant/core/pull/114683
+[#114685]: https://github.com/home-assistant/core/pull/114685
+[#114718]: https://github.com/home-assistant/core/pull/114718
+[#114741]: https://github.com/home-assistant/core/pull/114741
+[#114747]: https://github.com/home-assistant/core/pull/114747
+[#114748]: https://github.com/home-assistant/core/pull/114748
+[#114755]: https://github.com/home-assistant/core/pull/114755
+[#114756]: https://github.com/home-assistant/core/pull/114756
+[#114757]: https://github.com/home-assistant/core/pull/114757
+[#87821]: https://github.com/home-assistant/core/pull/87821
+[#94392]: https://github.com/home-assistant/core/pull/94392
+[#95206]: https://github.com/home-assistant/core/pull/95206
+[#98722]: https://github.com/home-assistant/core/pull/98722
+[#99495]: https://github.com/home-assistant/core/pull/99495
+[@343max]: https://github.com/343max
+[@ALERTua]: https://github.com/ALERTua
+[@AngellusMortis]: https://github.com/AngellusMortis
+[@Antoni-Czaplicki]: https://github.com/Antoni-Czaplicki
+[@Bre77]: https://github.com/Bre77
+[@CFenner]: https://github.com/CFenner
+[@Cereal2nd]: https://github.com/Cereal2nd
+[@DCSBL]: https://github.com/DCSBL
+[@DarkFox]: https://github.com/DarkFox
+[@Ernst79]: https://github.com/Ernst79
+[@FedDam]: https://github.com/FedDam
+[@Fexiven]: https://github.com/Fexiven
+[@Floris272]: https://github.com/Floris272
+[@GidoHakvoort]: https://github.com/GidoHakvoort
+[@IngoK1]: https://github.com/IngoK1
+[@IsakNyberg]: https://github.com/IsakNyberg
+[@JeromeHXP]: https://github.com/JeromeHXP
+[@Kane610]: https://github.com/Kane610
+[@LaStrada]: https://github.com/LaStrada
+[@LarsStegman]: https://github.com/LarsStegman
+[@Lash-L]: https://github.com/Lash-L
+[@LennP]: https://github.com/LennP
+[@ManneW]: https://github.com/ManneW
+[@MarkGodwin]: https://github.com/MarkGodwin
+[@MartinHjelmare]: https://github.com/MartinHjelmare
+[@MatthiasLohr]: https://github.com/MatthiasLohr
+[@MrXANA91]: https://github.com/MrXANA91
+[@NodeJSmith]: https://github.com/NodeJSmith
+[@Noltari]: https://github.com/Noltari
+[@OnFreund]: https://github.com/OnFreund
+[@OndraM]: https://github.com/OndraM
+[@PeteRager]: https://github.com/PeteRager
+[@RoboMagus]: https://github.com/RoboMagus
+[@Shutgun]: https://github.com/Shutgun
+[@StevenLooman]: https://github.com/StevenLooman
+[@TheJulianJES]: https://github.com/TheJulianJES
+[@Thomas55555]: https://github.com/Thomas55555
+[@Tronix117]: https://github.com/Tronix117
+[@Xiretza]: https://github.com/Xiretza
+[@Xitee1]: https://github.com/Xitee1
+[@YogevBokobza]: https://github.com/YogevBokobza
+[@abjorck]: https://github.com/abjorck
+[@agoode]: https://github.com/agoode
+[@akx]: https://github.com/akx
+[@albertogeniola]: https://github.com/albertogeniola
+[@alexsydell]: https://github.com/alexsydell
+[@alinbalutoiu]: https://github.com/alinbalutoiu
+[@allenporter]: https://github.com/allenporter
+[@astrandb]: https://github.com/astrandb
+[@autinerd]: https://github.com/autinerd
+[@bachya]: https://github.com/bachya
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@belangp]: https://github.com/belangp
+[@bieniu]: https://github.com/bieniu
+[@boswelja]: https://github.com/boswelja
+[@bouwew]: https://github.com/bouwew
+[@bramkragten]: https://github.com/bramkragten
+[@brg468]: https://github.com/brg468
+[@briglx]: https://github.com/briglx
+[@caronc]: https://github.com/caronc
+[@catsmanac]: https://github.com/catsmanac
+[@cdce8p]: https://github.com/cdce8p
+[@chemelli74]: https://github.com/chemelli74
+[@clssn]: https://github.com/clssn
+[@cosimomeli]: https://github.com/cosimomeli
+[@cottsay]: https://github.com/cottsay
+[@ctalkington]: https://github.com/ctalkington
+[@danielperna84]: https://github.com/danielperna84
+[@davet2001]: https://github.com/davet2001
+[@definitio]: https://github.com/definitio
+[@dgomes]: https://github.com/dgomes
+[@dmulcahey]: https://github.com/dmulcahey
+[@dontinelli]: https://github.com/dontinelli
+[@dotvav]: https://github.com/dotvav
+[@dougiteixeira]: https://github.com/dougiteixeira
+[@drewclauson]: https://github.com/drewclauson
+[@dshokouhi]: https://github.com/dshokouhi
+[@edenhaus]: https://github.com/edenhaus
+[@eifinger]: https://github.com/eifinger
+[@elupus]: https://github.com/elupus
+[@emontnemery]: https://github.com/emontnemery
+[@epenet]: https://github.com/epenet
+[@erwindouna]: https://github.com/erwindouna
+[@esciara]: https://github.com/esciara
+[@farmio]: https://github.com/farmio
+[@frenck]: https://github.com/frenck
+[@fwestenberg]: https://github.com/fwestenberg
+[@gibwar]: https://github.com/gibwar
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@hopkins-tk]: https://github.com/hopkins-tk
+[@iMicknl]: https://github.com/iMicknl
+[@idelsink]: https://github.com/idelsink
+[@janiversen]: https://github.com/janiversen
+[@jbouwh]: https://github.com/jbouwh
+[@jeeftor]: https://github.com/jeeftor
+[@jesserockz]: https://github.com/jesserockz
+[@jjlawren]: https://github.com/jjlawren
+[@joostlek]: https://github.com/joostlek
+[@jpbede]: https://github.com/jpbede
+[@jwillemsen]: https://github.com/jwillemsen
+[@kingy444]: https://github.com/kingy444
+[@lellky]: https://github.com/lellky
+[@lextm]: https://github.com/lextm
+[@luar123]: https://github.com/luar123
+[@ludeeus]: https://github.com/ludeeus
+[@malkstar]: https://github.com/malkstar
+[@marcelveldt]: https://github.com/marcelveldt
+[@matrixd2]: https://github.com/matrixd2
+[@max2697]: https://github.com/max2697
+[@mdegat01]: https://github.com/mdegat01
+[@miaucl]: https://github.com/miaucl
+[@mib1185]: https://github.com/mib1185
+[@mjh1]: https://github.com/mjh1
+[@mkmer]: https://github.com/mkmer
+[@msavazzi]: https://github.com/msavazzi
+[@nalin29]: https://github.com/nalin29
+[@niro1987]: https://github.com/niro1987
+[@oyvindwe]: https://github.com/oyvindwe
+[@pavoni]: https://github.com/pavoni
+[@piitaya]: https://github.com/piitaya
+[@puddly]: https://github.com/puddly
+[@rokam]: https://github.com/rokam
+[@ronweikamp]: https://github.com/ronweikamp
+[@scop]: https://github.com/scop
+[@sdb9696]: https://github.com/sdb9696
+[@shaiu]: https://github.com/shaiu
+[@slyoldfox]: https://github.com/slyoldfox
+[@snoack]: https://github.com/snoack
+[@soonsouth]: https://github.com/soonsouth
+[@starkillerOG]: https://github.com/starkillerOG
+[@steffenrapp]: https://github.com/steffenrapp
+[@synesthesiam]: https://github.com/synesthesiam
+[@the-ress]: https://github.com/the-ress
+[@thecode]: https://github.com/thecode
+[@thejeffreystone]: https://github.com/thejeffreystone
+[@timmo001]: https://github.com/timmo001
+[@tr4nt0r]: https://github.com/tr4nt0r
+[@tronikos]: https://github.com/tronikos
+[@tuday2]: https://github.com/tuday2
+[@uchagani]: https://github.com/uchagani
+[@wilburCforce]: https://github.com/wilburCforce
+[@wujiaqi]: https://github.com/wujiaqi
+[@xeniter]: https://github.com/xeniter
+[@yozik04]: https://github.com/yozik04
+[@yuxincs]: https://github.com/yuxincs
+[@zweckj]: https://github.com/zweckj
diff --git a/source/changelogs/core-2024.5.markdown b/source/changelogs/core-2024.5.markdown
new file mode 100644
index 00000000000..07537bb8a1b
--- /dev/null
+++ b/source/changelogs/core-2024.5.markdown
@@ -0,0 +1,2049 @@
+---
+title: Full changelog for Home Assistant Core 2024.5
+description: Detailed changelog for the Home Assistant Core 2024.5 release
+replace_regex: \s\(\[?[a-z0-9\-\s_]+\]?\)$
+---
+
+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](/blog/2024/05/01/release-20245/).
+
+## 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_platform` helper for switch entity component tests instead of `hass.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_platform` helper for text entity component tests instead of `hass.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_platform` for device_tracker entity component tests instead of `hass.components` ([@jpbede] - [#114398])
+- Enable ruff TRY401 ([@autinerd] - [#114395])
+- Use `setup_test_component_platform` helper for fan entity component tests instead of `hass.components` ([@jpbede] - [#114409])
+- Use `setup_test_component_platform` helper for time entity component tests instead of `hass.components` ([@jpbede] - [#114411])
+- Use `setup_test_component_platform` helper for date entity component tests instead of `hass.components` ([@jpbede] - [#114413])
+- Use `setup_test_component_platform` helper for datetime entity component tests instead of `hass.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_platform` helper for select entity component tests instead of `hass.components` ([@jpbede] - [#114412])
+- Refactor conversation mock_agent ([@autinerd] - [#114428])
+- Add `uid` attribute to `imap_content` event 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.store` in 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.helpers` in 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.helpers` in _mqtt_mock_entry fixture ([@jpbede] - [#114536])
+- Use device registry mock instead of `hass.helpers` in dsmr tests ([@jpbede] - [#114535])
+- Avoid use of `hass.helpers` in plugwise test ([@jpbede] - [#114534])
+- Use device registry mock instead of `hass.helpers` in 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 `person` to 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 `accuweather` to 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 `gios` to version 4.0.0 ([@bieniu] - [#115822])
+- Add reauth flow to Google Tasks ([@joostlek] - [#109517])
+- Fix mutable objects in group registry class ([@jbouwh] - [#115797])
+- Bump `nextdns` to version 3.0.0 ([@bieniu] - [#115854])
+- Bump `nettigo_air_monitor` to 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_datetime` Jinja 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 `hardware` and 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])
+
+[#115857]: https://github.com/home-assistant/core/pull/115857
+[#116527]: https://github.com/home-assistant/core/pull/116527
+[#116538]: https://github.com/home-assistant/core/pull/116538
+[#116539]: https://github.com/home-assistant/core/pull/116539
+[#116550]: https://github.com/home-assistant/core/pull/116550
+[#116558]: https://github.com/home-assistant/core/pull/116558
+[#116564]: https://github.com/home-assistant/core/pull/116564
+[#116569]: https://github.com/home-assistant/core/pull/116569
+[#116570]: https://github.com/home-assistant/core/pull/116570
+[#116579]: https://github.com/home-assistant/core/pull/116579
+[#116596]: https://github.com/home-assistant/core/pull/116596
+[#116600]: https://github.com/home-assistant/core/pull/116600
+[#116616]: https://github.com/home-assistant/core/pull/116616
+[#116621]: https://github.com/home-assistant/core/pull/116621
+[#116627]: https://github.com/home-assistant/core/pull/116627
+[#116639]: https://github.com/home-assistant/core/pull/116639
+[#116651]: https://github.com/home-assistant/core/pull/116651
+[#116660]: https://github.com/home-assistant/core/pull/116660
+[#116661]: https://github.com/home-assistant/core/pull/116661
+[#116662]: https://github.com/home-assistant/core/pull/116662
+[#116673]: https://github.com/home-assistant/core/pull/116673
+[#116689]: https://github.com/home-assistant/core/pull/116689
+[#116692]: https://github.com/home-assistant/core/pull/116692
+[@Galorhallen]: https://github.com/Galorhallen
+[@GraceGRD]: https://github.com/GraceGRD
+[@Kane610]: https://github.com/Kane610
+[@LaStrada]: https://github.com/LaStrada
+[@MatthewFlamm]: https://github.com/MatthewFlamm
+[@bdraco]: https://github.com/bdraco
+[@cdce8p]: https://github.com/cdce8p
+[@eifinger]: https://github.com/eifinger
+[@farmio]: https://github.com/farmio
+[@felipediel]: https://github.com/felipediel
+[@frenck]: https://github.com/frenck
+[@gwww]: https://github.com/gwww
+[@jbouwh]: https://github.com/jbouwh
+[@joostlek]: https://github.com/joostlek
+[@marcelveldt]: https://github.com/marcelveldt
+[@puddly]: https://github.com/puddly
+[@tomaszsluszniak]: https://github.com/tomaszsluszniak
+
+## 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])
+
+[#116538]: https://github.com/home-assistant/core/pull/116538
+[#116696]: https://github.com/home-assistant/core/pull/116696
+[#116704]: https://github.com/home-assistant/core/pull/116704
+[#116711]: https://github.com/home-assistant/core/pull/116711
+[#116720]: https://github.com/home-assistant/core/pull/116720
+[#116721]: https://github.com/home-assistant/core/pull/116721
+[#116728]: https://github.com/home-assistant/core/pull/116728
+[#116743]: https://github.com/home-assistant/core/pull/116743
+[#116785]: https://github.com/home-assistant/core/pull/116785
+[#116795]: https://github.com/home-assistant/core/pull/116795
+[#116796]: https://github.com/home-assistant/core/pull/116796
+[#116797]: https://github.com/home-assistant/core/pull/116797
+[#116805]: https://github.com/home-assistant/core/pull/116805
+[#116813]: https://github.com/home-assistant/core/pull/116813
+[#116829]: https://github.com/home-assistant/core/pull/116829
+[#116836]: https://github.com/home-assistant/core/pull/116836
+[#116839]: https://github.com/home-assistant/core/pull/116839
+[#116844]: https://github.com/home-assistant/core/pull/116844
+[#116849]: https://github.com/home-assistant/core/pull/116849
+[#116859]: https://github.com/home-assistant/core/pull/116859
+[#116874]: https://github.com/home-assistant/core/pull/116874
+[#116904]: https://github.com/home-assistant/core/pull/116904
+[#116939]: https://github.com/home-assistant/core/pull/116939
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@bramkragten]: https://github.com/bramkragten
+[@emontnemery]: https://github.com/emontnemery
+[@frenck]: https://github.com/frenck
+[@jbouwh]: https://github.com/jbouwh
+[@joostlek]: https://github.com/joostlek
+[@mib1185]: https://github.com/mib1185
+[@mletenay]: https://github.com/mletenay
+[@pdecat]: https://github.com/pdecat
+[@tkdrob]: https://github.com/tkdrob
+[@tronikos]: https://github.com/tronikos
+
+## 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_name` placeholder 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])
+
+[#115640]: https://github.com/home-assistant/core/pull/115640
+[#116181]: https://github.com/home-assistant/core/pull/116181
+[#116538]: https://github.com/home-assistant/core/pull/116538
+[#116696]: https://github.com/home-assistant/core/pull/116696
+[#116937]: https://github.com/home-assistant/core/pull/116937
+[#116967]: https://github.com/home-assistant/core/pull/116967
+[#116986]: https://github.com/home-assistant/core/pull/116986
+[#117006]: https://github.com/home-assistant/core/pull/117006
+[#117028]: https://github.com/home-assistant/core/pull/117028
+[#117059]: https://github.com/home-assistant/core/pull/117059
+[#117061]: https://github.com/home-assistant/core/pull/117061
+[#117089]: https://github.com/home-assistant/core/pull/117089
+[#117090]: https://github.com/home-assistant/core/pull/117090
+[#117091]: https://github.com/home-assistant/core/pull/117091
+[#117094]: https://github.com/home-assistant/core/pull/117094
+[#117105]: https://github.com/home-assistant/core/pull/117105
+[#117115]: https://github.com/home-assistant/core/pull/117115
+[#117141]: https://github.com/home-assistant/core/pull/117141
+[#117144]: https://github.com/home-assistant/core/pull/117144
+[#117162]: https://github.com/home-assistant/core/pull/117162
+[#117189]: https://github.com/home-assistant/core/pull/117189
+[@MatthewFlamm]: https://github.com/MatthewFlamm
+[@PeteRager]: https://github.com/PeteRager
+[@bdraco]: https://github.com/bdraco
+[@catsmanac]: https://github.com/catsmanac
+[@cdce8p]: https://github.com/cdce8p
+[@ctalkington]: https://github.com/ctalkington
+[@dgomes]: https://github.com/dgomes
+[@edenhaus]: https://github.com/edenhaus
+[@frenck]: https://github.com/frenck
+[@jbouwh]: https://github.com/jbouwh
+[@matrixd2]: https://github.com/matrixd2
+[@mletenay]: https://github.com/mletenay
+[@puddly]: https://github.com/puddly
+[@tr4nt0r]: https://github.com/tr4nt0r
+
+## 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])
+
+[#112840]: https://github.com/home-assistant/core/pull/112840
+[#114325]: https://github.com/home-assistant/core/pull/114325
+[#115365]: https://github.com/home-assistant/core/pull/115365
+[#116538]: https://github.com/home-assistant/core/pull/116538
+[#116696]: https://github.com/home-assistant/core/pull/116696
+[#116847]: https://github.com/home-assistant/core/pull/116847
+[#116937]: https://github.com/home-assistant/core/pull/116937
+[#116989]: https://github.com/home-assistant/core/pull/116989
+[#117098]: https://github.com/home-assistant/core/pull/117098
+[#117203]: https://github.com/home-assistant/core/pull/117203
+[#117204]: https://github.com/home-assistant/core/pull/117204
+[#117212]: https://github.com/home-assistant/core/pull/117212
+[#117232]: https://github.com/home-assistant/core/pull/117232
+[#117267]: https://github.com/home-assistant/core/pull/117267
+[#117314]: https://github.com/home-assistant/core/pull/117314
+[#117325]: https://github.com/home-assistant/core/pull/117325
+[#117331]: https://github.com/home-assistant/core/pull/117331
+[#117374]: https://github.com/home-assistant/core/pull/117374
+[#117436]: https://github.com/home-assistant/core/pull/117436
+[#117444]: https://github.com/home-assistant/core/pull/117444
+[#117446]: https://github.com/home-assistant/core/pull/117446
+[#117487]: https://github.com/home-assistant/core/pull/117487
+[#117490]: https://github.com/home-assistant/core/pull/117490
+[#117494]: https://github.com/home-assistant/core/pull/117494
+[#117501]: https://github.com/home-assistant/core/pull/117501
+[#117558]: https://github.com/home-assistant/core/pull/117558
+[#117567]: https://github.com/home-assistant/core/pull/117567
+[#117588]: https://github.com/home-assistant/core/pull/117588
+[@Cereal2nd]: https://github.com/Cereal2nd
+[@Kane610]: https://github.com/Kane610
+[@Thomas55555]: https://github.com/Thomas55555
+[@amura11]: https://github.com/amura11
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@emontnemery]: https://github.com/emontnemery
+[@frenck]: https://github.com/frenck
+[@jbouwh]: https://github.com/jbouwh
+[@jjlawren]: https://github.com/jjlawren
+[@joostlek]: https://github.com/joostlek
+[@mk-81]: https://github.com/mk-81
+[@nijel]: https://github.com/nijel
+[@raman325]: https://github.com/raman325
+[@starkillerOG]: https://github.com/starkillerOG
+[@teharris1]: https://github.com/teharris1
+[@tronikos]: https://github.com/tronikos
+[@wujiaqi]: https://github.com/wujiaqi
+
+## 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])
+
+[#116391]: https://github.com/home-assistant/core/pull/116391
+[#116538]: https://github.com/home-assistant/core/pull/116538
+[#116696]: https://github.com/home-assistant/core/pull/116696
+[#116937]: https://github.com/home-assistant/core/pull/116937
+[#117193]: https://github.com/home-assistant/core/pull/117193
+[#117203]: https://github.com/home-assistant/core/pull/117203
+[#117209]: https://github.com/home-assistant/core/pull/117209
+[#117631]: https://github.com/home-assistant/core/pull/117631
+[#117655]: https://github.com/home-assistant/core/pull/117655
+[#117672]: https://github.com/home-assistant/core/pull/117672
+[#117682]: https://github.com/home-assistant/core/pull/117682
+[#117691]: https://github.com/home-assistant/core/pull/117691
+[#117738]: https://github.com/home-assistant/core/pull/117738
+[#117748]: https://github.com/home-assistant/core/pull/117748
+[#117751]: https://github.com/home-assistant/core/pull/117751
+[#117756]: https://github.com/home-assistant/core/pull/117756
+[#117790]: https://github.com/home-assistant/core/pull/117790
+[#117800]: https://github.com/home-assistant/core/pull/117800
+[#117841]: https://github.com/home-assistant/core/pull/117841
+[#117879]: https://github.com/home-assistant/core/pull/117879
+[#117881]: https://github.com/home-assistant/core/pull/117881
+[#117919]: https://github.com/home-assistant/core/pull/117919
+[#117945]: https://github.com/home-assistant/core/pull/117945
+[#118005]: https://github.com/home-assistant/core/pull/118005
+[#118016]: https://github.com/home-assistant/core/pull/118016
+[#118025]: https://github.com/home-assistant/core/pull/118025
+[#118038]: https://github.com/home-assistant/core/pull/118038
+[#118050]: https://github.com/home-assistant/core/pull/118050
+[@Anrijs]: https://github.com/Anrijs
+[@OnFreund]: https://github.com/OnFreund
+[@PeteRager]: https://github.com/PeteRager
+[@RicArch97]: https://github.com/RicArch97
+[@bajansen]: https://github.com/bajansen
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@bouwew]: https://github.com/bouwew
+[@elupus]: https://github.com/elupus
+[@emontnemery]: https://github.com/emontnemery
+[@frenck]: https://github.com/frenck
+[@marcelveldt]: https://github.com/marcelveldt
+[@mib1185]: https://github.com/mib1185
+[@puddly]: https://github.com/puddly
+[@scop]: https://github.com/scop
+[@swoga]: https://github.com/swoga
+[@thecode]: https://github.com/thecode
+
+[#100780]: https://github.com/home-assistant/core/pull/100780
+[#102424]: https://github.com/home-assistant/core/pull/102424
+[#104343]: https://github.com/home-assistant/core/pull/104343
+[#104725]: https://github.com/home-assistant/core/pull/104725
+[#104913]: https://github.com/home-assistant/core/pull/104913
+[#105068]: https://github.com/home-assistant/core/pull/105068
+[#105581]: https://github.com/home-assistant/core/pull/105581
+[#105598]: https://github.com/home-assistant/core/pull/105598
+[#105605]: https://github.com/home-assistant/core/pull/105605
+[#105764]: https://github.com/home-assistant/core/pull/105764
+[#105779]: https://github.com/home-assistant/core/pull/105779
+[#105861]: https://github.com/home-assistant/core/pull/105861
+[#106167]: https://github.com/home-assistant/core/pull/106167
+[#106305]: https://github.com/home-assistant/core/pull/106305
+[#106322]: https://github.com/home-assistant/core/pull/106322
+[#106348]: https://github.com/home-assistant/core/pull/106348
+[#106501]: https://github.com/home-assistant/core/pull/106501
+[#106589]: https://github.com/home-assistant/core/pull/106589
+[#106612]: https://github.com/home-assistant/core/pull/106612
+[#106769]: https://github.com/home-assistant/core/pull/106769
+[#106778]: https://github.com/home-assistant/core/pull/106778
+[#106785]: https://github.com/home-assistant/core/pull/106785
+[#106874]: https://github.com/home-assistant/core/pull/106874
+[#106875]: https://github.com/home-assistant/core/pull/106875
+[#106904]: https://github.com/home-assistant/core/pull/106904
+[#107348]: https://github.com/home-assistant/core/pull/107348
+[#107446]: https://github.com/home-assistant/core/pull/107446
+[#107464]: https://github.com/home-assistant/core/pull/107464
+[#107630]: https://github.com/home-assistant/core/pull/107630
+[#107803]: https://github.com/home-assistant/core/pull/107803
+[#107852]: https://github.com/home-assistant/core/pull/107852
+[#107862]: https://github.com/home-assistant/core/pull/107862
+[#107905]: https://github.com/home-assistant/core/pull/107905
+[#107920]: https://github.com/home-assistant/core/pull/107920
+[#108168]: https://github.com/home-assistant/core/pull/108168
+[#108226]: https://github.com/home-assistant/core/pull/108226
+[#108310]: https://github.com/home-assistant/core/pull/108310
+[#108652]: https://github.com/home-assistant/core/pull/108652
+[#109062]: https://github.com/home-assistant/core/pull/109062
+[#109099]: https://github.com/home-assistant/core/pull/109099
+[#109121]: https://github.com/home-assistant/core/pull/109121
+[#109123]: https://github.com/home-assistant/core/pull/109123
+[#109204]: https://github.com/home-assistant/core/pull/109204
+[#109213]: https://github.com/home-assistant/core/pull/109213
+[#109222]: https://github.com/home-assistant/core/pull/109222
+[#109291]: https://github.com/home-assistant/core/pull/109291
+[#109517]: https://github.com/home-assistant/core/pull/109517
+[#109944]: https://github.com/home-assistant/core/pull/109944
+[#110051]: https://github.com/home-assistant/core/pull/110051
+[#110066]: https://github.com/home-assistant/core/pull/110066
+[#110256]: https://github.com/home-assistant/core/pull/110256
+[#110270]: https://github.com/home-assistant/core/pull/110270
+[#110287]: https://github.com/home-assistant/core/pull/110287
+[#110294]: https://github.com/home-assistant/core/pull/110294
+[#110384]: https://github.com/home-assistant/core/pull/110384
+[#110633]: https://github.com/home-assistant/core/pull/110633
+[#110671]: https://github.com/home-assistant/core/pull/110671
+[#110950]: https://github.com/home-assistant/core/pull/110950
+[#111177]: https://github.com/home-assistant/core/pull/111177
+[#111266]: https://github.com/home-assistant/core/pull/111266
+[#111374]: https://github.com/home-assistant/core/pull/111374
+[#111402]: https://github.com/home-assistant/core/pull/111402
+[#111406]: https://github.com/home-assistant/core/pull/111406
+[#111478]: https://github.com/home-assistant/core/pull/111478
+[#111638]: https://github.com/home-assistant/core/pull/111638
+[#112023]: https://github.com/home-assistant/core/pull/112023
+[#112119]: https://github.com/home-assistant/core/pull/112119
+[#112157]: https://github.com/home-assistant/core/pull/112157
+[#112387]: https://github.com/home-assistant/core/pull/112387
+[#112388]: https://github.com/home-assistant/core/pull/112388
+[#112529]: https://github.com/home-assistant/core/pull/112529
+[#112714]: https://github.com/home-assistant/core/pull/112714
+[#112834]: https://github.com/home-assistant/core/pull/112834
+[#112998]: https://github.com/home-assistant/core/pull/112998
+[#113097]: https://github.com/home-assistant/core/pull/113097
+[#113146]: https://github.com/home-assistant/core/pull/113146
+[#113156]: https://github.com/home-assistant/core/pull/113156
+[#113165]: https://github.com/home-assistant/core/pull/113165
+[#113429]: https://github.com/home-assistant/core/pull/113429
+[#113622]: https://github.com/home-assistant/core/pull/113622
+[#113640]: https://github.com/home-assistant/core/pull/113640
+[#113710]: https://github.com/home-assistant/core/pull/113710
+[#113745]: https://github.com/home-assistant/core/pull/113745
+[#113752]: https://github.com/home-assistant/core/pull/113752
+[#113837]: https://github.com/home-assistant/core/pull/113837
+[#113838]: https://github.com/home-assistant/core/pull/113838
+[#113848]: https://github.com/home-assistant/core/pull/113848
+[#113857]: https://github.com/home-assistant/core/pull/113857
+[#113882]: https://github.com/home-assistant/core/pull/113882
+[#114025]: https://github.com/home-assistant/core/pull/114025
+[#114059]: https://github.com/home-assistant/core/pull/114059
+[#114110]: https://github.com/home-assistant/core/pull/114110
+[#114134]: https://github.com/home-assistant/core/pull/114134
+[#114177]: https://github.com/home-assistant/core/pull/114177
+[#114197]: https://github.com/home-assistant/core/pull/114197
+[#114214]: https://github.com/home-assistant/core/pull/114214
+[#114239]: https://github.com/home-assistant/core/pull/114239
+[#114247]: https://github.com/home-assistant/core/pull/114247
+[#114255]: https://github.com/home-assistant/core/pull/114255
+[#114265]: https://github.com/home-assistant/core/pull/114265
+[#114269]: https://github.com/home-assistant/core/pull/114269
+[#114287]: https://github.com/home-assistant/core/pull/114287
+[#114305]: https://github.com/home-assistant/core/pull/114305
+[#114324]: https://github.com/home-assistant/core/pull/114324
+[#114340]: https://github.com/home-assistant/core/pull/114340
+[#114352]: https://github.com/home-assistant/core/pull/114352
+[#114357]: https://github.com/home-assistant/core/pull/114357
+[#114359]: https://github.com/home-assistant/core/pull/114359
+[#114361]: https://github.com/home-assistant/core/pull/114361
+[#114362]: https://github.com/home-assistant/core/pull/114362
+[#114364]: https://github.com/home-assistant/core/pull/114364
+[#114365]: https://github.com/home-assistant/core/pull/114365
+[#114366]: https://github.com/home-assistant/core/pull/114366
+[#114367]: https://github.com/home-assistant/core/pull/114367
+[#114377]: https://github.com/home-assistant/core/pull/114377
+[#114379]: https://github.com/home-assistant/core/pull/114379
+[#114381]: https://github.com/home-assistant/core/pull/114381
+[#114384]: https://github.com/home-assistant/core/pull/114384
+[#114385]: https://github.com/home-assistant/core/pull/114385
+[#114388]: https://github.com/home-assistant/core/pull/114388
+[#114395]: https://github.com/home-assistant/core/pull/114395
+[#114398]: https://github.com/home-assistant/core/pull/114398
+[#114400]: https://github.com/home-assistant/core/pull/114400
+[#114404]: https://github.com/home-assistant/core/pull/114404
+[#114405]: https://github.com/home-assistant/core/pull/114405
+[#114406]: https://github.com/home-assistant/core/pull/114406
+[#114408]: https://github.com/home-assistant/core/pull/114408
+[#114409]: https://github.com/home-assistant/core/pull/114409
+[#114411]: https://github.com/home-assistant/core/pull/114411
+[#114412]: https://github.com/home-assistant/core/pull/114412
+[#114413]: https://github.com/home-assistant/core/pull/114413
+[#114415]: https://github.com/home-assistant/core/pull/114415
+[#114419]: https://github.com/home-assistant/core/pull/114419
+[#114422]: https://github.com/home-assistant/core/pull/114422
+[#114424]: https://github.com/home-assistant/core/pull/114424
+[#114425]: https://github.com/home-assistant/core/pull/114425
+[#114426]: https://github.com/home-assistant/core/pull/114426
+[#114427]: https://github.com/home-assistant/core/pull/114427
+[#114428]: https://github.com/home-assistant/core/pull/114428
+[#114429]: https://github.com/home-assistant/core/pull/114429
+[#114432]: https://github.com/home-assistant/core/pull/114432
+[#114437]: https://github.com/home-assistant/core/pull/114437
+[#114441]: https://github.com/home-assistant/core/pull/114441
+[#114443]: https://github.com/home-assistant/core/pull/114443
+[#114455]: https://github.com/home-assistant/core/pull/114455
+[#114470]: https://github.com/home-assistant/core/pull/114470
+[#114480]: https://github.com/home-assistant/core/pull/114480
+[#114484]: https://github.com/home-assistant/core/pull/114484
+[#114485]: https://github.com/home-assistant/core/pull/114485
+[#114488]: https://github.com/home-assistant/core/pull/114488
+[#114495]: https://github.com/home-assistant/core/pull/114495
+[#114500]: https://github.com/home-assistant/core/pull/114500
+[#114501]: https://github.com/home-assistant/core/pull/114501
+[#114502]: https://github.com/home-assistant/core/pull/114502
+[#114509]: https://github.com/home-assistant/core/pull/114509
+[#114515]: https://github.com/home-assistant/core/pull/114515
+[#114516]: https://github.com/home-assistant/core/pull/114516
+[#114518]: https://github.com/home-assistant/core/pull/114518
+[#114520]: https://github.com/home-assistant/core/pull/114520
+[#114525]: https://github.com/home-assistant/core/pull/114525
+[#114527]: https://github.com/home-assistant/core/pull/114527
+[#114528]: https://github.com/home-assistant/core/pull/114528
+[#114529]: https://github.com/home-assistant/core/pull/114529
+[#114532]: https://github.com/home-assistant/core/pull/114532
+[#114534]: https://github.com/home-assistant/core/pull/114534
+[#114535]: https://github.com/home-assistant/core/pull/114535
+[#114536]: https://github.com/home-assistant/core/pull/114536
+[#114537]: https://github.com/home-assistant/core/pull/114537
+[#114539]: https://github.com/home-assistant/core/pull/114539
+[#114540]: https://github.com/home-assistant/core/pull/114540
+[#114541]: https://github.com/home-assistant/core/pull/114541
+[#114546]: https://github.com/home-assistant/core/pull/114546
+[#114554]: https://github.com/home-assistant/core/pull/114554
+[#114557]: https://github.com/home-assistant/core/pull/114557
+[#114572]: https://github.com/home-assistant/core/pull/114572
+[#114573]: https://github.com/home-assistant/core/pull/114573
+[#114577]: https://github.com/home-assistant/core/pull/114577
+[#114582]: https://github.com/home-assistant/core/pull/114582
+[#114585]: https://github.com/home-assistant/core/pull/114585
+[#114586]: https://github.com/home-assistant/core/pull/114586
+[#114587]: https://github.com/home-assistant/core/pull/114587
+[#114588]: https://github.com/home-assistant/core/pull/114588
+[#114589]: https://github.com/home-assistant/core/pull/114589
+[#114590]: https://github.com/home-assistant/core/pull/114590
+[#114598]: https://github.com/home-assistant/core/pull/114598
+[#114601]: https://github.com/home-assistant/core/pull/114601
+[#114605]: https://github.com/home-assistant/core/pull/114605
+[#114609]: https://github.com/home-assistant/core/pull/114609
+[#114610]: https://github.com/home-assistant/core/pull/114610
+[#114616]: https://github.com/home-assistant/core/pull/114616
+[#114617]: https://github.com/home-assistant/core/pull/114617
+[#114624]: https://github.com/home-assistant/core/pull/114624
+[#114626]: https://github.com/home-assistant/core/pull/114626
+[#114629]: https://github.com/home-assistant/core/pull/114629
+[#114634]: https://github.com/home-assistant/core/pull/114634
+[#114636]: https://github.com/home-assistant/core/pull/114636
+[#114642]: https://github.com/home-assistant/core/pull/114642
+[#114644]: https://github.com/home-assistant/core/pull/114644
+[#114645]: https://github.com/home-assistant/core/pull/114645
+[#114648]: https://github.com/home-assistant/core/pull/114648
+[#114656]: https://github.com/home-assistant/core/pull/114656
+[#114661]: https://github.com/home-assistant/core/pull/114661
+[#114662]: https://github.com/home-assistant/core/pull/114662
+[#114666]: https://github.com/home-assistant/core/pull/114666
+[#114668]: https://github.com/home-assistant/core/pull/114668
+[#114669]: https://github.com/home-assistant/core/pull/114669
+[#114670]: https://github.com/home-assistant/core/pull/114670
+[#114672]: https://github.com/home-assistant/core/pull/114672
+[#114675]: https://github.com/home-assistant/core/pull/114675
+[#114677]: https://github.com/home-assistant/core/pull/114677
+[#114678]: https://github.com/home-assistant/core/pull/114678
+[#114681]: https://github.com/home-assistant/core/pull/114681
+[#114682]: https://github.com/home-assistant/core/pull/114682
+[#114688]: https://github.com/home-assistant/core/pull/114688
+[#114689]: https://github.com/home-assistant/core/pull/114689
+[#114691]: https://github.com/home-assistant/core/pull/114691
+[#114692]: https://github.com/home-assistant/core/pull/114692
+[#114694]: https://github.com/home-assistant/core/pull/114694
+[#114695]: https://github.com/home-assistant/core/pull/114695
+[#114696]: https://github.com/home-assistant/core/pull/114696
+[#114697]: https://github.com/home-assistant/core/pull/114697
+[#114698]: https://github.com/home-assistant/core/pull/114698
+[#114699]: https://github.com/home-assistant/core/pull/114699
+[#114700]: https://github.com/home-assistant/core/pull/114700
+[#114701]: https://github.com/home-assistant/core/pull/114701
+[#114702]: https://github.com/home-assistant/core/pull/114702
+[#114703]: https://github.com/home-assistant/core/pull/114703
+[#114704]: https://github.com/home-assistant/core/pull/114704
+[#114705]: https://github.com/home-assistant/core/pull/114705
+[#114706]: https://github.com/home-assistant/core/pull/114706
+[#114707]: https://github.com/home-assistant/core/pull/114707
+[#114709]: https://github.com/home-assistant/core/pull/114709
+[#114711]: https://github.com/home-assistant/core/pull/114711
+[#114714]: https://github.com/home-assistant/core/pull/114714
+[#114719]: https://github.com/home-assistant/core/pull/114719
+[#114720]: https://github.com/home-assistant/core/pull/114720
+[#114722]: https://github.com/home-assistant/core/pull/114722
+[#114726]: https://github.com/home-assistant/core/pull/114726
+[#114728]: https://github.com/home-assistant/core/pull/114728
+[#114729]: https://github.com/home-assistant/core/pull/114729
+[#114730]: https://github.com/home-assistant/core/pull/114730
+[#114731]: https://github.com/home-assistant/core/pull/114731
+[#114732]: https://github.com/home-assistant/core/pull/114732
+[#114733]: https://github.com/home-assistant/core/pull/114733
+[#114736]: https://github.com/home-assistant/core/pull/114736
+[#114737]: https://github.com/home-assistant/core/pull/114737
+[#114738]: https://github.com/home-assistant/core/pull/114738
+[#114739]: https://github.com/home-assistant/core/pull/114739
+[#114740]: https://github.com/home-assistant/core/pull/114740
+[#114745]: https://github.com/home-assistant/core/pull/114745
+[#114749]: https://github.com/home-assistant/core/pull/114749
+[#114753]: https://github.com/home-assistant/core/pull/114753
+[#114754]: https://github.com/home-assistant/core/pull/114754
+[#114760]: https://github.com/home-assistant/core/pull/114760
+[#114769]: https://github.com/home-assistant/core/pull/114769
+[#114771]: https://github.com/home-assistant/core/pull/114771
+[#114774]: https://github.com/home-assistant/core/pull/114774
+[#114776]: https://github.com/home-assistant/core/pull/114776
+[#114777]: https://github.com/home-assistant/core/pull/114777
+[#114800]: https://github.com/home-assistant/core/pull/114800
+[#114802]: https://github.com/home-assistant/core/pull/114802
+[#114803]: https://github.com/home-assistant/core/pull/114803
+[#114805]: https://github.com/home-assistant/core/pull/114805
+[#114806]: https://github.com/home-assistant/core/pull/114806
+[#114808]: https://github.com/home-assistant/core/pull/114808
+[#114809]: https://github.com/home-assistant/core/pull/114809
+[#114810]: https://github.com/home-assistant/core/pull/114810
+[#114811]: https://github.com/home-assistant/core/pull/114811
+[#114812]: https://github.com/home-assistant/core/pull/114812
+[#114813]: https://github.com/home-assistant/core/pull/114813
+[#114814]: https://github.com/home-assistant/core/pull/114814
+[#114816]: https://github.com/home-assistant/core/pull/114816
+[#114817]: https://github.com/home-assistant/core/pull/114817
+[#114818]: https://github.com/home-assistant/core/pull/114818
+[#114847]: https://github.com/home-assistant/core/pull/114847
+[#114865]: https://github.com/home-assistant/core/pull/114865
+[#114867]: https://github.com/home-assistant/core/pull/114867
+[#114873]: https://github.com/home-assistant/core/pull/114873
+[#114883]: https://github.com/home-assistant/core/pull/114883
+[#114885]: https://github.com/home-assistant/core/pull/114885
+[#114887]: https://github.com/home-assistant/core/pull/114887
+[#114899]: https://github.com/home-assistant/core/pull/114899
+[#114900]: https://github.com/home-assistant/core/pull/114900
+[#114906]: https://github.com/home-assistant/core/pull/114906
+[#114911]: https://github.com/home-assistant/core/pull/114911
+[#114916]: https://github.com/home-assistant/core/pull/114916
+[#114917]: https://github.com/home-assistant/core/pull/114917
+[#114919]: https://github.com/home-assistant/core/pull/114919
+[#114923]: https://github.com/home-assistant/core/pull/114923
+[#114925]: https://github.com/home-assistant/core/pull/114925
+[#114926]: https://github.com/home-assistant/core/pull/114926
+[#114928]: https://github.com/home-assistant/core/pull/114928
+[#114929]: https://github.com/home-assistant/core/pull/114929
+[#114933]: https://github.com/home-assistant/core/pull/114933
+[#114939]: https://github.com/home-assistant/core/pull/114939
+[#114942]: https://github.com/home-assistant/core/pull/114942
+[#114945]: https://github.com/home-assistant/core/pull/114945
+[#114957]: https://github.com/home-assistant/core/pull/114957
+[#114962]: https://github.com/home-assistant/core/pull/114962
+[#114963]: https://github.com/home-assistant/core/pull/114963
+[#114972]: https://github.com/home-assistant/core/pull/114972
+[#114974]: https://github.com/home-assistant/core/pull/114974
+[#114976]: https://github.com/home-assistant/core/pull/114976
+[#114978]: https://github.com/home-assistant/core/pull/114978
+[#114985]: https://github.com/home-assistant/core/pull/114985
+[#114986]: https://github.com/home-assistant/core/pull/114986
+[#114987]: https://github.com/home-assistant/core/pull/114987
+[#114992]: https://github.com/home-assistant/core/pull/114992
+[#114993]: https://github.com/home-assistant/core/pull/114993
+[#114994]: https://github.com/home-assistant/core/pull/114994
+[#114995]: https://github.com/home-assistant/core/pull/114995
+[#114996]: https://github.com/home-assistant/core/pull/114996
+[#115000]: https://github.com/home-assistant/core/pull/115000
+[#115001]: https://github.com/home-assistant/core/pull/115001
+[#115002]: https://github.com/home-assistant/core/pull/115002
+[#115013]: https://github.com/home-assistant/core/pull/115013
+[#115015]: https://github.com/home-assistant/core/pull/115015
+[#115016]: https://github.com/home-assistant/core/pull/115016
+[#115017]: https://github.com/home-assistant/core/pull/115017
+[#115020]: https://github.com/home-assistant/core/pull/115020
+[#115023]: https://github.com/home-assistant/core/pull/115023
+[#115024]: https://github.com/home-assistant/core/pull/115024
+[#115028]: https://github.com/home-assistant/core/pull/115028
+[#115029]: https://github.com/home-assistant/core/pull/115029
+[#115032]: https://github.com/home-assistant/core/pull/115032
+[#115043]: https://github.com/home-assistant/core/pull/115043
+[#115044]: https://github.com/home-assistant/core/pull/115044
+[#115047]: https://github.com/home-assistant/core/pull/115047
+[#115050]: https://github.com/home-assistant/core/pull/115050
+[#115052]: https://github.com/home-assistant/core/pull/115052
+[#115055]: https://github.com/home-assistant/core/pull/115055
+[#115057]: https://github.com/home-assistant/core/pull/115057
+[#115059]: https://github.com/home-assistant/core/pull/115059
+[#115061]: https://github.com/home-assistant/core/pull/115061
+[#115063]: https://github.com/home-assistant/core/pull/115063
+[#115064]: https://github.com/home-assistant/core/pull/115064
+[#115066]: https://github.com/home-assistant/core/pull/115066
+[#115067]: https://github.com/home-assistant/core/pull/115067
+[#115069]: https://github.com/home-assistant/core/pull/115069
+[#115074]: https://github.com/home-assistant/core/pull/115074
+[#115075]: https://github.com/home-assistant/core/pull/115075
+[#115076]: https://github.com/home-assistant/core/pull/115076
+[#115079]: https://github.com/home-assistant/core/pull/115079
+[#115082]: https://github.com/home-assistant/core/pull/115082
+[#115091]: https://github.com/home-assistant/core/pull/115091
+[#115094]: https://github.com/home-assistant/core/pull/115094
+[#115097]: https://github.com/home-assistant/core/pull/115097
+[#115098]: https://github.com/home-assistant/core/pull/115098
+[#115100]: https://github.com/home-assistant/core/pull/115100
+[#115102]: https://github.com/home-assistant/core/pull/115102
+[#115104]: https://github.com/home-assistant/core/pull/115104
+[#115105]: https://github.com/home-assistant/core/pull/115105
+[#115108]: https://github.com/home-assistant/core/pull/115108
+[#115112]: https://github.com/home-assistant/core/pull/115112
+[#115119]: https://github.com/home-assistant/core/pull/115119
+[#115121]: https://github.com/home-assistant/core/pull/115121
+[#115125]: https://github.com/home-assistant/core/pull/115125
+[#115127]: https://github.com/home-assistant/core/pull/115127
+[#115132]: https://github.com/home-assistant/core/pull/115132
+[#115146]: https://github.com/home-assistant/core/pull/115146
+[#115152]: https://github.com/home-assistant/core/pull/115152
+[#115154]: https://github.com/home-assistant/core/pull/115154
+[#115157]: https://github.com/home-assistant/core/pull/115157
+[#115160]: https://github.com/home-assistant/core/pull/115160
+[#115161]: https://github.com/home-assistant/core/pull/115161
+[#115164]: https://github.com/home-assistant/core/pull/115164
+[#115165]: https://github.com/home-assistant/core/pull/115165
+[#115167]: https://github.com/home-assistant/core/pull/115167
+[#115168]: https://github.com/home-assistant/core/pull/115168
+[#115169]: https://github.com/home-assistant/core/pull/115169
+[#115172]: https://github.com/home-assistant/core/pull/115172
+[#115177]: https://github.com/home-assistant/core/pull/115177
+[#115179]: https://github.com/home-assistant/core/pull/115179
+[#115187]: https://github.com/home-assistant/core/pull/115187
+[#115188]: https://github.com/home-assistant/core/pull/115188
+[#115189]: https://github.com/home-assistant/core/pull/115189
+[#115190]: https://github.com/home-assistant/core/pull/115190
+[#115195]: https://github.com/home-assistant/core/pull/115195
+[#115197]: https://github.com/home-assistant/core/pull/115197
+[#115201]: https://github.com/home-assistant/core/pull/115201
+[#115206]: https://github.com/home-assistant/core/pull/115206
+[#115210]: https://github.com/home-assistant/core/pull/115210
+[#115216]: https://github.com/home-assistant/core/pull/115216
+[#115225]: https://github.com/home-assistant/core/pull/115225
+[#115228]: https://github.com/home-assistant/core/pull/115228
+[#115229]: https://github.com/home-assistant/core/pull/115229
+[#115230]: https://github.com/home-assistant/core/pull/115230
+[#115237]: https://github.com/home-assistant/core/pull/115237
+[#115238]: https://github.com/home-assistant/core/pull/115238
+[#115240]: https://github.com/home-assistant/core/pull/115240
+[#115241]: https://github.com/home-assistant/core/pull/115241
+[#115242]: https://github.com/home-assistant/core/pull/115242
+[#115244]: https://github.com/home-assistant/core/pull/115244
+[#115245]: https://github.com/home-assistant/core/pull/115245
+[#115246]: https://github.com/home-assistant/core/pull/115246
+[#115253]: https://github.com/home-assistant/core/pull/115253
+[#115263]: https://github.com/home-assistant/core/pull/115263
+[#115265]: https://github.com/home-assistant/core/pull/115265
+[#115267]: https://github.com/home-assistant/core/pull/115267
+[#115275]: https://github.com/home-assistant/core/pull/115275
+[#115276]: https://github.com/home-assistant/core/pull/115276
+[#115277]: https://github.com/home-assistant/core/pull/115277
+[#115278]: https://github.com/home-assistant/core/pull/115278
+[#115285]: https://github.com/home-assistant/core/pull/115285
+[#115294]: https://github.com/home-assistant/core/pull/115294
+[#115296]: https://github.com/home-assistant/core/pull/115296
+[#115300]: https://github.com/home-assistant/core/pull/115300
+[#115307]: https://github.com/home-assistant/core/pull/115307
+[#115309]: https://github.com/home-assistant/core/pull/115309
+[#115315]: https://github.com/home-assistant/core/pull/115315
+[#115317]: https://github.com/home-assistant/core/pull/115317
+[#115318]: https://github.com/home-assistant/core/pull/115318
+[#115319]: https://github.com/home-assistant/core/pull/115319
+[#115322]: https://github.com/home-assistant/core/pull/115322
+[#115324]: https://github.com/home-assistant/core/pull/115324
+[#115333]: https://github.com/home-assistant/core/pull/115333
+[#115335]: https://github.com/home-assistant/core/pull/115335
+[#115336]: https://github.com/home-assistant/core/pull/115336
+[#115340]: https://github.com/home-assistant/core/pull/115340
+[#115341]: https://github.com/home-assistant/core/pull/115341
+[#115362]: https://github.com/home-assistant/core/pull/115362
+[#115363]: https://github.com/home-assistant/core/pull/115363
+[#115368]: https://github.com/home-assistant/core/pull/115368
+[#115372]: https://github.com/home-assistant/core/pull/115372
+[#115377]: https://github.com/home-assistant/core/pull/115377
+[#115378]: https://github.com/home-assistant/core/pull/115378
+[#115384]: https://github.com/home-assistant/core/pull/115384
+[#115386]: https://github.com/home-assistant/core/pull/115386
+[#115388]: https://github.com/home-assistant/core/pull/115388
+[#115390]: https://github.com/home-assistant/core/pull/115390
+[#115391]: https://github.com/home-assistant/core/pull/115391
+[#115392]: https://github.com/home-assistant/core/pull/115392
+[#115396]: https://github.com/home-assistant/core/pull/115396
+[#115398]: https://github.com/home-assistant/core/pull/115398
+[#115404]: https://github.com/home-assistant/core/pull/115404
+[#115405]: https://github.com/home-assistant/core/pull/115405
+[#115406]: https://github.com/home-assistant/core/pull/115406
+[#115409]: https://github.com/home-assistant/core/pull/115409
+[#115412]: https://github.com/home-assistant/core/pull/115412
+[#115413]: https://github.com/home-assistant/core/pull/115413
+[#115422]: https://github.com/home-assistant/core/pull/115422
+[#115442]: https://github.com/home-assistant/core/pull/115442
+[#115443]: https://github.com/home-assistant/core/pull/115443
+[#115446]: https://github.com/home-assistant/core/pull/115446
+[#115447]: https://github.com/home-assistant/core/pull/115447
+[#115448]: https://github.com/home-assistant/core/pull/115448
+[#115449]: https://github.com/home-assistant/core/pull/115449
+[#115451]: https://github.com/home-assistant/core/pull/115451
+[#115452]: https://github.com/home-assistant/core/pull/115452
+[#115454]: https://github.com/home-assistant/core/pull/115454
+[#115455]: https://github.com/home-assistant/core/pull/115455
+[#115457]: https://github.com/home-assistant/core/pull/115457
+[#115467]: https://github.com/home-assistant/core/pull/115467
+[#115470]: https://github.com/home-assistant/core/pull/115470
+[#115473]: https://github.com/home-assistant/core/pull/115473
+[#115475]: https://github.com/home-assistant/core/pull/115475
+[#115477]: https://github.com/home-assistant/core/pull/115477
+[#115481]: https://github.com/home-assistant/core/pull/115481
+[#115485]: https://github.com/home-assistant/core/pull/115485
+[#115486]: https://github.com/home-assistant/core/pull/115486
+[#115494]: https://github.com/home-assistant/core/pull/115494
+[#115496]: https://github.com/home-assistant/core/pull/115496
+[#115498]: https://github.com/home-assistant/core/pull/115498
+[#115499]: https://github.com/home-assistant/core/pull/115499
+[#115504]: https://github.com/home-assistant/core/pull/115504
+[#115514]: https://github.com/home-assistant/core/pull/115514
+[#115515]: https://github.com/home-assistant/core/pull/115515
+[#115517]: https://github.com/home-assistant/core/pull/115517
+[#115518]: https://github.com/home-assistant/core/pull/115518
+[#115521]: https://github.com/home-assistant/core/pull/115521
+[#115526]: https://github.com/home-assistant/core/pull/115526
+[#115528]: https://github.com/home-assistant/core/pull/115528
+[#115529]: https://github.com/home-assistant/core/pull/115529
+[#115533]: https://github.com/home-assistant/core/pull/115533
+[#115538]: https://github.com/home-assistant/core/pull/115538
+[#115540]: https://github.com/home-assistant/core/pull/115540
+[#115541]: https://github.com/home-assistant/core/pull/115541
+[#115543]: https://github.com/home-assistant/core/pull/115543
+[#115544]: https://github.com/home-assistant/core/pull/115544
+[#115546]: https://github.com/home-assistant/core/pull/115546
+[#115547]: https://github.com/home-assistant/core/pull/115547
+[#115548]: https://github.com/home-assistant/core/pull/115548
+[#115549]: https://github.com/home-assistant/core/pull/115549
+[#115550]: https://github.com/home-assistant/core/pull/115550
+[#115551]: https://github.com/home-assistant/core/pull/115551
+[#115552]: https://github.com/home-assistant/core/pull/115552
+[#115553]: https://github.com/home-assistant/core/pull/115553
+[#115554]: https://github.com/home-assistant/core/pull/115554
+[#115555]: https://github.com/home-assistant/core/pull/115555
+[#115556]: https://github.com/home-assistant/core/pull/115556
+[#115558]: https://github.com/home-assistant/core/pull/115558
+[#115559]: https://github.com/home-assistant/core/pull/115559
+[#115563]: https://github.com/home-assistant/core/pull/115563
+[#115564]: https://github.com/home-assistant/core/pull/115564
+[#115565]: https://github.com/home-assistant/core/pull/115565
+[#115569]: https://github.com/home-assistant/core/pull/115569
+[#115577]: https://github.com/home-assistant/core/pull/115577
+[#115579]: https://github.com/home-assistant/core/pull/115579
+[#115583]: https://github.com/home-assistant/core/pull/115583
+[#115586]: https://github.com/home-assistant/core/pull/115586
+[#115587]: https://github.com/home-assistant/core/pull/115587
+[#115592]: https://github.com/home-assistant/core/pull/115592
+[#115593]: https://github.com/home-assistant/core/pull/115593
+[#115595]: https://github.com/home-assistant/core/pull/115595
+[#115599]: https://github.com/home-assistant/core/pull/115599
+[#115607]: https://github.com/home-assistant/core/pull/115607
+[#115618]: https://github.com/home-assistant/core/pull/115618
+[#115620]: https://github.com/home-assistant/core/pull/115620
+[#115621]: https://github.com/home-assistant/core/pull/115621
+[#115624]: https://github.com/home-assistant/core/pull/115624
+[#115628]: https://github.com/home-assistant/core/pull/115628
+[#115629]: https://github.com/home-assistant/core/pull/115629
+[#115638]: https://github.com/home-assistant/core/pull/115638
+[#115646]: https://github.com/home-assistant/core/pull/115646
+[#115653]: https://github.com/home-assistant/core/pull/115653
+[#115654]: https://github.com/home-assistant/core/pull/115654
+[#115658]: https://github.com/home-assistant/core/pull/115658
+[#115662]: https://github.com/home-assistant/core/pull/115662
+[#115665]: https://github.com/home-assistant/core/pull/115665
+[#115667]: https://github.com/home-assistant/core/pull/115667
+[#115668]: https://github.com/home-assistant/core/pull/115668
+[#115673]: https://github.com/home-assistant/core/pull/115673
+[#115674]: https://github.com/home-assistant/core/pull/115674
+[#115675]: https://github.com/home-assistant/core/pull/115675
+[#115676]: https://github.com/home-assistant/core/pull/115676
+[#115677]: https://github.com/home-assistant/core/pull/115677
+[#115678]: https://github.com/home-assistant/core/pull/115678
+[#115683]: https://github.com/home-assistant/core/pull/115683
+[#115685]: https://github.com/home-assistant/core/pull/115685
+[#115686]: https://github.com/home-assistant/core/pull/115686
+[#115689]: https://github.com/home-assistant/core/pull/115689
+[#115691]: https://github.com/home-assistant/core/pull/115691
+[#115696]: https://github.com/home-assistant/core/pull/115696
+[#115699]: https://github.com/home-assistant/core/pull/115699
+[#115700]: https://github.com/home-assistant/core/pull/115700
+[#115708]: https://github.com/home-assistant/core/pull/115708
+[#115713]: https://github.com/home-assistant/core/pull/115713
+[#115716]: https://github.com/home-assistant/core/pull/115716
+[#115719]: https://github.com/home-assistant/core/pull/115719
+[#115721]: https://github.com/home-assistant/core/pull/115721
+[#115724]: https://github.com/home-assistant/core/pull/115724
+[#115728]: https://github.com/home-assistant/core/pull/115728
+[#115729]: https://github.com/home-assistant/core/pull/115729
+[#115731]: https://github.com/home-assistant/core/pull/115731
+[#115736]: https://github.com/home-assistant/core/pull/115736
+[#115742]: https://github.com/home-assistant/core/pull/115742
+[#115744]: https://github.com/home-assistant/core/pull/115744
+[#115750]: https://github.com/home-assistant/core/pull/115750
+[#115751]: https://github.com/home-assistant/core/pull/115751
+[#115752]: https://github.com/home-assistant/core/pull/115752
+[#115754]: https://github.com/home-assistant/core/pull/115754
+[#115757]: https://github.com/home-assistant/core/pull/115757
+[#115759]: https://github.com/home-assistant/core/pull/115759
+[#115763]: https://github.com/home-assistant/core/pull/115763
+[#115764]: https://github.com/home-assistant/core/pull/115764
+[#115767]: https://github.com/home-assistant/core/pull/115767
+[#115768]: https://github.com/home-assistant/core/pull/115768
+[#115776]: https://github.com/home-assistant/core/pull/115776
+[#115777]: https://github.com/home-assistant/core/pull/115777
+[#115780]: https://github.com/home-assistant/core/pull/115780
+[#115783]: https://github.com/home-assistant/core/pull/115783
+[#115789]: https://github.com/home-assistant/core/pull/115789
+[#115790]: https://github.com/home-assistant/core/pull/115790
+[#115792]: https://github.com/home-assistant/core/pull/115792
+[#115793]: https://github.com/home-assistant/core/pull/115793
+[#115794]: https://github.com/home-assistant/core/pull/115794
+[#115796]: https://github.com/home-assistant/core/pull/115796
+[#115797]: https://github.com/home-assistant/core/pull/115797
+[#115798]: https://github.com/home-assistant/core/pull/115798
+[#115805]: https://github.com/home-assistant/core/pull/115805
+[#115810]: https://github.com/home-assistant/core/pull/115810
+[#115814]: https://github.com/home-assistant/core/pull/115814
+[#115815]: https://github.com/home-assistant/core/pull/115815
+[#115820]: https://github.com/home-assistant/core/pull/115820
+[#115822]: https://github.com/home-assistant/core/pull/115822
+[#115823]: https://github.com/home-assistant/core/pull/115823
+[#115824]: https://github.com/home-assistant/core/pull/115824
+[#115841]: https://github.com/home-assistant/core/pull/115841
+[#115842]: https://github.com/home-assistant/core/pull/115842
+[#115843]: https://github.com/home-assistant/core/pull/115843
+[#115849]: https://github.com/home-assistant/core/pull/115849
+[#115853]: https://github.com/home-assistant/core/pull/115853
+[#115854]: https://github.com/home-assistant/core/pull/115854
+[#115856]: https://github.com/home-assistant/core/pull/115856
+[#115864]: https://github.com/home-assistant/core/pull/115864
+[#115866]: https://github.com/home-assistant/core/pull/115866
+[#115873]: https://github.com/home-assistant/core/pull/115873
+[#115875]: https://github.com/home-assistant/core/pull/115875
+[#115876]: https://github.com/home-assistant/core/pull/115876
+[#115877]: https://github.com/home-assistant/core/pull/115877
+[#115879]: https://github.com/home-assistant/core/pull/115879
+[#115880]: https://github.com/home-assistant/core/pull/115880
+[#115884]: https://github.com/home-assistant/core/pull/115884
+[#115885]: https://github.com/home-assistant/core/pull/115885
+[#115887]: https://github.com/home-assistant/core/pull/115887
+[#115889]: https://github.com/home-assistant/core/pull/115889
+[#115890]: https://github.com/home-assistant/core/pull/115890
+[#115893]: https://github.com/home-assistant/core/pull/115893
+[#115894]: https://github.com/home-assistant/core/pull/115894
+[#115895]: https://github.com/home-assistant/core/pull/115895
+[#115904]: https://github.com/home-assistant/core/pull/115904
+[#115909]: https://github.com/home-assistant/core/pull/115909
+[#115910]: https://github.com/home-assistant/core/pull/115910
+[#115917]: https://github.com/home-assistant/core/pull/115917
+[#115918]: https://github.com/home-assistant/core/pull/115918
+[#115919]: https://github.com/home-assistant/core/pull/115919
+[#115920]: https://github.com/home-assistant/core/pull/115920
+[#115921]: https://github.com/home-assistant/core/pull/115921
+[#115924]: https://github.com/home-assistant/core/pull/115924
+[#115928]: https://github.com/home-assistant/core/pull/115928
+[#115929]: https://github.com/home-assistant/core/pull/115929
+[#115930]: https://github.com/home-assistant/core/pull/115930
+[#115931]: https://github.com/home-assistant/core/pull/115931
+[#115934]: https://github.com/home-assistant/core/pull/115934
+[#115936]: https://github.com/home-assistant/core/pull/115936
+[#115938]: https://github.com/home-assistant/core/pull/115938
+[#115942]: https://github.com/home-assistant/core/pull/115942
+[#115943]: https://github.com/home-assistant/core/pull/115943
+[#115945]: https://github.com/home-assistant/core/pull/115945
+[#115950]: https://github.com/home-assistant/core/pull/115950
+[#115952]: https://github.com/home-assistant/core/pull/115952
+[#115960]: https://github.com/home-assistant/core/pull/115960
+[#115966]: https://github.com/home-assistant/core/pull/115966
+[#115968]: https://github.com/home-assistant/core/pull/115968
+[#115973]: https://github.com/home-assistant/core/pull/115973
+[#115974]: https://github.com/home-assistant/core/pull/115974
+[#115977]: https://github.com/home-assistant/core/pull/115977
+[#115981]: https://github.com/home-assistant/core/pull/115981
+[#115983]: https://github.com/home-assistant/core/pull/115983
+[#115985]: https://github.com/home-assistant/core/pull/115985
+[#115989]: https://github.com/home-assistant/core/pull/115989
+[#115992]: https://github.com/home-assistant/core/pull/115992
+[#116004]: https://github.com/home-assistant/core/pull/116004
+[#116005]: https://github.com/home-assistant/core/pull/116005
+[#116011]: https://github.com/home-assistant/core/pull/116011
+[#116015]: https://github.com/home-assistant/core/pull/116015
+[#116016]: https://github.com/home-assistant/core/pull/116016
+[#116017]: https://github.com/home-assistant/core/pull/116017
+[#116020]: https://github.com/home-assistant/core/pull/116020
+[#116021]: https://github.com/home-assistant/core/pull/116021
+[#116022]: https://github.com/home-assistant/core/pull/116022
+[#116025]: https://github.com/home-assistant/core/pull/116025
+[#116026]: https://github.com/home-assistant/core/pull/116026
+[#116027]: https://github.com/home-assistant/core/pull/116027
+[#116030]: https://github.com/home-assistant/core/pull/116030
+[#116032]: https://github.com/home-assistant/core/pull/116032
+[#116033]: https://github.com/home-assistant/core/pull/116033
+[#116034]: https://github.com/home-assistant/core/pull/116034
+[#116035]: https://github.com/home-assistant/core/pull/116035
+[#116036]: https://github.com/home-assistant/core/pull/116036
+[#116038]: https://github.com/home-assistant/core/pull/116038
+[#116039]: https://github.com/home-assistant/core/pull/116039
+[#116040]: https://github.com/home-assistant/core/pull/116040
+[#116041]: https://github.com/home-assistant/core/pull/116041
+[#116044]: https://github.com/home-assistant/core/pull/116044
+[#116047]: https://github.com/home-assistant/core/pull/116047
+[#116048]: https://github.com/home-assistant/core/pull/116048
+[#116049]: https://github.com/home-assistant/core/pull/116049
+[#116050]: https://github.com/home-assistant/core/pull/116050
+[#116055]: https://github.com/home-assistant/core/pull/116055
+[#116057]: https://github.com/home-assistant/core/pull/116057
+[#116058]: https://github.com/home-assistant/core/pull/116058
+[#116059]: https://github.com/home-assistant/core/pull/116059
+[#116060]: https://github.com/home-assistant/core/pull/116060
+[#116061]: https://github.com/home-assistant/core/pull/116061
+[#116063]: https://github.com/home-assistant/core/pull/116063
+[#116065]: https://github.com/home-assistant/core/pull/116065
+[#116067]: https://github.com/home-assistant/core/pull/116067
+[#116068]: https://github.com/home-assistant/core/pull/116068
+[#116069]: https://github.com/home-assistant/core/pull/116069
+[#116070]: https://github.com/home-assistant/core/pull/116070
+[#116071]: https://github.com/home-assistant/core/pull/116071
+[#116072]: https://github.com/home-assistant/core/pull/116072
+[#116077]: https://github.com/home-assistant/core/pull/116077
+[#116078]: https://github.com/home-assistant/core/pull/116078
+[#116081]: https://github.com/home-assistant/core/pull/116081
+[#116082]: https://github.com/home-assistant/core/pull/116082
+[#116083]: https://github.com/home-assistant/core/pull/116083
+[#116084]: https://github.com/home-assistant/core/pull/116084
+[#116085]: https://github.com/home-assistant/core/pull/116085
+[#116086]: https://github.com/home-assistant/core/pull/116086
+[#116091]: https://github.com/home-assistant/core/pull/116091
+[#116094]: https://github.com/home-assistant/core/pull/116094
+[#116097]: https://github.com/home-assistant/core/pull/116097
+[#116098]: https://github.com/home-assistant/core/pull/116098
+[#116103]: https://github.com/home-assistant/core/pull/116103
+[#116106]: https://github.com/home-assistant/core/pull/116106
+[#116107]: https://github.com/home-assistant/core/pull/116107
+[#116108]: https://github.com/home-assistant/core/pull/116108
+[#116111]: https://github.com/home-assistant/core/pull/116111
+[#116112]: https://github.com/home-assistant/core/pull/116112
+[#116114]: https://github.com/home-assistant/core/pull/116114
+[#116125]: https://github.com/home-assistant/core/pull/116125
+[#116126]: https://github.com/home-assistant/core/pull/116126
+[#116141]: https://github.com/home-assistant/core/pull/116141
+[#116144]: https://github.com/home-assistant/core/pull/116144
+[#116146]: https://github.com/home-assistant/core/pull/116146
+[#116153]: https://github.com/home-assistant/core/pull/116153
+[#116154]: https://github.com/home-assistant/core/pull/116154
+[#116157]: https://github.com/home-assistant/core/pull/116157
+[#116160]: https://github.com/home-assistant/core/pull/116160
+[#116163]: https://github.com/home-assistant/core/pull/116163
+[#116168]: https://github.com/home-assistant/core/pull/116168
+[#116172]: https://github.com/home-assistant/core/pull/116172
+[#116176]: https://github.com/home-assistant/core/pull/116176
+[#116177]: https://github.com/home-assistant/core/pull/116177
+[#116182]: https://github.com/home-assistant/core/pull/116182
+[#116184]: https://github.com/home-assistant/core/pull/116184
+[#116190]: https://github.com/home-assistant/core/pull/116190
+[#116191]: https://github.com/home-assistant/core/pull/116191
+[#116192]: https://github.com/home-assistant/core/pull/116192
+[#116195]: https://github.com/home-assistant/core/pull/116195
+[#116206]: https://github.com/home-assistant/core/pull/116206
+[#116217]: https://github.com/home-assistant/core/pull/116217
+[#116219]: https://github.com/home-assistant/core/pull/116219
+[#116225]: https://github.com/home-assistant/core/pull/116225
+[#116230]: https://github.com/home-assistant/core/pull/116230
+[#116247]: https://github.com/home-assistant/core/pull/116247
+[#116251]: https://github.com/home-assistant/core/pull/116251
+[#116260]: https://github.com/home-assistant/core/pull/116260
+[#116263]: https://github.com/home-assistant/core/pull/116263
+[#116264]: https://github.com/home-assistant/core/pull/116264
+[#116265]: https://github.com/home-assistant/core/pull/116265
+[#116278]: https://github.com/home-assistant/core/pull/116278
+[#116319]: https://github.com/home-assistant/core/pull/116319
+[#116321]: https://github.com/home-assistant/core/pull/116321
+[#116327]: https://github.com/home-assistant/core/pull/116327
+[#116328]: https://github.com/home-assistant/core/pull/116328
+[#116329]: https://github.com/home-assistant/core/pull/116329
+[#116331]: https://github.com/home-assistant/core/pull/116331
+[#116333]: https://github.com/home-assistant/core/pull/116333
+[#116335]: https://github.com/home-assistant/core/pull/116335
+[#116337]: https://github.com/home-assistant/core/pull/116337
+[#116339]: https://github.com/home-assistant/core/pull/116339
+[#116340]: https://github.com/home-assistant/core/pull/116340
+[#116342]: https://github.com/home-assistant/core/pull/116342
+[#116343]: https://github.com/home-assistant/core/pull/116343
+[#116344]: https://github.com/home-assistant/core/pull/116344
+[#116346]: https://github.com/home-assistant/core/pull/116346
+[#116352]: https://github.com/home-assistant/core/pull/116352
+[#116355]: https://github.com/home-assistant/core/pull/116355
+[#116374]: https://github.com/home-assistant/core/pull/116374
+[#116390]: https://github.com/home-assistant/core/pull/116390
+[#116392]: https://github.com/home-assistant/core/pull/116392
+[#116396]: https://github.com/home-assistant/core/pull/116396
+[#116399]: https://github.com/home-assistant/core/pull/116399
+[#116404]: https://github.com/home-assistant/core/pull/116404
+[#116409]: https://github.com/home-assistant/core/pull/116409
+[#116424]: https://github.com/home-assistant/core/pull/116424
+[#116436]: https://github.com/home-assistant/core/pull/116436
+[#116440]: https://github.com/home-assistant/core/pull/116440
+[#116451]: https://github.com/home-assistant/core/pull/116451
+[#116465]: https://github.com/home-assistant/core/pull/116465
+[#116471]: https://github.com/home-assistant/core/pull/116471
+[#116473]: https://github.com/home-assistant/core/pull/116473
+[#116474]: https://github.com/home-assistant/core/pull/116474
+[#116475]: https://github.com/home-assistant/core/pull/116475
+[#116476]: https://github.com/home-assistant/core/pull/116476
+[#116481]: https://github.com/home-assistant/core/pull/116481
+[#116482]: https://github.com/home-assistant/core/pull/116482
+[#116487]: https://github.com/home-assistant/core/pull/116487
+[#116489]: https://github.com/home-assistant/core/pull/116489
+[#116503]: https://github.com/home-assistant/core/pull/116503
+[#116509]: https://github.com/home-assistant/core/pull/116509
+[#116513]: https://github.com/home-assistant/core/pull/116513
+[#116514]: https://github.com/home-assistant/core/pull/116514
+[#116516]: https://github.com/home-assistant/core/pull/116516
+[#116519]: https://github.com/home-assistant/core/pull/116519
+[#116524]: https://github.com/home-assistant/core/pull/116524
+[#116525]: https://github.com/home-assistant/core/pull/116525
+[#80254]: https://github.com/home-assistant/core/pull/80254
+[#89350]: https://github.com/home-assistant/core/pull/89350
+[#96027]: https://github.com/home-assistant/core/pull/96027
+[@Augar]: https://github.com/Augar
+[@BestPig]: https://github.com/BestPig
+[@Bre77]: https://github.com/Bre77
+[@CFenner]: https://github.com/CFenner
+[@Cereal2nd]: https://github.com/Cereal2nd
+[@Danielhiversen]: https://github.com/Danielhiversen
+[@Darsstar]: https://github.com/Darsstar
+[@Djelibeybi]: https://github.com/Djelibeybi
+[@EuleMitKeule]: https://github.com/EuleMitKeule
+[@FedDam]: https://github.com/FedDam
+[@Fexiven]: https://github.com/Fexiven
+[@Kane610]: https://github.com/Kane610
+[@LaStrada]: https://github.com/LaStrada
+[@Lash-L]: https://github.com/Lash-L
+[@Mallonbacka]: https://github.com/Mallonbacka
+[@MarkGodwin]: https://github.com/MarkGodwin
+[@MartinHjelmare]: https://github.com/MartinHjelmare
+[@Noltari]: https://github.com/Noltari
+[@OnFreund]: https://github.com/OnFreund
+[@PeteRager]: https://github.com/PeteRager
+[@Quentame]: https://github.com/Quentame
+[@RJPoelstra]: https://github.com/RJPoelstra
+[@Shutgun]: https://github.com/Shutgun
+[@Spacetech]: https://github.com/Spacetech
+[@SteveEasley]: https://github.com/SteveEasley
+[@StevenLooman]: https://github.com/StevenLooman
+[@TheFes]: https://github.com/TheFes
+[@TheJulianJES]: https://github.com/TheJulianJES
+[@Thomas55555]: https://github.com/Thomas55555
+[@Tommatheussen]: https://github.com/Tommatheussen
+[@VolkerStolz]: https://github.com/VolkerStolz
+[@agoode]: https://github.com/agoode
+[@albertomontesg]: https://github.com/albertomontesg
+[@allenporter]: https://github.com/allenporter
+[@andarotajo]: https://github.com/andarotajo
+[@ashottonoyan]: https://github.com/ashottonoyan
+[@astrandb]: https://github.com/astrandb
+[@atlflyer]: https://github.com/atlflyer
+[@austinmroczek]: https://github.com/austinmroczek
+[@autinerd]: https://github.com/autinerd
+[@balloob]: https://github.com/balloob
+[@bdraco]: https://github.com/bdraco
+[@beastie29a]: https://github.com/beastie29a
+[@bengtsir]: https://github.com/bengtsir
+[@bieniu]: https://github.com/bieniu
+[@bjpetit]: https://github.com/bjpetit
+[@bouwew]: https://github.com/bouwew
+[@bramkragten]: https://github.com/bramkragten
+[@brave0d]: https://github.com/brave0d
+[@brg468]: https://github.com/brg468
+[@brunohenriquy]: https://github.com/brunohenriquy
+[@c0ffeeca7]: https://github.com/c0ffeeca7
+[@catsmanac]: https://github.com/catsmanac
+[@cdce8p]: https://github.com/cdce8p
+[@cgtobi]: https://github.com/cgtobi
+[@chemelli74]: https://github.com/chemelli74
+[@chrisbraucker]: https://github.com/chrisbraucker
+[@cpfair]: https://github.com/cpfair
+[@crug80]: https://github.com/crug80
+[@dalinicus]: https://github.com/dalinicus
+[@dknowles2]: https://github.com/dknowles2
+[@dontinelli]: https://github.com/dontinelli
+[@edenhaus]: https://github.com/edenhaus
+[@eifinger]: https://github.com/eifinger
+[@elupus]: https://github.com/elupus
+[@emontnemery]: https://github.com/emontnemery
+[@epenet]: https://github.com/epenet
+[@erwindouna]: https://github.com/erwindouna
+[@farmio]: https://github.com/farmio
+[@felipediel]: https://github.com/felipediel
+[@fhoekstra]: https://github.com/fhoekstra
+[@finder39]: https://github.com/finder39
+[@frenck]: https://github.com/frenck
+[@funkybunch]: https://github.com/funkybunch
+[@gagebenne]: https://github.com/gagebenne
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@gnumpi]: https://github.com/gnumpi
+[@grahamwetzler]: https://github.com/grahamwetzler
+[@hahn-th]: https://github.com/hahn-th
+[@hopkins-tk]: https://github.com/hopkins-tk
+[@iMicknl]: https://github.com/iMicknl
+[@ikalnyi]: https://github.com/ikalnyi
+[@isXander]: https://github.com/isXander
+[@janiversen]: https://github.com/janiversen
+[@jayme-github]: https://github.com/jayme-github
+[@jbouwh]: https://github.com/jbouwh
+[@jesserockz]: https://github.com/jesserockz
+[@johnluetke]: https://github.com/johnluetke
+[@joostlek]: https://github.com/joostlek
+[@jpbede]: https://github.com/jpbede
+[@karwosts]: https://github.com/karwosts
+[@kbx81]: https://github.com/kbx81
+[@kimdv]: https://github.com/kimdv
+[@konstin]: https://github.com/konstin
+[@kotope]: https://github.com/kotope
+[@krzysztof-kwitt]: https://github.com/krzysztof-kwitt
+[@larsvinc]: https://github.com/larsvinc
+[@luca-angemi]: https://github.com/luca-angemi
+[@ludeeus]: https://github.com/ludeeus
+[@lunmay]: https://github.com/lunmay
+[@lyricnz]: https://github.com/lyricnz
+[@malkstar]: https://github.com/malkstar
+[@marcelveldt]: https://github.com/marcelveldt
+[@marcolivierarsenault]: https://github.com/marcolivierarsenault
+[@marcovtwout]: https://github.com/marcovtwout
+[@matrixd2]: https://github.com/matrixd2
+[@max2697]: https://github.com/max2697
+[@mback2k]: https://github.com/mback2k
+[@mdegat01]: https://github.com/mdegat01
+[@miaucl]: https://github.com/miaucl
+[@miawgogo]: https://github.com/miawgogo
+[@mib1185]: https://github.com/mib1185
+[@mill1000]: https://github.com/mill1000
+[@miterion]: https://github.com/miterion
+[@mj23000]: https://github.com/mj23000
+[@mkmer]: https://github.com/mkmer
+[@mletenay]: https://github.com/mletenay
+[@mtielen]: https://github.com/mtielen
+[@mwielgoszewski]: https://github.com/mwielgoszewski
+[@myMartek]: https://github.com/myMartek
+[@myhomeiot]: https://github.com/myhomeiot
+[@nalin29]: https://github.com/nalin29
+[@natekspencer]: https://github.com/natekspencer
+[@nohat]: https://github.com/nohat
+[@orevron]: https://github.com/orevron
+[@osohotwateriot]: https://github.com/osohotwateriot
+[@oyvindwe]: https://github.com/oyvindwe
+[@piitaya]: https://github.com/piitaya
+[@pleum]: https://github.com/pleum
+[@pnbruckner]: https://github.com/pnbruckner
+[@ptashek]: https://github.com/ptashek
+[@puddly]: https://github.com/puddly
+[@r-binder]: https://github.com/r-binder
+[@raman325]: https://github.com/raman325
+[@rappenze]: https://github.com/rappenze
+[@rikroe]: https://github.com/rikroe
+[@rlippmann]: https://github.com/rlippmann
+[@rokam]: https://github.com/rokam
+[@rytilahti]: https://github.com/rytilahti
+[@sdb9696]: https://github.com/sdb9696
+[@shaiu]: https://github.com/shaiu
+[@shawnweeks]: https://github.com/shawnweeks
+[@skgsergio]: https://github.com/skgsergio
+[@splinter98]: https://github.com/splinter98
+[@strawgate]: https://github.com/strawgate
+[@synesthesiam]: https://github.com/synesthesiam
+[@teharris1]: https://github.com/teharris1
+[@the-ress]: https://github.com/the-ress
+[@thecode]: https://github.com/thecode
+[@theminer3746]: https://github.com/theminer3746
+[@thomaskistler]: https://github.com/thomaskistler
+[@timmo001]: https://github.com/timmo001
+[@tomaszsluszniak]: https://github.com/tomaszsluszniak
+[@tr4nt0r]: https://github.com/tr4nt0r
+[@vanbalken]: https://github.com/vanbalken
+[@vexofp]: https://github.com/vexofp
+[@wittypluck]: https://github.com/wittypluck
+[@xeniter]: https://github.com/xeniter
+[@yuxincs]: https://github.com/yuxincs
+[@zxdavb]: https://github.com/zxdavb
diff --git a/source/changelogs/core-2024.6.markdown b/source/changelogs/core-2024.6.markdown
new file mode 100644
index 00000000000..7a0fad6865c
--- /dev/null
+++ b/source/changelogs/core-2024.6.markdown
@@ -0,0 +1,2915 @@
+---
+title: Full changelog for Home Assistant Core 2024.6
+description: Detailed changelog for the Home Assistant Core 2024.6 release
+replace_regex: \s\(\[?[a-z0-9\-\s_]+\]?\)$
+---
+
+These are all the changes included in the Home Assistant Core 2024.6 release.
+
+For a summary in a more readable format:
+[Release notes blog for this release](/blog/2024/06/05/release-20246/).
+
+## All changes
+
+- Add all supported languages to Google Translate and remove unsupported ones ([@prabhjotsbhatia-ca] - [#107404])
+- Bump version to 2024.6.0dev0 ([@frenck] - [#116120])
+- Add play/pause functionality for Vizio Smartcast media_player entities ([@NasaGeek] - [#108896])
+- Bump actions/checkout from 4.1.3 to 4.1.4 (@dependabot - [#116147])
+- Bump actions/download-artifact from 4.1.6 to 4.1.7 (@dependabot - [#116148])
+- Update mypy to 1.10.0 ([@cdce8p] - [#116158])
+- Bump aioautomower to 2024.4.4 ([@Thomas55555] - [#116185])
+- Add support for Aranet radiation devices ([@Anrijs] - [#115239])
+- Bump dropmqttapi to 1.0.3 ([@pfrazer] - [#116179])
+- Use snapshots in Linear diagnostics tests ([@joostlek] - [#116169])
+- Add strict typing to husqvarna automower ([@Thomas55555] - [#115374])
+- Improve linear coordinator ([@joostlek] - [#116167])
+- Use existing monotonic timestamp on mqtt messages for debugging ([@jbouwh] - [#116196])
+- Reduce scope of JSON/XML test fixtures ([@emontnemery] - [#116197])
+- Bump ruff to 0.4.2 ([@autinerd] - [#116201])
+- Bump github/codeql-action from 3.25.2 to 3.25.3 (@dependabot - [#116209])
+- Fix flapping trafikverket tests ([@emontnemery] - [#116238])
+- Remove myself as codeowner for Harmony ([@bramkragten] - [#116241])
+- Simplify timezone setting in recorder test ([@emontnemery] - [#116220])
+- Reduce scope of bluetooth test fixtures ([@emontnemery] - [#116210])
+- Fix flapping recorder tests ([@emontnemery] - [#116239])
+- Reduce scope of ZHA test fixtures ([@emontnemery] - [#116208])
+- Add HA version to cache key ([@cdce8p] - [#116159])
+- Make freezegun find event.time_tracker_utcnow ([@emontnemery] - [#116284])
+- Avoid update call in entity state write if there is no customize data ([@bdraco] - [#116296])
+- Add a fast path for _stringify_state when state is already a str ([@bdraco] - [#116295])
+- Reduce number of time calls needed to write state ([@bdraco] - [#116297])
+- Increase the Hydrawise refresh frequency from 120s to 30s ([@dknowles2] - [#116298])
+- Use more shorthand attrs in emonitor ([@bdraco] - [#116307])
+- Unifi: enable statistics for PoE port power sensor ([@wittypluck] - [#116308])
+- Convert Linear to use a base entity ([@IceBotYT] - [#116133])
+- Add a cache to _verify_event_type_length_or_raise ([@bdraco] - [#116312])
+- Remove unneeded TYPE_CHECKING guard in core async_set ([@bdraco] - [#116311])
+- Make storage load tasks background tasks to avoid delaying shutdown ([@bdraco] - [#116332])
+- Refactor group setup ([@jbouwh] - [#116317])
+- Fix incorrect call to async_schedule_update_ha_state in command_line switch ([@bdraco] - [#116347])
+- Add test helper to remove device ([@epenet] - [#116234])
+- Speed up singleton decorator so it can be used more places ([@bdraco] - [#116292])
+- Fix incorrect call to async_schedule_update_ha_state in generic_hygrostat ([@bdraco] - [#116349])
+- Fix incorrect call to async_schedule_update_ha_state in manual_mqtt ([@bdraco] - [#116348])
+- Remove eager_start argument from internal _async_add_hass_job function ([@bdraco] - [#116310])
+- Avoid creating tasks to update universal media player ([@bdraco] - [#116350])
+- Bump total_connect_client to 2024.4 ([@austinmroczek] - [#116360])
+- Use built-in aiohttp timeout instead of asyncio.timeout in media_player ([@bdraco] - [#116364])
+- Reduce scope of test fixtures for the pylint plugin tests ([@emontnemery] - [#116207])
+- Add Button for TotalConnect ([@austinmroczek] - [#114530])
+- Add icons and translations to Habitica ([@tr4nt0r] - [#116204])
+- Update freezegun to 1.5.0 ([@cdce8p] - [#116375])
+- Update pytest-xdist to 3.6.1 ([@cdce8p] - [#116377])
+- Update pipdeptree to 2.19.0 ([@cdce8p] - [#116376])
+- Update respx to 0.21.1 ([@cdce8p] - [#116380])
+- Update uv to 0.1.39 ([@cdce8p] - [#116381])
+- Update types packages ([@cdce8p] - [#116382])
+- Small cleanups to climate entity feature compat ([@bdraco] - [#116361])
+- Add Ollama Conversation Agent Entity ([@allenporter] - [#116363])
+- Address late review in Honeywell ([@mkmer] - [#115702])
+- Fix typo in Switchbot cloud ([@joostlek] - [#116388])
+- Fix grammar in internal function comments ([@bdraco] - [#116387])
+- Add service to log all the current asyncio Tasks to the profiler ([@bdraco] - [#116389])
+- Report webOS media player state ([@rale] - [#113774])
+- Add error translations to AVM Fritz!Tools ([@mib1185] - [#116413])
+- Add Workarea cutting height to Husqvarna Automower ([@Thomas55555] - [#116115])
+- Revert "Remove strict connection" ([@edenhaus] - [#116416])
+- Add Open Home Foundation link ([@GuySie] - [#116405])
+- Update pytest to 8.2.0 ([@cdce8p] - [#116379])
+- Remove entity category "system" check from entity registry ([@gjohansson-ST] - [#116412])
+- Update fyta async_migrate_entry ([@dontinelli] - [#116433])
+- Store runtime data inside ConfigEntry ([@cdce8p] - [#115669])
+- Use remove_device helper in tests (2/2) ([@epenet] - [#116442])
+- Use remove_device helper in tests (1/2) ([@epenet] - [#116240])
+- Store runtime data in entry in Withings ([@joostlek] - [#116439])
+- Store runtime data in entry in onewire ([@epenet] - [#116450])
+- Add pydantic to skip-binary ([@bdraco] - [#116406])
+- Remove entity description mixin in NextDNS ([@bieniu] - [#116456])
+- Move Renault service registration ([@epenet] - [#116459])
+- Store runtime data in entry in renault ([@epenet] - [#116454])
+- Mock dwdwfsapi in all tests that use it ([@andarotajo] - [#116414])
+- Small performance improvements to ingress forwarding ([@bdraco] - [#116457])
+- Avoid netloc ipaddress re-encoding to construct ingress urls ([@bdraco] - [#116431])
+- Avoid re-encoding the message id as bytes for every event/state change ([@bdraco] - [#116460])
+- Bump pydantic constraint ([@AngellusMortis] - [#116401])
+- Bring sensibo to full coverage (again) ([@gjohansson-ST] - [#116469])
+- Store runtime data in entry in Ecovacs ([@edenhaus] - [#116445])
+- Make a copy of capability_attributes instead of making a new dict ([@bdraco] - [#116477])
+- Use websocket client to test device removal in Unifi ([@wittypluck] - [#116309])
+- Remove unused argument from DWD coordinator ([@joostlek] - [#116496])
+- Add IMGW-PIB integration ([@bieniu] - [#116468])
+- Workday only update once a day ([@gjohansson-ST] - [#116419])
+- Store GIOS runtime data in entry ([@bieniu] - [#116510])
+- Bump yalexs to 3.1.0 ([@bdraco] - [#116511])
+- Simplify MQTT mid handling ([@bdraco] - [#116522])
+- Reduce timestamp function call overhead in core states ([@bdraco] - [#116517])
+- Store runtime data inside the config entry in AVM Fritz!Smarthome ([@mib1185] - [#116523])
+- Add diagnostics platform to IMGW-PIB integration ([@bieniu] - [#116551])
+- Use runtime data in Yale Smart Alarm ([@gjohansson-ST] - [#116548])
+- Use runtime data for FritzBox Call Monitor ([@cdce8p] - [#116553])
+- Store runtime data inside the config entry in Tankerkoenig ([@mib1185] - [#116532])
+- Store runtime data inside the config entry in Proximity ([@mib1185] - [#116533])
+- Store runtime data inside the config entry in PegelOnline ([@mib1185] - [#116534])
+- Use config entry runtime data in Trafikverket Weather ([@gjohansson-ST] - [#116554])
+- Use config entry runtime data in Trafikverket Camera ([@gjohansson-ST] - [#116552])
+- Use config entry runtime data in Sensibo ([@gjohansson-ST] - [#116530])
+- Use config entry runtime data in Trafikverket Ferry ([@gjohansson-ST] - [#116557])
+- Use config entry runtime data in Trafikverket Train ([@gjohansson-ST] - [#116556])
+- Store runtime data in entry in Analytics Insights ([@joostlek] - [#116441])
+- Remove duplicate mid handling in MQTT ([@bdraco] - [#116531])
+- Improve tankerkoenig generic coordinator typing ([@cdce8p] - [#116560])
+- Improve airly generic coordinator typing ([@cdce8p] - [#116561])
+- Improve asuswrt decorator typing ([@cdce8p] - [#116563])
+- Improve fitbit generic coordinator typing ([@cdce8p] - [#116562])
+- Bump pydrawise to 2024.4.1 ([@dknowles2] - [#116449])
+- Address late review for Husqvarna Automower ([@Thomas55555] - [#116536])
+- Bump sigstore/cosign-installer from 3.4.0 to 3.5.0 (@dependabot - [#115399])
+- Bump codecov/codecov-action from 4.3.0 to 4.3.1 (@dependabot - [#116592])
+- Add shutter tilt support for Shelly Wave Shutter QNSH-001P10 ([@blob810] - [#116211])
+- Use runtime_data for acmeda ([@cdce8p] - [#116606])
+- Use runtime_data for airvisual_pro ([@cdce8p] - [#116607])
+- Use runtime_data for ambient_station ([@cdce8p] - [#116608])
+- Use entry.runtime_data in Fronius ([@farmio] - [#116604])
+- Use runtime_data for co2signal ([@cdce8p] - [#116612])
+- Use runtime_data for bond ([@cdce8p] - [#116611])
+- Use runtime_data for august ([@cdce8p] - [#116610])
+- Add `binary_sensor` platform to IMGW-PIB integration ([@bieniu] - [#116624])
+- Use runtime_data for airthings_ble ([@cdce8p] - [#116623])
+- Use runtime_data for airtouch5 ([@cdce8p] - [#116625])
+- Use runtime_data for aftership ([@cdce8p] - [#116618])
+- Cleanup removed MQTT broker settings ([@jbouwh] - [#116633])
+- Use runtime_data for airq ([@cdce8p] - [#116620])
+- Use runtime_data for airthings ([@cdce8p] - [#116622])
+- Use runtime_data for airnow ([@cdce8p] - [#116619])
+- Refactor group state logic ([@jbouwh] - [#116318])
+- Add vesync Vital 100S UK & EU Model mappings ([@JonDeeming] - [#115948])
+- Cleanup unused class attr for MQTT config flow ([@jbouwh] - [#116653])
+- Improve docstring on roborock image entity method ([@jbouwh] - [#116654])
+- Replace pyserial-asyncio with pyserial-asyncio-fast in serial ([@bdraco] - [#116636])
+- Fix flaky hassio test ([@emontnemery] - [#116658])
+- Cleanup MQTT sensor last_reset_topic config parameter a year after removal ([@jbouwh] - [#116657])
+- Add ecobee ventilator 20 min timer ([@marcolivierarsenault] - [#115969])
+- Migrate bluetooth to use the singleton helper ([@bdraco] - [#116629])
+- Clean up small changes from OpenAI conversation entity change ([@allenporter] - [#116395])
+- Convert history tests to use async API ([@emontnemery] - [#116447])
+- Drop pyserial-asyncio from zha ([@bdraco] - [#116638])
+- Add title feature to notify entity platform ([@jbouwh] - [#116426])
+- Bump `imgw_pib` to version 1.0.1 ([@bieniu] - [#116630])
+- Bump habluetooth to 3.0.1 ([@bdraco] - [#116663])
+- Move NAM Data Update Coordinator to the coordinator module ([@bieniu] - [#116686])
+- Fix fyta test warning ([@cdce8p] - [#116688])
+- Fix snapcast test warning ([@cdce8p] - [#116687])
+- Add test for HA stop to devolo Home Control ([@Shutgun] - [#116682])
+- Use `runtime_data` to store NextDNS data ([@bieniu] - [#116691])
+- Use ConfigEntry runtime_data in devolo Home Control ([@Shutgun] - [#116672])
+- EntityDescription doesn't need to be generic for NextDNS binary sensor and switch platforms ([@bieniu] - [#116697])
+- Convert sensor recorder tests to use async API ([@emontnemery] - [#116373])
+- Convert recorder entity registry tests to use async API ([@emontnemery] - [#116448])
+- Bump `nettigo-air-monitor` to version 3.0.1 ([@bieniu] - [#116699])
+- Cleanup OpenAI and Ollama conversation entities ([@allenporter] - [#116714])
+- Use ConfigEntry runtime_data in Discovergy ([@jpbede] - [#116671])
+- Use runtime_data in Axis integration ([@Kane610] - [#116729])
+- Fix active state mapping in wolflink ([@mtielen] - [#116659])
+- Fix UpdateCoordinator types in CoordinatorWeatherEntity constructor ([@kamiyo] - [#116747])
+- Bump ruff to 0.4.3 ([@autinerd] - [#116749])
+- Store runtime data inside the config entry in DWD ([@mib1185] - [#116764])
+- Store runtime data inside the config entry in Shelly ([@mib1185] - [#116763])
+- Improve CoordinatorWeatherEntity generic typing ([@cdce8p] - [#116760])
+- Update unique_id to string in Honeywell ([@mkmer] - [#116726])
+- Store BraviaTV data in config_entry.runtime_data ([@bieniu] - [#116778])
+- Move Brother DataUpdateCoordinator to the coordinator module ([@bieniu] - [#116772])
+- Store runtime data inside the config entry in Met.no ([@mib1185] - [#116767])
+- Store runtime data inside the config entry in Nextcloud ([@mib1185] - [#116790])
+- Store runtime data inside the config entry in SamsungTV ([@mib1185] - [#116787])
+- Store runtime data inside the config entry in OpenWeatherMap ([@mib1185] - [#116788])
+- Store runtime data inside the config entry in VLC telnet ([@mib1185] - [#116803])
+- Store runtime data inside the config entry in Speedtest.net ([@mib1185] - [#116802])
+- Store runtime data inside the config entry in Pi-Hole ([@mib1185] - [#116806])
+- Store runtime data inside the config entry in NUT ([@mib1185] - [#116771])
+- Store runtime data inside the config entry in Sun ([@mib1185] - [#116808])
+- Store runtime data inside the config entry in Local ToDo ([@mib1185] - [#116818])
+- Store runtime data inside the config entry in Certificate Expiry ([@mib1185] - [#116819])
+- Store runtime data inside the config entry in Bring ([@tr4nt0r] - [#116820])
+- Store runtime data inside the config entry in System Monitor ([@mib1185] - [#116816])
+- Store runtime data inside the config entry in Android TV Remote ([@mib1185] - [#116824])
+- Migrate properties to instance variables in NAM coordinator ([@bieniu] - [#116703])
+- Move Totalconnect coordinator to separate module ([@joostlek] - [#116368])
+- Correct stale docstring on mqtt config flow method ([@jbouwh] - [#116848])
+- Use parametrize in drop connect sensor tests ([@joostlek] - [#107078])
+- Increase test coverage for Total Connect ([@bieniu] - [#116851])
+- Bump tcc to 2024.5 ([@austinmroczek] - [#116827])
+- Add Sensor descriptions for Bosch SHC ([@joostlek] - [#116775])
+- Add update coordinator for Habitica integration ([@tr4nt0r] - [#116427])
+- Remove timeout option and set timeout static to 30 seconds in Synology DSM ([@mib1185] - [#116815])
+- Improve recorder and worker thread matching in RecorderPool ([@bdraco] - [#116886])
+- Replace utcnow().timestamp() with time.time() in auth_store ([@bdraco] - [#116879])
+- Refactor entity_platform polling to avoid double time fetch ([@bdraco] - [#116877])
+- Turn on thread safety checks in async_dispatcher_send ([@bdraco] - [#116867])
+- Keep august offline key up to date when it changes ([@bdraco] - [#116857])
+- Index auth token ids to avoid linear search ([@bdraco] - [#116583])
+- Switch out aiohttp-isal for aiohttp-fast-zlib to make isal optional ([@bdraco] - [#116814])
+- Abort Minecraft Server config flow if device is already configured ([@elmurato] - [#116852])
+- Store runtime data inside the config entry in AndroidTV ([@ollo69] - [#116895])
+- Bump Habitipy to 0.3.1 ([@tr4nt0r] - [#116378])
+- Bump bring-api to 0.7.1 ([@tr4nt0r] - [#115532])
+- Bump google-generativeai to v0.5.2 ([@tronikos] - [#116845])
+- Move thread safety check in issue_registry sooner ([@bdraco] - [#116899])
+- Only call conversation should_expose once ([@balloob] - [#116891])
+- Handle errors retrieving Ondilo data and bump ondilo to 0.5.0 ([@JeromeHXP] - [#115926])
+- Convert recorder init tests to use async API ([@emontnemery] - [#116918])
+- Store runtime data inside the config entry in AsusWrt ([@ollo69] - [#116889])
+- Reduce API calls to fetch Habitica tasks ([@tr4nt0r] - [#116897])
+- Add new sensors to IMGW-PIB integration ([@bieniu] - [#116631])
+- Add snapshot tests to Ondilo Ico ([@joostlek] - [#116929])
+- Convert recorder history tests to use async API ([@emontnemery] - [#116909])
+- Convert recorder statistics tests to use async API ([@emontnemery] - [#116925])
+- Simplify config entry check in SamsungTV ([@epenet] - [#116907])
+- Convert recorder util tests to use async API ([@emontnemery] - [#116926])
+- Convert recorder auto_repairs tests to use async API ([@emontnemery] - [#116927])
+- Fix search/replace mistake in recorder tests ([@emontnemery] - [#116933])
+- Store runtime data inside the config entry in Radio Browser ([@mib1185] - [#116821])
+- Small speed ups to async_get_integration ([@bdraco] - [#116900])
+- Set pH device class in Ondilo Ico ([@joostlek] - [#116930])
+- Fix wiz test warning ([@cdce8p] - [#116693])
+- Add dataclass to Ondilo Ico ([@joostlek] - [#116928])
+- Use runtime_data for elgato ([@cdce8p] - [#116614])
+- Remove deprecated WAQI state attributes ([@joostlek] - [#116595])
+- Use runtime_data for wled ([@cdce8p] - [#116615])
+- Use ConfigEntry runtime_data in TwenteMilieu ([@frenck] - [#116642])
+- AccuWeather tests refactoring ([@bieniu] - [#116923])
+- Allow the rounding to be optional in integral ([@elupus] - [#116884])
+- Store AccuWeather runtime data in config entry ([@bieniu] - [#116946])
+- Revert polling interval back to orginal value in Wolflink ([@mtielen] - [#116758])
+- Replace pylint protected-access with Ruff SLF001 ([@autinerd] - [#115735])
+- Snapshot Ondilo Ico devices ([@joostlek] - [#116932])
+- Handle exceptions in panic button for Yale Smart Alarm ([@gjohansson-ST] - [#116515])
+- Allow reconfiguration of integration sensor ([@elupus] - [#116740])
+- Remove ambiclimate integration ([@gjohansson-ST] - [#116410])
+- Use ConfigEntry runtime_data in devolo Home Network ([@Shutgun] - [#116694])
+- Correct formatting mqtt MQTT_DISCOVERY_DONE and MQTT_DISCOVERY_UPDATED message ([@jbouwh] - [#116947])
+- Bump orjson to 3.10.3 ([@bdraco] - [#116945])
+- Correct typo in MQTT translations ([@jbouwh] - [#116956])
+- Bump python-holidays to 0.48 ([@gjohansson-ST] - [#116951])
+- Make Idasen Desk react to bluetooth changes ([@abmantis] - [#115939])
+- Bump aioautomower to 2024.5.0 ([@Thomas55555] - [#116942])
+- Review AndroidTV decorator exception management ([@ollo69] - [#114133])
+- Upgrade to hdate 0.10.8 ([@SLaks] - [#116202])
+- Bump SQLAlchemy to 2.0.30 ([@bdraco] - [#116964])
+- Add HassDict implementation ([@cdce8p] - [#103844])
+- Add support for round-robin DNS ([@pemontto] - [#115218])
+- Fix flakey test in Husqvarna Automower ([@Thomas55555] - [#116981])
+- Update tqdm to 4.66.4 ([@cdce8p] - [#116984])
+- Replace pylint broad-except with Ruff BLE001 ([@autinerd] - [#116250])
+- Store Philips TV runtime data in config entry ([@bieniu] - [#116952])
+- Clean up Ondilo config flow ([@joostlek] - [#116931])
+- Update imports from alarm_control_panel ([@cdce8p] - [#117014])
+- Return raw API data for subaru device diagnostics ([@G-Two] - [#114119])
+- Use HassKey for registries ([@cdce8p] - [#117000])
+- Use HassKey for setup and bootstrap ([@cdce8p] - [#116998])
+- Use HassKey for helpers (2) ([@cdce8p] - [#117013])
+- Use HassKey for helpers (1) ([@cdce8p] - [#117012])
+- Improve energy platform typing ([@cdce8p] - [#117003])
+- Use HassKey for loader ([@cdce8p] - [#116999])
+- Only log loop client subscription log if log level is DEBUG ([@jbouwh] - [#117008])
+- Add SignificantChangeProtocol to improve platform typing ([@cdce8p] - [#117002])
+- Holiday update calendar once per day ([@gjohansson-ST] - [#116421])
+- Improve issue_registry event typing ([@cdce8p] - [#117023])
+- Add Tado reconfigure step ([@erwindouna] - [#115970])
+- Use entry runtime data on Filesize ([@gjohansson-ST] - [#116962])
+- Add Monzo integration ([@JakeMartin-ICL] - [#101731])
+- Use singleton helper for registries ([@bdraco] - [#117027])
+- Add MediaSourceProtocol to improve platform typing ([@cdce8p] - [#117001])
+- Add flow and rain sensor support to Hydrawise ([@thomaskistler] - [#116303])
+- Add climate temp ranges support for Airzone Cloud ([@Noltari] - [#115025])
+- Fix double executor in Filesize ([@gjohansson-ST] - [#117029])
+- Add Venstar HVAC stage sensor ([@jhollowe] - [#107510])
+- Store Airly runtime data in config entry ([@bieniu] - [#117031])
+- Store runtime data inside the config entry in Upnp ([@mib1185] - [#117030])
+- Store runtime data inside the config entry in Apple TV ([@mib1185] - [#117032])
+- Move thread safety in label_registry sooner ([@bdraco] - [#117026])
+- Fix capitalization in Monzo strings ([@joostlek] - [#117035])
+- Move thread safety in floor_registry sooner ([@bdraco] - [#117044])
+- Update eq3btsmart library dependency to 1.1.8 ([@EuleMitKeule] - [#117051])
+- Move thread safety check in category_registry sooner ([@bdraco] - [#117050])
+- Intent target matching and media player enhancements ([@synesthesiam] - [#115445])
+- Add service waze_travel_time.get_travel_times ([@eifinger] - [#108170])
+- Store runtime data inside the config entry in IPP ([@mib1185] - [#116765])
+- Set the quality scale to platinum for IMGW-PIB integration ([@bieniu] - [#116912])
+- Store Tractive data in `config_entry.runtime_data` ([@bieniu] - [#116781])
+- Use runtime_data in webmin ([@autinerd] - [#117058])
+- User eager task in github config flow ([@emontnemery] - [#117066])
+- Bump aiovodafone to 0.6.0 ([@chemelli74] - [#117064])
+- Apply late review on Synology DSM ([@mib1185] - [#117060])
+- Bump pylutron to 0.2.13 ([@joostlek] - [#117062])
+- Bump bleak to 0.22.0 ([@bdraco] - [#116955])
+- Convert Anova to cloud push ([@Lash-L] - [#109508])
+- Add an add template filter ([@Troon] - [#109884])
+- Correct state class of ecowitt hourly rain rate sensors ([@pantonvich] - [#110475])
+- Add `open` state to LockEntity ([@gjohansson-ST] - [#111968])
+- Fix nibe_heatpump climate for models without cooling support ([@tizianodeg] - [#114599])
+- Migrate baf to use config entry runtime_data ([@bdraco] - [#117081])
+- Add open and opening state support to MQTT lock ([@jbouwh] - [#117110])
+- Avoid storing Bluetooth scanner in hass.data ([@bdraco] - [#117074])
+- Migrate govee_ble to use config entry runtime_data ([@bdraco] - [#117076])
+- Avoid creating a task to clear the hass instance at test teardown ([@bdraco] - [#117103])
+- Avoid creating inner tasks to load storage ([@bdraco] - [#117099])
+- Speed up tests by making mock_get_source_ip session scoped ([@bdraco] - [#117096])
+- Migrate yalexs_ble to use config entry runtime_data ([@bdraco] - [#117082])
+- Migrate elkm1 to use config entry runtime_data ([@bdraco] - [#117077])
+- Bump python-roborock to 2.1.1 ([@Lash-L] - [#117078])
+- Export MQTT subscription helpers at integration level ([@jbouwh] - [#116150])
+- Enable Ruff RUF010 ([@autinerd] - [#115371])
+- Ignore Ruff SIM103 ([@autinerd] - [#115732])
+- Fix config entry _async_process_on_unload being called for forwarded platforms ([@bdraco] - [#117084])
+- Store runtime data inside the config entry in Tuya ([@mib1185] - [#116822])
+- Add test data for Zeo and Dyad devices to Roborock ([@Lash-L] - [#117054])
+- Add better testing to vacuum platform ([@Lash-L] - [#112523])
+- Use HassKey for importlib helper ([@cdce8p] - [#117116])
+- Move available property in BasePassiveBluetoothCoordinator to PassiveBluetoothDataUpdateCoordinator ([@bdraco] - [#117056])
+- Bump github/codeql-action from 3.25.3 to 3.25.4 (@dependabot - [#117127])
+- Add airgradient integration ([@joostlek] - [#114113])
+- Add base entity for Airgradient ([@joostlek] - [#117135])
+- Add screenlogic service tests ([@dieselrabbit] - [#116356])
+- Speed up test teardown when no config entries are loaded ([@bdraco] - [#117095])
+- Bump ruff to 0.4.4 ([@autinerd] - [#117154])
+- Raise ServiceValidationError in Nibe climate services ([@tizianodeg] - [#117171])
+- Improve base entity state in Vogel's MotionMount integration ([@RJPoelstra] - [#109043])
+- Add standard deviation calculation to group ([@CoRfr] - [#112076])
+- Refactor Teslemetry integration ([@Bre77] - [#112480])
+- Migrate file integration to config entry ([@jbouwh] - [#116861])
+- Add energy site coordinator to Teslemetry ([@Bre77] - [#117184])
+- Add ESPhome discovery via MQTT ([@Links2004] - [#116499])
+- Import TypedDict from typing ([@cdce8p] - [#117161])
+- Log some mqtt of the discovery logging at debug level ([@jbouwh] - [#117185])
+- Update media_player intent schema ([@Shulyaka] - [#116793])
+- Update SetPositionIntentHandler intent schema ([@Shulyaka] - [#116794])
+- Add update_without_throttle to ecobee number ([@marcolivierarsenault] - [#116504])
+- Fix File entry setup config parsing whole YAML config ([@jbouwh] - [#117206])
+- Ensure config entry setup lock is held when removing a config entry ([@bdraco] - [#117086])
+- Fix flakey sonos test teardown ([@bdraco] - [#117222])
+- Bump ical to 8.0.1 ([@allenporter] - [#117219])
+- Use async_get_loaded_integration in config_entries ([@bdraco] - [#117192])
+- Bump pyrainbird to 6.0.1 ([@allenporter] - [#117217])
+- Fix flakey advantage_air test ([@bdraco] - [#117224])
+- Only load translations for an integration once per test session ([@bdraco] - [#117118])
+- Add device class to Command Line cover ([@gjohansson-ST] - [#117183])
+- Prevent shutdown fault-log trace-back ([@systemcrash] - [#116735])
+- Speed up init and finish flow ([@bdraco] - [#117226])
+- Use MockConfigEntry in unifi tests ([@emontnemery] - [#117238])
+- Rename some runner tests ([@emontnemery] - [#117249])
+- Rename some translation helper tests ([@emontnemery] - [#117248])
+- Rename some rflink tests ([@emontnemery] - [#117247])
+- Rename some MQTT tests ([@emontnemery] - [#117246])
+- Sort asserts in config config_entries tests ([@emontnemery] - [#117244])
+- Bump homematicip to 1.1.1 ([@hahn-th] - [#117175])
+- Bump wolf-comm to 0.0.8 ([@mtielen] - [#117218])
+- Bump pyinsteon to 1.6.1 ([@teharris1] - [#117196])
+- Start using runtime_data for zwave_js ([@raman325] - [#117261])
+- Use mock_config_flow helper in config tests ([@emontnemery] - [#117245])
+- Use mock_config_flow helper in config_entries tests ([@emontnemery] - [#117241])
+- Use mock_config_flow helper in bootstrap tests ([@emontnemery] - [#117240])
+- Sort parameters to MockConfigEntry ([@emontnemery] - [#117239])
+- Add shared notify service migration repair helper ([@jbouwh] - [#117213])
+- Refactor V2C tests ([@joostlek] - [#117264])
+- Tweak config_entries tests ([@emontnemery] - [#117242])
+- Ensure config entry operations are always holding the lock ([@bdraco] - [#117214])
+- Fix docstring in Idasen Desk ([@abmantis] - [#117280])
+- Small speed up to setting up integrations and config entries ([@bdraco] - [#117278])
+- Use `MockConfigEntry` in hue tests ([@emontnemery] - [#117237])
+- Use a dictcomp to reconstruct DeviceInfo in the device_registry ([@bdraco] - [#117286])
+- Bump upcloud-api to 2.5.1 ([@scop] - [#117231])
+- Fix mimetypes doing blocking I/O in the event loop ([@bdraco] - [#117292])
+- Small speed ups to bootstrap tests ([@bdraco] - [#117285])
+- Improve bluetooth generic typing ([@cdce8p] - [#117157])
+- Spelling of controlling in mqtt valve tests ([@jbouwh] - [#117301])
+- Fix blocking I/O in the event loop to get MacOS system_info ([@bdraco] - [#117290])
+- Use entry runtime data in Teslemetry ([@Bre77] - [#117283])
+- Fix flume doing blocking I/O in the event loop ([@bdraco] - [#117293])
+- Fix import on File config entry and other improvements ([@jbouwh] - [#117210])
+- Fix typo in mqtt test name ([@jbouwh] - [#117305])
+- Migrate Tibber notify service ([@jbouwh] - [#116893])
+- Remove ConfigEntry runtime_data on unload ([@cdce8p] - [#117312])
+- Add test for radarr update failure ([@tkdrob] - [#116882])
+- Clean up aurora ([@joostlek] - [#117315])
+- Refactor asyncio loop protection to improve performance ([@bdraco] - [#117295])
+- Enable open protection in the event loop ([@bdraco] - [#117289])
+- Bump zwave-js-server-python to 0.56.0 ([@raman325] - [#117288])
+- Add camera recording service to blink ([@mback2k] - [#110612])
+- Improve error handling in Teslemetry ([@Bre77] - [#117336])
+- Add gh cli to dev container ([@balloob] - [#117321])
+- Fix typo and useless default in config_entries ([@emontnemery] - [#117346])
+- Implement runtime data for Plugwise ([@bouwew] - [#117172])
+- Remove migration of config entry data pre version 0.73 ([@emontnemery] - [#117345])
+- Alphabetize some parts of config_entries ([@emontnemery] - [#117347])
+- Remove options from FlowResult ([@emontnemery] - [#117351])
+- Add minor version + migration to config entry store ([@emontnemery] - [#117350])
+- Migrate File notify entity platform ([@jbouwh] - [#117215])
+- Implement support for SwitchBot Meter, MeterPlus, and Outdoor Meter ([@laurence-presland] - [#115522])
+- Support reconfigure flow in Nettigo Air Monitor integration ([@bieniu] - [#117318])
+- Update to arcam 1.5.2 ([@elupus] - [#117375])
+- Create helper for File config flow step handling ([@jbouwh] - [#117371])
+- Bump dbus-fast to 2.21.2 ([@bdraco] - [#117195])
+- Migrate restore_state to use the singleton helper ([@bdraco] - [#117385])
+- Pass loop to create_eager_task in loops from more coros ([@bdraco] - [#117390])
+- Import and cache supported feature enum flags only when needed ([@allenporter] - [#117270])
+- Use ConfigEntry runtime_data in Tailwind ([@frenck] - [#117404])
+- Update uv to 0.1.43 ([@cdce8p] - [#117405])
+- Update apprise to 1.8.0 ([@frenck] - [#117370])
+- Update types packages ([@cdce8p] - [#117407])
+- Use ConfigEntry runtime_data in advantage_air ([@epenet] - [#117408])
+- Bump github/codeql-action from 3.25.4 to 3.25.5 (@dependabot - [#117409])
+- Update gotailwind to 0.2.3 ([@frenck] - [#117402])
+- Use ConfigEntry runtime_data in aemet ([@epenet] - [#117411])
+- Use ConfigEntry runtime_data in agent_dvr ([@epenet] - [#117412])
+- Update pylint to 3.1.1 ([@cdce8p] - [#117416])
+- Move abode base entities to separate module ([@epenet] - [#117417])
+- Add climate platform to microBees ([@FedDam] - [#111152])
+- Add Viam image processing integration ([@HipsterBrown] - [#101786])
+- Speed up loading YAML ([@bdraco] - [#117388])
+- Update pytest warnings filter ([@cdce8p] - [#117413])
+- Allow templates for enabling automation triggers ([@farmio] - [#114458])
+- Add `knx.telegram` integration specific trigger; update KNX Interface device trigger ([@farmio] - [#107592])
+- Rename sharkiq coordinator module ([@epenet] - [#117429])
+- Use snapshot platform helper in Flexit bacnet ([@joostlek] - [#117428])
+- Move esphome coordinator to separate module ([@epenet] - [#117427])
+- Move abode service registration ([@epenet] - [#117418])
+- Adjust thread safety check messages to point to developer docs ([@bdraco] - [#117392])
+- Add diagnostic platform to utility_meter ([@dgomes] - [#114967])
+- Bump pyefergy to 22.5.0 ([@tkdrob] - [#117395])
+- Add context to `telegram_bot` events ([@Shulyaka] - [#109920])
+- Move evil_genius_labs coordinator to separate module ([@epenet] - [#117435])
+- Add ability to change heating programs for heat pumps in ViCare integration ([@CFenner] - [#110924])
+- Rename flo coordinator module ([@epenet] - [#117438])
+- Use integration fallback configuration for tado water heater fallback ([@ethemcemozkan] - [#111014])
+- Re-introduce webhook to tedee integration ([@zweckj] - [#110247])
+- Update SmartThings codeowners ([@andrewsayre] - [#117448])
+- Rename wemo coordinator module ([@epenet] - [#117437])
+- Add Assist timers ([@synesthesiam] - [#117199])
+- Refactor Linear tests ([@joostlek] - [#116336])
+- Pass device_id to intent handlers ([@synesthesiam] - [#117442])
+- Some minor cleanups in WLED ([@frenck] - [#117453])
+- Make UniFi use runtime data ([@Kane610] - [#117457])
+- Enable raising ConfigEntryAuthFailed on BMW coordinator init ([@rikroe] - [#116643])
+- Fix lying docstring in entity_platform ([@emontnemery] - [#117450])
+- Add PM10 sensor to AirNow ([@kamiyo] - [#117432])
+- Bump opower to 0.4.5 and use new account.id ([@c0mputerguru] - [#117330])
+- Bump youless_api to 1.1.1 ([@benvm] - [#117459])
+- Remove "device_id" slot from timers ([@synesthesiam] - [#117460])
+- Add water meter to Youless intergration ([@benvm] - [#117452])
+- Set integration type for aurora_abb_powerone ([@davet2001] - [#117462])
+- Separate Blue Current timestamp sensors ([@Floris272] - [#111942])
+- Fix brand ID for Rainforest Automation ([@cottsay] - [#113770])
+- Add integration for APsystems EZ1 microinverter ([@mawoka-myblock] - [#114531])
+- Fix intent_type type ([@balloob] - [#117469])
+- Improve thread safety check messages to better convey impact ([@bdraco] - [#117467])
+- Add websocket API to get list of recorded entities ([@bdraco] - [#92640])
+- Bump codecov/codecov-action from 4.3.1 to 4.4.0 (@dependabot - [#117472])
+- Split homeassistant_alerts constants and coordinator ([@epenet] - [#117475])
+- Rename gree coordinator module ([@epenet] - [#117474])
+- Add options flow to the airq integration ([@Sibgatulin] - [#109337])
+- Revert "Add Viam image processing integration" ([@emontnemery] - [#117477])
+- Revert "Bump opower to 0.4.5 and use new account.id" ([@frenck] - [#117476])
+- Rename add entities function in Aurora ([@joostlek] - [#117480])
+- Move ialarm coordinator to separate module ([@epenet] - [#117478])
+- Set integration type for generic ([@davet2001] - [#117464])
+- Add exception translations to System Bridge integration ([@timmo001] - [#112206])
+- Move gios coordinator to separate module ([@epenet] - [#117471])
+- Move idasen_desk coordinator to separate module ([@epenet] - [#117485])
+- Remove ignore-wrong-coordinator-module in pylint CI ([@epenet] - [#117479])
+- Rename mikrotik coordinator module ([@epenet] - [#117488])
+- Move melnor coordinator to separate module ([@epenet] - [#117486])
+- Move prusalink coordinators to separate module ([@epenet] - [#117495])
+- Move mill coordinator to separate module ([@epenet] - [#117493])
+- Move venstar coordinator to separate module ([@epenet] - [#117500])
+- Fix ghost events for Hue remotes ([@marcelveldt] - [#113047])
+- Android TV Remote: Support launching any app by its application ID/package name ([@tronikos] - [#116906])
+- Add Jellyfin audio_codec optionflow ([@d-ylee] - [#113036])
+- Improve error handing in kaiterra data retrieval when no aqi data is present ([@AnilDaoud] - [#112885])
+- Add alarm and connectivity binary_sensors to myuplink ([@astrandb] - [#111643])
+- Add select platform to Teslemetry ([@Bre77] - [#117422])
+- Post review comments on APsystems ([@mawoka-myblock] - [#117504])
+- Move vizio coordinator to separate module ([@epenet] - [#117498])
+- Move vallox coordinator to separate module ([@epenet] - [#117503])
+- Allow templates for enabling conditions ([@farmio] - [#117047])
+- Allow templates for enabling actions ([@farmio] - [#117049])
+- Add Reolink PIR entities ([@starkillerOG] - [#117507])
+- Add light platform to Linear garage door ([@IceBotYT] - [#111426])
+- Rename fritz coordinator module ([@epenet] - [#117440])
+- Do not register mqtt mock config flow with handlers ([@jpbede] - [#117521])
+- Set integration type for wyoming ([@balloob] - [#117519])
+- Fix the type of slot schema of intent handlers ([@balloob] - [#117520])
+- Add LLM tools ([@Shulyaka] - [#115464])
+- Don't prioritize "name" slot if it's a wildcard in default conversation agent ([@synesthesiam] - [#117518])
+- Bump bleak to 0.22.1 ([@bdraco] - [#117383])
+- Move google coordinator to separate module ([@epenet] - [#117473])
+- Add Webmin filesystem sensors ([@autinerd] - [#112660])
+- Move xbox coordinator to separate module ([@epenet] - [#117421])
+- Move switcher_kis coordinator to separate module ([@epenet] - [#117538])
+- Move gogogate2 coordinator to separate module ([@epenet] - [#117433])
+- Bump aioesphomeapi to 24.4.0 ([@gnumpi] - [#117543])
+- Bump adext to 0.4.3 ([@tichris0] - [#117496])
+- Move surepetcare coordinator to separate module ([@epenet] - [#117544])
+- Move upcloud coordinator to separate module ([@epenet] - [#117536])
+- Add functionality to Mastodon ([@thejeffreystone] - [#112862])
+- Only allow ethernet and wi-fi interfaces as unique ID in webmin ([@autinerd] - [#113084])
+- Improve ReloadServiceHelper typing ([@cdce8p] - [#117552])
+- Replace meaningless TypeVar usage ([@cdce8p] - [#117553])
+- Add Shelly motion sensor switch ([@chemelli74] - [#115312])
+- Move rainforest_eagle coordinator to separate module ([@epenet] - [#117556])
+- Move risco coordinator to separate module ([@epenet] - [#117549])
+- Improve recorder statistics error messages ([@dfaour] - [#113498])
+- Move pvpc coordinator to separate module ([@epenet] - [#117559])
+- Add area filter and rounded time to timers ([@synesthesiam] - [#117527])
+- Move pure_energie coordinator to separate module ([@epenet] - [#117560])
+- Update hass-nabucasa dependency to version 0.81.0 ([@ludeeus] - [#117568])
+- Use runtime data in Poolsense ([@joostlek] - [#117570])
+- Ensure gold and platinum integrations implement diagnostic ([@epenet] - [#117565])
+- Support reconfigure flow in Shelly integration ([@bieniu] - [#117525])
+- Refactor Poolsense config flow tests ([@joostlek] - [#117573])
+- Bump pyipp to 0.16.0 ([@ctalkington] - [#117583])
+- Add diagnostics for nws ([@MatthewFlamm] - [#117587])
+- Add Poolsense platform tests ([@joostlek] - [#117579])
+- Add Reolink battery entities ([@starkillerOG] - [#117506])
+- Use config entry runtime_data in nws ([@MatthewFlamm] - [#117593])
+- Mark HassJob target as Final ([@cdce8p] - [#117578])
+- Rework deCONZ services to load once and never unload ([@Kane610] - [#117592])
+- Remove old deCONZ entity cleanup ([@Kane610] - [#117590])
+- Rename openweathermap coordinator module ([@epenet] - [#117609])
+- Move opengarage coordinator to separate module ([@epenet] - [#117608])
+- Fix dlna_dmr task flood when player changes state ([@bdraco] - [#117606])
+- Bump actions/checkout from 4.1.4 to 4.1.6 (@dependabot - [#117612])
+- Fix Reolink battery translation_key unneeded ([@starkillerOG] - [#117616])
+- Bump pre-commit to 3.7.1 ([@epenet] - [#117619])
+- Rename hassio coordinator module ([@epenet] - [#117611])
+- Extract Monzo coordinator in separate module ([@joostlek] - [#117034])
+- Prevent `const.py` in coverage ignore list ([@epenet] - [#117625])
+- Update mypy-dev to 1.11.0a2 ([@cdce8p] - [#117630])
+- Use PEP 695 for simple type aliases ([@cdce8p] - [#117633])
+- Android TV Remote: Mention the TV will turn on in the reauth flow ([@tronikos] - [#117548])
+- Fix Tibber sensors state class ([@basbruss] - [#117085])
+- Move modern_forms coordinator to separate module ([@epenet] - [#117610])
+- Add snapshot tests to Balboa ([@joostlek] - [#117620])
+- Use PEP 695 type alias for ConfigEntry types ([@cdce8p] - [#117632])
+- Add snapshot tests to elmax ([@epenet] - [#117637])
+- Move elmax coordinator to separate module ([@epenet] - [#117425])
+- Fix icons and strings in Balboa ([@joostlek] - [#117618])
+- Adjust bootstrap script to use correct version of pre-commit ([@epenet] - [#117621])
+- Use PEP 695 for decorator typing (1) ([@cdce8p] - [#117638])
+- Use PEP 695 for decorator typing (3) ([@cdce8p] - [#117640])
+- Use PEP 695 for decorator typing (2) ([@cdce8p] - [#117639])
+- Move p1_monitor coordinator to separate module ([@epenet] - [#117562])
+- Add Google Gen AI Conversation Agent Entity ([@allenporter] - [#116362])
+- Bump pyduotecno to 2024.5.1 ([@Cereal2nd] - [#117643])
+- Fix Habitica doing blocking I/O in the event loop ([@tr4nt0r] - [#117647])
+- Add AlarmDecoder device info ([@tichris0] - [#117357])
+- Move tomorrowio coordinator to separate module ([@epenet] - [#117537])
+- Move philips_js coordinator to separate module ([@epenet] - [#117561])
+- Clean up some bad line wrapping in Hydrawise ([@dknowles2] - [#117671])
+- Add missing string `reconfigure_successful` for NAM reconfigure flow ([@bieniu] - [#117683])
+- Bump google-generativeai==0.5.4 ([@tronikos] - [#117680])
+- Use PEP 695 for decorator typing with type aliases (2) ([@cdce8p] - [#117663])
+- Use PEP 695 for decorator typing with type aliases (1) ([@cdce8p] - [#117662])
+- Use PEP 695 for function annotations (3) ([@cdce8p] - [#117660])
+- Use PEP 695 for function annotations (2) ([@cdce8p] - [#117659])
+- Use PEP 695 for function annotations (1) ([@cdce8p] - [#117658])
+- Improve YieldFixture typing ([@cdce8p] - [#117686])
+- Use PEP 695 for dispatcher helper typing ([@cdce8p] - [#117685])
+- Remove useless TypeVars ([@cdce8p] - [#117687])
+- Use generator expression in poolsense ([@joostlek] - [#117582])
+- Move plenticore coordinators to separate module ([@epenet] - [#117491])
+- Improve Monzo tests ([@joostlek] - [#117036])
+- Improve diagnostics in Teslemetry ([@Bre77] - [#117613])
+- Add `__pycache__` to gitignore ([@autinerd] - [#114056])
+- Refactor Aurora tests ([@joostlek] - [#117323])
+- Use remove_device helper in tasmota tests ([@epenet] - [#116617])
+- Allow manual delete of stale Renault vehicles ([@epenet] - [#116229])
+- Move entity definitions into own module in AVM Fritz!Tools ([@mib1185] - [#117701])
+- Add GitHub CoPilot to extensions devcontainer ([@balloob] - [#117699])
+- Remove AngellusMortis as code-owner Unifi Protect ([@balloob] - [#117708])
+- Avoid Shelly RPC reconnect during device shutdown ([@thecode] - [#117702])
+- Add API class to LLM helper ([@balloob] - [#117707])
+- Use SnmpEngine stored in hass.data by singleton in Brother integration ([@bieniu] - [#117043])
+- Bump PlexAPI to 4.15.13 ([@jjlawren] - [#117712])
+- Bump monzopy to 1.2.0 ([@JakeMartin-ICL] - [#117730])
+- Use reauth helper in devolo Home Network ([@Shutgun] - [#117736])
+- Bump aioshelly to 10.0.0 ([@thecode] - [#117728])
+- Use helper in Withings reauth ([@joostlek] - [#117727])
+- Use reauth helper in devolo Home Control ([@Shutgun] - [#117739])
+- Refactor tests for Brother integration ([@bieniu] - [#117377])
+- Bump pydiscovergy to 3.0.1 ([@jpbede] - [#117740])
+- LLM Tools support for Google Generative AI integration ([@Shulyaka] - [#117644])
+- Update elmax_api to v0.0.5 ([@albertogeniola] - [#117693])
+- Add turn_on to SamsungTV remote ([@epenet] - [#117403])
+- Fix missing type for mqtt websocket wrapper ([@bdraco] - [#117752])
+- Add setup time detail to diagnostics ([@bdraco] - [#117766])
+- Update pylint to 3.2.2 ([@cdce8p] - [#117770])
+- Move environment_canada coordinator to separate module ([@epenet] - [#117426])
+- Use PEP 695 for class annotations (1) ([@cdce8p] - [#117775])
+- Use PEP 695 for class annotations (2) ([@cdce8p] - [#117776])
+- Use PEP 695 for class annotations (4) ([@cdce8p] - [#117778])
+- Use PEP 695 for class annotations (3) ([@cdce8p] - [#117777])
+- Use PEP 695 for hass_dict annotations ([@cdce8p] - [#117779])
+- Use PEP 695 for covariant class annotations ([@cdce8p] - [#117780])
+- Fix blocking I/O in the event loop when loading timezones ([@bdraco] - [#117721])
+- Downgrade point quality scale to silver ([@epenet] - [#117783])
+- Downgrade tellduslive quality scale to silver ([@epenet] - [#117784])
+- Set integration_type to device for apsystems integration ([@mawoka-myblock] - [#117782])
+- Update mypy-dev to 1.11.0a3 ([@cdce8p] - [#117786])
+- Use PEP 695 misc ([@cdce8p] - [#117788])
+- Use PEP 695 for function annotations with scoping ([@cdce8p] - [#117787])
+- Enable UP040 ruff check ([@cdce8p] - [#117792])
+- Unpause media players that were paused outside voice ([@synesthesiam] - [#117575])
+- Use PEP 695 type alias in tests ([@cdce8p] - [#117797])
+- Remove quotes surrounding annotations ([@cdce8p] - [#117817])
+- Bump pynws to 1.8.1 for nws ([@MatthewFlamm] - [#117820])
+- Detect incorrect exception in forwarded platforms ([@bdraco] - [#117754])
+- Bump dbus-fast to 2.21.3 ([@bdraco] - [#117824])
+- Bump tesla-powerwall to 0.5.2 ([@bdraco] - [#117823])
+- Improve error message when template is rendered from wrong thread ([@bdraco] - [#117822])
+- Update scaffold templates to use runtime_data ([@cdce8p] - [#117819])
+- Improve zwave_js TypeVar usage ([@cdce8p] - [#117810])
+- Stop the nest subscriber on Home Assistant stop ([@allenporter] - [#117830])
+- Bump codecov/codecov-action from 4.4.0 to 4.4.1 (@dependabot - [#117836])
+- Refactor SamsungTV auth check ([@epenet] - [#117834])
+- Bump github/codeql-action from 3.25.5 to 3.25.6 (@dependabot - [#117835])
+- Tesla wall connector add sensors ([@bajansen] - [#117769])
+- Remove @ from codeowners when downloading diagnostics ([@bdraco] - [#117825])
+- Remove future import to fix broken typing.get_type_hints call ([@cdce8p] - [#117837])
+- Bump aioautomower to 2024.5.1 ([@Thomas55555] - [#117815])
+- Convert solax to use DataUpdateCoordinator ([@bdraco] - [#117767])
+- Use PEP 695 misc (2) ([@cdce8p] - [#117814])
+- Use uv instead of pip in development env ([@edenhaus] - [#113517])
+- Remove silver integrations from NO_DIAGNOSTICS ([@epenet] - [#117840])
+- Simplify samsungtv unload ([@epenet] - [#117838])
+- Small speed up to adding event bus listeners ([@bdraco] - [#117849])
+- Simplify service description cache logic ([@bdraco] - [#117846])
+- Cache area registry JSON serialize ([@bdraco] - [#117847])
+- Speed up async_get_loaded_integrations ([@bdraco] - [#117851])
+- Small speed up to logbook humanify ([@bdraco] - [#117854])
+- Add support for Glances v4 ([@wittypluck] - [#117664])
+- Add description to intent handlers and use in LLM helper ([@synesthesiam] - [#117864])
+- Add missing placeholder name to reauth ([@mkmer] - [#117869])
+- Address late feedback Google LLM ([@balloob] - [#117873])
+- Make Google AI model picker a dropdown ([@balloob] - [#117878])
+- Enable Ruff RET502 ([@autinerd] - [#115139])
+- Add `async_turn_on/off` methods for KNX climate entities ([@farmio] - [#117882])
+- Add data point type option to `knx.telegram` trigger ([@farmio] - [#117463])
+- Add value_template option to KNX expose ([@farmio] - [#117732])
+- Simplify and speed up mqtt_config_entry_enabled check ([@bdraco] - [#117886])
+- Fix mqtt timer churn ([@bdraco] - [#117885])
+- Reduce overhead to call get_mqtt_data ([@bdraco] - [#117887])
+- LLM Tools: Add device_id ([@Shulyaka] - [#117884])
+- Avoid creating tasks to subscribe to discovery in MQTT ([@bdraco] - [#117890])
+- LLM Tools support for OpenAI integration ([@Shulyaka] - [#117645])
+- Reduce overhead to validate mqtt topics ([@bdraco] - [#117891])
+- Support carbon dioxide and formaldehyde sensors in deCONZ ([@Kane610] - [#117877])
+- Small speed up to creating flows ([@bdraco] - [#117896])
+- Improve typing via hassfest serializer ([@jschlyter] - [#117382])
+- Add coordinator to SamsungTV ([@epenet] - [#117863])
+- Adjust conftest type hints ([@epenet] - [#117900])
+- Keep observation data valid for 60 min and retry with no data for nws ([@MatthewFlamm] - [#117109])
+- Add MAC cleanup to SamsungTV ([@epenet] - [#117906])
+- Adopt new runtime entry data model for AlarmDecoder ([@tichris0] - [#117856])
+- Refactor MQTT to replace get_mqtt_data with HassKey ([@bdraco] - [#117899])
+- Bump habluetooth to 3.1.0 ([@bdraco] - [#117905])
+- Remove duplicate code in SamsungTV ([@epenet] - [#117913])
+- Exclude modbus from diagnostics hassfest check ([@joostlek] - [#117855])
+- Fix performance regression with SignalType ([@cdce8p] - [#117920])
+- Add clear night to smhi ([@gjohansson-ST] - [#115998])
+- Use common title for reauth confirm in Whirlpool config flow ([@mkmer] - [#117924])
+- Google Generative AI: Handle response with empty parts in generate_content ([@tronikos] - [#117908])
+- Add switch for stay out zones in Husqvarna Automower ([@Thomas55555] - [#117809])
+- Fail if targeting all devices in the house in service intent handler ([@synesthesiam] - [#117930])
+- Speed up registry indices ([@bdraco] - [#117897])
+- Simplify SkyConnect setup flow ([@puddly] - [#117868])
+- Add lock to token validity check ([@joostlek] - [#117912])
+- Move nest diagnostic tests to use snapshots ([@allenporter] - [#117929])
+- Migrate issue registry to use singleton helper ([@bdraco] - [#117848])
+- Add available and state to SamsungTV remote ([@epenet] - [#117909])
+- Store runtime data inside the config entry in iBeacon ([@mib1185] - [#117936])
+- Add number entities for screenlogic values used in SI calc ([@dieselrabbit] - [#117812])
+- Send MEDIA_ANNOUNCE flag to ESPHome media_player ([@gnumpi] - [#116993])
+- Refactor shared mqtt schema's to new module ([@jbouwh] - [#117944])
+- Update LLM no tools message ([@balloob] - [#117935])
+- Refactor state_reported listener setup to avoid merge in async_fire_internal ([@bdraco] - [#117953])
+- Bump ruff to 0.4.5 ([@autinerd] - [#117958])
+- Allow to reconfigure integrations with `single_config_entry` set ([@jpbede] - [#117939])
+- Better handling of EADDRINUSE for Govee light ([@Galorhallen] - [#117943])
+- Add Azure data explorer ([@kaareseras] - [#68992])
+- Fix run-in-env script for not running in venv ([@farmio] - [#117961])
+- Simplify async_track_time_interval implementation ([@bdraco] - [#117956])
+- Bump airgradient to 0.4.1 ([@joostlek] - [#117963])
+- Improve fyta tests ([@dontinelli] - [#117661])
+- Cleanup pylint ignore ([@epenet] - [#117964])
+- Add snapshot tests to moehlenhoff_alpha2 ([@epenet] - [#117967])
+- Add switch platform to Teslemetry ([@Bre77] - [#117482])
+- Use SnapshotAssertion in rainmachine diagnostic tests ([@epenet] - [#117979])
+- Add snapshot platform tests to rainmachine ([@epenet] - [#117978])
+- Move rainmachine coordinator to separate module ([@epenet] - [#117983])
+- Fix turbojpeg init doing blocking I/O in the event loop ([@bdraco] - [#117971])
+- Cache serialize of manifest for loaded integrations ([@bdraco] - [#117965])
+- Deconz - Added trigger support for Aqara WB-R02D mini switch ([@agrauballe] - [#117917])
+- Bump to google-nest-sdm to 4.0.4 ([@allenporter] - [#117982])
+- Enable Switcher assume buttons for all devices ([@thecode] - [#117993])
+- Bump habluetooth to 3.1.1 ([@bdraco] - [#117992])
+- Add snapshot tests to omnilogic ([@epenet] - [#117986])
+- Move moehlenhoff_alpha2 coordinator to separate module ([@epenet] - [#117970])
+- Remove Switcher YAML import support ([@thecode] - [#117994])
+- Google gen updates ([@balloob] - [#117893])
+- Update codespell to 2.3.0 ([@cdce8p] - [#118001])
+- Add lock platform to Teslemetry ([@Bre77] - [#117344])
+- Remove unused snapshots [a-f] ([@Thomas55555] - [#117999])
+- Fix vallow test fixtures ([@cdce8p] - [#118003])
+- Move omnilogic coordinator to separate module ([@epenet] - [#118014])
+- Add binary sensor platform to Teslemetry ([@Bre77] - [#117230])
+- Switcher - use single_config_entry and register_discovery_flow in con… ([@thecode] - [#118000])
+- Add models to energy sites in Teslemetry ([@Bre77] - [#117419])
+- Add snapshot tests to plaato ([@epenet] - [#118017])
+- Daikin Aircon - Add strings and debug ([@kingy444] - [#116674])
+- Add sequence action for automations & scripts ([@frenck] - [#117690])
+- Move plaato coordinator to separate module ([@epenet] - [#118019])
+- Use snapshot in renault diagnostics tests ([@epenet] - [#118021])
+- Migrate OpenWeaterMap to new library (support API 3.0) ([@freekode] - [#116870])
+- Add logging to SamsungTV turn-on ([@epenet] - [#117962])
+- Update typing-extensions to 4.12.0 ([@cdce8p] - [#118020])
+- Avoid calling split_entity_id in event add/remove filters ([@bdraco] - [#118015])
+- Improve callable annotations ([@cdce8p] - [#118024])
+- Fix partial typing ([@cdce8p] - [#118022])
+- Update codespell ignore list ([@cdce8p] - [#118018])
+- Fix issue with device_class.capitalize() in point ([@fredrike] - [#117969])
+- Add missing Ecovacs life spans ([@Ulfmerbold2000] - [#117134])
+- Add snapshot tests to nuki ([@epenet] - [#117973])
+- Add error message to snapshot_platform helper ([@epenet] - [#117974])
+- Catch client connection error in Honeywell ([@mkmer] - [#117502])
+- Convert namedtuple to NamedTuple for smartthings ([@autinerd] - [#115395])
+- Refactor Husqvarna Automower ([@Thomas55555] - [#117938])
+- Move nuki coordinator to separate module ([@epenet] - [#117975])
+- Move TibberDataCoordinator to separate module ([@epenet] - [#118027])
+- Create bound callback_message_received method for handling mqtt callbacks ([@jbouwh] - [#117951])
+- Add Cover platform to Teslemetry ([@Bre77] - [#117340])
+- Remove duplicate tests in generic_thermostat ([@esciara] - [#105622])
+- Improve error logging on invalid MQTT entity state ([@jbouwh] - [#118006])
+- Add APRS object tracking ([@PhilRW] - [#113080])
+- Make co/co2 threshold configurable via entity_config ([@FWeinb] - [#112978])
+- Add config flow to Jewish Calendar ([@yuvalabou] - [#84464])
+- Add json cache to lovelace config ([@bdraco] - [#117843])
+- Improve annotation styling ([@cdce8p] - [#118032])
+- Use issue_registry fixture in core tests ([@epenet] - [#118042])
+- Update Rachio hose timer battery sensor ([@brg468] - [#118045])
+- Rename MQTT mixin classes ([@jbouwh] - [#118039])
+- Remove strict connection ([@edenhaus] - [#117933])
+- Use issue_registry fixture in component tests ([@epenet] - [#118041])
+- Change ZoneInfo to async_get_time_zone in fyta ([@dontinelli] - [#117996])
+- Add types to event tracker data ([@bdraco] - [#118010])
+- Exclude gold and platinum integrations from .coveragerc ([@epenet] - [#117563])
+- Fix intent helper test ([@synesthesiam] - [#118053])
+- Require registered device id for all timer intents ([@synesthesiam] - [#117946])
+- Remove unneeded asserts ([@balloob] - [#118056])
+- Update OpenAI defaults ([@balloob] - [#118059])
+- Allow llm API to render dynamic template prompt ([@balloob] - [#118055])
+- Add tests to Zeversolar integration ([@NECH2004] - [#117928])
+- Refactor mqtt callbacks for alarm_control_panel ([@jbouwh] - [#118037])
+- Refactor mqtt callbacks for cover ([@jbouwh] - [#118044])
+- Add activity type to appropriate RainMachine switches ([@bachya] - [#117875])
+- Significantly speed up single use callback dispatchers ([@bdraco] - [#117934])
+- Refactor mqtt callbacks for climate and water_heater ([@jbouwh] - [#118040])
+- Move recorder chunk utils to shared collection utils ([@jbouwh] - [#118065])
+- Consequently ignore empty MQTT state payloads and set state to `unknown` on "None" payload ([@jbouwh] - [#117813])
+- Split mqtt subscribe and unsubscribe calls to smaller chunks ([@jbouwh] - [#118035])
+- Avoid generating matchers that will never be used in MQTT ([@bdraco] - [#118068])
+- Avoid catch_log_exception overhead in MQTT for simple callbacks ([@bdraco] - [#118036])
+- Reduce duplicate code to handle mqtt message replies ([@bdraco] - [#118067])
+- Use defaultdict instead of setdefault in mqtt client ([@bdraco] - [#118070])
+- Fix lingering mqtt test ([@jbouwh] - [#118072])
+- Google Generative AI: add timeout to ensure we don't block HA startup ([@tronikos] - [#118066])
+- Add Google Generative AI safety settings ([@tronikos] - [#117679])
+- Add user name and location to the LLM assist prompt ([@Shulyaka] - [#118071])
+- Add device info to Google ([@balloob] - [#118074])
+- Speed up is_template_string by avoiding regex engine ([@bdraco] - [#118076])
+- Remove OrderedDict from entity_values as dict guarantees order on newer cpython ([@bdraco] - [#118081])
+- Speed up async_render_with_possible_json_value ([@bdraco] - [#118080])
+- Avoid template context manager overhead when template is already compiled ([@bdraco] - [#118079])
+- Remove unused code in template helper ([@bdraco] - [#118075])
+- Convert remaining mqtt attrs classes to dataclasses ([@bdraco] - [#118073])
+- Add device info to OpenAI ([@balloob] - [#118077])
+- Fix default Google AI prompt on initial setup ([@balloob] - [#118078])
+- Add no-API LLM prompt back to Google ([@balloob] - [#118082])
+- Add recommended model options to OpenAI ([@balloob] - [#118083])
+- Update Google safety defaults to match Google ([@balloob] - [#118084])
+- Flip prompts to put user prompt on top ([@balloob] - [#118085])
+- Bump velbusaio to 2024.5.1 ([@Cereal2nd] - [#118091])
+- Speed up removing MQTT subscriptions ([@bdraco] - [#118088])
+- Store runtime data inside the config entry in Spotify ([@mib1185] - [#117037])
+- Store runtime data inside the config entry in Forecast Solar ([@mib1185] - [#117033])
+- Adjust title of integration sensor ([@elupus] - [#116954])
+- Bump pyenvisalink version to 4.7 ([@allistermaguire] - [#118086])
+- Simplify mqtt discovery cooldown calculation ([@bdraco] - [#118095])
+- Migrate firmata to use async_unload_platforms ([@bdraco] - [#118098])
+- Migrate vera to use async_unload_platforms ([@bdraco] - [#118099])
+- Migrate zha to use async_unload_platforms ([@bdraco] - [#118100])
+- Migrate zwave_js to use async_unload_platforms ([@bdraco] - [#118101])
+- Switch mqtt to use async_unload_platforms ([@bdraco] - [#118097])
+- Store Switcher runtime data in config entry ([@thecode] - [#118054])
+- Small speed up to mqtt _async_queue_subscriptions ([@bdraco] - [#118094])
+- Allow Meraki API v2 or v2.1 ([@nopoz] - [#115828])
+- Freeze and fix plaato CI tests ([@jbouwh] - [#118103])
+- Use PEP 695 type alias for ConfigEntry type in Spotify ([@mib1185] - [#118106])
+- Add device tracker platform to Teslemetry ([@Bre77] - [#117341])
+- Use PEP 695 type alias for ConfigEntry type in Forecast Solar ([@mib1185] - [#118107])
+- Improve nws tests by centralizing and removing unneeded `patch`ing ([@MatthewFlamm] - [#118052])
+- Google Generative AI: 100% test coverage for conversation ([@tronikos] - [#118112])
+- Remove deprecated services from AVM Fritz!Box Tools ([@mib1185] - [#118108])
+- Add diagnostics support for Fronius ([@farmio] - [#117845])
+- Fix mqtt callback typing ([@cdce8p] - [#118104])
+- Add conversation agent debug tracing ([@allenporter] - [#118124])
+- Break long strings in LLM tools ([@Shulyaka] - [#118114])
+- Reach platinum level in Minecraft Server ([@elmurato] - [#105432])
+- Fix mqtt callback exception logging ([@jbouwh] - [#118138])
+- Rework mqtt callbacks for device_tracker ([@jbouwh] - [#118110])
+- Rework mqtt callbacks for fan ([@jbouwh] - [#118115])
+- Refactor mqtt callbacks for humidifier ([@jbouwh] - [#118116])
+- Refactor mqtt callbacks for lock ([@jbouwh] - [#118118])
+- Refactor mqtt callbacks for lawn_mower ([@jbouwh] - [#118117])
+- Refactor mqtt callbacks for update platform ([@jbouwh] - [#118131])
+- Refactor mqtt callbacks for siren ([@jbouwh] - [#118125])
+- Refactor mqtt callbacks for number ([@jbouwh] - [#118119])
+- Refactor mqtt callbacks for select platform ([@jbouwh] - [#118121])
+- Refactor mqtt callbacks for text ([@jbouwh] - [#118130])
+- Refactor mqtt callbacks for switch ([@jbouwh] - [#118127])
+- Refactor mqtt callbacks for vacuum ([@jbouwh] - [#118137])
+- Rework mqtt callbacks for camera, image and event ([@jbouwh] - [#118109])
+- Refactor mqtt callbacks for light basic, json and template schema ([@jbouwh] - [#118113])
+- Clean up Shelly unneccesary async_block_till_done calls ([@thecode] - [#118141])
+- Make mqtt internal subscription a normal function ([@bdraco] - [#118092])
+- Refactor mqtt callbacks for valve ([@jbouwh] - [#118140])
+- Clean up WebOS TV unneccesary async_block_till_done calls ([@thecode] - [#118142])
+- Remove code that is no longer used in mqtt ([@bdraco] - [#118143])
+- Bump aioswitcher to 3.4.3 ([@thecode] - [#118123])
+- Avoid constructing mqtt json attrs template if its not defined ([@bdraco] - [#118146])
+- Add button platform to Teslemetry ([@Bre77] - [#117227])
+- Add media player platform to Teslemetry ([@Bre77] - [#117394])
+- Bump py-sucks to 0.9.10 ([@mib1185] - [#118148])
+- Add number platform to Teslemetry ([@Bre77] - [#117470])
+- Clean up AVM Fritz!Box Tools unneccesary async_block_till_done call ([@mib1185] - [#118165])
+- Clean up PIhole unneccesary async_block_till_done call ([@mib1185] - [#118166])
+- Bump subarulink to 0.7.11 ([@G-Two] - [#117743])
+- Improve script disallowed recursion logging ([@bdraco] - [#118151])
+- Add update platform to Teslemetry ([@Bre77] - [#118145])
+- Fix parallel script execution in queued mode ([@bdraco] - [#118153])
+- Don't crash when firing event for timer for unregistered device ([@balloob] - [#118132])
+- Speed up template result parsing ([@bdraco] - [#118168])
+- Avoid expensive inspection of callbacks to setup mqtt subscriptions ([@bdraco] - [#118161])
+- Reduce duplicate publish code in mqtt ([@bdraco] - [#118163])
+- Fix unnecessary calls to update entity display_precision ([@bdraco] - [#118159])
+- Add render prompt method when no API selected ([@balloob] - [#118136])
+- Add repair for detached addon issues ([@mdegat01] - [#118064])
+- Add async_get_hass_or_none ([@bdraco] - [#118164])
+- Avoid constructing mqtt availability template objects when there is no template ([@bdraco] - [#118171])
+- Remove remove unreachable code in async_wait_for_mqtt_client ([@jbouwh] - [#118172])
+- Collapse websocket_api _state_diff into _state_diff_event ([@bdraco] - [#118170])
+- Use fixtures to setup UniFi config entries ([@Kane610] - [#118126])
+- Upgrade thethingsnetwork to v3 ([@angelnu] - [#113375])
+- Add Google Generative AI reauth flow ([@tronikos] - [#118096])
+- Move Jewish calendar constants to const file ([@tsvi] - [#118180])
+- Bump holidays to 0.49 ([@gjohansson-ST] - [#118181])
+- Simplify subscription mqtt entity platforms ([@jbouwh] - [#118177])
+- Simplify mqtt connection state dispatcher ([@bdraco] - [#118184])
+- Move sensor mqtt state update functions to bound methods ([@bdraco] - [#118188])
+- Simplify mqtt switch state message processor ([@bdraco] - [#118187])
+- Promote Google Generative AI to platinum quality ([@tronikos] - [#118158])
+- Fix mqtt switch types ([@bdraco] - [#118193])
+- Forward timer events to Wyoming satellites ([@synesthesiam] - [#118128])
+- Fix flaky test in Teslemetry ([@Bre77] - [#118196])
+- Avoid creating template objects in mqtt sensor if they are not configured ([@bdraco] - [#118194])
+- Standardize LLM instructions prompt ([@balloob] - [#118195])
+- Convert mqtt entity discovery to use callbacks ([@bdraco] - [#118200])
+- Pre-set the HassJob job_type cached_property if its known ([@bdraco] - [#118199])
+- Add (deep)copy support to read only dict ([@balloob] - [#118204])
+- Remove unneeded dispatcher in mqtt discovery ([@bdraco] - [#118205])
+- Teach Context about deepcopy ([@balloob] - [#118206])
+- Improve performance of verify_event_loop_thread ([@bdraco] - [#118198])
+- Remove unneeded time fetch in mqtt discovery ([@bdraco] - [#118208])
+- Add exposed entities to the Assist LLM API prompt ([@balloob] - [#118203])
+- Fix thundering herd of mqtt component setup tasks ([@bdraco] - [#118210])
+- Remove extra inner function for mqtt reload service ([@bdraco] - [#118211])
+- Create EventEntity for Folder Watcher ([@gjohansson-ST] - [#116526])
+- Use config entry runtime data in Scrape ([@gjohansson-ST] - [#118191])
+- Eagerly remove MQTT entities on reload ([@bdraco] - [#118213])
+- Remove legacy mqtt debug_info implementation ([@bdraco] - [#118212])
+- Fix mqtt chunk subscribe logging ([@bdraco] - [#118217])
+- Increase MQTT incoming buffer to 8MiB ([@bdraco] - [#118220])
+- Refactor Twitch tests ([@joostlek] - [#114330])
+- Remove translation and icon component path functions ([@bdraco] - [#118214])
+- Add config flow to Media Extractor ([@joostlek] - [#115717])
+- Remove platform setup from Jewish calendar ([@joostlek] - [#118226])
+- Bump bimmer_connected to 0.15.3 ([@rikroe] - [#118179])
+- Implement reconfigure step for enphase_envoy ([@catsmanac] - [#115781])
+- Try to read multiple packets in MQTT ([@bdraco] - [#118222])
+- Fix unique_id not being unique in HomeWizard ([@DCSBL] - [#117940])
+- Add key expiry disabled binary sensor to Tailscale ([@claha] - [#117667])
+- Bump yt-dlp to 2024.05.26 ([@joostlek] - [#118229])
+- Remove platform sensor from Jewish Calendar binary sensor ([@tsvi] - [#118231])
+- Add Fyta sensor tests ([@dontinelli] - [#117995])
+- Allow older vehicles to sleep in Teslemetry ([@Bre77] - [#117229])
+- Use area_registry fixture in component tests ([@epenet] - [#118236])
+- Fix XMPP giving up on first auth fail ([@shelvacu] - [#118224])
+- Enforce namespace import in components ([@epenet] - [#118218])
+- Bump `nettigo_air_monitor` to version 3.1.0 ([@bieniu] - [#118227])
+- Add quality scale (platinum) to tedee integration ([@zweckj] - [#106940])
+- Enforce namespace import in core ([@epenet] - [#118235])
+- Convert Feedreader to use an update coordinator ([@mib1185] - [#118007])
+- Add helper strings for myuplink application credentials ([@astrandb] - [#115349])
+- Migrate tedee to `entry.runtime_data` ([@zweckj] - [#118246])
+- Add diagnostics for fyta ([@dontinelli] - [#118234])
+- Add entry.runtime_data typing for Teslemetry ([@gjohansson-ST] - [#118253])
+- Add new lock states to tedee integration ([@zweckj] - [#117108])
+- Cleanup tag integration ([@gjohansson-ST] - [#118241])
+- Fix mqtt not publishing null payload payload to remove discovery ([@jbouwh] - [#118261])
+- Handle multiple function_call and text parts in Google Generative AI ([@tronikos] - [#118270])
+- Align max expected entities constant between modules ([@bdraco] - [#118102])
+- Make sure HassToggle and HassSetPosition have description ([@tronikos] - [#118267])
+- Bump aioesphomeapi to 24.5.0 ([@jesserockz] - [#118271])
+- LLM Assist API: Inline all exposed entities ([@balloob] - [#118273])
+- Rewrite flow handler to flow result conversion as a list comp ([@bdraco] - [#118269])
+- Make sure conversation entities have correct name in list output ([@balloob] - [#118272])
+- Fix freezing on HA startup when there are multiple Google Generative AI config entries ([@tronikos] - [#118282])
+- Fix rooms not being matched correctly in sharkiq.clean_room ([@benaclejames] - [#118277])
+- Add diagnostics to Google Generative AI ([@tronikos] - [#118262])
+- Migrate mqtt discovery subscribes to use internal helper ([@bdraco] - [#118279])
+- Mock llm prompts in test_default_prompt for Google Generative AI ([@tronikos] - [#118286])
+- Change strings to const in Jewish Calendar ([@tsvi] - [#118274])
+- Bump aiovlc to 0.3.2 ([@mib1185] - [#118258])
+- Fix flakey bootstrap test ([@bdraco] - [#118285])
+- Use entry.runtime_data in Tessie ([@Bre77] - [#118287])
+- Add additional Huawei LTE 5G sensors ([@scop] - [#108928])
+- Fix some typing errors in Bring integration ([@tr4nt0r] - [#115641])
+- Add DSMR Reader tests ([@erwindouna] - [#115808])
+- Migrate mqtt mixin async_added_to_hass inner functions to bound methods ([@bdraco] - [#118280])
+- Add diagnostics test to AndroidTV ([@ollo69] - [#117129])
+- Add Matter fan platform ([@lboue] - [#111212])
+- Bump reolink-aio to 0.8.11 ([@starkillerOG] - [#118294])
+- Fix Matter device ID for non-bridged composed device ([@marcelveldt] - [#118256])
+- Use registry fixtures in tests (tailscale) ([@epenet] - [#118301])
+- Add reconfigure step for vallox ([@slovdahl] - [#115915])
+- Use registry fixtures in tests (a-h) ([@epenet] - [#118288])
+- Use registry fixtures in tests (m-n) ([@epenet] - [#118291])
+- Use registry fixtures in tests (o-p) ([@epenet] - [#118292])
+- Use registry fixtures in scaffold ([@epenet] - [#118308])
+- Use registry fixtures in tests (t-u) ([@epenet] - [#118297])
+- Use registry fixtures in tests (r) ([@epenet] - [#118293])
+- Use registry fixtures in tests (v-y) ([@epenet] - [#118299])
+- Thread: Add more Thread vendor to brand mappings ([@Poshy163] - [#115888])
+- Use registry fixtures in tests (s) ([@epenet] - [#118295])
+- Add more supervisor info to system info panel ([@mdegat01] - [#115715])
+- Handle generic commands as area commands in the LLM Assist API ([@balloob] - [#118276])
+- Don't set 'assist in progess' flag on wake_word-end ([@chatziko] - [#113585])
+- Enforce namespace use for import conventions ([@epenet] - [#118215])
+- Bump intents and add tests for new error messages ([@synesthesiam] - [#118317])
+- Use registry fixtures in tests (z) ([@epenet] - [#118300])
+- Add more type hints to pylint plugin ([@epenet] - [#118319])
+- Add temperature slot to light turn on intent ([@synesthesiam] - [#118321])
+- Respect WyomingSatelliteMuteSwitch state on start ([@synesthesiam] - [#118320])
+- [esphome] Assist timers ([@jesserockz] - [#118275])
+- Raise UpdateFailed on fyta API error ([@dontinelli] - [#118318])
+- Add platforms to intent handlers ([@synesthesiam] - [#118328])
+- Speed up mqtt debug info on message callback ([@bdraco] - [#118303])
+- Filter timers more when pausing/unpausing ([@synesthesiam] - [#118331])
+- Mark sonos group update a background task ([@bdraco] - [#118333])
+- [esphome] 100% voice assistant test coverage ([@jesserockz] - [#118334])
+- Use None default for traccar server battery level sensor ([@ludeeus] - [#118324])
+- Several fixes for the Matter climate platform ([@marcelveldt] - [#118322])
+- Fix source_change not triggering an update ([@mj23000] - [#118312])
+- Update the recommended model for Google Gen AI ([@balloob] - [#118323])
+- Use del instead of pop in the entity platform remove ([@bdraco] - [#118337])
+- Replace pop calls with del where the result is discarded in mqtt ([@bdraco] - [#118338])
+- Replace pop calls with del where the result is discarded in entity ([@bdraco] - [#118340])
+- LLM Assist API to ignore intents if not needed for exposed entities or calling device ([@balloob] - [#118283])
+- Add Conversation command to timers ([@synesthesiam] - [#118325])
+- Tweak Assist LLM API prompt ([@balloob] - [#118343])
+- Small speed up to connecting dispatchers ([@bdraco] - [#118342])
+- Reduce the intent response data sent to LLMs ([@balloob] - [#118346])
+- Add cache to more complex entity filters ([@bdraco] - [#118344])
+- Improve websocket message coalescing to handle thundering herds better ([@bdraco] - [#118268])
+- Replace pop calls with del where the result is discarded in restore_state ([@bdraco] - [#118339])
+- Fix last_reported_timestamp not being updated when last_reported is changed ([@bdraco] - [#118341])
+- Use runtime_data in ping ([@jpbede] - [#118332])
+- Fix epic_games_store mystery game URL ([@Quentame] - [#118314])
+- Add smoke detector temperature to Yale Smart Alarm ([@gjohansson-ST] - [#116306])
+- Add august open action ([@m10x] - [#113795])
+- Add OSO Energy binary sensors ([@osohotwateriot] - [#117174])
+- Update zwave_js WS APIs for provisioning ([@raman325] - [#117400])
+- Improve typing for `calls` fixture in tests (a-l) ([@epenet] - [#118349])
+- Add ws endpoint to remove expiration date from refresh tokens ([@edenhaus] - [#117546])
+- Bump docker/login-action from 3.1.0 to 3.2.0 (@dependabot - [#118351])
+- Add Google assistant Gate device type ([@Bygood91] - [#118144])
+- Make Recorder dialect_name a cached_property ([@bdraco] - [#117922])
+- Rename calls fixture in calendar tests ([@epenet] - [#118353])
+- Rename calls fixture in mqtt tests ([@epenet] - [#118354])
+- Rename calls fixture in components tests ([@epenet] - [#118355])
+- Improve typing for `calls` fixture in tests (m-z) ([@epenet] - [#118350])
+- Adjust add-on installation error message ([@agners] - [#118309])
+- Rename service_calls fixture in template tests ([@epenet] - [#118358])
+- Add more tests to Yale Smart Alarm ([@gjohansson-ST] - [#116501])
+- Add DSMR Reader icons ([@erwindouna] - [#118329])
+- Add default code to alarm_control_panel ([@gjohansson-ST] - [#112540])
+- Discover new device at runtime in Plugwise ([@bouwew] - [#117688])
+- Allow MQTT device based auto discovery ([@jbouwh] - [#109030])
+- Extend image_upload to return the original image ([@Nezz] - [#116652])
+- Update pylaunches dependency to version 2.0.0 ([@ludeeus] - [#118362])
+- Set quality scale of fyta to platinum ([@dontinelli] - [#118307])
+- Fix issue when you have multiple Google Generative AI config entries and you remove one of them ([@tronikos] - [#118365])
+- Support in blueprint schema for input sections ([@karwosts] - [#110513])
+- Expose useful media player attributes to LLMs ([@tronikos] - [#118363])
+- Fix LLM tracing for Google Generative AI ([@tronikos] - [#118359])
+- Ask LLM to pass area name and domain ([@tronikos] - [#118357])
+- Default to gemini-1.5-flash-latest in Google Generative AI ([@tronikos] - [#118367])
+- Add LogCaptureFixture type hints in tests ([@epenet] - [#118372])
+- Add SnapshotAssertion type hints in tests ([@epenet] - [#118371])
+- Bump pyosoenergyapi to 1.1.4 ([@osohotwateriot] - [#118368])
+- Add AiohttpClientMocker type hints in tests ([@epenet] - [#118373])
+- Add ClientSessionGenerator type hints in tests ([@epenet] - [#118377])
+- Bump yt-dlp to 2024.05.27 ([@joostlek] - [#118378])
+- Add Android TV Remote debug logs to help with zeroconf issue ([@tronikos] - [#117960])
+- Rework and simplify the cleanup of orphan AVM Fritz!Tools entities ([@mib1185] - [#117706])
+- Convert unnecessary coroutines into functions ([@mj23000] - [#118311])
+- Bump ruff to 0.4.6 ([@autinerd] - [#118384])
+- Entity for Tags ([@gjohansson-ST] - [#115048])
+- Bump airgradient to 0.4.2 ([@joostlek] - [#118389])
+- Allow delayed commands to not have a device id ([@synesthesiam] - [#118390])
+- Bump frontend to 20240529.0 ([@bramkragten] - [#118392])
+- Bump Python Matter Server library to 6.1.0(b0) ([@marcelveldt] - [#118388])
+- Bump zha-quirks to 0.0.116 ([@TheJulianJES] - [#118393])
+- Add select entities to AirGradient ([@joostlek] - [#117136])
+- New official genie garage integration ([@swcloudgenie] - [#117020])
+- Add translation strings for Matter Fan presets ([@marcelveldt] - [#118401])
+- Fix light discovery for Matter dimmable plugin unit ([@marcelveldt] - [#118404])
+- Handle case where timer device id exists but is not registered (delayed command) ([@synesthesiam] - [#118410])
+- Ensure paho.mqtt.client is imported in the executor ([@bdraco] - [#118412])
+- Fix google_tasks doing blocking I/O in the event loop ([@bdraco] - [#118418])
+- Fix google_mail doing blocking I/O in the event loop ([@bdraco] - [#118421])
+- Fix workday doing blocking I/O in the event loop ([@bdraco] - [#118422])
+- Fix OpenWeatherMap migration ([@freekode] - [#118428])
+- Fix blocking I/O in the event loop in meteo_france ([@bdraco] - [#118429])
+- Bump opower to 0.4.6 ([@tronikos] - [#118434])
+- Fix google_mail doing blocking i/o in the event loop (take 2) ([@bdraco] - [#118441])
+- Add Total Volatile Organic Compounds (tVOC) matter discovery schema ([@kibergus] - [#116963])
+- Improve LLM prompt ([@tronikos] - [#118443])
+- Instruct LLM to not pass a list to the domain ([@tronikos] - [#118451])
+- Bump deebot-client to 7.3.0 ([@edenhaus] - [#118462])
+- Raise `ConfigEntryNotReady` when there is no `_id` in the Tractive data ([@bieniu] - [#118467])
+- Typo fix in media_extractor ([@lunmay] - [#118473])
+- Set enity_category to config for airgradient select entities ([@edenhaus] - [#118477])
+- Extend Matter sensor discovery schemas for Air Purifier / Air Quality devices ([@marcelveldt] - [#118483])
+- Mark Matter climate dry/fan mode support on Panasonic AC ([@marcelveldt] - [#118485])
+- Update frontend to 20240530.0 ([@bramkragten] - [#118489])
+- Adjustment of unit of measurement for light ([@dontinelli] - [#116695])
+- Add support for V2C Trydan 2.1.7 ([@dgomes] - [#117147])
+- Fix Jewish calendar unique id's ([@tsvi] - [#117985])
+- Log aiohttp error in rest_command ([@jpbede] - [#118453])
+- Fix evohome so it doesn't retrieve schedules unnecessarily ([@zxdavb] - [#118478])
+- Ignore the toggle intent ([@balloob] - [#118491])
+- Fix blocking call in holiday ([@gjohansson-ST] - [#118496])
+- Remove not needed hass object from Tag ([@gjohansson-ST] - [#118498])
+- Fix group platform dependencies ([@jbouwh] - [#118499])
+- Intent script: allow setting description and platforms ([@balloob] - [#118500])
+- Fix tado non-string unique id for device trackers ([@gjohansson-ST] - [#118505])
+- Fix key issue in config entry options in Openweathermap ([@gjohansson-ST] - [#118506])
+- Ignore deprecated open and close cover intents for LLMs ([@tronikos] - [#118515])
+- Fix LLMs asking which area when there is only one device ([@tronikos] - [#118518])
+- Improve LLM prompt ([@tronikos] - [#118520])
+- Fix unnecessary single quotes escaping in Google AI ([@tronikos] - [#118522])
+- Rename llm.ToolContext to llm.LLMContext ([@balloob] - [#118566])
+- Revert "Fix Tibber sensors state class" ([@basbruss] - [#118409])
+- Add Google Generative AI Conversation system prompt `user_name` and `llm_context` variables ([@Shulyaka] - [#118510])
+- Add typing for OpenAI client and fallout ([@zweckj] - [#118514])
+- Add OpenAI Conversation system prompt `user_name` and `llm_context` variables ([@Shulyaka] - [#118512])
+- Fix snmp doing blocking I/O in the event loop ([@bdraco] - [#118521])
+- Fix openweathermap config entry migration ([@bdraco] - [#118526])
+- Fix telegram doing blocking I/O in the event loop ([@luca-angemi] - [#118531])
+- Fix off_grid_vehicle_charging_reserve_percent in Teselemetry ([@Bre77] - [#118532])
+- Migrate openai_conversation to `entry.runtime_data` ([@zweckj] - [#118535])
+- Fix typo in OWM strings ([@joostlek] - [#118538])
+- Fix YAML deprecation breaking version in jewish calendar and media extractor ([@tsvi] - [#118546])
+- Fix KeyError in dlna_dmr SSDP config flow when checking existing config entries ([@chishm] - [#118549])
+- In Brother integration use SnmpEngine from SNMP integration ([@bieniu] - [#118554])
+- Add ability to replace connections in DeviceRegistry ([@epenet] - [#118555])
+- Fix openAI tool calls ([@balloob] - [#118577])
+- Ignore myuplink sensors without a description that provide non-numeric values ([@thytterdal] - [#115525])
+- Bump pyads to 3.4.0 ([@mrpasztoradam] - [#116934])
+- Update device connections in samsungtv ([@epenet] - [#118556])
+- Run ruff format for device registry ([@jpbede] - [#118582])
+- Avoid future exception during setup of Synology DSM ([@mib1185] - [#118583])
+- Stop instructing LLM to not pass the domain as a list ([@tronikos] - [#118590])
+- Add base prompt for LLMs ([@balloob] - [#118592])
+- Strip Google AI text responses ([@tronikos] - [#118593])
+- Use gemini-1.5-flash-latest in google_generative_ai_conversation.generate_content ([@tronikos] - [#118594])
+- Fix telegram bot send_document ([@luca-angemi] - [#118616])
+- Include a traceback for non-strict event loop blocking detection ([@bdraco] - [#118620])
+- Fix handling undecoded mqtt sensor payloads ([@jbouwh] - [#118633])
+- Fix incorrect placeholder in SharkIQ ([@joostlek] - [#118640])
+- Bump ZHA dependencies ([@puddly] - [#118658])
+- Fix entity state dispatching for Tag entities ([@gjohansson-ST] - [#118662])
+- Address late review comment in samsungtv ([@epenet] - [#118539])
+- Bump pydrawise to 2024.6.2 ([@dknowles2] - [#118608])
+- Automatically fill in slots based on LLM context ([@balloob] - [#118619])
+- Revert "Add websocket API to get list of recorded entities (#92640)" ([@bdraco] - [#118644])
+- Fixing device model compatibility issues. ([@matrixd2] - [#118686])
+- Bump python-roborock to 2.2.2 ([@piitaya] - [#118697])
+- Configure device in airgradient config flow ([@joostlek] - [#118699])
+- Disable both option in Airgradient select ([@joostlek] - [#118702])
+- Bump pyoverkiz to 1.13.11 ([@iMicknl] - [#118703])
+- Use ISO format when passing date to LLMs ([@tronikos] - [#118705])
+- Don't store tag_id in tag storage ([@emontnemery] - [#118707])
+- Remove unintended translation key from blink ([@mkmer] - [#118712])
+- Remove tag_id from tag store ([@emontnemery] - [#118713])
+- Address reviews comments in #117147 ([@dgomes] - [#118714])
+- Bump renault-api to 0.2.3 ([@epenet] - [#118718])
+- Tweak light service schema ([@emontnemery] - [#118720])
+- Rename Discovergy to inexogy ([@jpbede] - [#118724])
+- Resolve areas/floors to ids in intent_script ([@synesthesiam] - [#118734])
+- Update frontend to 20240603.0 ([@bramkragten] - [#118736])
+- Require firmware version 3.1.1 for airgradient ([@joostlek] - [#118744])
+- Remove dispatcher from Tag entity ([@balloob] - [#118671])
+- Harden evohome against failures to retrieve zone schedules ([@zxdavb] - [#118517])
+- Bump reolink-aio to 0.9.1 ([@starkillerOG] - [#118655])
+- Google Gen AI: Copy messages to avoid changing the trace data ([@balloob] - [#118745])
+- Revert "Allow MQTT device based auto discovery" ([@jbouwh] - [#118746])
+- Update OpenAI prompt on each interaction ([@balloob] - [#118747])
+- Bump intents to 2024.6.3 ([@synesthesiam] - [#118748])
+- Do not log mqtt origin info if the log level does not allow it ([@jbouwh] - [#118752])
+- Clean up exposed domains ([@synesthesiam] - [#118753])
+- Recover mqtt abbrevations optimizations ([@jbouwh] - [#118762])
+- Update hass-nabucasa to version 0.81.1 ([@ludeeus] - [#118768])
+- Bump airgradient to 0.4.3 ([@joostlek] - [#118776])
+- Initial cleanup for Aladdin connect ([@joostlek] - [#118777])
+- Use model from Aladdin Connect lib ([@joostlek] - [#118778])
+- Add coordinator to Aladdin Connect ([@joostlek] - [#118781])
+- Re-enable sensor platform for Aladdin Connect ([@joostlek] - [#118782])
+- Move Aladdin stale device removal to init module ([@joostlek] - [#118784])
+- Refactor fixture calling for BMW tests ([@rikroe] - [#118708])
+- Set lock state to unkown on BMW API error ([@rikroe] - [#118559])
+- Use snapshot_platform helper for BMW tests ([@rikroe] - [#118735])
+- Allow per-sensor unit conversion on BMW sensors ([@rikroe] - [#110272])
+- Fix calculation of Starlink sleep end setting ([@boswelja] - [#115507])
+- Fix updating options in Jewish Calendar ([@tsvi] - [#118643])
+- Include script description in LLM exposed entities ([@balloob] - [#118749])
+- Set unique id in aladdin connect config flow ([@joostlek] - [#118798])
+- Add missing FAN_ONLY mode to ccm15 ([@arturyak] - [#118804])
+- Check if Shelly `entry.runtime_data` is available ([@bieniu] - [#118805])
+- Bump Python Matter Server library to 6.1.0 ([@agners] - [#118806])
+- Update frontend to 20240604.0 ([@bramkragten] - [#118811])
+- Ensure name of task is logged for unhandled loop exceptions ([@bdraco] - [#118822])
+- Initialize the Sentry SDK within an import executor job to not block event loop ([@jpbede] - [#118830])
+- Fix Hydrawise sensor availability ([@PeteRager] - [#118669])
+- Conserve Reolink battery by not waking the camera on each update ([@starkillerOG] - [#118773])
+- Fix capitalization of protocols in Reolink option flow ([@frenck] - [#118839])
+- Fix the radio browser doing I/O in the event loop ([@balloob] - [#118842])
+- Bump python-roborock to 2.2.3 ([@ethemcemozkan] - [#118853])
+- Improve repair issue when notify service is still being used ([@jbouwh] - [#118855])
+- Fix TypeAliasType not callable in senz ([@cdce8p] - [#118872])
+- Update frontend to 20240605.0 ([@bramkragten] - [#118875])
+- Improve WS command validate_config ([@emontnemery] - [#118864])
+- Bump intents to 2024.6.5 ([@synesthesiam] - [#118890])
+- Replace slave by meter in v2c ([@edenhaus] - [#118893])
+
+## Release 2024.6.1 - June 7
+
+- Update requests to 2.32.3 ([@cdce8p] - [#118868])
+- Prioritize literal text with name slots in sentence matching ([@synesthesiam] - [#118900])
+- Check if imap message text has a value instead of checking if its not None ([@engrbm87] - [#118901])
+- Fix flaky Google Assistant test ([@jpbede] - [#118914])
+- Revert "Bump orjson to 3.10.3 (#116945)" ([@bdraco] - [#118920])
+- Bump `imgw-pib` backend library to version `1.0.2` ([@bieniu] - [#118953])
+- Fix Alarm control panel not require code in several integrations ([@gjohansson-ST] - [#118961])
+- Bump python-holidays to 0.50 ([@gjohansson-ST] - [#118965])
+- Bump pydrawise to 2024.6.3 ([@dknowles2] - [#118977])
+- Bump `imgw-pib` library to version `1.0.4` ([@bieniu] - [#118978])
+- Fix unit of measurement for airgradient sensor ([@joostlek] - [#118981])
+- Fix exposure checks on some intents ([@synesthesiam] - [#118988])
+- Remove isal from after_dependencies in http ([@bdraco] - [#119000])
+- Hold connection lock in Shelly RPC reconnect ([@thecode] - [#119009])
+- Always have addon url in detached_addon_missing ([@mdegat01] - [#119011])
+- Increase test coverage for KNX Climate ([@farmio] - [#117903])
+- Fix KNX `climate.set_hvac_mode` not turning `on` ([@farmio] - [#119012])
+- Fix refactoring error in snmp switch ([@bdraco] - [#119028])
+- Fix remember_the_milk calling configurator async api from the wrong thread ([@bdraco] - [#119029])
+- Fix AirGradient name ([@joostlek] - [#119046])
+- Add type ignore comments ([@cdce8p] - [#119052])
+- Fix Azure Data Explorer strings ([@joostlek] - [#119067])
+
+[#117903]: https://github.com/home-assistant/core/pull/117903
+[#118400]: https://github.com/home-assistant/core/pull/118400
+[#118868]: https://github.com/home-assistant/core/pull/118868
+[#118900]: https://github.com/home-assistant/core/pull/118900
+[#118901]: https://github.com/home-assistant/core/pull/118901
+[#118914]: https://github.com/home-assistant/core/pull/118914
+[#118920]: https://github.com/home-assistant/core/pull/118920
+[#118953]: https://github.com/home-assistant/core/pull/118953
+[#118961]: https://github.com/home-assistant/core/pull/118961
+[#118965]: https://github.com/home-assistant/core/pull/118965
+[#118977]: https://github.com/home-assistant/core/pull/118977
+[#118978]: https://github.com/home-assistant/core/pull/118978
+[#118981]: https://github.com/home-assistant/core/pull/118981
+[#118988]: https://github.com/home-assistant/core/pull/118988
+[#119000]: https://github.com/home-assistant/core/pull/119000
+[#119009]: https://github.com/home-assistant/core/pull/119009
+[#119011]: https://github.com/home-assistant/core/pull/119011
+[#119012]: https://github.com/home-assistant/core/pull/119012
+[#119028]: https://github.com/home-assistant/core/pull/119028
+[#119029]: https://github.com/home-assistant/core/pull/119029
+[#119046]: https://github.com/home-assistant/core/pull/119046
+[#119052]: https://github.com/home-assistant/core/pull/119052
+[#119067]: https://github.com/home-assistant/core/pull/119067
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@cdce8p]: https://github.com/cdce8p
+[@dknowles2]: https://github.com/dknowles2
+[@engrbm87]: https://github.com/engrbm87
+[@farmio]: https://github.com/farmio
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@joostlek]: https://github.com/joostlek
+[@jpbede]: https://github.com/jpbede
+[@mdegat01]: https://github.com/mdegat01
+[@synesthesiam]: https://github.com/synesthesiam
+[@thecode]: https://github.com/thecode
+
+[#101731]: https://github.com/home-assistant/core/pull/101731
+[#101786]: https://github.com/home-assistant/core/pull/101786
+[#103844]: https://github.com/home-assistant/core/pull/103844
+[#105432]: https://github.com/home-assistant/core/pull/105432
+[#105622]: https://github.com/home-assistant/core/pull/105622
+[#106940]: https://github.com/home-assistant/core/pull/106940
+[#107078]: https://github.com/home-assistant/core/pull/107078
+[#107404]: https://github.com/home-assistant/core/pull/107404
+[#107510]: https://github.com/home-assistant/core/pull/107510
+[#107592]: https://github.com/home-assistant/core/pull/107592
+[#108170]: https://github.com/home-assistant/core/pull/108170
+[#108896]: https://github.com/home-assistant/core/pull/108896
+[#108928]: https://github.com/home-assistant/core/pull/108928
+[#109030]: https://github.com/home-assistant/core/pull/109030
+[#109043]: https://github.com/home-assistant/core/pull/109043
+[#109337]: https://github.com/home-assistant/core/pull/109337
+[#109508]: https://github.com/home-assistant/core/pull/109508
+[#109884]: https://github.com/home-assistant/core/pull/109884
+[#109920]: https://github.com/home-assistant/core/pull/109920
+[#110247]: https://github.com/home-assistant/core/pull/110247
+[#110272]: https://github.com/home-assistant/core/pull/110272
+[#110475]: https://github.com/home-assistant/core/pull/110475
+[#110513]: https://github.com/home-assistant/core/pull/110513
+[#110612]: https://github.com/home-assistant/core/pull/110612
+[#110924]: https://github.com/home-assistant/core/pull/110924
+[#111014]: https://github.com/home-assistant/core/pull/111014
+[#111152]: https://github.com/home-assistant/core/pull/111152
+[#111212]: https://github.com/home-assistant/core/pull/111212
+[#111426]: https://github.com/home-assistant/core/pull/111426
+[#111643]: https://github.com/home-assistant/core/pull/111643
+[#111942]: https://github.com/home-assistant/core/pull/111942
+[#111968]: https://github.com/home-assistant/core/pull/111968
+[#112076]: https://github.com/home-assistant/core/pull/112076
+[#112206]: https://github.com/home-assistant/core/pull/112206
+[#112480]: https://github.com/home-assistant/core/pull/112480
+[#112523]: https://github.com/home-assistant/core/pull/112523
+[#112540]: https://github.com/home-assistant/core/pull/112540
+[#112660]: https://github.com/home-assistant/core/pull/112660
+[#112862]: https://github.com/home-assistant/core/pull/112862
+[#112885]: https://github.com/home-assistant/core/pull/112885
+[#112978]: https://github.com/home-assistant/core/pull/112978
+[#113036]: https://github.com/home-assistant/core/pull/113036
+[#113047]: https://github.com/home-assistant/core/pull/113047
+[#113080]: https://github.com/home-assistant/core/pull/113080
+[#113084]: https://github.com/home-assistant/core/pull/113084
+[#113375]: https://github.com/home-assistant/core/pull/113375
+[#113498]: https://github.com/home-assistant/core/pull/113498
+[#113517]: https://github.com/home-assistant/core/pull/113517
+[#113585]: https://github.com/home-assistant/core/pull/113585
+[#113770]: https://github.com/home-assistant/core/pull/113770
+[#113774]: https://github.com/home-assistant/core/pull/113774
+[#113795]: https://github.com/home-assistant/core/pull/113795
+[#114056]: https://github.com/home-assistant/core/pull/114056
+[#114113]: https://github.com/home-assistant/core/pull/114113
+[#114119]: https://github.com/home-assistant/core/pull/114119
+[#114133]: https://github.com/home-assistant/core/pull/114133
+[#114330]: https://github.com/home-assistant/core/pull/114330
+[#114458]: https://github.com/home-assistant/core/pull/114458
+[#114530]: https://github.com/home-assistant/core/pull/114530
+[#114531]: https://github.com/home-assistant/core/pull/114531
+[#114599]: https://github.com/home-assistant/core/pull/114599
+[#114967]: https://github.com/home-assistant/core/pull/114967
+[#115025]: https://github.com/home-assistant/core/pull/115025
+[#115048]: https://github.com/home-assistant/core/pull/115048
+[#115139]: https://github.com/home-assistant/core/pull/115139
+[#115218]: https://github.com/home-assistant/core/pull/115218
+[#115239]: https://github.com/home-assistant/core/pull/115239
+[#115312]: https://github.com/home-assistant/core/pull/115312
+[#115349]: https://github.com/home-assistant/core/pull/115349
+[#115371]: https://github.com/home-assistant/core/pull/115371
+[#115374]: https://github.com/home-assistant/core/pull/115374
+[#115395]: https://github.com/home-assistant/core/pull/115395
+[#115399]: https://github.com/home-assistant/core/pull/115399
+[#115445]: https://github.com/home-assistant/core/pull/115445
+[#115464]: https://github.com/home-assistant/core/pull/115464
+[#115507]: https://github.com/home-assistant/core/pull/115507
+[#115522]: https://github.com/home-assistant/core/pull/115522
+[#115525]: https://github.com/home-assistant/core/pull/115525
+[#115532]: https://github.com/home-assistant/core/pull/115532
+[#115641]: https://github.com/home-assistant/core/pull/115641
+[#115669]: https://github.com/home-assistant/core/pull/115669
+[#115702]: https://github.com/home-assistant/core/pull/115702
+[#115715]: https://github.com/home-assistant/core/pull/115715
+[#115717]: https://github.com/home-assistant/core/pull/115717
+[#115732]: https://github.com/home-assistant/core/pull/115732
+[#115735]: https://github.com/home-assistant/core/pull/115735
+[#115781]: https://github.com/home-assistant/core/pull/115781
+[#115808]: https://github.com/home-assistant/core/pull/115808
+[#115828]: https://github.com/home-assistant/core/pull/115828
+[#115888]: https://github.com/home-assistant/core/pull/115888
+[#115915]: https://github.com/home-assistant/core/pull/115915
+[#115926]: https://github.com/home-assistant/core/pull/115926
+[#115939]: https://github.com/home-assistant/core/pull/115939
+[#115948]: https://github.com/home-assistant/core/pull/115948
+[#115969]: https://github.com/home-assistant/core/pull/115969
+[#115970]: https://github.com/home-assistant/core/pull/115970
+[#115998]: https://github.com/home-assistant/core/pull/115998
+[#116115]: https://github.com/home-assistant/core/pull/116115
+[#116120]: https://github.com/home-assistant/core/pull/116120
+[#116133]: https://github.com/home-assistant/core/pull/116133
+[#116147]: https://github.com/home-assistant/core/pull/116147
+[#116148]: https://github.com/home-assistant/core/pull/116148
+[#116150]: https://github.com/home-assistant/core/pull/116150
+[#116158]: https://github.com/home-assistant/core/pull/116158
+[#116159]: https://github.com/home-assistant/core/pull/116159
+[#116167]: https://github.com/home-assistant/core/pull/116167
+[#116169]: https://github.com/home-assistant/core/pull/116169
+[#116179]: https://github.com/home-assistant/core/pull/116179
+[#116185]: https://github.com/home-assistant/core/pull/116185
+[#116196]: https://github.com/home-assistant/core/pull/116196
+[#116197]: https://github.com/home-assistant/core/pull/116197
+[#116201]: https://github.com/home-assistant/core/pull/116201
+[#116202]: https://github.com/home-assistant/core/pull/116202
+[#116204]: https://github.com/home-assistant/core/pull/116204
+[#116207]: https://github.com/home-assistant/core/pull/116207
+[#116208]: https://github.com/home-assistant/core/pull/116208
+[#116209]: https://github.com/home-assistant/core/pull/116209
+[#116210]: https://github.com/home-assistant/core/pull/116210
+[#116211]: https://github.com/home-assistant/core/pull/116211
+[#116220]: https://github.com/home-assistant/core/pull/116220
+[#116229]: https://github.com/home-assistant/core/pull/116229
+[#116234]: https://github.com/home-assistant/core/pull/116234
+[#116238]: https://github.com/home-assistant/core/pull/116238
+[#116239]: https://github.com/home-assistant/core/pull/116239
+[#116240]: https://github.com/home-assistant/core/pull/116240
+[#116241]: https://github.com/home-assistant/core/pull/116241
+[#116250]: https://github.com/home-assistant/core/pull/116250
+[#116284]: https://github.com/home-assistant/core/pull/116284
+[#116292]: https://github.com/home-assistant/core/pull/116292
+[#116295]: https://github.com/home-assistant/core/pull/116295
+[#116296]: https://github.com/home-assistant/core/pull/116296
+[#116297]: https://github.com/home-assistant/core/pull/116297
+[#116298]: https://github.com/home-assistant/core/pull/116298
+[#116303]: https://github.com/home-assistant/core/pull/116303
+[#116306]: https://github.com/home-assistant/core/pull/116306
+[#116307]: https://github.com/home-assistant/core/pull/116307
+[#116308]: https://github.com/home-assistant/core/pull/116308
+[#116309]: https://github.com/home-assistant/core/pull/116309
+[#116310]: https://github.com/home-assistant/core/pull/116310
+[#116311]: https://github.com/home-assistant/core/pull/116311
+[#116312]: https://github.com/home-assistant/core/pull/116312
+[#116317]: https://github.com/home-assistant/core/pull/116317
+[#116318]: https://github.com/home-assistant/core/pull/116318
+[#116332]: https://github.com/home-assistant/core/pull/116332
+[#116336]: https://github.com/home-assistant/core/pull/116336
+[#116347]: https://github.com/home-assistant/core/pull/116347
+[#116348]: https://github.com/home-assistant/core/pull/116348
+[#116349]: https://github.com/home-assistant/core/pull/116349
+[#116350]: https://github.com/home-assistant/core/pull/116350
+[#116356]: https://github.com/home-assistant/core/pull/116356
+[#116360]: https://github.com/home-assistant/core/pull/116360
+[#116361]: https://github.com/home-assistant/core/pull/116361
+[#116362]: https://github.com/home-assistant/core/pull/116362
+[#116363]: https://github.com/home-assistant/core/pull/116363
+[#116364]: https://github.com/home-assistant/core/pull/116364
+[#116368]: https://github.com/home-assistant/core/pull/116368
+[#116373]: https://github.com/home-assistant/core/pull/116373
+[#116375]: https://github.com/home-assistant/core/pull/116375
+[#116376]: https://github.com/home-assistant/core/pull/116376
+[#116377]: https://github.com/home-assistant/core/pull/116377
+[#116378]: https://github.com/home-assistant/core/pull/116378
+[#116379]: https://github.com/home-assistant/core/pull/116379
+[#116380]: https://github.com/home-assistant/core/pull/116380
+[#116381]: https://github.com/home-assistant/core/pull/116381
+[#116382]: https://github.com/home-assistant/core/pull/116382
+[#116387]: https://github.com/home-assistant/core/pull/116387
+[#116388]: https://github.com/home-assistant/core/pull/116388
+[#116389]: https://github.com/home-assistant/core/pull/116389
+[#116395]: https://github.com/home-assistant/core/pull/116395
+[#116401]: https://github.com/home-assistant/core/pull/116401
+[#116405]: https://github.com/home-assistant/core/pull/116405
+[#116406]: https://github.com/home-assistant/core/pull/116406
+[#116410]: https://github.com/home-assistant/core/pull/116410
+[#116412]: https://github.com/home-assistant/core/pull/116412
+[#116413]: https://github.com/home-assistant/core/pull/116413
+[#116414]: https://github.com/home-assistant/core/pull/116414
+[#116416]: https://github.com/home-assistant/core/pull/116416
+[#116419]: https://github.com/home-assistant/core/pull/116419
+[#116421]: https://github.com/home-assistant/core/pull/116421
+[#116426]: https://github.com/home-assistant/core/pull/116426
+[#116427]: https://github.com/home-assistant/core/pull/116427
+[#116431]: https://github.com/home-assistant/core/pull/116431
+[#116433]: https://github.com/home-assistant/core/pull/116433
+[#116439]: https://github.com/home-assistant/core/pull/116439
+[#116441]: https://github.com/home-assistant/core/pull/116441
+[#116442]: https://github.com/home-assistant/core/pull/116442
+[#116445]: https://github.com/home-assistant/core/pull/116445
+[#116447]: https://github.com/home-assistant/core/pull/116447
+[#116448]: https://github.com/home-assistant/core/pull/116448
+[#116449]: https://github.com/home-assistant/core/pull/116449
+[#116450]: https://github.com/home-assistant/core/pull/116450
+[#116454]: https://github.com/home-assistant/core/pull/116454
+[#116456]: https://github.com/home-assistant/core/pull/116456
+[#116457]: https://github.com/home-assistant/core/pull/116457
+[#116459]: https://github.com/home-assistant/core/pull/116459
+[#116460]: https://github.com/home-assistant/core/pull/116460
+[#116468]: https://github.com/home-assistant/core/pull/116468
+[#116469]: https://github.com/home-assistant/core/pull/116469
+[#116477]: https://github.com/home-assistant/core/pull/116477
+[#116496]: https://github.com/home-assistant/core/pull/116496
+[#116499]: https://github.com/home-assistant/core/pull/116499
+[#116501]: https://github.com/home-assistant/core/pull/116501
+[#116504]: https://github.com/home-assistant/core/pull/116504
+[#116510]: https://github.com/home-assistant/core/pull/116510
+[#116511]: https://github.com/home-assistant/core/pull/116511
+[#116515]: https://github.com/home-assistant/core/pull/116515
+[#116517]: https://github.com/home-assistant/core/pull/116517
+[#116522]: https://github.com/home-assistant/core/pull/116522
+[#116523]: https://github.com/home-assistant/core/pull/116523
+[#116526]: https://github.com/home-assistant/core/pull/116526
+[#116530]: https://github.com/home-assistant/core/pull/116530
+[#116531]: https://github.com/home-assistant/core/pull/116531
+[#116532]: https://github.com/home-assistant/core/pull/116532
+[#116533]: https://github.com/home-assistant/core/pull/116533
+[#116534]: https://github.com/home-assistant/core/pull/116534
+[#116536]: https://github.com/home-assistant/core/pull/116536
+[#116548]: https://github.com/home-assistant/core/pull/116548
+[#116551]: https://github.com/home-assistant/core/pull/116551
+[#116552]: https://github.com/home-assistant/core/pull/116552
+[#116553]: https://github.com/home-assistant/core/pull/116553
+[#116554]: https://github.com/home-assistant/core/pull/116554
+[#116556]: https://github.com/home-assistant/core/pull/116556
+[#116557]: https://github.com/home-assistant/core/pull/116557
+[#116560]: https://github.com/home-assistant/core/pull/116560
+[#116561]: https://github.com/home-assistant/core/pull/116561
+[#116562]: https://github.com/home-assistant/core/pull/116562
+[#116563]: https://github.com/home-assistant/core/pull/116563
+[#116583]: https://github.com/home-assistant/core/pull/116583
+[#116592]: https://github.com/home-assistant/core/pull/116592
+[#116595]: https://github.com/home-assistant/core/pull/116595
+[#116604]: https://github.com/home-assistant/core/pull/116604
+[#116606]: https://github.com/home-assistant/core/pull/116606
+[#116607]: https://github.com/home-assistant/core/pull/116607
+[#116608]: https://github.com/home-assistant/core/pull/116608
+[#116610]: https://github.com/home-assistant/core/pull/116610
+[#116611]: https://github.com/home-assistant/core/pull/116611
+[#116612]: https://github.com/home-assistant/core/pull/116612
+[#116614]: https://github.com/home-assistant/core/pull/116614
+[#116615]: https://github.com/home-assistant/core/pull/116615
+[#116617]: https://github.com/home-assistant/core/pull/116617
+[#116618]: https://github.com/home-assistant/core/pull/116618
+[#116619]: https://github.com/home-assistant/core/pull/116619
+[#116620]: https://github.com/home-assistant/core/pull/116620
+[#116622]: https://github.com/home-assistant/core/pull/116622
+[#116623]: https://github.com/home-assistant/core/pull/116623
+[#116624]: https://github.com/home-assistant/core/pull/116624
+[#116625]: https://github.com/home-assistant/core/pull/116625
+[#116629]: https://github.com/home-assistant/core/pull/116629
+[#116630]: https://github.com/home-assistant/core/pull/116630
+[#116631]: https://github.com/home-assistant/core/pull/116631
+[#116633]: https://github.com/home-assistant/core/pull/116633
+[#116636]: https://github.com/home-assistant/core/pull/116636
+[#116638]: https://github.com/home-assistant/core/pull/116638
+[#116642]: https://github.com/home-assistant/core/pull/116642
+[#116643]: https://github.com/home-assistant/core/pull/116643
+[#116652]: https://github.com/home-assistant/core/pull/116652
+[#116653]: https://github.com/home-assistant/core/pull/116653
+[#116654]: https://github.com/home-assistant/core/pull/116654
+[#116657]: https://github.com/home-assistant/core/pull/116657
+[#116658]: https://github.com/home-assistant/core/pull/116658
+[#116659]: https://github.com/home-assistant/core/pull/116659
+[#116663]: https://github.com/home-assistant/core/pull/116663
+[#116671]: https://github.com/home-assistant/core/pull/116671
+[#116672]: https://github.com/home-assistant/core/pull/116672
+[#116674]: https://github.com/home-assistant/core/pull/116674
+[#116682]: https://github.com/home-assistant/core/pull/116682
+[#116686]: https://github.com/home-assistant/core/pull/116686
+[#116687]: https://github.com/home-assistant/core/pull/116687
+[#116688]: https://github.com/home-assistant/core/pull/116688
+[#116691]: https://github.com/home-assistant/core/pull/116691
+[#116693]: https://github.com/home-assistant/core/pull/116693
+[#116694]: https://github.com/home-assistant/core/pull/116694
+[#116695]: https://github.com/home-assistant/core/pull/116695
+[#116697]: https://github.com/home-assistant/core/pull/116697
+[#116699]: https://github.com/home-assistant/core/pull/116699
+[#116703]: https://github.com/home-assistant/core/pull/116703
+[#116714]: https://github.com/home-assistant/core/pull/116714
+[#116726]: https://github.com/home-assistant/core/pull/116726
+[#116729]: https://github.com/home-assistant/core/pull/116729
+[#116735]: https://github.com/home-assistant/core/pull/116735
+[#116740]: https://github.com/home-assistant/core/pull/116740
+[#116747]: https://github.com/home-assistant/core/pull/116747
+[#116749]: https://github.com/home-assistant/core/pull/116749
+[#116758]: https://github.com/home-assistant/core/pull/116758
+[#116760]: https://github.com/home-assistant/core/pull/116760
+[#116763]: https://github.com/home-assistant/core/pull/116763
+[#116764]: https://github.com/home-assistant/core/pull/116764
+[#116765]: https://github.com/home-assistant/core/pull/116765
+[#116767]: https://github.com/home-assistant/core/pull/116767
+[#116771]: https://github.com/home-assistant/core/pull/116771
+[#116772]: https://github.com/home-assistant/core/pull/116772
+[#116775]: https://github.com/home-assistant/core/pull/116775
+[#116778]: https://github.com/home-assistant/core/pull/116778
+[#116781]: https://github.com/home-assistant/core/pull/116781
+[#116787]: https://github.com/home-assistant/core/pull/116787
+[#116788]: https://github.com/home-assistant/core/pull/116788
+[#116790]: https://github.com/home-assistant/core/pull/116790
+[#116793]: https://github.com/home-assistant/core/pull/116793
+[#116794]: https://github.com/home-assistant/core/pull/116794
+[#116802]: https://github.com/home-assistant/core/pull/116802
+[#116803]: https://github.com/home-assistant/core/pull/116803
+[#116806]: https://github.com/home-assistant/core/pull/116806
+[#116808]: https://github.com/home-assistant/core/pull/116808
+[#116814]: https://github.com/home-assistant/core/pull/116814
+[#116815]: https://github.com/home-assistant/core/pull/116815
+[#116816]: https://github.com/home-assistant/core/pull/116816
+[#116818]: https://github.com/home-assistant/core/pull/116818
+[#116819]: https://github.com/home-assistant/core/pull/116819
+[#116820]: https://github.com/home-assistant/core/pull/116820
+[#116821]: https://github.com/home-assistant/core/pull/116821
+[#116822]: https://github.com/home-assistant/core/pull/116822
+[#116824]: https://github.com/home-assistant/core/pull/116824
+[#116827]: https://github.com/home-assistant/core/pull/116827
+[#116845]: https://github.com/home-assistant/core/pull/116845
+[#116848]: https://github.com/home-assistant/core/pull/116848
+[#116851]: https://github.com/home-assistant/core/pull/116851
+[#116852]: https://github.com/home-assistant/core/pull/116852
+[#116857]: https://github.com/home-assistant/core/pull/116857
+[#116861]: https://github.com/home-assistant/core/pull/116861
+[#116867]: https://github.com/home-assistant/core/pull/116867
+[#116870]: https://github.com/home-assistant/core/pull/116870
+[#116877]: https://github.com/home-assistant/core/pull/116877
+[#116879]: https://github.com/home-assistant/core/pull/116879
+[#116882]: https://github.com/home-assistant/core/pull/116882
+[#116884]: https://github.com/home-assistant/core/pull/116884
+[#116886]: https://github.com/home-assistant/core/pull/116886
+[#116889]: https://github.com/home-assistant/core/pull/116889
+[#116891]: https://github.com/home-assistant/core/pull/116891
+[#116893]: https://github.com/home-assistant/core/pull/116893
+[#116895]: https://github.com/home-assistant/core/pull/116895
+[#116897]: https://github.com/home-assistant/core/pull/116897
+[#116899]: https://github.com/home-assistant/core/pull/116899
+[#116900]: https://github.com/home-assistant/core/pull/116900
+[#116906]: https://github.com/home-assistant/core/pull/116906
+[#116907]: https://github.com/home-assistant/core/pull/116907
+[#116909]: https://github.com/home-assistant/core/pull/116909
+[#116912]: https://github.com/home-assistant/core/pull/116912
+[#116918]: https://github.com/home-assistant/core/pull/116918
+[#116923]: https://github.com/home-assistant/core/pull/116923
+[#116925]: https://github.com/home-assistant/core/pull/116925
+[#116926]: https://github.com/home-assistant/core/pull/116926
+[#116927]: https://github.com/home-assistant/core/pull/116927
+[#116928]: https://github.com/home-assistant/core/pull/116928
+[#116929]: https://github.com/home-assistant/core/pull/116929
+[#116930]: https://github.com/home-assistant/core/pull/116930
+[#116931]: https://github.com/home-assistant/core/pull/116931
+[#116932]: https://github.com/home-assistant/core/pull/116932
+[#116933]: https://github.com/home-assistant/core/pull/116933
+[#116934]: https://github.com/home-assistant/core/pull/116934
+[#116942]: https://github.com/home-assistant/core/pull/116942
+[#116945]: https://github.com/home-assistant/core/pull/116945
+[#116946]: https://github.com/home-assistant/core/pull/116946
+[#116947]: https://github.com/home-assistant/core/pull/116947
+[#116951]: https://github.com/home-assistant/core/pull/116951
+[#116952]: https://github.com/home-assistant/core/pull/116952
+[#116954]: https://github.com/home-assistant/core/pull/116954
+[#116955]: https://github.com/home-assistant/core/pull/116955
+[#116956]: https://github.com/home-assistant/core/pull/116956
+[#116962]: https://github.com/home-assistant/core/pull/116962
+[#116963]: https://github.com/home-assistant/core/pull/116963
+[#116964]: https://github.com/home-assistant/core/pull/116964
+[#116981]: https://github.com/home-assistant/core/pull/116981
+[#116984]: https://github.com/home-assistant/core/pull/116984
+[#116993]: https://github.com/home-assistant/core/pull/116993
+[#116998]: https://github.com/home-assistant/core/pull/116998
+[#116999]: https://github.com/home-assistant/core/pull/116999
+[#117000]: https://github.com/home-assistant/core/pull/117000
+[#117001]: https://github.com/home-assistant/core/pull/117001
+[#117002]: https://github.com/home-assistant/core/pull/117002
+[#117003]: https://github.com/home-assistant/core/pull/117003
+[#117008]: https://github.com/home-assistant/core/pull/117008
+[#117012]: https://github.com/home-assistant/core/pull/117012
+[#117013]: https://github.com/home-assistant/core/pull/117013
+[#117014]: https://github.com/home-assistant/core/pull/117014
+[#117020]: https://github.com/home-assistant/core/pull/117020
+[#117023]: https://github.com/home-assistant/core/pull/117023
+[#117026]: https://github.com/home-assistant/core/pull/117026
+[#117027]: https://github.com/home-assistant/core/pull/117027
+[#117029]: https://github.com/home-assistant/core/pull/117029
+[#117030]: https://github.com/home-assistant/core/pull/117030
+[#117031]: https://github.com/home-assistant/core/pull/117031
+[#117032]: https://github.com/home-assistant/core/pull/117032
+[#117033]: https://github.com/home-assistant/core/pull/117033
+[#117034]: https://github.com/home-assistant/core/pull/117034
+[#117035]: https://github.com/home-assistant/core/pull/117035
+[#117036]: https://github.com/home-assistant/core/pull/117036
+[#117037]: https://github.com/home-assistant/core/pull/117037
+[#117043]: https://github.com/home-assistant/core/pull/117043
+[#117044]: https://github.com/home-assistant/core/pull/117044
+[#117047]: https://github.com/home-assistant/core/pull/117047
+[#117049]: https://github.com/home-assistant/core/pull/117049
+[#117050]: https://github.com/home-assistant/core/pull/117050
+[#117051]: https://github.com/home-assistant/core/pull/117051
+[#117054]: https://github.com/home-assistant/core/pull/117054
+[#117056]: https://github.com/home-assistant/core/pull/117056
+[#117058]: https://github.com/home-assistant/core/pull/117058
+[#117060]: https://github.com/home-assistant/core/pull/117060
+[#117062]: https://github.com/home-assistant/core/pull/117062
+[#117064]: https://github.com/home-assistant/core/pull/117064
+[#117066]: https://github.com/home-assistant/core/pull/117066
+[#117074]: https://github.com/home-assistant/core/pull/117074
+[#117076]: https://github.com/home-assistant/core/pull/117076
+[#117077]: https://github.com/home-assistant/core/pull/117077
+[#117078]: https://github.com/home-assistant/core/pull/117078
+[#117081]: https://github.com/home-assistant/core/pull/117081
+[#117082]: https://github.com/home-assistant/core/pull/117082
+[#117084]: https://github.com/home-assistant/core/pull/117084
+[#117085]: https://github.com/home-assistant/core/pull/117085
+[#117086]: https://github.com/home-assistant/core/pull/117086
+[#117095]: https://github.com/home-assistant/core/pull/117095
+[#117096]: https://github.com/home-assistant/core/pull/117096
+[#117099]: https://github.com/home-assistant/core/pull/117099
+[#117103]: https://github.com/home-assistant/core/pull/117103
+[#117108]: https://github.com/home-assistant/core/pull/117108
+[#117109]: https://github.com/home-assistant/core/pull/117109
+[#117110]: https://github.com/home-assistant/core/pull/117110
+[#117116]: https://github.com/home-assistant/core/pull/117116
+[#117118]: https://github.com/home-assistant/core/pull/117118
+[#117127]: https://github.com/home-assistant/core/pull/117127
+[#117129]: https://github.com/home-assistant/core/pull/117129
+[#117134]: https://github.com/home-assistant/core/pull/117134
+[#117135]: https://github.com/home-assistant/core/pull/117135
+[#117136]: https://github.com/home-assistant/core/pull/117136
+[#117147]: https://github.com/home-assistant/core/pull/117147
+[#117154]: https://github.com/home-assistant/core/pull/117154
+[#117157]: https://github.com/home-assistant/core/pull/117157
+[#117161]: https://github.com/home-assistant/core/pull/117161
+[#117171]: https://github.com/home-assistant/core/pull/117171
+[#117172]: https://github.com/home-assistant/core/pull/117172
+[#117174]: https://github.com/home-assistant/core/pull/117174
+[#117175]: https://github.com/home-assistant/core/pull/117175
+[#117183]: https://github.com/home-assistant/core/pull/117183
+[#117184]: https://github.com/home-assistant/core/pull/117184
+[#117185]: https://github.com/home-assistant/core/pull/117185
+[#117192]: https://github.com/home-assistant/core/pull/117192
+[#117195]: https://github.com/home-assistant/core/pull/117195
+[#117196]: https://github.com/home-assistant/core/pull/117196
+[#117199]: https://github.com/home-assistant/core/pull/117199
+[#117206]: https://github.com/home-assistant/core/pull/117206
+[#117210]: https://github.com/home-assistant/core/pull/117210
+[#117213]: https://github.com/home-assistant/core/pull/117213
+[#117214]: https://github.com/home-assistant/core/pull/117214
+[#117215]: https://github.com/home-assistant/core/pull/117215
+[#117217]: https://github.com/home-assistant/core/pull/117217
+[#117218]: https://github.com/home-assistant/core/pull/117218
+[#117219]: https://github.com/home-assistant/core/pull/117219
+[#117222]: https://github.com/home-assistant/core/pull/117222
+[#117224]: https://github.com/home-assistant/core/pull/117224
+[#117226]: https://github.com/home-assistant/core/pull/117226
+[#117227]: https://github.com/home-assistant/core/pull/117227
+[#117229]: https://github.com/home-assistant/core/pull/117229
+[#117230]: https://github.com/home-assistant/core/pull/117230
+[#117231]: https://github.com/home-assistant/core/pull/117231
+[#117237]: https://github.com/home-assistant/core/pull/117237
+[#117238]: https://github.com/home-assistant/core/pull/117238
+[#117239]: https://github.com/home-assistant/core/pull/117239
+[#117240]: https://github.com/home-assistant/core/pull/117240
+[#117241]: https://github.com/home-assistant/core/pull/117241
+[#117242]: https://github.com/home-assistant/core/pull/117242
+[#117244]: https://github.com/home-assistant/core/pull/117244
+[#117245]: https://github.com/home-assistant/core/pull/117245
+[#117246]: https://github.com/home-assistant/core/pull/117246
+[#117247]: https://github.com/home-assistant/core/pull/117247
+[#117248]: https://github.com/home-assistant/core/pull/117248
+[#117249]: https://github.com/home-assistant/core/pull/117249
+[#117261]: https://github.com/home-assistant/core/pull/117261
+[#117264]: https://github.com/home-assistant/core/pull/117264
+[#117270]: https://github.com/home-assistant/core/pull/117270
+[#117278]: https://github.com/home-assistant/core/pull/117278
+[#117280]: https://github.com/home-assistant/core/pull/117280
+[#117283]: https://github.com/home-assistant/core/pull/117283
+[#117285]: https://github.com/home-assistant/core/pull/117285
+[#117286]: https://github.com/home-assistant/core/pull/117286
+[#117288]: https://github.com/home-assistant/core/pull/117288
+[#117289]: https://github.com/home-assistant/core/pull/117289
+[#117290]: https://github.com/home-assistant/core/pull/117290
+[#117292]: https://github.com/home-assistant/core/pull/117292
+[#117293]: https://github.com/home-assistant/core/pull/117293
+[#117295]: https://github.com/home-assistant/core/pull/117295
+[#117301]: https://github.com/home-assistant/core/pull/117301
+[#117305]: https://github.com/home-assistant/core/pull/117305
+[#117312]: https://github.com/home-assistant/core/pull/117312
+[#117315]: https://github.com/home-assistant/core/pull/117315
+[#117318]: https://github.com/home-assistant/core/pull/117318
+[#117321]: https://github.com/home-assistant/core/pull/117321
+[#117323]: https://github.com/home-assistant/core/pull/117323
+[#117330]: https://github.com/home-assistant/core/pull/117330
+[#117336]: https://github.com/home-assistant/core/pull/117336
+[#117340]: https://github.com/home-assistant/core/pull/117340
+[#117341]: https://github.com/home-assistant/core/pull/117341
+[#117344]: https://github.com/home-assistant/core/pull/117344
+[#117345]: https://github.com/home-assistant/core/pull/117345
+[#117346]: https://github.com/home-assistant/core/pull/117346
+[#117347]: https://github.com/home-assistant/core/pull/117347
+[#117350]: https://github.com/home-assistant/core/pull/117350
+[#117351]: https://github.com/home-assistant/core/pull/117351
+[#117357]: https://github.com/home-assistant/core/pull/117357
+[#117370]: https://github.com/home-assistant/core/pull/117370
+[#117371]: https://github.com/home-assistant/core/pull/117371
+[#117375]: https://github.com/home-assistant/core/pull/117375
+[#117377]: https://github.com/home-assistant/core/pull/117377
+[#117382]: https://github.com/home-assistant/core/pull/117382
+[#117383]: https://github.com/home-assistant/core/pull/117383
+[#117385]: https://github.com/home-assistant/core/pull/117385
+[#117388]: https://github.com/home-assistant/core/pull/117388
+[#117390]: https://github.com/home-assistant/core/pull/117390
+[#117392]: https://github.com/home-assistant/core/pull/117392
+[#117394]: https://github.com/home-assistant/core/pull/117394
+[#117395]: https://github.com/home-assistant/core/pull/117395
+[#117400]: https://github.com/home-assistant/core/pull/117400
+[#117402]: https://github.com/home-assistant/core/pull/117402
+[#117403]: https://github.com/home-assistant/core/pull/117403
+[#117404]: https://github.com/home-assistant/core/pull/117404
+[#117405]: https://github.com/home-assistant/core/pull/117405
+[#117407]: https://github.com/home-assistant/core/pull/117407
+[#117408]: https://github.com/home-assistant/core/pull/117408
+[#117409]: https://github.com/home-assistant/core/pull/117409
+[#117411]: https://github.com/home-assistant/core/pull/117411
+[#117412]: https://github.com/home-assistant/core/pull/117412
+[#117413]: https://github.com/home-assistant/core/pull/117413
+[#117416]: https://github.com/home-assistant/core/pull/117416
+[#117417]: https://github.com/home-assistant/core/pull/117417
+[#117418]: https://github.com/home-assistant/core/pull/117418
+[#117419]: https://github.com/home-assistant/core/pull/117419
+[#117421]: https://github.com/home-assistant/core/pull/117421
+[#117422]: https://github.com/home-assistant/core/pull/117422
+[#117425]: https://github.com/home-assistant/core/pull/117425
+[#117426]: https://github.com/home-assistant/core/pull/117426
+[#117427]: https://github.com/home-assistant/core/pull/117427
+[#117428]: https://github.com/home-assistant/core/pull/117428
+[#117429]: https://github.com/home-assistant/core/pull/117429
+[#117432]: https://github.com/home-assistant/core/pull/117432
+[#117433]: https://github.com/home-assistant/core/pull/117433
+[#117435]: https://github.com/home-assistant/core/pull/117435
+[#117437]: https://github.com/home-assistant/core/pull/117437
+[#117438]: https://github.com/home-assistant/core/pull/117438
+[#117440]: https://github.com/home-assistant/core/pull/117440
+[#117442]: https://github.com/home-assistant/core/pull/117442
+[#117448]: https://github.com/home-assistant/core/pull/117448
+[#117450]: https://github.com/home-assistant/core/pull/117450
+[#117452]: https://github.com/home-assistant/core/pull/117452
+[#117453]: https://github.com/home-assistant/core/pull/117453
+[#117457]: https://github.com/home-assistant/core/pull/117457
+[#117459]: https://github.com/home-assistant/core/pull/117459
+[#117460]: https://github.com/home-assistant/core/pull/117460
+[#117462]: https://github.com/home-assistant/core/pull/117462
+[#117463]: https://github.com/home-assistant/core/pull/117463
+[#117464]: https://github.com/home-assistant/core/pull/117464
+[#117467]: https://github.com/home-assistant/core/pull/117467
+[#117469]: https://github.com/home-assistant/core/pull/117469
+[#117470]: https://github.com/home-assistant/core/pull/117470
+[#117471]: https://github.com/home-assistant/core/pull/117471
+[#117472]: https://github.com/home-assistant/core/pull/117472
+[#117473]: https://github.com/home-assistant/core/pull/117473
+[#117474]: https://github.com/home-assistant/core/pull/117474
+[#117475]: https://github.com/home-assistant/core/pull/117475
+[#117476]: https://github.com/home-assistant/core/pull/117476
+[#117477]: https://github.com/home-assistant/core/pull/117477
+[#117478]: https://github.com/home-assistant/core/pull/117478
+[#117479]: https://github.com/home-assistant/core/pull/117479
+[#117480]: https://github.com/home-assistant/core/pull/117480
+[#117482]: https://github.com/home-assistant/core/pull/117482
+[#117485]: https://github.com/home-assistant/core/pull/117485
+[#117486]: https://github.com/home-assistant/core/pull/117486
+[#117488]: https://github.com/home-assistant/core/pull/117488
+[#117491]: https://github.com/home-assistant/core/pull/117491
+[#117493]: https://github.com/home-assistant/core/pull/117493
+[#117495]: https://github.com/home-assistant/core/pull/117495
+[#117496]: https://github.com/home-assistant/core/pull/117496
+[#117498]: https://github.com/home-assistant/core/pull/117498
+[#117500]: https://github.com/home-assistant/core/pull/117500
+[#117502]: https://github.com/home-assistant/core/pull/117502
+[#117503]: https://github.com/home-assistant/core/pull/117503
+[#117504]: https://github.com/home-assistant/core/pull/117504
+[#117506]: https://github.com/home-assistant/core/pull/117506
+[#117507]: https://github.com/home-assistant/core/pull/117507
+[#117518]: https://github.com/home-assistant/core/pull/117518
+[#117519]: https://github.com/home-assistant/core/pull/117519
+[#117520]: https://github.com/home-assistant/core/pull/117520
+[#117521]: https://github.com/home-assistant/core/pull/117521
+[#117525]: https://github.com/home-assistant/core/pull/117525
+[#117527]: https://github.com/home-assistant/core/pull/117527
+[#117536]: https://github.com/home-assistant/core/pull/117536
+[#117537]: https://github.com/home-assistant/core/pull/117537
+[#117538]: https://github.com/home-assistant/core/pull/117538
+[#117543]: https://github.com/home-assistant/core/pull/117543
+[#117544]: https://github.com/home-assistant/core/pull/117544
+[#117546]: https://github.com/home-assistant/core/pull/117546
+[#117548]: https://github.com/home-assistant/core/pull/117548
+[#117549]: https://github.com/home-assistant/core/pull/117549
+[#117552]: https://github.com/home-assistant/core/pull/117552
+[#117553]: https://github.com/home-assistant/core/pull/117553
+[#117556]: https://github.com/home-assistant/core/pull/117556
+[#117559]: https://github.com/home-assistant/core/pull/117559
+[#117560]: https://github.com/home-assistant/core/pull/117560
+[#117561]: https://github.com/home-assistant/core/pull/117561
+[#117562]: https://github.com/home-assistant/core/pull/117562
+[#117563]: https://github.com/home-assistant/core/pull/117563
+[#117565]: https://github.com/home-assistant/core/pull/117565
+[#117568]: https://github.com/home-assistant/core/pull/117568
+[#117570]: https://github.com/home-assistant/core/pull/117570
+[#117573]: https://github.com/home-assistant/core/pull/117573
+[#117575]: https://github.com/home-assistant/core/pull/117575
+[#117578]: https://github.com/home-assistant/core/pull/117578
+[#117579]: https://github.com/home-assistant/core/pull/117579
+[#117582]: https://github.com/home-assistant/core/pull/117582
+[#117583]: https://github.com/home-assistant/core/pull/117583
+[#117587]: https://github.com/home-assistant/core/pull/117587
+[#117590]: https://github.com/home-assistant/core/pull/117590
+[#117592]: https://github.com/home-assistant/core/pull/117592
+[#117593]: https://github.com/home-assistant/core/pull/117593
+[#117606]: https://github.com/home-assistant/core/pull/117606
+[#117608]: https://github.com/home-assistant/core/pull/117608
+[#117609]: https://github.com/home-assistant/core/pull/117609
+[#117610]: https://github.com/home-assistant/core/pull/117610
+[#117611]: https://github.com/home-assistant/core/pull/117611
+[#117612]: https://github.com/home-assistant/core/pull/117612
+[#117613]: https://github.com/home-assistant/core/pull/117613
+[#117616]: https://github.com/home-assistant/core/pull/117616
+[#117618]: https://github.com/home-assistant/core/pull/117618
+[#117619]: https://github.com/home-assistant/core/pull/117619
+[#117620]: https://github.com/home-assistant/core/pull/117620
+[#117621]: https://github.com/home-assistant/core/pull/117621
+[#117625]: https://github.com/home-assistant/core/pull/117625
+[#117630]: https://github.com/home-assistant/core/pull/117630
+[#117632]: https://github.com/home-assistant/core/pull/117632
+[#117633]: https://github.com/home-assistant/core/pull/117633
+[#117637]: https://github.com/home-assistant/core/pull/117637
+[#117638]: https://github.com/home-assistant/core/pull/117638
+[#117639]: https://github.com/home-assistant/core/pull/117639
+[#117640]: https://github.com/home-assistant/core/pull/117640
+[#117643]: https://github.com/home-assistant/core/pull/117643
+[#117644]: https://github.com/home-assistant/core/pull/117644
+[#117645]: https://github.com/home-assistant/core/pull/117645
+[#117647]: https://github.com/home-assistant/core/pull/117647
+[#117658]: https://github.com/home-assistant/core/pull/117658
+[#117659]: https://github.com/home-assistant/core/pull/117659
+[#117660]: https://github.com/home-assistant/core/pull/117660
+[#117661]: https://github.com/home-assistant/core/pull/117661
+[#117662]: https://github.com/home-assistant/core/pull/117662
+[#117663]: https://github.com/home-assistant/core/pull/117663
+[#117664]: https://github.com/home-assistant/core/pull/117664
+[#117667]: https://github.com/home-assistant/core/pull/117667
+[#117671]: https://github.com/home-assistant/core/pull/117671
+[#117679]: https://github.com/home-assistant/core/pull/117679
+[#117680]: https://github.com/home-assistant/core/pull/117680
+[#117683]: https://github.com/home-assistant/core/pull/117683
+[#117685]: https://github.com/home-assistant/core/pull/117685
+[#117686]: https://github.com/home-assistant/core/pull/117686
+[#117687]: https://github.com/home-assistant/core/pull/117687
+[#117688]: https://github.com/home-assistant/core/pull/117688
+[#117690]: https://github.com/home-assistant/core/pull/117690
+[#117693]: https://github.com/home-assistant/core/pull/117693
+[#117699]: https://github.com/home-assistant/core/pull/117699
+[#117701]: https://github.com/home-assistant/core/pull/117701
+[#117702]: https://github.com/home-assistant/core/pull/117702
+[#117706]: https://github.com/home-assistant/core/pull/117706
+[#117707]: https://github.com/home-assistant/core/pull/117707
+[#117708]: https://github.com/home-assistant/core/pull/117708
+[#117712]: https://github.com/home-assistant/core/pull/117712
+[#117721]: https://github.com/home-assistant/core/pull/117721
+[#117727]: https://github.com/home-assistant/core/pull/117727
+[#117728]: https://github.com/home-assistant/core/pull/117728
+[#117730]: https://github.com/home-assistant/core/pull/117730
+[#117732]: https://github.com/home-assistant/core/pull/117732
+[#117736]: https://github.com/home-assistant/core/pull/117736
+[#117739]: https://github.com/home-assistant/core/pull/117739
+[#117740]: https://github.com/home-assistant/core/pull/117740
+[#117743]: https://github.com/home-assistant/core/pull/117743
+[#117752]: https://github.com/home-assistant/core/pull/117752
+[#117754]: https://github.com/home-assistant/core/pull/117754
+[#117766]: https://github.com/home-assistant/core/pull/117766
+[#117767]: https://github.com/home-assistant/core/pull/117767
+[#117769]: https://github.com/home-assistant/core/pull/117769
+[#117770]: https://github.com/home-assistant/core/pull/117770
+[#117775]: https://github.com/home-assistant/core/pull/117775
+[#117776]: https://github.com/home-assistant/core/pull/117776
+[#117777]: https://github.com/home-assistant/core/pull/117777
+[#117778]: https://github.com/home-assistant/core/pull/117778
+[#117779]: https://github.com/home-assistant/core/pull/117779
+[#117780]: https://github.com/home-assistant/core/pull/117780
+[#117782]: https://github.com/home-assistant/core/pull/117782
+[#117783]: https://github.com/home-assistant/core/pull/117783
+[#117784]: https://github.com/home-assistant/core/pull/117784
+[#117786]: https://github.com/home-assistant/core/pull/117786
+[#117787]: https://github.com/home-assistant/core/pull/117787
+[#117788]: https://github.com/home-assistant/core/pull/117788
+[#117792]: https://github.com/home-assistant/core/pull/117792
+[#117797]: https://github.com/home-assistant/core/pull/117797
+[#117809]: https://github.com/home-assistant/core/pull/117809
+[#117810]: https://github.com/home-assistant/core/pull/117810
+[#117812]: https://github.com/home-assistant/core/pull/117812
+[#117813]: https://github.com/home-assistant/core/pull/117813
+[#117814]: https://github.com/home-assistant/core/pull/117814
+[#117815]: https://github.com/home-assistant/core/pull/117815
+[#117817]: https://github.com/home-assistant/core/pull/117817
+[#117819]: https://github.com/home-assistant/core/pull/117819
+[#117820]: https://github.com/home-assistant/core/pull/117820
+[#117822]: https://github.com/home-assistant/core/pull/117822
+[#117823]: https://github.com/home-assistant/core/pull/117823
+[#117824]: https://github.com/home-assistant/core/pull/117824
+[#117825]: https://github.com/home-assistant/core/pull/117825
+[#117830]: https://github.com/home-assistant/core/pull/117830
+[#117834]: https://github.com/home-assistant/core/pull/117834
+[#117835]: https://github.com/home-assistant/core/pull/117835
+[#117836]: https://github.com/home-assistant/core/pull/117836
+[#117837]: https://github.com/home-assistant/core/pull/117837
+[#117838]: https://github.com/home-assistant/core/pull/117838
+[#117840]: https://github.com/home-assistant/core/pull/117840
+[#117843]: https://github.com/home-assistant/core/pull/117843
+[#117845]: https://github.com/home-assistant/core/pull/117845
+[#117846]: https://github.com/home-assistant/core/pull/117846
+[#117847]: https://github.com/home-assistant/core/pull/117847
+[#117848]: https://github.com/home-assistant/core/pull/117848
+[#117849]: https://github.com/home-assistant/core/pull/117849
+[#117851]: https://github.com/home-assistant/core/pull/117851
+[#117854]: https://github.com/home-assistant/core/pull/117854
+[#117855]: https://github.com/home-assistant/core/pull/117855
+[#117856]: https://github.com/home-assistant/core/pull/117856
+[#117863]: https://github.com/home-assistant/core/pull/117863
+[#117864]: https://github.com/home-assistant/core/pull/117864
+[#117868]: https://github.com/home-assistant/core/pull/117868
+[#117869]: https://github.com/home-assistant/core/pull/117869
+[#117873]: https://github.com/home-assistant/core/pull/117873
+[#117875]: https://github.com/home-assistant/core/pull/117875
+[#117877]: https://github.com/home-assistant/core/pull/117877
+[#117878]: https://github.com/home-assistant/core/pull/117878
+[#117882]: https://github.com/home-assistant/core/pull/117882
+[#117884]: https://github.com/home-assistant/core/pull/117884
+[#117885]: https://github.com/home-assistant/core/pull/117885
+[#117886]: https://github.com/home-assistant/core/pull/117886
+[#117887]: https://github.com/home-assistant/core/pull/117887
+[#117890]: https://github.com/home-assistant/core/pull/117890
+[#117891]: https://github.com/home-assistant/core/pull/117891
+[#117893]: https://github.com/home-assistant/core/pull/117893
+[#117896]: https://github.com/home-assistant/core/pull/117896
+[#117897]: https://github.com/home-assistant/core/pull/117897
+[#117899]: https://github.com/home-assistant/core/pull/117899
+[#117900]: https://github.com/home-assistant/core/pull/117900
+[#117905]: https://github.com/home-assistant/core/pull/117905
+[#117906]: https://github.com/home-assistant/core/pull/117906
+[#117908]: https://github.com/home-assistant/core/pull/117908
+[#117909]: https://github.com/home-assistant/core/pull/117909
+[#117912]: https://github.com/home-assistant/core/pull/117912
+[#117913]: https://github.com/home-assistant/core/pull/117913
+[#117917]: https://github.com/home-assistant/core/pull/117917
+[#117920]: https://github.com/home-assistant/core/pull/117920
+[#117922]: https://github.com/home-assistant/core/pull/117922
+[#117924]: https://github.com/home-assistant/core/pull/117924
+[#117928]: https://github.com/home-assistant/core/pull/117928
+[#117929]: https://github.com/home-assistant/core/pull/117929
+[#117930]: https://github.com/home-assistant/core/pull/117930
+[#117933]: https://github.com/home-assistant/core/pull/117933
+[#117934]: https://github.com/home-assistant/core/pull/117934
+[#117935]: https://github.com/home-assistant/core/pull/117935
+[#117936]: https://github.com/home-assistant/core/pull/117936
+[#117938]: https://github.com/home-assistant/core/pull/117938
+[#117939]: https://github.com/home-assistant/core/pull/117939
+[#117940]: https://github.com/home-assistant/core/pull/117940
+[#117943]: https://github.com/home-assistant/core/pull/117943
+[#117944]: https://github.com/home-assistant/core/pull/117944
+[#117946]: https://github.com/home-assistant/core/pull/117946
+[#117951]: https://github.com/home-assistant/core/pull/117951
+[#117953]: https://github.com/home-assistant/core/pull/117953
+[#117956]: https://github.com/home-assistant/core/pull/117956
+[#117958]: https://github.com/home-assistant/core/pull/117958
+[#117960]: https://github.com/home-assistant/core/pull/117960
+[#117961]: https://github.com/home-assistant/core/pull/117961
+[#117962]: https://github.com/home-assistant/core/pull/117962
+[#117963]: https://github.com/home-assistant/core/pull/117963
+[#117964]: https://github.com/home-assistant/core/pull/117964
+[#117965]: https://github.com/home-assistant/core/pull/117965
+[#117967]: https://github.com/home-assistant/core/pull/117967
+[#117969]: https://github.com/home-assistant/core/pull/117969
+[#117970]: https://github.com/home-assistant/core/pull/117970
+[#117971]: https://github.com/home-assistant/core/pull/117971
+[#117973]: https://github.com/home-assistant/core/pull/117973
+[#117974]: https://github.com/home-assistant/core/pull/117974
+[#117975]: https://github.com/home-assistant/core/pull/117975
+[#117978]: https://github.com/home-assistant/core/pull/117978
+[#117979]: https://github.com/home-assistant/core/pull/117979
+[#117982]: https://github.com/home-assistant/core/pull/117982
+[#117983]: https://github.com/home-assistant/core/pull/117983
+[#117985]: https://github.com/home-assistant/core/pull/117985
+[#117986]: https://github.com/home-assistant/core/pull/117986
+[#117992]: https://github.com/home-assistant/core/pull/117992
+[#117993]: https://github.com/home-assistant/core/pull/117993
+[#117994]: https://github.com/home-assistant/core/pull/117994
+[#117995]: https://github.com/home-assistant/core/pull/117995
+[#117996]: https://github.com/home-assistant/core/pull/117996
+[#117999]: https://github.com/home-assistant/core/pull/117999
+[#118000]: https://github.com/home-assistant/core/pull/118000
+[#118001]: https://github.com/home-assistant/core/pull/118001
+[#118003]: https://github.com/home-assistant/core/pull/118003
+[#118006]: https://github.com/home-assistant/core/pull/118006
+[#118007]: https://github.com/home-assistant/core/pull/118007
+[#118010]: https://github.com/home-assistant/core/pull/118010
+[#118014]: https://github.com/home-assistant/core/pull/118014
+[#118015]: https://github.com/home-assistant/core/pull/118015
+[#118017]: https://github.com/home-assistant/core/pull/118017
+[#118018]: https://github.com/home-assistant/core/pull/118018
+[#118019]: https://github.com/home-assistant/core/pull/118019
+[#118020]: https://github.com/home-assistant/core/pull/118020
+[#118021]: https://github.com/home-assistant/core/pull/118021
+[#118022]: https://github.com/home-assistant/core/pull/118022
+[#118024]: https://github.com/home-assistant/core/pull/118024
+[#118027]: https://github.com/home-assistant/core/pull/118027
+[#118032]: https://github.com/home-assistant/core/pull/118032
+[#118035]: https://github.com/home-assistant/core/pull/118035
+[#118036]: https://github.com/home-assistant/core/pull/118036
+[#118037]: https://github.com/home-assistant/core/pull/118037
+[#118039]: https://github.com/home-assistant/core/pull/118039
+[#118040]: https://github.com/home-assistant/core/pull/118040
+[#118041]: https://github.com/home-assistant/core/pull/118041
+[#118042]: https://github.com/home-assistant/core/pull/118042
+[#118044]: https://github.com/home-assistant/core/pull/118044
+[#118045]: https://github.com/home-assistant/core/pull/118045
+[#118052]: https://github.com/home-assistant/core/pull/118052
+[#118053]: https://github.com/home-assistant/core/pull/118053
+[#118054]: https://github.com/home-assistant/core/pull/118054
+[#118055]: https://github.com/home-assistant/core/pull/118055
+[#118056]: https://github.com/home-assistant/core/pull/118056
+[#118059]: https://github.com/home-assistant/core/pull/118059
+[#118064]: https://github.com/home-assistant/core/pull/118064
+[#118065]: https://github.com/home-assistant/core/pull/118065
+[#118066]: https://github.com/home-assistant/core/pull/118066
+[#118067]: https://github.com/home-assistant/core/pull/118067
+[#118068]: https://github.com/home-assistant/core/pull/118068
+[#118070]: https://github.com/home-assistant/core/pull/118070
+[#118071]: https://github.com/home-assistant/core/pull/118071
+[#118072]: https://github.com/home-assistant/core/pull/118072
+[#118073]: https://github.com/home-assistant/core/pull/118073
+[#118074]: https://github.com/home-assistant/core/pull/118074
+[#118075]: https://github.com/home-assistant/core/pull/118075
+[#118076]: https://github.com/home-assistant/core/pull/118076
+[#118077]: https://github.com/home-assistant/core/pull/118077
+[#118078]: https://github.com/home-assistant/core/pull/118078
+[#118079]: https://github.com/home-assistant/core/pull/118079
+[#118080]: https://github.com/home-assistant/core/pull/118080
+[#118081]: https://github.com/home-assistant/core/pull/118081
+[#118082]: https://github.com/home-assistant/core/pull/118082
+[#118083]: https://github.com/home-assistant/core/pull/118083
+[#118084]: https://github.com/home-assistant/core/pull/118084
+[#118085]: https://github.com/home-assistant/core/pull/118085
+[#118086]: https://github.com/home-assistant/core/pull/118086
+[#118088]: https://github.com/home-assistant/core/pull/118088
+[#118091]: https://github.com/home-assistant/core/pull/118091
+[#118092]: https://github.com/home-assistant/core/pull/118092
+[#118094]: https://github.com/home-assistant/core/pull/118094
+[#118095]: https://github.com/home-assistant/core/pull/118095
+[#118096]: https://github.com/home-assistant/core/pull/118096
+[#118097]: https://github.com/home-assistant/core/pull/118097
+[#118098]: https://github.com/home-assistant/core/pull/118098
+[#118099]: https://github.com/home-assistant/core/pull/118099
+[#118100]: https://github.com/home-assistant/core/pull/118100
+[#118101]: https://github.com/home-assistant/core/pull/118101
+[#118102]: https://github.com/home-assistant/core/pull/118102
+[#118103]: https://github.com/home-assistant/core/pull/118103
+[#118104]: https://github.com/home-assistant/core/pull/118104
+[#118106]: https://github.com/home-assistant/core/pull/118106
+[#118107]: https://github.com/home-assistant/core/pull/118107
+[#118108]: https://github.com/home-assistant/core/pull/118108
+[#118109]: https://github.com/home-assistant/core/pull/118109
+[#118110]: https://github.com/home-assistant/core/pull/118110
+[#118112]: https://github.com/home-assistant/core/pull/118112
+[#118113]: https://github.com/home-assistant/core/pull/118113
+[#118114]: https://github.com/home-assistant/core/pull/118114
+[#118115]: https://github.com/home-assistant/core/pull/118115
+[#118116]: https://github.com/home-assistant/core/pull/118116
+[#118117]: https://github.com/home-assistant/core/pull/118117
+[#118118]: https://github.com/home-assistant/core/pull/118118
+[#118119]: https://github.com/home-assistant/core/pull/118119
+[#118121]: https://github.com/home-assistant/core/pull/118121
+[#118123]: https://github.com/home-assistant/core/pull/118123
+[#118124]: https://github.com/home-assistant/core/pull/118124
+[#118125]: https://github.com/home-assistant/core/pull/118125
+[#118126]: https://github.com/home-assistant/core/pull/118126
+[#118127]: https://github.com/home-assistant/core/pull/118127
+[#118128]: https://github.com/home-assistant/core/pull/118128
+[#118130]: https://github.com/home-assistant/core/pull/118130
+[#118131]: https://github.com/home-assistant/core/pull/118131
+[#118132]: https://github.com/home-assistant/core/pull/118132
+[#118136]: https://github.com/home-assistant/core/pull/118136
+[#118137]: https://github.com/home-assistant/core/pull/118137
+[#118138]: https://github.com/home-assistant/core/pull/118138
+[#118140]: https://github.com/home-assistant/core/pull/118140
+[#118141]: https://github.com/home-assistant/core/pull/118141
+[#118142]: https://github.com/home-assistant/core/pull/118142
+[#118143]: https://github.com/home-assistant/core/pull/118143
+[#118144]: https://github.com/home-assistant/core/pull/118144
+[#118145]: https://github.com/home-assistant/core/pull/118145
+[#118146]: https://github.com/home-assistant/core/pull/118146
+[#118148]: https://github.com/home-assistant/core/pull/118148
+[#118151]: https://github.com/home-assistant/core/pull/118151
+[#118153]: https://github.com/home-assistant/core/pull/118153
+[#118158]: https://github.com/home-assistant/core/pull/118158
+[#118159]: https://github.com/home-assistant/core/pull/118159
+[#118161]: https://github.com/home-assistant/core/pull/118161
+[#118163]: https://github.com/home-assistant/core/pull/118163
+[#118164]: https://github.com/home-assistant/core/pull/118164
+[#118165]: https://github.com/home-assistant/core/pull/118165
+[#118166]: https://github.com/home-assistant/core/pull/118166
+[#118168]: https://github.com/home-assistant/core/pull/118168
+[#118170]: https://github.com/home-assistant/core/pull/118170
+[#118171]: https://github.com/home-assistant/core/pull/118171
+[#118172]: https://github.com/home-assistant/core/pull/118172
+[#118177]: https://github.com/home-assistant/core/pull/118177
+[#118179]: https://github.com/home-assistant/core/pull/118179
+[#118180]: https://github.com/home-assistant/core/pull/118180
+[#118181]: https://github.com/home-assistant/core/pull/118181
+[#118184]: https://github.com/home-assistant/core/pull/118184
+[#118187]: https://github.com/home-assistant/core/pull/118187
+[#118188]: https://github.com/home-assistant/core/pull/118188
+[#118191]: https://github.com/home-assistant/core/pull/118191
+[#118193]: https://github.com/home-assistant/core/pull/118193
+[#118194]: https://github.com/home-assistant/core/pull/118194
+[#118195]: https://github.com/home-assistant/core/pull/118195
+[#118196]: https://github.com/home-assistant/core/pull/118196
+[#118198]: https://github.com/home-assistant/core/pull/118198
+[#118199]: https://github.com/home-assistant/core/pull/118199
+[#118200]: https://github.com/home-assistant/core/pull/118200
+[#118203]: https://github.com/home-assistant/core/pull/118203
+[#118204]: https://github.com/home-assistant/core/pull/118204
+[#118205]: https://github.com/home-assistant/core/pull/118205
+[#118206]: https://github.com/home-assistant/core/pull/118206
+[#118208]: https://github.com/home-assistant/core/pull/118208
+[#118210]: https://github.com/home-assistant/core/pull/118210
+[#118211]: https://github.com/home-assistant/core/pull/118211
+[#118212]: https://github.com/home-assistant/core/pull/118212
+[#118213]: https://github.com/home-assistant/core/pull/118213
+[#118214]: https://github.com/home-assistant/core/pull/118214
+[#118215]: https://github.com/home-assistant/core/pull/118215
+[#118217]: https://github.com/home-assistant/core/pull/118217
+[#118218]: https://github.com/home-assistant/core/pull/118218
+[#118220]: https://github.com/home-assistant/core/pull/118220
+[#118222]: https://github.com/home-assistant/core/pull/118222
+[#118224]: https://github.com/home-assistant/core/pull/118224
+[#118226]: https://github.com/home-assistant/core/pull/118226
+[#118227]: https://github.com/home-assistant/core/pull/118227
+[#118229]: https://github.com/home-assistant/core/pull/118229
+[#118231]: https://github.com/home-assistant/core/pull/118231
+[#118234]: https://github.com/home-assistant/core/pull/118234
+[#118235]: https://github.com/home-assistant/core/pull/118235
+[#118236]: https://github.com/home-assistant/core/pull/118236
+[#118241]: https://github.com/home-assistant/core/pull/118241
+[#118246]: https://github.com/home-assistant/core/pull/118246
+[#118253]: https://github.com/home-assistant/core/pull/118253
+[#118256]: https://github.com/home-assistant/core/pull/118256
+[#118258]: https://github.com/home-assistant/core/pull/118258
+[#118261]: https://github.com/home-assistant/core/pull/118261
+[#118262]: https://github.com/home-assistant/core/pull/118262
+[#118267]: https://github.com/home-assistant/core/pull/118267
+[#118268]: https://github.com/home-assistant/core/pull/118268
+[#118269]: https://github.com/home-assistant/core/pull/118269
+[#118270]: https://github.com/home-assistant/core/pull/118270
+[#118271]: https://github.com/home-assistant/core/pull/118271
+[#118272]: https://github.com/home-assistant/core/pull/118272
+[#118273]: https://github.com/home-assistant/core/pull/118273
+[#118274]: https://github.com/home-assistant/core/pull/118274
+[#118275]: https://github.com/home-assistant/core/pull/118275
+[#118276]: https://github.com/home-assistant/core/pull/118276
+[#118277]: https://github.com/home-assistant/core/pull/118277
+[#118279]: https://github.com/home-assistant/core/pull/118279
+[#118280]: https://github.com/home-assistant/core/pull/118280
+[#118282]: https://github.com/home-assistant/core/pull/118282
+[#118283]: https://github.com/home-assistant/core/pull/118283
+[#118285]: https://github.com/home-assistant/core/pull/118285
+[#118286]: https://github.com/home-assistant/core/pull/118286
+[#118287]: https://github.com/home-assistant/core/pull/118287
+[#118288]: https://github.com/home-assistant/core/pull/118288
+[#118291]: https://github.com/home-assistant/core/pull/118291
+[#118292]: https://github.com/home-assistant/core/pull/118292
+[#118293]: https://github.com/home-assistant/core/pull/118293
+[#118294]: https://github.com/home-assistant/core/pull/118294
+[#118295]: https://github.com/home-assistant/core/pull/118295
+[#118297]: https://github.com/home-assistant/core/pull/118297
+[#118299]: https://github.com/home-assistant/core/pull/118299
+[#118300]: https://github.com/home-assistant/core/pull/118300
+[#118301]: https://github.com/home-assistant/core/pull/118301
+[#118303]: https://github.com/home-assistant/core/pull/118303
+[#118307]: https://github.com/home-assistant/core/pull/118307
+[#118308]: https://github.com/home-assistant/core/pull/118308
+[#118309]: https://github.com/home-assistant/core/pull/118309
+[#118311]: https://github.com/home-assistant/core/pull/118311
+[#118312]: https://github.com/home-assistant/core/pull/118312
+[#118314]: https://github.com/home-assistant/core/pull/118314
+[#118317]: https://github.com/home-assistant/core/pull/118317
+[#118318]: https://github.com/home-assistant/core/pull/118318
+[#118319]: https://github.com/home-assistant/core/pull/118319
+[#118320]: https://github.com/home-assistant/core/pull/118320
+[#118321]: https://github.com/home-assistant/core/pull/118321
+[#118322]: https://github.com/home-assistant/core/pull/118322
+[#118323]: https://github.com/home-assistant/core/pull/118323
+[#118324]: https://github.com/home-assistant/core/pull/118324
+[#118325]: https://github.com/home-assistant/core/pull/118325
+[#118328]: https://github.com/home-assistant/core/pull/118328
+[#118329]: https://github.com/home-assistant/core/pull/118329
+[#118331]: https://github.com/home-assistant/core/pull/118331
+[#118332]: https://github.com/home-assistant/core/pull/118332
+[#118333]: https://github.com/home-assistant/core/pull/118333
+[#118334]: https://github.com/home-assistant/core/pull/118334
+[#118337]: https://github.com/home-assistant/core/pull/118337
+[#118338]: https://github.com/home-assistant/core/pull/118338
+[#118339]: https://github.com/home-assistant/core/pull/118339
+[#118340]: https://github.com/home-assistant/core/pull/118340
+[#118341]: https://github.com/home-assistant/core/pull/118341
+[#118342]: https://github.com/home-assistant/core/pull/118342
+[#118343]: https://github.com/home-assistant/core/pull/118343
+[#118344]: https://github.com/home-assistant/core/pull/118344
+[#118346]: https://github.com/home-assistant/core/pull/118346
+[#118349]: https://github.com/home-assistant/core/pull/118349
+[#118350]: https://github.com/home-assistant/core/pull/118350
+[#118351]: https://github.com/home-assistant/core/pull/118351
+[#118353]: https://github.com/home-assistant/core/pull/118353
+[#118354]: https://github.com/home-assistant/core/pull/118354
+[#118355]: https://github.com/home-assistant/core/pull/118355
+[#118357]: https://github.com/home-assistant/core/pull/118357
+[#118358]: https://github.com/home-assistant/core/pull/118358
+[#118359]: https://github.com/home-assistant/core/pull/118359
+[#118362]: https://github.com/home-assistant/core/pull/118362
+[#118363]: https://github.com/home-assistant/core/pull/118363
+[#118365]: https://github.com/home-assistant/core/pull/118365
+[#118367]: https://github.com/home-assistant/core/pull/118367
+[#118368]: https://github.com/home-assistant/core/pull/118368
+[#118371]: https://github.com/home-assistant/core/pull/118371
+[#118372]: https://github.com/home-assistant/core/pull/118372
+[#118373]: https://github.com/home-assistant/core/pull/118373
+[#118377]: https://github.com/home-assistant/core/pull/118377
+[#118378]: https://github.com/home-assistant/core/pull/118378
+[#118384]: https://github.com/home-assistant/core/pull/118384
+[#118388]: https://github.com/home-assistant/core/pull/118388
+[#118389]: https://github.com/home-assistant/core/pull/118389
+[#118390]: https://github.com/home-assistant/core/pull/118390
+[#118392]: https://github.com/home-assistant/core/pull/118392
+[#118393]: https://github.com/home-assistant/core/pull/118393
+[#118401]: https://github.com/home-assistant/core/pull/118401
+[#118404]: https://github.com/home-assistant/core/pull/118404
+[#118409]: https://github.com/home-assistant/core/pull/118409
+[#118410]: https://github.com/home-assistant/core/pull/118410
+[#118412]: https://github.com/home-assistant/core/pull/118412
+[#118418]: https://github.com/home-assistant/core/pull/118418
+[#118421]: https://github.com/home-assistant/core/pull/118421
+[#118422]: https://github.com/home-assistant/core/pull/118422
+[#118428]: https://github.com/home-assistant/core/pull/118428
+[#118429]: https://github.com/home-assistant/core/pull/118429
+[#118434]: https://github.com/home-assistant/core/pull/118434
+[#118441]: https://github.com/home-assistant/core/pull/118441
+[#118443]: https://github.com/home-assistant/core/pull/118443
+[#118451]: https://github.com/home-assistant/core/pull/118451
+[#118453]: https://github.com/home-assistant/core/pull/118453
+[#118462]: https://github.com/home-assistant/core/pull/118462
+[#118467]: https://github.com/home-assistant/core/pull/118467
+[#118473]: https://github.com/home-assistant/core/pull/118473
+[#118477]: https://github.com/home-assistant/core/pull/118477
+[#118478]: https://github.com/home-assistant/core/pull/118478
+[#118483]: https://github.com/home-assistant/core/pull/118483
+[#118485]: https://github.com/home-assistant/core/pull/118485
+[#118489]: https://github.com/home-assistant/core/pull/118489
+[#118491]: https://github.com/home-assistant/core/pull/118491
+[#118496]: https://github.com/home-assistant/core/pull/118496
+[#118498]: https://github.com/home-assistant/core/pull/118498
+[#118499]: https://github.com/home-assistant/core/pull/118499
+[#118500]: https://github.com/home-assistant/core/pull/118500
+[#118505]: https://github.com/home-assistant/core/pull/118505
+[#118506]: https://github.com/home-assistant/core/pull/118506
+[#118510]: https://github.com/home-assistant/core/pull/118510
+[#118512]: https://github.com/home-assistant/core/pull/118512
+[#118514]: https://github.com/home-assistant/core/pull/118514
+[#118515]: https://github.com/home-assistant/core/pull/118515
+[#118517]: https://github.com/home-assistant/core/pull/118517
+[#118518]: https://github.com/home-assistant/core/pull/118518
+[#118520]: https://github.com/home-assistant/core/pull/118520
+[#118521]: https://github.com/home-assistant/core/pull/118521
+[#118522]: https://github.com/home-assistant/core/pull/118522
+[#118526]: https://github.com/home-assistant/core/pull/118526
+[#118531]: https://github.com/home-assistant/core/pull/118531
+[#118532]: https://github.com/home-assistant/core/pull/118532
+[#118535]: https://github.com/home-assistant/core/pull/118535
+[#118538]: https://github.com/home-assistant/core/pull/118538
+[#118539]: https://github.com/home-assistant/core/pull/118539
+[#118546]: https://github.com/home-assistant/core/pull/118546
+[#118549]: https://github.com/home-assistant/core/pull/118549
+[#118554]: https://github.com/home-assistant/core/pull/118554
+[#118555]: https://github.com/home-assistant/core/pull/118555
+[#118556]: https://github.com/home-assistant/core/pull/118556
+[#118559]: https://github.com/home-assistant/core/pull/118559
+[#118566]: https://github.com/home-assistant/core/pull/118566
+[#118577]: https://github.com/home-assistant/core/pull/118577
+[#118582]: https://github.com/home-assistant/core/pull/118582
+[#118583]: https://github.com/home-assistant/core/pull/118583
+[#118590]: https://github.com/home-assistant/core/pull/118590
+[#118592]: https://github.com/home-assistant/core/pull/118592
+[#118593]: https://github.com/home-assistant/core/pull/118593
+[#118594]: https://github.com/home-assistant/core/pull/118594
+[#118608]: https://github.com/home-assistant/core/pull/118608
+[#118616]: https://github.com/home-assistant/core/pull/118616
+[#118619]: https://github.com/home-assistant/core/pull/118619
+[#118620]: https://github.com/home-assistant/core/pull/118620
+[#118633]: https://github.com/home-assistant/core/pull/118633
+[#118640]: https://github.com/home-assistant/core/pull/118640
+[#118643]: https://github.com/home-assistant/core/pull/118643
+[#118644]: https://github.com/home-assistant/core/pull/118644
+[#118655]: https://github.com/home-assistant/core/pull/118655
+[#118658]: https://github.com/home-assistant/core/pull/118658
+[#118662]: https://github.com/home-assistant/core/pull/118662
+[#118669]: https://github.com/home-assistant/core/pull/118669
+[#118671]: https://github.com/home-assistant/core/pull/118671
+[#118686]: https://github.com/home-assistant/core/pull/118686
+[#118697]: https://github.com/home-assistant/core/pull/118697
+[#118699]: https://github.com/home-assistant/core/pull/118699
+[#118702]: https://github.com/home-assistant/core/pull/118702
+[#118703]: https://github.com/home-assistant/core/pull/118703
+[#118705]: https://github.com/home-assistant/core/pull/118705
+[#118707]: https://github.com/home-assistant/core/pull/118707
+[#118708]: https://github.com/home-assistant/core/pull/118708
+[#118712]: https://github.com/home-assistant/core/pull/118712
+[#118713]: https://github.com/home-assistant/core/pull/118713
+[#118714]: https://github.com/home-assistant/core/pull/118714
+[#118718]: https://github.com/home-assistant/core/pull/118718
+[#118720]: https://github.com/home-assistant/core/pull/118720
+[#118724]: https://github.com/home-assistant/core/pull/118724
+[#118734]: https://github.com/home-assistant/core/pull/118734
+[#118735]: https://github.com/home-assistant/core/pull/118735
+[#118736]: https://github.com/home-assistant/core/pull/118736
+[#118744]: https://github.com/home-assistant/core/pull/118744
+[#118745]: https://github.com/home-assistant/core/pull/118745
+[#118746]: https://github.com/home-assistant/core/pull/118746
+[#118747]: https://github.com/home-assistant/core/pull/118747
+[#118748]: https://github.com/home-assistant/core/pull/118748
+[#118749]: https://github.com/home-assistant/core/pull/118749
+[#118752]: https://github.com/home-assistant/core/pull/118752
+[#118753]: https://github.com/home-assistant/core/pull/118753
+[#118762]: https://github.com/home-assistant/core/pull/118762
+[#118768]: https://github.com/home-assistant/core/pull/118768
+[#118773]: https://github.com/home-assistant/core/pull/118773
+[#118776]: https://github.com/home-assistant/core/pull/118776
+[#118777]: https://github.com/home-assistant/core/pull/118777
+[#118778]: https://github.com/home-assistant/core/pull/118778
+[#118781]: https://github.com/home-assistant/core/pull/118781
+[#118782]: https://github.com/home-assistant/core/pull/118782
+[#118784]: https://github.com/home-assistant/core/pull/118784
+[#118798]: https://github.com/home-assistant/core/pull/118798
+[#118804]: https://github.com/home-assistant/core/pull/118804
+[#118805]: https://github.com/home-assistant/core/pull/118805
+[#118806]: https://github.com/home-assistant/core/pull/118806
+[#118811]: https://github.com/home-assistant/core/pull/118811
+[#118822]: https://github.com/home-assistant/core/pull/118822
+[#118830]: https://github.com/home-assistant/core/pull/118830
+[#118839]: https://github.com/home-assistant/core/pull/118839
+[#118842]: https://github.com/home-assistant/core/pull/118842
+[#118853]: https://github.com/home-assistant/core/pull/118853
+[#118855]: https://github.com/home-assistant/core/pull/118855
+[#118864]: https://github.com/home-assistant/core/pull/118864
+[#118872]: https://github.com/home-assistant/core/pull/118872
+[#118875]: https://github.com/home-assistant/core/pull/118875
+[#118890]: https://github.com/home-assistant/core/pull/118890
+[#118893]: https://github.com/home-assistant/core/pull/118893
+[#68992]: https://github.com/home-assistant/core/pull/68992
+[#84464]: https://github.com/home-assistant/core/pull/84464
+[#92640]: https://github.com/home-assistant/core/pull/92640
+[@AngellusMortis]: https://github.com/AngellusMortis
+[@AnilDaoud]: https://github.com/AnilDaoud
+[@Anrijs]: https://github.com/Anrijs
+[@Bre77]: https://github.com/Bre77
+[@Bygood91]: https://github.com/Bygood91
+[@CFenner]: https://github.com/CFenner
+[@Cereal2nd]: https://github.com/Cereal2nd
+[@CoRfr]: https://github.com/CoRfr
+[@DCSBL]: https://github.com/DCSBL
+[@EuleMitKeule]: https://github.com/EuleMitKeule
+[@FWeinb]: https://github.com/FWeinb
+[@FedDam]: https://github.com/FedDam
+[@Floris272]: https://github.com/Floris272
+[@G-Two]: https://github.com/G-Two
+[@Galorhallen]: https://github.com/Galorhallen
+[@GuySie]: https://github.com/GuySie
+[@HipsterBrown]: https://github.com/HipsterBrown
+[@IceBotYT]: https://github.com/IceBotYT
+[@JakeMartin-ICL]: https://github.com/JakeMartin-ICL
+[@JeromeHXP]: https://github.com/JeromeHXP
+[@JonDeeming]: https://github.com/JonDeeming
+[@Kane610]: https://github.com/Kane610
+[@Lash-L]: https://github.com/Lash-L
+[@Links2004]: https://github.com/Links2004
+[@MatthewFlamm]: https://github.com/MatthewFlamm
+[@NECH2004]: https://github.com/NECH2004
+[@NasaGeek]: https://github.com/NasaGeek
+[@Nezz]: https://github.com/Nezz
+[@Noltari]: https://github.com/Noltari
+[@PeteRager]: https://github.com/PeteRager
+[@PhilRW]: https://github.com/PhilRW
+[@Poshy163]: https://github.com/Poshy163
+[@Quentame]: https://github.com/Quentame
+[@RJPoelstra]: https://github.com/RJPoelstra
+[@SLaks]: https://github.com/SLaks
+[@Shulyaka]: https://github.com/Shulyaka
+[@Shutgun]: https://github.com/Shutgun
+[@Sibgatulin]: https://github.com/Sibgatulin
+[@TheJulianJES]: https://github.com/TheJulianJES
+[@Thomas55555]: https://github.com/Thomas55555
+[@Troon]: https://github.com/Troon
+[@Ulfmerbold2000]: https://github.com/Ulfmerbold2000
+[@abmantis]: https://github.com/abmantis
+[@agners]: https://github.com/agners
+[@agrauballe]: https://github.com/agrauballe
+[@albertogeniola]: https://github.com/albertogeniola
+[@allenporter]: https://github.com/allenporter
+[@allistermaguire]: https://github.com/allistermaguire
+[@andarotajo]: https://github.com/andarotajo
+[@andrewsayre]: https://github.com/andrewsayre
+[@angelnu]: https://github.com/angelnu
+[@arturyak]: https://github.com/arturyak
+[@astrandb]: https://github.com/astrandb
+[@austinmroczek]: https://github.com/austinmroczek
+[@autinerd]: https://github.com/autinerd
+[@bachya]: https://github.com/bachya
+[@bajansen]: https://github.com/bajansen
+[@balloob]: https://github.com/balloob
+[@basbruss]: https://github.com/basbruss
+[@bdraco]: https://github.com/bdraco
+[@benaclejames]: https://github.com/benaclejames
+[@benvm]: https://github.com/benvm
+[@bieniu]: https://github.com/bieniu
+[@blob810]: https://github.com/blob810
+[@boswelja]: https://github.com/boswelja
+[@bouwew]: https://github.com/bouwew
+[@bramkragten]: https://github.com/bramkragten
+[@brg468]: https://github.com/brg468
+[@c0mputerguru]: https://github.com/c0mputerguru
+[@catsmanac]: https://github.com/catsmanac
+[@cdce8p]: https://github.com/cdce8p
+[@chatziko]: https://github.com/chatziko
+[@chemelli74]: https://github.com/chemelli74
+[@chishm]: https://github.com/chishm
+[@claha]: https://github.com/claha
+[@cottsay]: https://github.com/cottsay
+[@ctalkington]: https://github.com/ctalkington
+[@d-ylee]: https://github.com/d-ylee
+[@davet2001]: https://github.com/davet2001
+[@dfaour]: https://github.com/dfaour
+[@dgomes]: https://github.com/dgomes
+[@dieselrabbit]: https://github.com/dieselrabbit
+[@dknowles2]: https://github.com/dknowles2
+[@dontinelli]: https://github.com/dontinelli
+[@edenhaus]: https://github.com/edenhaus
+[@eifinger]: https://github.com/eifinger
+[@elmurato]: https://github.com/elmurato
+[@elupus]: https://github.com/elupus
+[@emontnemery]: https://github.com/emontnemery
+[@epenet]: https://github.com/epenet
+[@erwindouna]: https://github.com/erwindouna
+[@esciara]: https://github.com/esciara
+[@ethemcemozkan]: https://github.com/ethemcemozkan
+[@farmio]: https://github.com/farmio
+[@fredrike]: https://github.com/fredrike
+[@freekode]: https://github.com/freekode
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@gnumpi]: https://github.com/gnumpi
+[@hahn-th]: https://github.com/hahn-th
+[@iMicknl]: https://github.com/iMicknl
+[@jbouwh]: https://github.com/jbouwh
+[@jesserockz]: https://github.com/jesserockz
+[@jhollowe]: https://github.com/jhollowe
+[@jjlawren]: https://github.com/jjlawren
+[@joostlek]: https://github.com/joostlek
+[@jpbede]: https://github.com/jpbede
+[@jschlyter]: https://github.com/jschlyter
+[@kaareseras]: https://github.com/kaareseras
+[@kamiyo]: https://github.com/kamiyo
+[@karwosts]: https://github.com/karwosts
+[@kibergus]: https://github.com/kibergus
+[@kingy444]: https://github.com/kingy444
+[@laurence-presland]: https://github.com/laurence-presland
+[@lboue]: https://github.com/lboue
+[@luca-angemi]: https://github.com/luca-angemi
+[@ludeeus]: https://github.com/ludeeus
+[@lunmay]: https://github.com/lunmay
+[@m10x]: https://github.com/m10x
+[@marcelveldt]: https://github.com/marcelveldt
+[@marcolivierarsenault]: https://github.com/marcolivierarsenault
+[@matrixd2]: https://github.com/matrixd2
+[@mawoka-myblock]: https://github.com/mawoka-myblock
+[@mback2k]: https://github.com/mback2k
+[@mdegat01]: https://github.com/mdegat01
+[@mib1185]: https://github.com/mib1185
+[@mj23000]: https://github.com/mj23000
+[@mkmer]: https://github.com/mkmer
+[@mrpasztoradam]: https://github.com/mrpasztoradam
+[@mtielen]: https://github.com/mtielen
+[@nopoz]: https://github.com/nopoz
+[@ollo69]: https://github.com/ollo69
+[@osohotwateriot]: https://github.com/osohotwateriot
+[@pantonvich]: https://github.com/pantonvich
+[@pemontto]: https://github.com/pemontto
+[@pfrazer]: https://github.com/pfrazer
+[@piitaya]: https://github.com/piitaya
+[@prabhjotsbhatia-ca]: https://github.com/prabhjotsbhatia-ca
+[@puddly]: https://github.com/puddly
+[@rale]: https://github.com/rale
+[@raman325]: https://github.com/raman325
+[@rikroe]: https://github.com/rikroe
+[@scop]: https://github.com/scop
+[@shelvacu]: https://github.com/shelvacu
+[@slovdahl]: https://github.com/slovdahl
+[@starkillerOG]: https://github.com/starkillerOG
+[@swcloudgenie]: https://github.com/swcloudgenie
+[@synesthesiam]: https://github.com/synesthesiam
+[@systemcrash]: https://github.com/systemcrash
+[@teharris1]: https://github.com/teharris1
+[@thecode]: https://github.com/thecode
+[@thejeffreystone]: https://github.com/thejeffreystone
+[@thomaskistler]: https://github.com/thomaskistler
+[@thytterdal]: https://github.com/thytterdal
+[@tichris0]: https://github.com/tichris0
+[@timmo001]: https://github.com/timmo001
+[@tizianodeg]: https://github.com/tizianodeg
+[@tkdrob]: https://github.com/tkdrob
+[@tr4nt0r]: https://github.com/tr4nt0r
+[@tronikos]: https://github.com/tronikos
+[@tsvi]: https://github.com/tsvi
+[@wittypluck]: https://github.com/wittypluck
+[@yuvalabou]: https://github.com/yuvalabou
+[@zweckj]: https://github.com/zweckj
+[@zxdavb]: https://github.com/zxdavb
+[abode docs]: /integrations/abode/
+[accuweather docs]: /integrations/accuweather/
+[acmeda docs]: /integrations/acmeda/
+[ads docs]: /integrations/ads/
+[advantage_air docs]: /integrations/advantage_air/
+[aemet docs]: /integrations/aemet/
+[aftership docs]: /integrations/aftership/
+[agent_dvr docs]: /integrations/agent_dvr/
+[airgradient docs]: /integrations/airgradient/
+[airly docs]: /integrations/airly/
+[airnow docs]: /integrations/airnow/
+[airq docs]: /integrations/airq/
+[airthings docs]: /integrations/airthings/
+[airthings_ble docs]: /integrations/airthings_ble/
+[airtouch5 docs]: /integrations/airtouch5/
+[airvisual_pro docs]: /integrations/airvisual_pro/
+[airzone_cloud docs]: /integrations/airzone_cloud/
+[aladdin_connect docs]: /integrations/aladdin_connect/
+[alarm_control_panel docs]: /integrations/alarm_control_panel/
+[alarmdecoder docs]: /integrations/alarmdecoder/
+[ambiclimate docs]: /integrations/ambiclimate/
+[ambient_station docs]: /integrations/ambient_station/
+[analytics_insights docs]: /integrations/analytics_insights/
+[androidtv docs]: /integrations/androidtv/
+[androidtv_remote docs]: /integrations/androidtv_remote/
+[anova docs]: /integrations/anova/
+[apple_tv docs]: /integrations/apple_tv/
+[apprise docs]: /integrations/apprise/
+[aprs docs]: /integrations/aprs/
+[apsystems docs]: /integrations/apsystems/
+[aranet docs]: /integrations/aranet/
+[arcam_fmj docs]: /integrations/arcam_fmj/
+[asuswrt docs]: /integrations/asuswrt/
+[august docs]: /integrations/august/
+[aurora docs]: /integrations/aurora/
+[aurora_abb_powerone docs]: /integrations/aurora_abb_powerone/
+[auth docs]: /integrations/auth/
+[axis docs]: /integrations/axis/
+[azure_data_explorer docs]: /integrations/azure_data_explorer/
+[baf docs]: /integrations/baf/
+[balboa docs]: /integrations/balboa/
+[bang_olufsen docs]: /integrations/bang_olufsen/
+[blink docs]: /integrations/blink/
+[blue_current docs]: /integrations/blue_current/
+[blueprint docs]: /integrations/blueprint/
+[bluetooth docs]: /integrations/bluetooth/
+[bmw_connected_drive docs]: /integrations/bmw_connected_drive/
+[bond docs]: /integrations/bond/
+[bosch_shc docs]: /integrations/bosch_shc/
+[braviatv docs]: /integrations/braviatv/
+[bring docs]: /integrations/bring/
+[brother docs]: /integrations/brother/
+[bthome docs]: /integrations/bthome/
+[calendar docs]: /integrations/calendar/
+[camera docs]: /integrations/camera/
+[ccm15 docs]: /integrations/ccm15/
+[cert_expiry docs]: /integrations/cert_expiry/
+[climate docs]: /integrations/climate/
+[cloud docs]: /integrations/cloud/
+[co2signal docs]: /integrations/co2signal/
+[command_line docs]: /integrations/command_line/
+[config docs]: /integrations/config/
+[conversation docs]: /integrations/conversation/
+[cover docs]: /integrations/cover/
+[daikin docs]: /integrations/daikin/
+[deconz docs]: /integrations/deconz/
+[demo docs]: /integrations/demo/
+[devolo_home_control docs]: /integrations/devolo_home_control/
+[devolo_home_network docs]: /integrations/devolo_home_network/
+[dhcp docs]: /integrations/dhcp/
+[diagnostics docs]: /integrations/diagnostics/
+[discovergy docs]: /integrations/discovergy/
+[dlna_dmr docs]: /integrations/dlna_dmr/
+[dnsip docs]: /integrations/dnsip/
+[drop_connect docs]: /integrations/drop_connect/
+[dsmr_reader docs]: /integrations/dsmr_reader/
+[duotecno docs]: /integrations/duotecno/
+[dwd_weather_warnings docs]: /integrations/dwd_weather_warnings/
+[ecobee docs]: /integrations/ecobee/
+[ecovacs docs]: /integrations/ecovacs/
+[ecowitt docs]: /integrations/ecowitt/
+[efergy docs]: /integrations/efergy/
+[elgato docs]: /integrations/elgato/
+[elkm1 docs]: /integrations/elkm1/
+[elmax docs]: /integrations/elmax/
+[emonitor docs]: /integrations/emonitor/
+[energy docs]: /integrations/energy/
+[enphase_envoy docs]: /integrations/enphase_envoy/
+[environment_canada docs]: /integrations/environment_canada/
+[envisalink docs]: /integrations/envisalink/
+[epic_games_store docs]: /integrations/epic_games_store/
+[eq3btsmart docs]: /integrations/eq3btsmart/
+[esphome docs]: /integrations/esphome/
+[evil_genius_labs docs]: /integrations/evil_genius_labs/
+[evohome docs]: /integrations/evohome/
+[feedreader docs]: /integrations/feedreader/
+[file docs]: /integrations/file/
+[filesize docs]: /integrations/filesize/
+[firmata docs]: /integrations/firmata/
+[fitbit docs]: /integrations/fitbit/
+[flexit_bacnet docs]: /integrations/flexit_bacnet/
+[flo docs]: /integrations/flo/
+[flume docs]: /integrations/flume/
+[folder_watcher docs]: /integrations/folder_watcher/
+[forecast_solar docs]: /integrations/forecast_solar/
+[fritz docs]: /integrations/fritz/
+[fritzbox docs]: /integrations/fritzbox/
+[fritzbox_callmonitor docs]: /integrations/fritzbox_callmonitor/
+[fronius docs]: /integrations/fronius/
+[frontend docs]: /integrations/frontend/
+[fyta docs]: /integrations/fyta/
+[generic docs]: /integrations/generic/
+[generic_hygrostat docs]: /integrations/generic_hygrostat/
+[generic_thermostat docs]: /integrations/generic_thermostat/
+[gios docs]: /integrations/gios/
+[github docs]: /integrations/github/
+[glances docs]: /integrations/glances/
+[gogogate2 docs]: /integrations/gogogate2/
+[google docs]: /integrations/google/
+[google_assistant docs]: /integrations/google_assistant/
+[google_generative_ai_conversation docs]: /integrations/google_generative_ai_conversation/
+[google_mail docs]: /integrations/google_mail/
+[google_tasks docs]: /integrations/google_tasks/
+[google_translate docs]: /integrations/google_translate/
+[govee_ble docs]: /integrations/govee_ble/
+[govee_light_local docs]: /integrations/govee_light_local/
+[gree docs]: /integrations/gree/
+[group docs]: /integrations/group/
+[guardian docs]: /integrations/guardian/
+[habitica docs]: /integrations/habitica/
+[harmony docs]: /integrations/harmony/
+[hassio docs]: /integrations/hassio/
+[hdmi_cec docs]: /integrations/hdmi_cec/
+[history docs]: /integrations/history/
+[holiday docs]: /integrations/holiday/
+[homeassistant docs]: /integrations/homeassistant/
+[homeassistant_alerts docs]: /integrations/homeassistant_alerts/
+[homeassistant_sky_connect docs]: /integrations/homeassistant_sky_connect/
+[homekit docs]: /integrations/homekit/
+[homematicip_cloud docs]: /integrations/homematicip_cloud/
+[homewizard docs]: /integrations/homewizard/
+[honeywell docs]: /integrations/honeywell/
+[http docs]: /integrations/http/
+[huawei_lte docs]: /integrations/huawei_lte/
+[hue docs]: /integrations/hue/
+[husqvarna_automower docs]: /integrations/husqvarna_automower/
+[hydrawise docs]: /integrations/hydrawise/
+[ialarm docs]: /integrations/ialarm/
+[ibeacon docs]: /integrations/ibeacon/
+[idasen_desk docs]: /integrations/idasen_desk/
+[image_upload docs]: /integrations/image_upload/
+[imgw_pib docs]: /integrations/imgw_pib/
+[input_datetime docs]: /integrations/input_datetime/
+[insteon docs]: /integrations/insteon/
+[integration docs]: /integrations/integration/
+[intent docs]: /integrations/intent/
+[intent_script docs]: /integrations/intent_script/
+[ipp docs]: /integrations/ipp/
+[iqvia docs]: /integrations/iqvia/
+[isal docs]: /integrations/isal/
+[jellyfin docs]: /integrations/jellyfin/
+[jewish_calendar docs]: /integrations/jewish_calendar/
+[kaiterra docs]: /integrations/kaiterra/
+[kitchen_sink docs]: /integrations/kitchen_sink/
+[knx docs]: /integrations/knx/
+[kostal_plenticore docs]: /integrations/kostal_plenticore/
+[lamarzocco docs]: /integrations/lamarzocco/
+[launch_library docs]: /integrations/launch_library/
+[light docs]: /integrations/light/
+[linear_garage_door docs]: /integrations/linear_garage_door/
+[local_calendar docs]: /integrations/local_calendar/
+[local_todo docs]: /integrations/local_todo/
+[lock docs]: /integrations/lock/
+[logbook docs]: /integrations/logbook/
+[lovelace docs]: /integrations/lovelace/
+[luftdaten docs]: /integrations/luftdaten/
+[lutron docs]: /integrations/lutron/
+[manual_mqtt docs]: /integrations/manual_mqtt/
+[mastodon docs]: /integrations/mastodon/
+[matter docs]: /integrations/matter/
+[media_extractor docs]: /integrations/media_extractor/
+[media_player docs]: /integrations/media_player/
+[media_source docs]: /integrations/media_source/
+[melnor docs]: /integrations/melnor/
+[meraki docs]: /integrations/meraki/
+[met docs]: /integrations/met/
+[meteo_france docs]: /integrations/meteo_france/
+[metoffice docs]: /integrations/metoffice/
+[microBees docs]: /integrations/microBees/
+[mikrotik docs]: /integrations/mikrotik/
+[mill docs]: /integrations/mill/
+[minecraft_server docs]: /integrations/minecraft_server/
+[modern_forms docs]: /integrations/modern_forms/
+[moehlenhoff_alpha2 docs]: /integrations/moehlenhoff_alpha2/
+[monzo docs]: /integrations/monzo/
+[motionmount docs]: /integrations/motionmount/
+[mqtt docs]: /integrations/mqtt/
+[myuplink docs]: /integrations/myuplink/
+[nam docs]: /integrations/nam/
+[nest docs]: /integrations/nest/
+[nextcloud docs]: /integrations/nextcloud/
+[nextdns docs]: /integrations/nextdns/
+[nibe_heatpump docs]: /integrations/nibe_heatpump/
+[notify docs]: /integrations/notify/
+[nuki docs]: /integrations/nuki/
+[number docs]: /integrations/number/
+[nut docs]: /integrations/nut/
+[nws docs]: /integrations/nws/
+[ollama docs]: /integrations/ollama/
+[omnilogic docs]: /integrations/omnilogic/
+[onboarding docs]: /integrations/onboarding/
+[ondilo_ico docs]: /integrations/ondilo_ico/
+[onewire docs]: /integrations/onewire/
+[openai_conversation docs]: /integrations/openai_conversation/
+[opengarage docs]: /integrations/opengarage/
+[openweathermap docs]: /integrations/openweathermap/
+[opower docs]: /integrations/opower/
+[osoenergy docs]: /integrations/osoenergy/
+[overkiz docs]: /integrations/overkiz/
+[p1_monitor docs]: /integrations/p1_monitor/
+[pegel_online docs]: /integrations/pegel_online/
+[philips_js docs]: /integrations/philips_js/
+[pi_hole docs]: /integrations/pi_hole/
+[ping docs]: /integrations/ping/
+[plaato docs]: /integrations/plaato/
+[plex docs]: /integrations/plex/
+[plugwise docs]: /integrations/plugwise/
+[point docs]: /integrations/point/
+[poolsense docs]: /integrations/poolsense/
+[powerwall docs]: /integrations/powerwall/
+[profiler docs]: /integrations/profiler/
+[proximity docs]: /integrations/proximity/
+[prusalink docs]: /integrations/prusalink/
+[pure_energie docs]: /integrations/pure_energie/
+[pvpc_hourly_pricing docs]: /integrations/pvpc_hourly_pricing/
+[rachio docs]: /integrations/rachio/
+[radarr docs]: /integrations/radarr/
+[radio_browser docs]: /integrations/radio_browser/
+[rainbird docs]: /integrations/rainbird/
+[rainforest_eagle docs]: /integrations/rainforest_eagle/
+[rainmachine docs]: /integrations/rainmachine/
+[recorder docs]: /integrations/recorder/
+[renault docs]: /integrations/renault/
+[reolink docs]: /integrations/reolink/
+[repairs docs]: /integrations/repairs/
+[rest_command docs]: /integrations/rest_command/
+[rflink docs]: /integrations/rflink/
+[risco docs]: /integrations/risco/
+[roborock docs]: /integrations/roborock/
+[rtsp_to_webrtc docs]: /integrations/rtsp_to_webrtc/
+[samsungtv docs]: /integrations/samsungtv/
+[scrape docs]: /integrations/scrape/
+[screenlogic docs]: /integrations/screenlogic/
+[script docs]: /integrations/script/
+[sensibo docs]: /integrations/sensibo/
+[sensor docs]: /integrations/sensor/
+[sentry docs]: /integrations/sentry/
+[senz docs]: /integrations/senz/
+[serial docs]: /integrations/serial/
+[sharkiq docs]: /integrations/sharkiq/
+[shelly docs]: /integrations/shelly/
+[smartthings docs]: /integrations/smartthings/
+[smhi docs]: /integrations/smhi/
+[snapcast docs]: /integrations/snapcast/
+[snmp docs]: /integrations/snmp/
+[solax docs]: /integrations/solax/
+[sonos docs]: /integrations/sonos/
+[speedtestdotnet docs]: /integrations/speedtestdotnet/
+[spotify docs]: /integrations/spotify/
+[sql docs]: /integrations/sql/
+[starlink docs]: /integrations/starlink/
+[subaru docs]: /integrations/subaru/
+[sun docs]: /integrations/sun/
+[surepetcare docs]: /integrations/surepetcare/
+[switchbot_cloud docs]: /integrations/switchbot_cloud/
+[switcher_kis docs]: /integrations/switcher_kis/
+[synology_dsm docs]: /integrations/synology_dsm/
+[system_bridge docs]: /integrations/system_bridge/
+[systemmonitor docs]: /integrations/systemmonitor/
+[tado docs]: /integrations/tado/
+[tag docs]: /integrations/tag/
+[tailscale docs]: /integrations/tailscale/
+[tailwind docs]: /integrations/tailwind/
+[tankerkoenig docs]: /integrations/tankerkoenig/
+[tasmota docs]: /integrations/tasmota/
+[tedee docs]: /integrations/tedee/
+[telegram_bot docs]: /integrations/telegram_bot/
+[tellduslive docs]: /integrations/tellduslive/
+[template docs]: /integrations/template/
+[tesla_wall_connector docs]: /integrations/tesla_wall_connector/
+[teslemetry docs]: /integrations/teslemetry/
+[tessie docs]: /integrations/tessie/
+[thethingsnetwork docs]: /integrations/thethingsnetwork/
+[thread docs]: /integrations/thread/
+[tibber docs]: /integrations/tibber/
+[tolo docs]: /integrations/tolo/
+[tomorrowio docs]: /integrations/tomorrowio/
+[totalconnect docs]: /integrations/totalconnect/
+[traccar_server docs]: /integrations/traccar_server/
+[tractive docs]: /integrations/tractive/
+[trafikverket_camera docs]: /integrations/trafikverket_camera/
+[trafikverket_ferry docs]: /integrations/trafikverket_ferry/
+[trafikverket_train docs]: /integrations/trafikverket_train/
+[trafikverket_weatherstation docs]: /integrations/trafikverket_weatherstation/
+[tuya docs]: /integrations/tuya/
+[twentemilieu docs]: /integrations/twentemilieu/
+[twitch docs]: /integrations/twitch/
+[unifi docs]: /integrations/unifi/
+[unifiprotect docs]: /integrations/unifiprotect/
+[universal docs]: /integrations/universal/
+[upcloud docs]: /integrations/upcloud/
+[upnp docs]: /integrations/upnp/
+[utility_meter docs]: /integrations/utility_meter/
+[v2c docs]: /integrations/v2c/
+[vacuum docs]: /integrations/vacuum/
+[vallox docs]: /integrations/vallox/
+[velbus docs]: /integrations/velbus/
+[venstar docs]: /integrations/venstar/
+[vera docs]: /integrations/vera/
+[vesync docs]: /integrations/vesync/
+[viam docs]: /integrations/viam/
+[vicare docs]: /integrations/vicare/
+[vizio docs]: /integrations/vizio/
+[vlc_telnet docs]: /integrations/vlc_telnet/
+[vodafone_station docs]: /integrations/vodafone_station/
+[waqi docs]: /integrations/waqi/
+[water_heater docs]: /integrations/water_heater/
+[waze_travel_time docs]: /integrations/waze_travel_time/
+[weather docs]: /integrations/weather/
+[webmin docs]: /integrations/webmin/
+[webostv docs]: /integrations/webostv/
+[websocket_api docs]: /integrations/websocket_api/
+[wemo docs]: /integrations/wemo/
+[whirlpool docs]: /integrations/whirlpool/
+[withings docs]: /integrations/withings/
+[wiz docs]: /integrations/wiz/
+[wled docs]: /integrations/wled/
+[wolflink docs]: /integrations/wolflink/
+[workday docs]: /integrations/workday/
+[wyoming docs]: /integrations/wyoming/
+[xbox docs]: /integrations/xbox/
+[xiaomi_ble docs]: /integrations/xiaomi_ble/
+[xmpp docs]: /integrations/xmpp/
+[yale_smart_alarm docs]: /integrations/yale_smart_alarm/
+[yalexs_ble docs]: /integrations/yalexs_ble/
+[yolink docs]: /integrations/yolink/
+[youless docs]: /integrations/youless/
+[youtube docs]: /integrations/youtube/
+[zamg docs]: /integrations/zamg/
+[zeversolar docs]: /integrations/zeversolar/
+[zha docs]: /integrations/zha/
+[zodiac docs]: /integrations/zodiac/
+[zone docs]: /integrations/zone/
+[zwave_js docs]: /integrations/zwave_js/
\ No newline at end of file
diff --git a/source/common-tasks/container.markdown b/source/common-tasks/container.markdown
index 18464daa94c..bba727053b6 100644
--- a/source/common-tasks/container.markdown
+++ b/source/common-tasks/container.markdown
@@ -3,6 +3,9 @@ title: "Common tasks - Container"
description: "Common tasks for Home Assistant Container"
installation: container
---
+
+## Update
+
{% include common-tasks/update.md %}
{% include common-tasks/specific_version.md %}
{% include common-tasks/beta_version.md %}
diff --git a/source/common-tasks/core.markdown b/source/common-tasks/core.markdown
index 04066e649f2..60ea197ac7e 100644
--- a/source/common-tasks/core.markdown
+++ b/source/common-tasks/core.markdown
@@ -3,6 +3,9 @@ title: "Common tasks - Core"
description: "Common tasks for Home Assistant Core"
installation: core
---
+
+## Update
+
{% include common-tasks/update.md %}
{% include common-tasks/specific_version.md %}
{% include common-tasks/beta_version.md %}
diff --git a/source/common-tasks/general.markdown b/source/common-tasks/general.markdown
index 251b9d7d019..e6841034ed4 100644
--- a/source/common-tasks/general.markdown
+++ b/source/common-tasks/general.markdown
@@ -9,4 +9,11 @@ This section provides tasks that do not depend on a specific Home Assistant inst
## Defining a custom polling interval
+Creating an automation for polling gives you more flexibility on when to poll.
+
+Why use an automation instead of changing the integration's configuration for polling?
+
+1. Not all integrations have a configurable polling interval. The homassistant.update_entity service on the other hand works with most of the integrations, no code changes required.
+2. An automation allows you to poll whenever you want. For example, if you have a rate-limited solar panel provider with a maximum number of requests per day, you may want to lower/stop the polling at night but poll more frequently during the day.
+
{% include common-tasks/define_custom_polling.md %}
\ No newline at end of file
diff --git a/source/common-tasks/os.markdown b/source/common-tasks/os.markdown
index 73be58794e5..229c107f940 100644
--- a/source/common-tasks/os.markdown
+++ b/source/common-tasks/os.markdown
@@ -3,21 +3,90 @@ title: "Common tasks - Operating System"
description: "Common tasks for Home Assistant Operating System"
installation: os
installation_name: "Operating System"
+related:
+ - docs: /docs/configuration/
---
This section will provide guides to some common tasks and information which you will need in order to run, maintain, and edit your Home Assistant OS system. For further details on any particular subject, make sure to refer to the documentation for specific add-ons or topics listed here.
-{% include common-tasks/update.md %}
-{% include common-tasks/specific_version.md %}
-{% include common-tasks/beta_version.md %}
-{% include common-tasks/development_version.md %}
-{% include common-tasks/configuration_check.md %}
{% include common-tasks/file_access.md %}
{% include common-tasks/backups.md %}
+
+## Updating Home Assistant
+
+If you have the {% term "Home Assistant Operating System" %} installed, you receive update notifications from different components:
+
+- {% term "Home Assistant Operating System" %}
+- {% term "Home Assistant Supervisor" %}
+- {% term "Home Assistant Core" %}
+- Add-ons, if you have any installed
+
+### Updating the Home Assistant Operating System
+
+Updates of the {% term "Home Assistant Operating System" %} are independent of other updates. They do not trigger repair issues and are usually backward-compatible.
+
+#### Prerequisites
+
+- [Backup](/common-tasks/os/#backups) your installation.
+ - Make sure the backup is downloaded and stored outside of the system.
+ - So that you can restore from that backup in case there is an issue with the system.
+
+#### To update the Home Assistant Operating System
+
+{% tabbed_block %}
+
+- title: Using the UI
+ content: |
+
+ 1. Open the **Settings** panel.
+ 2. On the top you will be presented with an update notification.
+
+ _If you do not see that notification, in the top right, select the three dots menu and select **Check for updates**"._
+
+- title: Using the CLI
+ content: |
+
+ ```bash
+ ha os update
+ ```
+
+ _This updates to the latest version. If you want to update to a specific version instead, use `ha os update --version 12.0`._
+
+{% endtabbed_block %}
+
+#### About boot slots used during the update
+
+The {% term "Home Assistant Operating System" %} uses two boot slots. On first installation, boot slot A is used. After that, on each Operating System update, the other boot slot is updated and reboot is triggered. On that reboot, the system boots from the other boot slot (A ➝ B ➝ A,...). When booting fails, the system automatically uses the previous boot slot, so that it boots from the last working operating system.
+
+#### Changing the boot slot used
+
+You can manually define that the previous boot slot is used. This can be useful in cases where the system boots but something still seems wrong. For example, when the device is no longer correctly detected or you see another issue that might be related to the latest update of the operating system.
+
+1. To check which boot slot is currently in use and what OS versions are installed in the individual slots, in the Home Assistant command line, enter the following command:
+
+ ```bash
+ ha os info
+ ```
+
+2. To change the boot slot, enter the following command:
+ - This will boot into the other (previous) OS version.
+
+ ```bash
+ ha os boot-slot other
+ ```
+
+### Updating Home Assistant Core
+
+{% include common-tasks/update.md %}
{% include common-tasks/network_storage.md %}
{% include common-tasks/commandline.md %}
{% include common-tasks/lost_password.md %}
{% include common-tasks/third-party-addons.md %}
-{% include common-tasks/data_disk.md %}
-{% include common-tasks/flashing_n2_otg.md %}
-{% include common-tasks/enable_i2c.md %}
+{% include common-tasks/configuration_check.md %}
+## Home Assistant Versions
+
+{% include common-tasks/specific_version.md %}
+{% include common-tasks/beta_version.md %}
+{% include common-tasks/development_version.md %}
+
+{% include common-tasks/data_disk.md %}
diff --git a/source/common-tasks/supervised.markdown b/source/common-tasks/supervised.markdown
index 23adfe85603..f1032210cd4 100644
--- a/source/common-tasks/supervised.markdown
+++ b/source/common-tasks/supervised.markdown
@@ -3,15 +3,25 @@ title: "Common tasks - Supervised"
description: "Common tasks for Home Assistant Supervised"
installation: supervised
installation_name: Supervised
+related:
+ - docs: /docs/configuration/
---
-{% include common-tasks/update.md %}
-{% include common-tasks/specific_version.md %}
-{% include common-tasks/beta_version.md %}
-{% include common-tasks/development_version.md %}
-{% include common-tasks/configuration_check.md %}
+
+
{% include common-tasks/file_access.md %}
{% include common-tasks/backups.md %}
+
+## Update
+
+{% include common-tasks/update.md %}
{% include common-tasks/network_storage.md %}
{% include common-tasks/commandline.md %}
{% include common-tasks/lost_password.md %}
-{% include common-tasks/third-party-addons.md %}
\ No newline at end of file
+{% include common-tasks/third-party-addons.md %}
+{% include common-tasks/configuration_check.md %}
+
+## Home Assistant Versions
+
+{% include common-tasks/specific_version.md %}
+{% include common-tasks/beta_version.md %}
+{% include common-tasks/development_version.md %}
\ No newline at end of file
diff --git a/source/dashboards/actions.markdown b/source/dashboards/actions.markdown
index 31de1e1b0aa..0c219a0b3d5 100644
--- a/source/dashboards/actions.markdown
+++ b/source/dashboards/actions.markdown
@@ -1,22 +1,42 @@
---
title: "Actions"
description: "Define what an object does when interacted with."
+related:
+ - docs: /dashboards/button/
+ title: Button card
+ - docs: /dashboards/entities/
+ title: Entities card
+ - docs: /dashboards/glance/
+ title: Glance card
+ - docs: /dashboards/light/
+ title: Light card
+ - docs: /dashboards/picture/
+ title: Picture card
+ - docs: /dashboards/picture-elements/
+ title: Picture element card
+ - docs: /dashboards/picture-entity/
+ title: Picture entity card
+ - docs: /dashboards/picture-glance/
+ title: Picture glance card
---
Some cards have support for tap actions. These actions define what will happen when you tap or hold on an object within a card.
-Actions can be enabled on:
+Actions can be enabled on the following cards:
- [Button](/dashboards/button/)
- [Entities](/dashboards/entities/)
+- [Gauge](/dashboards/gauge/)
- [Glance](/dashboards/glance/)
- [Light](/dashboards/light/)
- [Picture](/dashboards/picture/)
- [Picture element](/dashboards/picture-elements/)
- [Picture entity](/dashboards/picture-entity/)
- [Picture glance](/dashboards/picture-glance/)
+- [Tile](/dashboards/tile/)
+- [Weather forecast](/dashboards/weather-forecast/)
-## Tap-Action
+## Tap action
Action that will be performed when an object on a card is tapped.
@@ -78,7 +98,7 @@ tap_action:
default: none
{% endconfiguration %}
-## Hold Action
+## Hold action
Action that will be performed when an object on a card is tapped, held for at least half a second and then released. Action will only be triggered once, not continuously during hold.
@@ -140,7 +160,7 @@ hold_action:
default: none
{% endconfiguration %}
-## Double-Tap Action
+## Double tap action
Action that will be performed when an object on a card is double-tapped.
diff --git a/source/dashboards/badges.markdown b/source/dashboards/badges.markdown
index 56821d17624..198b11f4105 100644
--- a/source/dashboards/badges.markdown
+++ b/source/dashboards/badges.markdown
@@ -19,7 +19,7 @@ type: state-label
entity: light.living_room
```
-{% configuration state_label %}
+{% configuration state_badge %}
type:
required: true
description: "`state-label`"
@@ -62,12 +62,18 @@ entities:
required: true
description: A list of entity IDs or `entity` objects, see below.
type: list
+conditions:
+ required: false
+ description: List of conditions to check. See [available conditions](#conditions-options).*
+ type: list
state_filter:
- required: true
- description: List of strings representing states or `filter` objects, see below.
+ required: false
+ description: (legacy) List of strings representing states or filters to check. See [available legacy filters](#legacy-state-filters).*
type: list
{% endconfiguration %}
+*one is required (`conditions` or `state_filter`)
+
### Options for entities
If you define entities as objects instead of strings (by adding `entity:` before entity ID), you can add more customization and configurations:
@@ -93,34 +99,227 @@ image:
required: false
description: The URL of an image.
type: string
+conditions:
+ required: false
+ description: List of conditions to check. See [available conditions](#conditions-options).*
+ type: list
state_filter:
required: false
- description: List of strings representing states or `filter` objects, see below.
+ description: (legacy) List of strings representing states or filters to check. See [available legacy filters](#legacy-state-filters).*
type: list
{% endconfiguration %}
-### Options for state filter
+*only one filter will be applied: `conditions` or `state_filter` if `conditions` is not present
-If you define state_filter as objects instead of strings (by adding `value:` before your state value), you can add more customization to your filter:
+## Conditions options
-{% configuration state_filter %}
-value:
+You can specify multiple `conditions`, in which case the entity will be displayed if it matches any condition.
+
+### State
+
+Tests if an entity has a specified state.
+
+```yaml
+type: entity-filter
+entities:
+ - climate.thermostat_living_room
+ - climate.thermostat_bed_room
+conditions:
+ - condition: state
+ state: heat
+```
+
+```yaml
+type: entity-filter
+entities:
+ - climate.thermostat_living_room
+ - climate.thermostat_bed_room
+conditions:
+ - condition: state
+ state_not: "off"
+```
+
+```yaml
+type: entity-filter
+entities:
+ - sensor.gas_station_1
+ - sensor.gas_station_2
+ - sensor.gas_station_3
+conditions:
+ - condition: state
+ state: sensor.gas_station_lowest_price
+```
+
+{% configuration condition_state %}
+condition:
required: true
- description: String representing the state.
+ description: "`state`"
type: string
-operator:
+state:
required: false
- description: Operator to use in the comparison. Can be `==`, `<=`, `<`, `>=`, `>`, `!=` or `regex`.
+ description: Entity state or ID to be equal to this value. Can contain an array of states.*
+ type: [list, string]
+state_not:
+ required: false
+ description: Entity state or ID to not be equal to this value. Can contain an array of states.*
+ type: [list, string]
+{% endconfiguration %}
+
+*one is required (`state` or `state_not`)
+
+### Numeric state
+
+Tests if an entity state matches the thresholds.
+
+```yaml
+type: entity-filter
+entities:
+ - sensor.outside_temperature
+ - sensor.living_room_temperature
+ - sensor.bed_room_temperature
+conditions:
+ - condition: numeric_state
+ above: 10
+ below: 20
+```
+
+{% configuration condition_numeric_state %}
+condition:
+ required: true
+ description: "`numeric_state`"
type: string
-attribute:
+above:
required: false
- description: Attribute of the entity to use instead of the state.
+ description: Entity state or ID to be above this value.*
+ type: string
+below:
+ required: false
+ description: Entity state or ID to be below this value.*
type: string
{% endconfiguration %}
-### Examples
+*at least one is required (`above` or `below`), both are also possible for values between.
-Show only active switches or lights in the house
+### Screen
+
+Specify the visibility of the entity per screen size. Some screen size presets are available in the UI but you can use any CSS media query you want in YAML.
+
+```yaml
+type: entity-filter
+entities:
+ - sensor.outside_temperature
+ - sensor.living_room_temperature
+ - sensor.bed_room_temperature
+conditions:
+ - condition: screen
+ media_query: "(min-width: 1280px)"
+```
+
+{% configuration condition_screen %}
+condition:
+ required: true
+ description: "`screen`"
+ type: string
+media_query:
+ required: true
+ description: Media query to check which screen size are allowed to display the entity.
+ type: string
+{% endconfiguration %}
+
+### User
+
+Specify the visibility of the entity per user.
+
+```yaml
+type: entity-filter
+entities:
+ - sensor.outside_temperature
+ - sensor.living_room_temperature
+ - sensor.bed_room_temperature
+conditions:
+ - condition: user
+ users:
+ - 581fca7fdc014b8b894519cc531f9a04
+```
+
+{% configuration condition_user %}
+condition:
+ required: true
+ description: "`user`"
+ type: string
+users:
+ required: true
+ description: User ID that can see the entity (unique hex value found on the Users configuration page).
+ type: list
+{% endconfiguration %}
+
+### And
+
+Specify that both conditions must be met.
+
+```yaml
+type: entity-filter
+entities:
+ - sensor.outside_temperature
+ - sensor.living_room_temperature
+ - sensor.bed_room_temperature
+conditions:
+ - condition: and
+ conditions:
+ - condition: numeric_state
+ above: 0
+ - condition: user
+ users:
+ - 581fca7fdc014b8b894519cc531f9a04
+```
+
+{% configuration condition_and %}
+condition:
+ required: true
+ description: "`and`"
+ type: string
+conditions:
+ required: false
+ description: List of conditions to check. See [available conditions](#conditions-options).
+ type: list
+{% endconfiguration %}
+
+### Or
+
+Specify that at least one of the conditions must be met.
+
+```yaml
+type: entity-filter
+entities:
+ - sensor.outside_temperature
+ - sensor.living_room_temperature
+ - sensor.bed_room_temperature
+conditions:
+ - condition: or
+ conditions:
+ - condition: numeric_state
+ above: 0
+ - condition: user
+ users:
+ - 581fca7fdc014b8b894519cc531f9a04
+```
+
+{% configuration condition_or %}
+condition:
+ required: true
+ description: "`or`"
+ type: string
+conditions:
+ required: false
+ description: List of conditions to check. See [available conditions](#conditions-options).
+ type: list
+{% endconfiguration %}
+
+## Legacy state filters
+
+### String filter
+
+Show only active switches or lights in the house.
```yaml
type: entity-filter
@@ -133,7 +332,47 @@ state_filter:
- "on"
```
-Specify filter for a single entity
+You can also specify multiple `state_filter` conditions, in which case the entity will be displayed if it matches any condition.
+
+If you define `state_filter` as objects instead of strings, you can add more customization to your filter, as described below.
+
+### Operator filter
+
+Tests if an entity state correspond to the applied `operator`.
+
+{% configuration condition_operator %}
+value:
+ required: true
+ description: String representing the state.
+ type: string
+operator:
+ required: true
+ description: Operator to use in the comparison. Can be `==`, `<=`, `<`, `>=`, `>`, `!=`, `in`, `not in`, or `regex`.
+ type: string
+attribute:
+ required: false
+ description: Attribute of the entity to use instead of the state.
+ type: string
+{% endconfiguration %}
+
+#### Examples
+
+Displays everyone who is at home or at work.
+
+```yaml
+type: entity-filter
+entities:
+ - device_tracker.demo_paulus
+ - device_tracker.demo_anne_therese
+ - device_tracker.demo_home_boy
+state_filter:
+ - operator: "=="
+ value: home
+ - operator: "=="
+ value: work
+```
+
+Specify filter for a single entity.
```yaml
type: entity-filter
@@ -150,3 +389,20 @@ entities:
value: 50
attribute: humidity
```
+
+Use a regex filter against entity attributes. This regex filter below looks for expressions that are 1 digit in length and where the number is between 0-7 (so show holidays today or in the next 7 days) and displays those holidays as entities in the Entity Filter badge.
+
+```yaml
+type: entity-filter
+state_filter:
+ - operator: regex
+ value: "^([0-7]{1})$"
+ attribute: eta
+entities:
+ - entity: sensor.upcoming_ical_holidays_0
+ - entity: sensor.upcoming_ical_holidays_1
+ - entity: sensor.upcoming_ical_holidays_2
+ - entity: sensor.upcoming_ical_holidays_3
+ - entity: sensor.upcoming_ical_holidays_4
+show_empty: false
+```
diff --git a/source/dashboards/cards.markdown b/source/dashboards/cards.markdown
index 4f50fa2ba0f..44965b1aa52 100644
--- a/source/dashboards/cards.markdown
+++ b/source/dashboards/cards.markdown
@@ -1,8 +1,110 @@
---
title: "Cards"
-description: "Cards."
+description: "Introduction to the role of cards on the dashboard and how to add a card."
+related:
+ - docs: /dashboards/actions/
+ title: Card tap actions
+ - docs: /dashboards/features/
+ title: Card features
+ - docs: /dashboards/header-footer/
+ title: Card header and footer widgets
+ - docs: /dashboards/views/
+ title: Views
+ - docs: /dashboards/
+ title: Introduction to dashboards
+ - docs: /dashboards/#get-started-with-your-own-dashboard/
+ title: Take control of the default dashboard
---
-Your dashboard is made up of Cards.
+Each dashboard is made up of cards.
-There are several built-in card types, each with their own configuration options. Select a card from the menu to view additional details and the options for that card.
\ No newline at end of file
+
+
+Screenshot of the masonry view with different types of cards.
+
+
+## Card categories
+
+There are several different card types, each with their own configuration options. They can be categorized in terms of their function:
+
+- **Specific to a device type or service**: [alarm](/dashboards/alarm-panel/), [light](/dashboards/light/), [humidifier](/dashboards/humidifier/), [thermostat](/dashboards/thermostat/), [plant status](/dashboards/plant-status/), [media control](/dashboards/media-control/), [weather forecast](/dashboards/weather-forecast/), [to-do list](/dashboards/todo-list/), [map](/dashboards/map/), [logbook](/dashboards/logbook/), [calendar](/dashboards/calendar/)
+- **Grouping other cards**: [vertical stack](/dashboards/vertical-stack/), [horizontal stack](/dashboards/horizontal-stack/), [grid](/dashboards/grid/)
+- **Logic function**: [conditional](/dashboards/conditional/), [entity filter](/dashboards/entity-filter/)
+- **Display generic data**: [sensor](/dashboards/sensor/), [history graph](/dashboards/history-graph/), [statistic](/dashboards/statistic/), [statistics graph](/dashboards/statistics-graph/), [energy](/dashboards/energy/), [gauge](/dashboards/gauge/), [webpage](/dashboards/webpage/)
+- **Control devices and entities**: [button](/dashboards/button/), [entity](/dashboards/entity/)
+- **Display data and control entities**: [area](/dashboards/area/), [picture elements](/dashboards/picture-elements/), [picture glance](/dashboards/picture-glance/)
+
+## Adding cards to your dashboard
+
+A card can be added to a dashboard directly [from the view](#to-add-a-card-from-a-view) where you want to add it, or from the [device page](#to-add-a-card-from-the-device-page).
+
+### To add a card from a view
+
+1. In the bottom right of the view, select **Add card**.
+
+2. There are two methods to add a card:
+ - If you have an idea of what card type you want to use for an entity, add **By card** type:
+ - Browse the list of available cards.
+ - If you are using the **Sections** view, try the **Tile** card in the **Suggested cards** section.
+ 
+
+ - If you want to add cards for multiple entities at once, select **By entity**.
+ - Select the entities from the list.
+ - Then, select **Continue**.
+ 
+
+3. If you want this card to be visible only to specific users or under a certain condition, you can [define those conditions](#show-or-hide-a-card-conditionally).
+4. If you like, define [card actions, features, header and footer widgets](#card-actions-features-header-and-footer-widgets).
+ - Not all cards support these elements. Refer to the documentation of the specific card type.
+5. Select **Add to dashboard**.
+ 
+
+### To add a card from the device page
+
+This method is useful if you are on the **Device** page and want to create a card directly from there.
+
+1. Go to **{% my integrations title="Settings > Devices & services" %}**.
+2. On the integration card of interest, select **Devices**.
+ - If there are multiple devices, select the device from the list.
+3. Add the card:
+ - Find the area of interest, for example **Sensors**, or **Events** and select **Add to Dashboard**.
+ 
+4. In the dialog, select the target dashboard and if you have multiple views, select the view.
+ - Select **Next**.
+ - If you like the card proposal, select **Add to dashboard**.
+ - If you want to change the card, **Pick different card** and choose your card type.
+ - **Result**: The card is added to the selected view.
+ 
+5. To edit the card configuration, open the view to which you added the card.
+ - Select **Edit card**.
+6. If you want this card to be visible only to specific users or under a certain condition, you can [define those conditions](#show-or-hide-a-card-conditionally).
+
+7. If you like, define [card actions, features, header and footer widgets](#card-actions-features-header-and-footer-widgets).
+ - Not all cards support these elements. Refer to the documentation of the specific card type.
+
+## Show or hide a card conditionally
+
+You can choose to show or hide certain cards based on different conditions. The [available conditions](/dashboards/conditional/#card-conditions) are the same as the ones for the conditional card.
+
+1. On the **Visibility** tab, select **Add condition**.
+ - Don't see a **Visibility** tab? It is not available on nested cards:
+ - vertical stack, horizontal stack, and grid card
+2. Select the type of condition, and enter the parameters.
+ - If you define multiple conditions, the section is only shown when all conditions are met.
+ - If you did not define any conditions, the section is always shown, to all users.
+
+## Card actions, features, header and footer widgets
+
+Some cards have support for [tap actions](/dashboards/actions/). These actions define what will happen when you tap or hold on an object within a card.
+
+Some cards have support for [features](/dashboards/features/). These widgets add quick controls to the card. Supported features depend on the card and entity capabilities. Multiple features can be added to a single card.
+
+
+Screenshot of tile cards with features.
+
+
+Some cards have support for [header and footer widgets](/dashboards/header-footer/). These widgets fill up the entire available space in a card.
+
+
+Screenshot of an entities card with a picture header and buttons footer.
+
diff --git a/source/dashboards/dashboards.markdown b/source/dashboards/dashboards.markdown
index 56cdacd8f9e..d8c819955cc 100644
--- a/source/dashboards/dashboards.markdown
+++ b/source/dashboards/dashboards.markdown
@@ -1,15 +1,116 @@
---
-title: "Multiple Dashboards"
+title: "Multiple dashboards"
description: "Multiple powerful and configurable dashboards in Home Assistant."
+related:
+ - docs: /integrations/logbook/
+ title: Logbook integration
+ - docs: /integrations/history/
+ title: History integration
+ - docs: /integrations/todo/
+ title: To-do list integration
+ - docs: /dashboards/views/
+ title: Views
+ - docs: /dashboards/iframe/
+ title: Webpage card
---
You can define multiple dashboards in Home Assistant. Each dashboard can be added to the sidebar. This makes it possible to create separate control dashboards for each individual part of your house.
-You can manage your dashboards via the user interface. Go to **Settings** -> **Dashboards**. Here you can see all defined dashboards and create new ones.
+Under {% my lovelace_dashboards title="**Settings** > **Dashboards**" %}, you can see your own dashboards and some of the predefined ones.
-## Using YAML for the default dashboard
+
+
+Screenshot of the Dashboard list.
+
-To change the default dashboard, create a new file `ui-lovelace.yaml` in your configuration directory and add the following section to your `configuration.yaml` and restart Home Assistant:
+## Home Assistant default dashboards
+
+Home Assistant ships with some dashboards out of the box:
+
+- Overview
+- Energy
+- [Map](#map-dashboard)
+- Logbook
+- History
+- To-do lists
+
+Not all of the predefined dashboards are listed under {% my lovelace_dashboards title="**Settings** > **Dashboards**" %}. The **Logbook** and **History** dashboards are powered by their respective integrations.
+
+### Map dashboard
+
+The predefined **Map** dashboard is populated by the [Map card](/dashboards/map/). You can edit this dashboard like any other dashboard. For example, you can edit the [view](/dashboards/views/) to use the **Sidebar** instead of the default **Panel** view type if you like.
+
+#### Maps and presence detection
+
+If you see a [person](/integrations/person/) on the map, it means you have connected a device that allows [presence detection](/integrations/#presence-detection). This is the case for example if you have the [Home Assistant Companion App](https://companion.home-assistant.io/) on your phone and allowed location tracking.
+
+### Logbook dashboard
+
+The predefined **Logbook** dashboard is powered by the [Logbook integration](/integrations/logbook/). To control which events to show or filter out, refer to the documentation of the Logbook integration.
+
+### History dashboard
+
+The predefined **History** dashboard is powered by the [History integration](/integrations/history/). To learn about the data sources used and how to export data, refer to the documentation of the History integration.
+
+### To-do lists dashboard
+
+The predefined **To-do lists** dashboard is powered by the [To-do integration](/integrations/todo/). To learn how to use to-do and shopping lists, refer to the documentation of the to-do list integration.
+
+## Webpage dashboard
+
+Another available (but not default) dashboard is the webpage dashboard. The webpage dashboard allows you to add and embed a webpage to your dashboard.
+This could be a web page from the internet or a local web page from a local
+machine or device like your router or NAS. The webpage dashboard uses the [webpage card](/dashboards/iframe/).
+
+
+
+This dashboard replaces the old iFrame panel (`iframe_panel`). If you have
+existing panels configured in your YAML configuration, Home Assistant will
+automatically migrate them to the new webpage dashboard on upgrade.
+
+
+
+Note that not every webpage can be embedded due to security restrictions that
+some sites have in place. These restrictions are enforced by your browser and prevent
+embedding them into a Home Assistant dashboard.
+
+## Creating a new dashboard
+
+The default **Overview** dashboard updates itself when you add new devices, as long as you do not edit the default dashboard. If you want a customized dashboard, it is recommended not to change the **Overview** dashboard, but to create a new dashboard instead.
+
+This will leave the default dashboard intact.
+
+1. Go to {% my lovelace_dashboards title="**Settings** > **Dashboards**" %}.
+2. Select **Add dashboard**.
+ 
+3. In the dialog, choose one of the options:
+ - If you want to start with a pre-populated dashboard, choose **Default dashboard**.
+ - If you want to start with a completely empty dashboard, choose **New dashboard from scratch**.
+4. In the **Add new dashboard** dialog, enter a name and select an icon.
+ - Define if this dashboard should be visible only to the admin user.
+ - Define if you want the dashboard to be listed in the sidebar.
+ - Select **Create**.
+ - **Result**: The dashboard is added.
+5. Open your new dashboard and in the top right of the screen, select the
button.
+6. If you chose **Default dashboard**, you need to take control before you can edit it:
+ - The **Edit dashboard** dialog appears.
+ - By editing the dashboard, you are taking over control of this dashboard.
+ - This means that it is no longer automatically updated when new dashboard elements become available.
+ - To continue, in the dialog, select the three dots menu, then select **Take control**.
+7. You can now [add a card](/dashboards/cards/#adding-cards-to-your-dashboard) or [add a view](/dashboards/views/#adding-a-view-to-a-dashboard).
+
+## Deleting a dashboard
+
+If you do not use one of the predefined dashboards, or created a dashboard you no longer need, you can delete that dashboard. It will then no longer show in the sidebar.
+
+1. Go to {% my lovelace_dashboards title="**Settings** > **Dashboards**" %}.
+2. From the list of dashboards, select the dashboard you want to delete.
+3. In the dialog, select **Delete**.
+ 
+
+## Using YAML for the Overview dashboard
+
+To change the **Overview** dashboard, create a new file `ui-lovelace.yaml` in your configuration directory and add the following section to your `configuration.yaml` and restart Home Assistant:
```yaml
lovelace:
@@ -18,9 +119,9 @@ lovelace:
A good way to start this file is to copy and paste the "Raw configuration" from the UI so your manual configuration starts the same as your existing UI.
-- Click `Overview` in your sidebar.
-- Click the three dots menu (top-right) and click on `Edit Dashboard`.
-- Click the three dots menu again and click on `Raw configuration editor`.
+- In your sidebar, select **Overview**.
+- In the top-right corner, select the pencil icon.
+- Select the three dots menu and select **Raw configuration editor**.
- There you see the configuration for your current dashboard. Copy that into the `/ui-lovelace.yaml` file.
Once you take control of your UI via YAML, the Home Assistant interface for modifying it won't be available anymore and new entities will not automatically be added to your UI.
@@ -127,7 +228,6 @@ dashboards:
As a super minimal example of a dashboard config, here's the bare minimum you will need for it to work:
```yaml
-title: My Awesome Home
views:
# View tab title.
- title: Example
@@ -142,7 +242,6 @@ views:
A slightly more advanced example:
```yaml
-title: My Awesome Home
views:
# View tab title.
- title: Example
diff --git a/source/dashboards/features.markdown b/source/dashboards/features.markdown
index fa704c88bc6..093d3393e88 100644
--- a/source/dashboards/features.markdown
+++ b/source/dashboards/features.markdown
@@ -1,6 +1,13 @@
---
title: "Features for dashboard cards"
description: "Decorate your dashboard cards with quick controls."
+related:
+ - docs: /dashboards/humidifier/
+ title: Humidifier card
+ - docs: /dashboards/thermostat/
+ title: Thermostat card
+ - docs: /dashboards/tile/
+ title: Tile card
---
Some dashboard cards have support for features. These widgets add quick controls to the card. Supported features depend on the card and entity capabilities. Multiple features can be added to a single card.
@@ -9,6 +16,12 @@ Some dashboard cards have support for features. These widgets add quick controls
Screenshot of tile cards with features.
+Features can be enabled on the following cards:
+
+- [Humidifier](/dashboards/humidifier/)
+- [Thermostat](/dashboards/thermostat/)
+- [Tile](/dashboards/tile/)
+
## Alarm modes
Widget that displays buttons to arm and disarm an [alarm](/integrations/alarm_control_panel).
@@ -233,6 +246,42 @@ type:
type: string
{% endconfiguration %}
+## Fan preset modes
+
+Widget that displays buttons or icons to control the preset mode for a [fan](/integrations/fan).
+
+
+
+ Screenshot of the tile card with the fan preset modes feature
+
+
+```yaml
+features:
+ - type: "fan-preset-modes"
+ style: "icons"
+ preset_modes:
+ - auto
+ - smart
+ - sleep
+ - 'on'
+```
+
+{% configuration features %}
+type:
+ required: true
+ description: "`fan-preset-modes`"
+ type: string
+style:
+ required: false
+ description: "How the preset modes should be displayed. It can be either `dropdown` or `icons`."
+ type: string
+ default: dropdown
+preset_modes:
+ required: true
+ description: List of preset modes to show on the card. The list can contain any supported preset modes.
+ type: list
+{% endconfiguration %}
+
## Fan speed
Widget that displays speed controls for a [fan](/integrations/fan).
@@ -379,6 +428,48 @@ type:
type: string
{% endconfiguration %}
+## Lock commands
+
+Widget that displays buttons to lock or unlock a [lock](/integrations/lock).
+
+
+
+ Screenshot of the tile card with the lock commands feature
+
+
+```yaml
+features:
+ - type: "lock-commands"
+```
+
+{% configuration features %}
+type:
+ required: true
+ description: "`lock-commands`"
+ type: string
+{% endconfiguration %}
+
+## Lock open door
+
+Widget that displays a button to [open a door](/integrations/lock).
+
+
+
+ Screenshot of the tile card with the lock open door feature
+
+
+```yaml
+features:
+ - type: "lock-open-door"
+```
+
+{% configuration features %}
+type:
+ required: true
+ description: "`lock-open-door`"
+ type: string
+{% endconfiguration %}
+
## Numeric input
Widget that displays a slider or buttons to set the value for a [number](/integrations/number) or [input number](/integrations/input_number).
@@ -448,6 +539,33 @@ type:
type: string
{% endconfiguration %}
+## Update actions
+
+Widget that displays actions to install or skip an [update](/integrations/update).
+
+
+
+ Screenshot of the tile card with update actions feature
+
+
+```yaml
+features:
+ - type: "update-actions"
+ backup: "ask"
+```
+
+{% configuration features %}
+type:
+ required: true
+ description: "`update-actions`"
+ type: string
+backup:
+ required: false
+ description: Whether a backup should be done before updating. The value can be `ask`, `yes`, or `no`. `ask` will open a dialog to ask if a backup should be done.
+ type: list
+ default: ask
+{% endconfiguration %}
+
## Vacuum commands
Widget that displays buttons to control a [vacuum](/integrations/vacuum).
@@ -511,3 +629,4 @@ operation_modes:
description: List of modes to show on the card. The list can contain `electric`, `gas`, `heat_pump`, `eco`, `performance`, `high_demand`, and `off`.
type: list
{% endconfiguration %}
+
diff --git a/source/dashboards/header-footer.markdown b/source/dashboards/header-footer.markdown
index 5e25b424175..2b80e0720eb 100644
--- a/source/dashboards/header-footer.markdown
+++ b/source/dashboards/header-footer.markdown
@@ -1,6 +1,15 @@
---
title: "Headers & Footers for dashboard cards"
description: "Decorate your dashboard cards with header and footer widgets."
+related:
+ - docs: /integrations/entity/
+ title: Entity
+ - docs: /integrations/entities/
+ title: Entities
+ - docs: /integrations/statistics/
+ title: Statistics
+ - docs: /integrations/actions/
+ title: Card actions
---
Some dashboard cards have support for header and footer widgets. These widgets fill up the whole available space in a card.
@@ -9,6 +18,12 @@ Some dashboard cards have support for header and footer widgets. These widgets f
Screenshot of an entities card with a picture header and buttons footer.
+Header and footer can be used on the following cards:
+
+- [Entity](/dashboards/entity/)
+- [Entities](/dashboards/entities/)
+- [Statistics](/dashboards/statistics/)
+
## Picture header & footer
Widget to show a picture as a header or a footer. A picture can have touch actions associated with it.
diff --git a/source/dashboards/index.markdown b/source/dashboards/index.markdown
index 6a9165268bb..b0248d37ab8 100644
--- a/source/dashboards/index.markdown
+++ b/source/dashboards/index.markdown
@@ -1,32 +1,44 @@
---
title: "Dashboards"
description: "Powerful and configurable dashboards for Home Assistant."
+related:
+ - docs: /integrations/entity/
+ title: Dashboard themes
+ - docs: /dashboards/dashboards/#creating-a-new-dashboard
+ title: Creating a new dashboard
+ - docs: /dashboards/cards/
+ title: About cards
+ - url: https://demo.home-assistant.io
+ title: Interactive dashboard demo
+ - url: https://home-assistant-cards.bessarabov.com/
+ title: Home Assistant cards
+ - url: https://github.com/custom-cards
+ title: Community custom cards
---
-Home Assistant dashboards are a fast, customizable and powerful way for users to manage their home using their mobiles and desktops.
+Home Assistant dashboards allow you to display information about your smart home. Dashboards are customizable and provide a powerful way to manage your home from your mobile or desktop.
-- 29 different cards to place and configure as you like.
-- Dashboard Editor: Allows you to manage your dashboard by including a live preview when editing cards.
-- Fast: Using a static configuration allows us to build up the dashboard once.
-- Customizable:
- - Cards have a number of options which help to configure your data as required.
- - Themes (even at a per card basis).
- - Ability to override names and icons of entities.
- - Custom Cards from our amazing community are fully supported.
+You can customize your dashboard using various options:
-To start, go to the Home Assistant Overview page, click on the three dots at the top right of the screen and select 'Edit Dashboard'. Then click on the blue '+ Add Card' icon at the bottom right and select a card to add.
+- Different card types to visualize your data and control your smart home devices.
+- [Themes](/integrations/frontend/#defining-themes) (even at a per card basis).
+- Override names and icons of entities.
+- Use custom cards from our amazing community.
-
+
+
+Screencast showing how to edit a dashboard and customize a vertical stack card.
+
-To try it yourself, check out [the demo](https://demo.home-assistant.io).
+## Explore the interactive demo dashboard
+
+Try it yourself with [the interactive demo](https://demo.home-assistant.io).
+
+## Get started with your own dashboard
+
+To create your own dashboard, follow the steps on [creating a new dashboard](/dashboards/dashboards/#creating-a-new-dashboard).
## Discuss dashboard
- Suggestions are welcome in the [frontend repository](https://github.com/home-assistant/frontend/)
- For help with dashboards, join the `#frontend` channel on [our chat](/join-chat/) or [our forums](https://community.home-assistant.io/c/projects/frontend)
-
-## Additional Resources
-
-- [Community Custom Cards](https://github.com/custom-cards)
-- [Home Assistant Cards](https://home-assistant-cards.bessarabov.com/)
-- [Material Design Icons](https://pictogrammers.com/library/mdi/)
diff --git a/source/dashboards/views.markdown b/source/dashboards/views.markdown
index 27423182592..ed976b66cf7 100644
--- a/source/dashboards/views.markdown
+++ b/source/dashboards/views.markdown
@@ -1,20 +1,75 @@
---
title: "Views"
description: "A view is a tab inside a dashboard."
+related:
+ - docs: /dashboards/masonry/
+ title: Masonry view
+ - docs: /dashboards/panel/
+ title: Panel view
+ - docs: /dashboards/sidebar/
+ title: Sidebar view
+ - docs: /dashboards/sections/
+ title: Sections view
+ - docs: /dashboards/
+ title: About dashboards
+ - docs: /dashboards/cards/#adding-cards-to-your-dashboard
+ title: Adding cards to a view
+ - docs: /common-tasks/os/#configuring-access-to-files
+ title: Configure access to files
---
-A View is a tab inside a dashboard.
-To display cards on the UI you have to define them in views.
+A view is a tab inside a dashboard. For example, the screenshot below shows a separate view for lights on the Overview dashboard.
-You can add a view to your user interface, by clicking the menu (three dots at the top right of the screen) and then **Edit Dashboard**.
-Click the `+` button in the top menu bar.
-
-
-
- Use titles and icons to describe the content of views.
+
+
+ A lights view tab on the Overview dashboard
-## Path
+Views control the layout.
+
+
+
+ The three basic view layouts: panel, sidebar, and masonry
+
+
+There are four different view types:
+
+- **Panel**: Displays one card in full width. For example a map or an image.
+- **Sidebar**: Arranges cards in 2 columns, a wide one and a smaller one on the right.
+- **Masonry (default)**: Arranges cards in columns based on their card size.
+- **Sections (experimental)**: Arranges cards in a grid system and lets you group them in sections.
+
+It is currently not possible to migrate your dashboard from one view type into another. For example, if you have a dashboard in masonry view, and want it in sections view, you need to create a new view.
+
+## Adding a view to a dashboard
+
+1. To add a view to your dashboard, in the top right corner, select the pencil icon.
+2. Select the `+` button in the top menu bar.
+
+ 
+
+3. Define the view settings:
+ - If you want a view title, enter the **Title**.
+ - If you want to see an icon, select the [view icon](#view-icon).
+ - If an icon is defined, only the icon is shown. The text only shows as a tooltip.
+ - We use [Material icons](https://pictogrammers.com/library/mdi/).
+ - If you want to link to another view, define the [URL](#url-of-a-view).
+ - If you want to use a previously defined theme, select the [theme](/integrations/frontend/#themes).
+ - Select the [view type](#view-type).
+ - If this view is meant to be used as a [subview](#subview) only, enable the **Subview** toggle.
+
+ 
+
+4. To use a background image, on the **Background** tab, select an image.
+ - **Upload picture** lets you pick an image from the system used to show your Home Assistant UI.
+ - **Local path** lets you pick an image stored on Home Assistant. For example: `/homeassistant/images/lights_view_background_image.jpg`.
+ - To store an image on Home Assistant, you need to [configure access to files](/common-tasks/os/#configuring-access-to-files), for example via [Samba](/common-tasks/os/#installing-and-using-the-samba-add-on) or the [Studio Code Server](/common-tasks/os/#installing-and-using-the-visual-studio-code-vsc-add-on) add-on.
+ - **web URL** let you pick an image from the web. For example `https://www.home-assistant.io/images/frontpage/assist_wake_word.png`.
+5. On the **Badges** tab, select the entities you want to be represented by a badge.
+ - Sidebar and panel views do not support badges.
+6. By default, the new section is visible to all users. On the **Visibility** tab, you can disable the view for users.
+
+## URL of a view
You can link to one view from a card in another view when using cards that support navigation (`navigation_path`). The string supplied here will be appended to the string `/lovelace/` to create the path to the view. Do not use special characters in paths. Do not begin a path with a number. This will cause the parser to read your path as a view index.
@@ -84,7 +139,7 @@ user:
type: string
{% endconfiguration %}
-## Type
+## View type
You can change the layout of a view by using a different view type. The default is [`masonry`](/dashboards/masonry).
diff --git a/source/developers/cla_sign.html b/source/developers/cla_sign.html
index 2523ba90ee8..e7d8df57eac 100644
--- a/source/developers/cla_sign.html
+++ b/source/developers/cla_sign.html
@@ -96,279 +96,18 @@ description: "The Home Assistant contributor license agreement (CLA) signature p
diff --git a/source/voice_control/about_wake_word.markdown b/source/voice_control/about_wake_word.markdown
index 1691cd5d0d8..687faacc6f4 100644
--- a/source/voice_control/about_wake_word.markdown
+++ b/source/voice_control/about_wake_word.markdown
@@ -1,5 +1,14 @@
---
title: "About wake words"
+related:
+ - docs: /voice_control/thirteen-usd-voice-remote/
+ title: Create a $13 voice assistant
+ - docs: /voice_control/install_wake_word_add_on/
+ title: Enable wake words
+ - docs: /voice_control/create_wake_word/
+ title: Create your own wake words
+ - docs: /voice_control/voice_remote_cloud_assistant/)
+ title: Create a cloud assistant
---
Wake words are special words or phrases that tell a voice assistant that a command is about to be spoken. The device then switches from passive to active listening. Examples are: *Hey Google*, *Hey Siri*, or *Alexa*. Home Assistant supports its own wake words, such as *Hey Nabu*.
@@ -78,16 +87,28 @@ How wake words integrate into Home Assistant
As an example, we’re also making the **Porcupine (v1)** wake word engine available. It supports 29 wake words across English, French, Spanish, and German. The wake words include *Computer*, *Framboise*, *Manzana*, and *Stachelschwein*.
+## About on-device wake word processing (microWakeWord)
+
+The [microWakeWord](https://github.com/kahrendt/microWakeWord) created by [Kevin Ahrendt](https://www.kevinahrendt.com/) enables ESPHome to detect wake words on devices like the ESP32-S3-BOX-3.
+
+Because openWakeWord is too large to run on low-power devices like the S3-BOX-3, openWakeWord runs wake word detection on the Home Assistant server.
+
+Doing wake word detection on Home Assistant allows low-power devices like the [M5 ATOM Echo Development Kit](/voice_control/thirteen-usd-voice-remote/) to simply stream audio and let all of the processing happen elsewhere.
+The downside is that adding more voice assistants requires more CPU usage in Home Assistant as well as more network traffic.
+
+Enter *microWakeWord*; a more light-weight model based on [Google's Inception neural network](https://towardsdatascience.com/a-simple-guide-to-the-versions-of-the-inception-network-7fc52b863202). Because his new model is not as large, it can be run on low-power devices with an ESP32 chip, such as the ESP32-S3 chip inside the S3-BOX-3! _(It also works on the, now discontinued, S3-BOX and S3-BOX-Lite)_.
+
+Currently, there are [three models](https://github.com/esphome/micro-wake-word-models/tree/main/models) trained for microWakeWord:
+
+- *okay nabu*
+- *hey jarvis*
+- *alexa*
+
## Try it!
-To try wake words today, follow the guide to the [$13 voice assistant][13-tutorial].
-
-## Related topics
-
-- [Create a $13 voice assistant](/voice_control/thirteen-usd-voice-remote/)
-- [Enable wake words](/voice_control/install_wake_word_add_on/)
-- [Create your own wake words](/voice_control/create_wake_word/)
-- [Create a cloud assistant](/voice_control/voice_remote_cloud_assistant/)
+Right now, there are two easy options to get started with wake words:
+- Follow the guide to the [$13 voice assistant][13-tutorial]. This tutorial is using the tiny ATOM Echo, detecting wake words with openWakeWord.
+- Follow the guide to set up an [ESP32-S3-BOX-3 voice assistant](/voice_control/s3_box_voice_assistant/). This tutorial is using the bigger S3-BOX-3 device which features a display. It can detect wake words using openWakeWord. But it can also do on-device wake word detection using microWakeWord.
[13-tutorial]: /voice_control/thirteen-usd-voice-remote/
[openWakeWord]: https://github.com/dscripka/openWakeWord
diff --git a/source/voice_control/aliases.markdown b/source/voice_control/aliases.markdown
index bae43a5f4c0..813f430e281 100644
--- a/source/voice_control/aliases.markdown
+++ b/source/voice_control/aliases.markdown
@@ -1,9 +1,38 @@
---
-title: "Assist - entity aliases"
+title: "Assist - entity, area, and floor aliases"
+related:
+ - docs: /docs/organizing/areas/
+ title: Areas
+ - docs: /docs/organizing/floors/
+ title: Floors
+ - docs: /voice_control/custom_sentences/
+ title: Assist - custom sentences
---
-Assist will use the names of your entities, as well as any aliases you've configured.
+Assist will use the names of your entities, areas and floors, as well as any aliases you've configured. The configured aliases are not only used by Assist, but can also be used by Google Assistant, if you have set that up.
-
+These aliases are helpful in case you call the same device by multiple names
+or when using a voice assistant in multiple languages at the same time.
-By adding aliases in your native language, you can speak to Home Assistant with the language configured on your [Android watch](/voice_control/android/) or [Apple device](/voice_control/apple/).
+## Adding an alias of an entity
+
+There are multliple ways to add an alias of an entity:
+
+- **Option 1**: Go to **Settings** > **Voice assistants**. On the **Expose** tab, select the entity for which you want to add an alias.
+
+- **Option 2**: You can also change the alias from the entity's more information dialog in the settings tab in the advanced section.
+.
+
+## Adding an alias of an area
+
+1. To add an alias for an area, go to **Settings** > **Areas, labels & zones**.
+2. On the area card of interest, select the pencil button.
+3. Select **Add alias** and enter the alias you want to use for that area.
+4. **Save** your changes.
+
+## Adding an alias of a floor
+
+1. To add an alias for a floor, go to **Settings** > **Areas, labels & zones**.
+2. Next to the floor of interest, select the three-dot menu, then select **Edit floor**.
+3. Select **Add alias** and enter the alias you want to use for that floor.
+4. **Save** your changes.
diff --git a/source/voice_control/android.markdown b/source/voice_control/android.markdown
index 5bf8e675397..d5b7e7039ee 100644
--- a/source/voice_control/android.markdown
+++ b/source/voice_control/android.markdown
@@ -1,5 +1,12 @@
---
title: "Assist on Android"
+related:
+ - docs: /voice_control/voice_remote_expose_devices/
+ title: Exposing devices to Assist
+ - docs: /voice_control/start_assist_from_dashboard/
+ title: Starting Assist from your dashboard
+ - url: https://companion.home-assistant.io/docs/getting_started/
+ title: Home Assistant Companion App
---
## Assist on Android phones
@@ -134,9 +141,3 @@ Depending on your watch, you can assign Assist to a button so that you can start

3. Now, use your key and speak a command.
-
-## Related topics
-
-- [Home Assistant Companion App](https://companion.home-assistant.io/docs/getting_started/)
-- [Exposing devices to Assist](/voice_control/voice_remote_expose_devices/)
-- [Starting Assist from your dashboard](/voice_control/start_assist_from_dashboard/)
diff --git a/source/voice_control/assist_create_open_ai_personality.markdown b/source/voice_control/assist_create_open_ai_personality.markdown
index 685e06f084b..348392cc161 100644
--- a/source/voice_control/assist_create_open_ai_personality.markdown
+++ b/source/voice_control/assist_create_open_ai_personality.markdown
@@ -1,5 +1,12 @@
---
title: "Create a personality with OpenAI"
+related:
+ - docs: /voice_control/voice_remote_cloud_assistant/
+ title: Cloud assistant pipeline
+ - docs: /voice_control/voice_remote_local_assistant/
+ title: Local assistant pipeline
+ - url: https://www.nabucasa.com
+ title: Home Assistant Cloud
---
You can give your voice assistant personality by using OpenAI. This requires an OpenAI account. For what we do in this tutorial, the free trial option is sufficient. No need to leave your credit card information.
@@ -36,9 +43,3 @@ Using OpenAI requires an OpenAI account. For this tutorial, the free trial optio
- Leave the other settings unchanged and select **Create**.
4. You can repeat this with other OpenAI personalities. You can add as many OpenAI Conversation integrations as you would like.
- To add a new personality, you need to create a new API key. Then, add a new OpenAI Conversation integration with that API key.
-
-## Related topics
-
-- [Home Assistant Cloud](https://www.nabucasa.com)
-- [Cloud assistant pipeline](/voice_control/voice_remote_cloud_assistant/)
-- [Local assistant pipeline](/voice_control/voice_remote_local_assistant/)
diff --git a/source/voice_control/assist_daily_summary.markdown b/source/voice_control/assist_daily_summary.markdown
index 6a11c203669..b63a6c20e1f 100644
--- a/source/voice_control/assist_daily_summary.markdown
+++ b/source/voice_control/assist_daily_summary.markdown
@@ -1,5 +1,16 @@
---
title: "Daily summary by Assist"
+related:
+ - docs: /voice_control/voice_remote_local_assistant/
+ title: Local assistant pipeline
+ - docs: /integrations/local_calendar/
+ title: Local calendar
+ - docs: /integrations/telegram/#setup-example
+ title: Telegram notification
+ - docs: /voice_control/assist_create_open_ai_personality/
+ title: Telegram notification
+ - url: https://www.nabucasa.com
+ title: Home Assistant Cloud
---
In this tutorial, we are creating an automation that has Assist send you a daily summary. Assist will tell you about the weather and your calendar events today. It will also send you the summary to your messenger.
@@ -84,11 +95,3 @@ We are using a blueprint (courtesy of [@allenporter]) that polls calendar events
- You should now receive a notification from Assist in your messenger app.
[@allenporter]: https://github.com/allenporter
-
-## Related topics
-
-- [Home Assistant Cloud](https://www.nabucasa.com)
-- [Local assistant pipeline](/voice_control/voice_remote_local_assistant/)
-- [Local calendar](/integrations/local_calendar/)
-- [Telegram notification](/integrations/telegram/#setup-example)
-- [Create a Mario personality](/voice_control/assist_create_open_ai_personality/)
\ No newline at end of file
diff --git a/source/voice_control/assist_set-conversation-response.png b/source/voice_control/assist_set-conversation-response.png
new file mode 100644
index 00000000000..c78b1306e69
Binary files /dev/null and b/source/voice_control/assist_set-conversation-response.png differ
diff --git a/source/voice_control/builtin_sentences.markdown b/source/voice_control/builtin_sentences.markdown
index 5472f89fbe3..c7fc5855165 100644
--- a/source/voice_control/builtin_sentences.markdown
+++ b/source/voice_control/builtin_sentences.markdown
@@ -1,5 +1,20 @@
---
title: "Assist - default sentences"
+related:
+ - docs: /voice_control/aliases/
+ title: Create aliases
+ - docs: /voice_control/custom_sentences/
+ title: Create your own sentences
+ - docs: /voice_control/troubleshooting/
+ title: Sentence troubleshooting
+ - url: https://github.com/home-assistant/intents/tree/main/sentences
+ title: Built-in sentence definitions
+ - url: https://github.com/home-assistant/intents/tree/main/responses
+ title: Built-in response definitions
+ - url: https://developers.home-assistant.io/docs/voice/intent-recognition/template-sentence-syntax/
+ title: Template sentence syntax documentation
+ - url: https://github.com/home-assistant/intents/tree/main/sentences
+ title: Sentence test cases
---
Home Assistant comes with [built-in sentences](https://github.com/home-assistant/intents/tree/main/sentences) contributed by the community for [dozens of languages](https://developers.home-assistant.io/docs/voice/intent-recognition/supported-languages).
@@ -12,9 +27,11 @@ These sentences allow you, for example, to:
- *"turn on the TV"*
- *"lock all the doors"*
- *"open the main door"*
-- **Open and close covers**
+- **Open, close covers, or ask about their state**
- *"Close the garage door"*
- *"Open kitchen window"*
+ - *"Which curtains are closed"*
+ - *"Set bedroom curtain to 50%"*
- **Set the brightness and color of lights**
- *"Change kitchen lights brightness to 50%"*
- *"Set bed light to green"*
@@ -37,6 +54,22 @@ These sentences allow you, for example, to:
- *"How many people are in the kitchen"*
- *"Who is in the garage"*
- *"Where is Anne"*
+- **Control the media player**
+ - *"next item on TV"*
+ - *"skip song on the TV"*
+ - *"skip track on the TV"*
+ - *"skip to the next song on the TV"*
+ - *"pause TV"*
+ - *"TV pause"*
+ - *"unpause TV"*
+ - *"TV unpause"*
+ - *"resume TV"*
+ - *"set TV volume to 90 percent"*
+ - *"change the TV volume to 90"*
+ - *"turn TV volume down to 90 percent"*
+- **Control the vacuum**
+ - *"return rover to base"*
+ - *"start rover"*
- **Abort wake word**
- *"Nevermind"*: If you triggered the wake word by mistake and want to stop Home Assistant from listening
@@ -60,7 +93,7 @@ The list of supported sentences is constantly being updated for each language. T
**Note**: If the voice assistant doesn't understand you, you may need to rephrase your sentence a bit. Or check if the {% term entity %} or {% term area %} name is correct for your environment.
1. Take a look at the test sentences:
- - On GitHub, in the [tests](https://github.com/home-assistant/intents/tree/main/sentences) folder, open the subfolder for your language.
+ - On GitHub, in the [tests](https://github.com/home-assistant/intents/tree/main/tests) folder, open the subfolder for your language.
- Look through the test files to see the example sentences that have been tested.
- The second part of the file name shows the {% term intent %}, the first part shows the {% term domain %}. For some {% term domains %}, such as covers, fans, and light, there are specific sentences.
The other {% term domains %} are covered by the generic *homeassistant_*.
@@ -73,24 +106,15 @@ The list of supported sentences is constantly being updated for each language. T

2. View the sentence definition for the tests:
- - On GitHub, in the [tests](https://github.com/home-assistant/intents/tree/main/tests) folder, open the subfolder for your language.
+ - On GitHub, in the [sentences](https://github.com/home-assistant/intents/tree/main/sentences) folder, open the subfolder for your language.
- Open the file of interest.

- () mean alternative elements.
- [] mean optional elements.
- - <> mean an expansion rule. The view these rules, search for `expansion_rules` in the [_common.yaml](https://github.com/home-assistant/intents/blob/main/sentences/en/_common.yaml) file.
+ - <> mean an expansion rule. To view these rules, search for `expansion_rules` in the [_common.yaml](https://github.com/home-assistant/intents/blob/main/sentences/en/_common.yaml) file.
- The syntax is explained in detail in the [template sentence syntax documentation](https://developers.home-assistant.io/docs/voice/intent-recognition/template-sentence-syntax/).
3. View the [sentence definition](https://github.com/home-assistant/intents/tree/main/sentences) for your language.
4. View the [response definition](https://github.com/home-assistant/intents/tree/main/responses)
-## Related topics
-
-- [Create aliases](/voice_control/aliases/)
-- [Create your own sentences](/voice_control/custom_sentences/)
-- [Built-in sentence definitions](https://github.com/home-assistant/intents/tree/main/sentences)
-- [Built-in response definitions](https://github.com/home-assistant/intents/tree/main/responses)
-- [Template sentence syntax documentation](https://developers.home-assistant.io/docs/voice/intent-recognition/template-sentence-syntax/)
-- [Sentence test cases](https://github.com/home-assistant/intents/tree/main/sentences)
-- [Sentence troubleshooting](/voice_control/troubleshooting/)
diff --git a/source/voice_control/create_wake_word.markdown b/source/voice_control/create_wake_word.markdown
index 4e4dce7e507..29a814f8800 100644
--- a/source/voice_control/create_wake_word.markdown
+++ b/source/voice_control/create_wake_word.markdown
@@ -1,10 +1,23 @@
---
title: "Create your own wake word"
+related:
+ - docs: /voice_control/thirteen-usd-voice-remote/
+ title: $13 voice assistant for Home Assistant
+ - docs: /voice_control/custom_sentences/
+ title: Custom Sentences
+ - docs: /common-tasks/os/#configuring-access-to-files
+ title: Installing the Samba add-on
+ - docs: /voice_control/about_wake_word/
+ title: About wake words
+ - url: https://colab.research.google.com/drive/1q1oe2zOyZp7UsB3jJiQ1IFn8z5YfjwEb?usp=sharing#scrollTo=1cbqBebHXjFD
+ title: Wake word training environment
+ - url: https://github.com/dscripka/openWakeWord
+ title: openWakeWord
---
You can now create your own wake word to use with Home Assistant. The procedure below will guide you to train a model. The model is trained using voice clips generated by our local neural text-to-speech system [Piper](https://github.com/rhasspy/piper).
-_Want to now more about how this all works? Check out the [openWakeWord](https://github.com/dscripka/openWakeWord) project by David Scripka.)_
+_Want to know more about how this all works? Check out the [openWakeWord](https://github.com/dscripka/openWakeWord) project by David Scripka.)_
Depending on the word, training a model on your own wake word may take a few iterations and a bit of tweaking. This guide will take you through the process step by step.
@@ -93,11 +106,3 @@ Things you can try if the execution is very slow:
- Select the link to **Upgrade to Colab Pro**.
- Select your price plan and follow the instructions on screen.

-
-## Related topics
-
-- [$13 voice assistant for Home Assistant](/voice_control/thirteen-usd-voice-remote/)
-- [Wake word training environment](https://colab.research.google.com/drive/1q1oe2zOyZp7UsB3jJiQ1IFn8z5YfjwEb?usp=sharing#scrollTo=1cbqBebHXjFD)
-- [Installing the Samba add-on](/common-tasks/os/#configuring-access-to-files)
-- [openWakeWord add-on](https://github.com/dscripka/openWakeWord)
-- [About wake words](/voice_control/about_wake_word/)
diff --git a/source/voice_control/custom_sentences.markdown b/source/voice_control/custom_sentences.markdown
index 967f0709cce..e348a65b27b 100644
--- a/source/voice_control/custom_sentences.markdown
+++ b/source/voice_control/custom_sentences.markdown
@@ -1,5 +1,16 @@
---
title: "Assist - custom sentences"
+related:
+ - docs: /voice_control/aliases/
+ title: Create aliases
+ - docs: /docs/scripts/#respond-to-a-conversation/
+ title: Conversation response script action
+ - docs: /docs/automation/trigger/#sentence-trigger
+ title: Sentence triggers
+ - docs: /docs/automation/trigger/#sentence-wildcards
+ title: Sentence wildcards
+ - url: https://developers.home-assistant.io/docs/intent_builtin/
+ title: View existing intents
---
You may add your own sentences to the intent recognizer by either extending an [existing intent](https://developers.home-assistant.io/docs/intent_builtin/) or creating a new one. You may also [customize responses](#customizing-responses) for existing intents.
@@ -14,6 +25,7 @@ If you have not set up voice control yet, set up the hardware first. For instruc
- [World's most private voice assistant](/voice_control/worlds-most-private-voice-assistant/): Using a classic landline phone
- [$13 voice assistant for Home Assistant](/voice_control/thirteen-usd-voice-remote/): Using a button with speaker and mic
+- [S3-BOX-3 voice assistant](/voice_control/s3_box_voice_assistant/): Using a small device with speaker, mic, and display
- [Assist for Apple](/voice_control/apple/): Using your iPhone, Mac, or Apple watch
- [Assist for Android](/voice_control/android/): Using your Android phone, tablet, or a Wear OS watch
@@ -25,11 +37,36 @@ If you have not set up voice control yet, set up the hardware first. For instruc
- Do not use punctuation.
- You can add multiple sentences. They will then all trigger that automation.

-4. To test the automation, go to **Overview** and in the top right corner, open Assist.
+4. To add a custom response, select **Add action**. Scroll all the way down and select **Other actions**.
+ - Then, select **Set conversation response**.
+ 
+5. In the text field, enter the response you want to hear from Assist and select **Save**.
+
+ 
+
+ - You can also use [wildcards](/docs/automation/trigger/#sentence-wildcards). For example, the trigger:
+
+ ```yaml
+ play {album} by {artist}
+ ```
+
+ could have the response:
+
+ {% raw %}
+
+ ```yaml
+ Playing {{ trigger.slots.album }} by {{ trigger.slots.artist }}
+ ```
+
+ {% endraw %}
+
+ - For more details, refer to [conversation response script action](/docs/scripts/#respond-to-a-conversation).
+
+6. To test the automation, go to **Overview** and in the top right corner, open Assist.
- Enter one of the sentences.
-5. If it did not work out, checkout the [troubleshooting](/voice_control/troubleshooting/) section.
+7. If it did not work out, checkout the [troubleshooting](/voice_control/troubleshooting/) section.
- One of the causes could be that the device you're targeting has not been exposed to Assist.
-6. Pick up your voice control device and speak the custom sentence.
+8. Pick up your voice control device and speak the custom sentence.
- Your automation should now be triggered.
## Setting up custom sentences in configuration.yaml
@@ -139,11 +176,9 @@ responses:
{% endraw %}
+## Related devices and installation tutorials
-## Related topics
-
-- [View existing intents](https://developers.home-assistant.io/docs/intent_builtin/)
-- [Create aliases](/voice_control/aliases/)
- [$13 voice assistant for Home Assistant](/voice_control/thirteen-usd-voice-remote/)
+- [S3-BOX-3 voice assistant](/voice_control/s3_box_voice_assistant/)
- [Assist for Apple](/voice_control/apple/)
- [Assist for Android](/voice_control/android/)
\ No newline at end of file
diff --git a/source/voice_control/index.markdown b/source/voice_control/index.markdown
index 6dba70a411b..fb41ac16f9e 100644
--- a/source/voice_control/index.markdown
+++ b/source/voice_control/index.markdown
@@ -1,5 +1,24 @@
---
title: Assist - Talking to Home Assistant
+related:
+ - docs: /voice_control/android
+ title: Assist on Android
+ - docs: /voice_control/android/#assist-on-wear-os
+ title: Assist on Wear OS
+ - docs: /voice_control/apple
+ title: Siri and Assist shortcuts
+ - docs: /voice_control/start_assist_from_dashboard/
+ title: Assist dashboard button
+ - docs: /voice_control/thirteen-usd-voice-remote/
+ title: Build a 13$ voice remote using an ESPHome device
+ - docs: /voice_control/install_wake_word_add_on
+ title: Enable a wake word
+ - docs: /voice_control/create_wake_word/
+ title: Create your own wake words
+ - docs: /voice_control/builtin_sentences
+ title: Built-in sentences
+ - url: https://www.nabucasa.com/config/
+ title: Home Assistant Cloud
---
@@ -8,7 +27,7 @@ Assist allows you to control Home Assistant using natural language. It is built
Assist is available to use on most platforms that can interface with Home Assistant. Look for the Assist icon
:
-
+
_Want to use Home Assistant with Google Assistant or Amazon Alexa? Get started with [Home Assistant Cloud](https://www.nabucasa.com/config/)._
@@ -62,15 +81,3 @@ Use the [built-in sentences](/voice_control/builtin_sentences) to control entiti
Did Assist not understand your sentence? [Contribute them](https://developers.home-assistant.io/docs/voice/intent-recognition/).
_Assist was introduced in Home Assistant 2023.2._
-
-## Related topics
-
-- [Home Assistant Cloud](https://www.nabucasa.com/config/)
-- [Assist on Android](/voice_control/android)
-- [Assist on Wear OS](/voice_control/android/#assist-on-wear-os)
-- [Siri and Assist shortcuts](/voice_control/apple)
-- [Assist dashboard button](/voice_control/start_assist_from_dashboard/)
-- [Build a 13$ voice remote using an ESPHome device](/voice_control/thirteen-usd-voice-remote/)
-- [Enable a wake word](/voice_control/install_wake_word_add_on)
-- [Create your own wake words](/voice_control/create_wake_word/)
-- [Built-in sentences](/voice_control/builtin_sentences)
diff --git a/source/voice_control/install_wake_word_add_on.markdown b/source/voice_control/install_wake_word_add_on.markdown
index 36e60a45d31..fe8b3a327c7 100644
--- a/source/voice_control/install_wake_word_add_on.markdown
+++ b/source/voice_control/install_wake_word_add_on.markdown
@@ -2,44 +2,62 @@
title: "Enabling a wake word"
---
+This tutorial shows how you can *enable* a wake word in Home Assistant. It does not describe how to *use* it.
+
+To *use* the wake word, you need some extra hardware. A low cost option is the [M5Stack ATOM Echo Development Kit](https://shop.m5stack.com/products/atom-echo-smart-speaker-dev-kit?ref=NabuCasa). To set that up, follow the [$13 voice assistant for Home Assistant](/voice_control/thirteen-usd-voice-remote/).
+
+## To enable a wake word
+
Enabling a wake word consists of 2 steps:
1. Installing the openWakeWord add-on.
2. Enabling the wake word for a specific voice assistant.
-## Prerequisites
+### Prerequisites
- Home Assistant version 2023.10 or later, installed with the Home Assistant Operating System
- [Home Assistant Cloud](/voice_control/voice_remote_cloud_assistant/) or a manually configured [local Assist pipeline](/voice_control/voice_remote_local_assistant)
-## Installing the openWakeWord add-on
+### Installing the openWakeWord add-on
1. Go to {% my supervisor_addon addon="core_openwakeword" title="**Settings** > **Add-ons** > **openWakeWord**" %} and select **Install**.
-2. Start the add-on.
+2. **Start** the add-on.
3. Go to {% my integrations title="**Settings** > **Devices & Services**" %}.
- - Under **Discovered**, you should now see the **Wyoming** integration.
+ - Under **Discovered**, you should now see the **openWakeWord** integration.
- Select **Configure** and **Submit**.
- **Result**: You have successfully installed the openWakeWord add-on and Wyoming integration.
-## Enabling wake word for your voice assistant
+### Enabling wake word for your voice assistant
-1. Go to {% my voice_assistants title="**Settings** > **Voice assistants**" %} and select **Add assistant**.
-2. Give your assistant a name, for example the wake word you are going to use.
-3. Select the language you are going to use to speak to Home Assistant.
+1. Go to {% my voice_assistants title="**Settings** > **Voice assistants**" %}
+2. Choose the Assistant:
+ - To enable wake word for an existing assistant, select the Assistant and continue with step 6.
+ - To create a new Assistant: select **Add assistant**.
+3. Give your assistant a name, for example the wake word you are going to use.
+4. Select the language you are going to use to speak to Home Assistant.
- If the **Text-to-speech** and **Speech-to-text** sections do not provide language selectors, this means you do not have an Assist pipeline set up.
- Set up [Home Assistant Cloud](https://www.nabucasa.com) or a manually configured [Assist pipeline](/voice_control/voice_remote_local_assistant).
-4. Under **Text-to-speech**, select the language and voice you want Home Assistant to use when speaking to you.
-5. To define the wake word engine, under **Wake word**, select **openWakeWord**.
+5. Under **Text-to-speech**, select the language and voice you want Home Assistant to use when speaking to you.
+6. To define the wake word engine, under **Wake word**, select **openwakeword**.
- Then, select **ok nabu**.
- If you created a new assistant, select **Create**.
- If you edited an existing assistant, select **Update**.
- **Result**: You now have a voice assistant that listens to a wake word.
-6. For the first run, it is recommended to use **ok nabu**, just to test the setup.
+7. For the first run, it is recommended to use **ok nabu**, just to test the setup.
- Once you have it all set up, you can [create your own wake words](/voice_control/create_wake_word/).
## Related topics
+### About wake words and assistants
+
- [Create your own wake words](/voice_control/create_wake_word/)
- [About wake words](/voice_control/about_wake_word/)
- [Create a cloud assistant](/voice_control/voice_remote_cloud_assistant/)
- [Create a local assistant](/voice_control/voice_remote_local_assistant)
+
+### Extra hardware to use wake word
+
+- [M5Stack ATOM Echo Development Kit](https://shop.m5stack.com/products/atom-echo-smart-speaker-dev-kit?ref=NabuCasa)
+ - [Tutorial: $13 voice assistant for Home Assistant](/voice_control/thirteen-usd-voice-remote/)
+- [ESP32-S3-BOX-3](https://www.aliexpress.us/item/1005005920207976.html?gatewayAdapt=4itemAdapt)
+ - [Tutorial: ESP32-S3-BOX-3 voice assistant](/voice_control/s3_box_voice_assistant/)
\ No newline at end of file
diff --git a/source/voice_control/s3-box-customize.markdown b/source/voice_control/s3-box-customize.markdown
index 9516a9464e3..65c044d5e0a 100644
--- a/source/voice_control/s3-box-customize.markdown
+++ b/source/voice_control/s3-box-customize.markdown
@@ -1,9 +1,28 @@
---
-title: "Customize the S3-BOX-3 with your own illustrations"
+title: "Customize the S3-BOX-3"
product_name: ESP32-S3-BOX-3
device_name_entry: ESP32-S3-BOX-3
+related:
+ - docs: /voice_control/voice_remote_cloud_assistant/
+ title: Home Assistant Cloud
+ - docs: /voice_control/voice_remote_local_assistant
+ title: Assist Pipeline
+ - docs: /voice_control/s3_box_voice_assistant/
+ title: ESP32-S3-BOX-3 voice assistant
+ - docs: /voice_control/troubleshooting/
+ title: General troubleshooting section for Assist
+ - docs: /voice_control/troubleshooting_the_s3_box/
+ title: Troubleshooting the ESP32-S3-BOX-3
+ - docs: /common-tasks/os/#configuring-access-to-files
+ title: Access to your configuration files
+ - url: https://github.com/jlpouffier/home-assistant-s3-box-community-illustrations/tree/main
+ title: Community image repository
+ - url: https://github.com/kahrendt/microWakeWord
+ title: microWakeWord
---
+## Customize the S3-BOX-3 with your own illustrations
+
This tutorial will show you how to replace the Home Assistant status illustrations on the Espressif [ESP32-S3-BOX-3](https://www.espressif.com/en/news/ESP32-S3-BOX-3) with your own images.
You can either prepare your own illustrations or import some from a community repository.
@@ -11,7 +30,7 @@ You can either prepare your own illustrations or import some from a community re
-## ESP32-S3-BOX-3 voice assistant status illustrations
+### ESP32-S3-BOX-3 voice assistant status illustrations
The ESP32-S3-BOX-3 voice assistant has 6 illustrations to indicate its state:
@@ -22,14 +41,14 @@ The ESP32-S3-BOX-3 voice assistant has 6 illustrations to indicate its state:
The chart shows the default illustrations. The next steps show you how to change those.
-## Prerequisites
+### Prerequisites
- Latest version of Home Assistant, installed with the Home Assistant Operating System
- [Home Assistant Cloud](/voice_control/voice_remote_cloud_assistant/) or a manually configured [Assist Pipeline](/voice_control/voice_remote_local_assistant)
- [ESP32-S3-BOX-3](https://www.aliexpress.us/item/1005005920207976.html?gatewayAdapt=4itemAdapt). The ESP32-S3-BOX-Lite or the ESP32-S3-BOX also work, but they are not currently on the market.
- Successfully completed the [ESP32-S3-BOX-3 voice assistant](/voice_control/s3_box_voice_assistant/) tutorial
-## Adopting the device in the ESPHome add-on
+### Adopting the device in the ESPHome add-on
Before you can import new illustrations, you need to install the ESPHome add-on and adopt the device in the add-on.
@@ -47,12 +66,12 @@ Before you can import new illustrations, you need to install the ESPHome add-on
- [Option 1: Using images from a community repository](#option-1-using-images-from-a-community-repository)
- [Option 2: Using your own images](#option-2-using-your-own-illustrations)
-## Option 1: Using images from a community repository
+### Option 1: Using images from a community repository
If you want new images but don't want to create your own, you can use images from the community.
-If you want to use your own images, skip this procedure and go to [Option 2: Using your own imagess](#option-2-using-your-own-illustrations) instead.
+If you want to use your own images, skip this procedure and go to [Option 2: Using your own images](#option-2-using-your-own-illustrations) instead.
-### To use images from the community
+#### To use images from the community
1. On the **ESP32-S3-BOX-3** add-on, select edit.
- **Result**: An editor opens, showing the configuration file.
@@ -79,18 +98,18 @@ If you want to use your own images, skip this procedure and go to [Option 2: Usi
5. Once the installation is complete, you can see the new image on the ESP32-S3-BOX-3.
- Now, speak a command to test the new setting. For example, *OK Nabu, turn off the living room lights*.
-## Option 2: Using your own illustrations
+### Option 2: Using your own illustrations
There are 2 parts to this:
- [Preparing your own illustrations](#to-prepare-your-own-images)
- [Adding your illustrations to the configuration](#to-add-your-images-to-the-configuration)
-### About the image specifications
+#### About the image specifications
Here's what you need to know to get the best result on your ESP32-S3-BOX-3 screen.
-#### Using light and dark image background
+##### Using light and dark image background
In the [overview diagram](#esp32-s3-box-3-voice-assistant-status-illustrations), you can see that the default images use different background colors. This is to make it easier to recognize a state change when you look at your screen.
@@ -102,12 +121,12 @@ In your images, you could use 2 different background colors:
If your images have transparency, you can define the background color in the configuration. The procedure below shows how to change the background.
-#### Image dimensions and file format
+##### Image dimensions and file format
- **Dimensions**: The screen is 320 x 240 pixels. If the image you provide is not in a 4:3 ratio, the remaining area will be filled with background color.
- **File format**: PNG, JPEG, or SVG
-### To prepare your own images
+#### To prepare your own images
1. Create your own images according to the specifications defined in the section [About the image specifications](#about-the-image-specifications).
- You could even draw your own!
@@ -121,7 +140,7 @@ If your images have transparency, you can define the background color in the con
- Copy your image folder in there.

-### To add your images to the configuration
+#### To add your images to the configuration
1. In Home Assistant, go to [**Settings** > **Add-ons** > **ESPHome**](https://my.home-assistant.io/redirect/supervisor_addon/?addon=5c53de3b_esphome), and **Open Web UI**.
2. On the **ESP32-S3-BOX-3** add-on, select edit.
@@ -176,12 +195,49 @@ If your images have transparency, you can define the background color in the con
- Snap a picture of each.
- [Follow these steps](#to-prepare-your-own-images) to bring them onto your Voice Assistant.
-## Related topics
+## Customizing on-device wake words (microWakeWord)
-- [Community image repository](https://github.com/jlpouffier/home-assistant-s3-box-community-illustrations/tree/main)
-- [Home Assistant Cloud](/voice_control/voice_remote_cloud_assistant/)
-- [Assist Pipeline](/voice_control/voice_remote_local_assistant)
-- [ESP32-S3-BOX-3 voice assistant](/voice_control/s3_box_voice_assistant/)
-- [General troubleshooting section for Assist](/voice_control/troubleshooting/)
-- [Troubleshooting the ESP32-S3-BOX-3](/voice_control/troubleshooting_the_s3_box/)
-- [Access to your configuration files](/common-tasks/os/#configuring-access-to-files)
+You can change the on-device wake word (microWakeWord) that is used on your S3-BOX-3.
+
+### Prerequisites
+
+- Home Assistant 2024.2, installed with the Home Assistant Operating System. If you do not have Home Assistant installed yet, refer to the [installation page](/installation/) for instructions.
+- Successfully [installed ESPHome on the S3-BOX-3](/voice_control/s3_box_voice_assistant/)
+- ESPHome 2024.2 or later
+- Home Assistant server with at least 2 GB of RAM free
+ - The firmware needs to be compiled on the server before it is installed on the S3-BOX-3.
+ - Compiling requires a bit of RAM.
+- [On-device wake word installed](#installing-on-device-wake-words-microwakeword) on your S3-BOX-3.
+
+*(It also works on the (now discontinued) S3-BOX and S3-BOX-Lite)*
+
+### To customize the S3-BOX-3 with on-device wake words
+
+1. If you haven't done so already, [adopt the device in the ESPHome add-on](#adopting-the-device-in-the-esphome-add-on).
+2. In Home Assistant, go to [**Settings** > **Add-ons** > **ESPHome**](https://my.home-assistant.io/redirect/supervisor_addon/?addon=5c53de3b_esphome), and **Open Web UI**.
+3. On the **ESP32-S3-BOX-3** entry, select edit.
+ - **Result**: An editor opens, showing the configuration file.
+ 
+
+4. To change the wake word, add the following line into the `substitutions` block.
+ - Instead of `okay_nabu`, you can also use `alexa` or `hey_jarvis`.
+
+ ```yaml
+ substitutions:
+ ...
+ micro_wake_word_model: hey_jarvis
+ ```
+
+5. Save the changes and in the top right corner, select **Install**.
+ - Depending on your environment, the installation process can take a while.
+ - On Home Assistant Green, for example, it takes about 45 minutes.
+6. Select the **ESPHome** integration. Under **Devices**, you should see the **ESP32-S3-BOX** listed.
+ - On the ESP32-S3-BOX-3 entry, select **Device** to open the device page.
+ - Under **Wake word engine location**, select **On device**.
+
+ 
+
+7. Now, speak a command to test the new setting. For example, *Hey Jarvis, turn on the light*.
+
+[microWakeWord]: https://github.com/kahrendt/microWakeWord
+[Kevin Ahrendt]: https://www.kevinahrendt.com/
diff --git a/source/voice_control/s3_box_voice_assistant.markdown b/source/voice_control/s3_box_voice_assistant.markdown
index e6968c545cc..87c17e6d2fd 100644
--- a/source/voice_control/s3_box_voice_assistant.markdown
+++ b/source/voice_control/s3_box_voice_assistant.markdown
@@ -3,6 +3,19 @@ title: "ESP32-S3-BOX voice assistant"
product_name: ESP32-S3-BOX
device_name_entry: ESP32-S3-BOX
config_link: /voice_control/s3_box_voice_assistant/#to-delete-the-configuration-from-esphome
+related:
+ - docs: /voice_control/troubleshooting/
+ title: General troubleshooting section for Assist
+ - docs: /voice_control/troubleshooting_the_s3_box/
+ title: Troubleshooting the ESP32-S3-BOX-3
+ - docs: /common-tasks/os/#configuring-access-to-files
+ title: Access to your configuration files
+ - docs: /voice_control/about_wake_word/
+ title: Enable wake word
+ - docs: /voice_control/s3-box-customize/#customizing-on-device-wake-words-microwakeword
+ title: Customizing the S3-BOX with on-device wake words
+ - url: https://esphome.io/projects/index.html
+ title: ESPHome projects page
---
This tutorial will guide you to turn an ESP32-S3-BOX, ESP32-S3-BOX-3, or an ESP32-S3-BOX-Light into a Home Assistant voice assistant. Note, the term ESP32-S3-BOX is used to refer to any of the 3 product variants.
@@ -12,9 +25,8 @@ This tutorial will guide you to turn an ESP32-S3-BOX, ESP32-S3-BOX-3, or an ESP3
## Prerequisites
-- Home Assistant 2023.12, installed with the Home Assistant Operating System
+- Home Assistant 2023.12 or later, installed with the Home Assistant Operating System. If you do not have Home Assistant installed yet, refer to the [installation page](/installation/) for instructions.
- [Home Assistant Cloud](/voice_control/voice_remote_cloud_assistant/) or a manually configured [Assist Pipeline](/voice_control/voice_remote_local_assistant)
-- Have [enabled a wake word](/voice_control/install_wake_word_add_on/) for your voice assistant
- The password to your 2.4 GHz Wi-Fi network
- Chrome or Edge browser on a desktop (not Android/iOS)
- One of the three Espressif ESP32-S3-BOX variants:
@@ -28,22 +40,16 @@ Before you can use this device with Home Assistant, you need to install a bit of
1. Make sure this page is opened in a Chromium-based browser on a **desktop**. The software installation does not work with a tablet or phone.
- - If you have an ESP32-S3-BOX-3, select the **Connect** button below to display a list of available USB devices. Do not connect the ESP32-S3-BOX-3 yet.
- - If your ESP32-S3-BOX-3 does not appear in the list of devices presented by your browser:
- - You need to manually invoke "flash mode":
- - Hold the "boot" button (left side upper button) as you tap the "reset" button (left side lower button)
- - After a few seconds, the ESP32-S3-BOX-3 should appear in the list of USB devices presented by your browser.
- - Follow the steps until step 3. After selecting the **Next** button, on the S3-Box, tap the "Reset" button again.
- - Then, select the blue **Connect button** again, select the USB device and follow the prompts to configure the Wi-Fi.
+ - If you have an ESP32-S3-BOX-3, select the **Connect** button below to display a list of available USB devices. Do not connect the ESP32-S3-BOX-3 yet. We want to see the list of available USB devices first, so that it is easier to recognize the ESP device afterwards.
- If your browser does not support web serial, you will see a warning message indicating this instead of a button.
-
-
+
+
- If you have an ESP32-S3-BOX or ESP32-S3-BOX-Lite, open the [ESPHome projects](https://esphome.io/projects/index.html?type=voice) page, select your variant and follow the installation instructions.
- **For advanced users**: The configuration files are available on GitHub:
- - [ESP32-S3-BOX-3](https://github.com/esphome/firmware/blob/main/voice-assistant/esp32-s3-box-3.yaml)
+ - [ESP32-S3-BOX-3](https://github.com/esphome/firmware/blob/main/wake-word-voice-assistant/esp32-s3-box-3.yaml)
{% include voice_assistant/install_esp_firmware.md %}
@@ -52,11 +58,25 @@ Before you can use this device with Home Assistant, you need to install a bit of
- Your ESP32-S3-BOX is connected to Home Assistant over Wi-Fi. You can now move it to any place in your home with a USB power supply.
-10. Congratulations! You can now voice control Home Assistant via a ESP32 device with a display. Now give some commands.
+10. Make sure your assistant has [wake word enabled](/voice_control/about_wake_word/), using "OK Nabu".
+11. Under **Devices**, on the ESP32-S3-BOX-3 entry, select **Device** to open the device page.
+12. Check the device settings:
+ - If you want, you can process the wake word on the ESP32-S3 device, rather than on your Home Assistant server. (The server is the device where Home Assistant is installed, for example on Home Assistant Green):
+ - Under **Wake word engine location**, select **On device**, if you want your wake word to be processed on the device itself, and not in Home Assistant.
+ - Local processing is faster.
+ - The wake word is now *Okay Nabu*.
+ - If **Display conversation** is enabled, the conversation is shown on the ESP32-S3-BOX-3 display.
+
+ 
+
+13. If you chose on-device wake word, but you do not want to use *Okay Nabu*, you can change the on-device wake word.
+ - Currently, *Hey Jarvis* or *Alexa* are the supported alternatives.
+ - To change your wake word, follow the steps in [Customizing the S3-BOX-3 with on-device wake words](/voice_control/s3-box-customize/#customizing-on-device-wake-words-microwakeword).
+14. Congratulations! You can now voice control Home Assistant via a ESP32 device with a display. Now give some commands.
## Controlling Home Assistant
-1. Say your wake word. For this tutorial, use "OK, Nabu".
+1. Say your wake word. For this tutorial, use "OK Nabu".
2. Say a [supported voice command](/voice_control/builtin_sentences/). For example, *Turn on the light*.
- Once the intent has been processed, the LED lights up in green and Home Assistant confirms the action.
- Make sure you’re using the area name exactly as you defined it in Home Assistant.
@@ -80,11 +100,3 @@ Before you can use this device with Home Assistant, you need to install a bit of
- Disable **LCD Backlight**.

-
-## Related topics
-
-- [Enable a wake word](/voice_control/install_wake_word_add_on/)
-- [General troubleshooting section for Assist](/voice_control/troubleshooting/)
-- [Troubleshooting the ESP32-S3-BOX-3](/voice_control/troubleshooting_the_s3_box/)
-- [ESPHome projects page](https://esphome.io/projects/index.html)
-- [Access to your configuration files](/common-tasks/os/#configuring-access-to-files)
diff --git a/source/voice_control/start_assist_from_dashboard.markdown b/source/voice_control/start_assist_from_dashboard.markdown
index f31b3b6f3c5..0a3f7746975 100644
--- a/source/voice_control/start_assist_from_dashboard.markdown
+++ b/source/voice_control/start_assist_from_dashboard.markdown
@@ -1,22 +1,33 @@
---
title: "Starting Assist from your dashboard"
+related:
+ - docs: /voice_control/android/
+ title: Assist for Android
+ - docs: /voice_control/voice_remote_local_assistant/
+ title: Creating a local assistant
+ - docs: /voice_control/voice_remote_cloud_assistant/
+ title: Creating a Cloud assistant
+ - docs: /voice_control/voice_remote_expose_devices/
+ title: Exposing devices to Assist
---
If you are using Home Assistant in kiosk mode, for example if you have a tablet mounted on the wall, the Assist icon in the top right corner is not accessible. In this case, use a dashboard button to start Assist.
+## Prerequisites
+
+- You have a [local assistant](/voice_control/voice_remote_local_assistant/) or a [Cloud assistant](/voice_control/voice_remote_cloud_assistant/) set up.
+- You have the devices you want to control via Assist [exposed to Assist](/voice_control/voice_remote_expose_devices/).
+
## To add an Assist button to the dashboard
1. On your dashboard, select **Add card** and select the **Button** card.
-2. Clear the **Entity** field and give the card a name, such as *Assist - listen*.
-3. Select an icon, such as `mdi:account-tie-voice`.
-4. From the **Action** dropdown menu, select **Assist**.
-5. From the **Assist** dropdown menu, select the assistant you want to use, for example **Home Assistant Cloud**.
+2. Clear the **Entity** field.
+3. Give the card a name, such as *Assist - listen*.
+4. Select an icon, such as `mdi:account-tie-voice`.
+5. From the **Action** dropdown menu, select **Assist**.
+6. From the **Assist** dropdown menu, select the assistant you want to use, for example **Home Assistant Cloud**.
- You can use any assistant you have previously set up.
- If you have assistants in different languages, you can add a button for each of these languages.
-6. If you are using Assist with your voice, enable **Start listening**.
+7. If you are using Assist with your voice, enable **Start listening**.
- If you don't want to use voice but just want to type, you do not need to enable listening.
-7. **Save** your new button card.
-
-## Related topics
-
-- [Assist for Android](/voice_control/android/)
+8. **Save** your new button card.
diff --git a/source/voice_control/thirteen-usd-voice-remote.markdown b/source/voice_control/thirteen-usd-voice-remote.markdown
index 5489f8eafaa..51dd0207719 100644
--- a/source/voice_control/thirteen-usd-voice-remote.markdown
+++ b/source/voice_control/thirteen-usd-voice-remote.markdown
@@ -3,6 +3,21 @@ title: "$13 voice assistant for Home Assistant"
product_name: ATOM Echo
device_name_entry: M5Stack Atom Echo a61920
config_link: /voice_control/thirteen-usd-voice-remote/#to-delete-the-atom-echo-configuration-from-esphome
+related:
+ - docs: /voice_control/install_wake_word_add_on/
+ title: Enable a wake word
+ - docs: /voice_control/create_wake_word/
+ title: Create your own wake words
+ - docs: /voice_control/voice_remote_cloud_assistant/
+ title: Creating a Cloud assistant
+ - docs: /voice_control/troubleshooting/
+ title: General troubleshooting section for Assist
+ - docs: /voice_control/voice_remote_local_assistant
+ title: Manually configured Assist pipeline
+ - docs: /voice_control/custom_sentences/
+ title: Using a sentence trigger
+ - docs: /common-tasks/os/#configuring-access-to-files
+ title: Access to your configuration files
---
This tutorial will guide you to turn an ATOM Echo into the
@@ -14,7 +29,7 @@ your smart home. Issue commands and get responses!
## Prerequisites
-- Home Assistant 2023.10, installed with the Home Assistant Operating System
+- Home Assistant 2023.10, installed with the Home Assistant Operating System. If you do not have Home Assistant installed yet, refer to the [installation page](/installation/) for instructions.
- [Home Assistant Cloud](/voice_control/voice_remote_cloud_assistant/) or a manually configured [Assist Pipeline](/voice_control/voice_remote_local_assistant)
- Have [enabled a wake word](/voice_control/install_wake_word_add_on/) for your voice assistant
- The password to your 2.4 GHz Wi-Fi network
@@ -29,7 +44,7 @@ Before you can use this device with Home Assistant, you need to install a bit of
1. Make sure this page is opened in a Chromium-based browser on a desktop. It does not work on a tablet or phone.
- Select the **Connect** button below. If your browser does not support web serial, you will see a warning instead of a button.
-
+
- **For advanced users**: The configuration file is available on [GitHub](https://github.com/esphome/firmware/blob/main/voice-assistant/m5stack-atom-echo.yaml).
@@ -63,7 +78,7 @@ Before you can use this device with Home Assistant, you need to install a bit of
2. Go to {% my integrations title="**Settings** > **Devices & Services**" %} and select the **ESPHome** integration.
- Under **M5Stack ATOM Echo**, select **1 device**.
3. Disable **Use wake word**.
-
+

4. To start using push-to-talk, press the flat button with rounded shape on your ATOM Echo.
- The rectangular button on the side is the reset button. Do not press that one.
@@ -76,13 +91,3 @@ Before you can use this device with Home Assistant, you need to install a bit of
Are things not working as expected?
- Checkout the [general troubleshooting section for Assist](/voice_control/troubleshooting/).
-
-## Related topics
-
-- [Enable a wake word](/voice_control/install_wake_word_add_on/)
-- [Create your own wake words](/voice_control/create_wake_word/)
-- [General troubleshooting section for Assist](/voice_control/troubleshooting/)
-- [Access to your configuration files](/common-tasks/os/#configuring-access-to-files)
-- [Using a sentence trigger](/voice_control/custom_sentences/)
-- [Home Assistant Cloud](/voice_control/voice_remote_cloud_assistant/)
-- [Manually configured Assist pipeline](/voice_control/voice_remote_local_assistant)
\ No newline at end of file
diff --git a/source/voice_control/troubleshooting.markdown b/source/voice_control/troubleshooting.markdown
index a926fc455d9..de34a08cb9d 100644
--- a/source/voice_control/troubleshooting.markdown
+++ b/source/voice_control/troubleshooting.markdown
@@ -26,7 +26,6 @@ If you want to test if a sentence works in a specific language without actually
- Which of the targeted entities were matched.

-
## Test a sentence per assistant without voice: while executing the commands
If you want to test if a sentence works with a specific assistant while actively executing the commands, use the sentence parser in the **Debug** view.
@@ -90,12 +89,24 @@ The example below shows common pitfalls when enquiring about the weather. While
## Tweaking the Assist audio configuration for your device
-You think there is an issue with background background noise or speaker volume? In some cases, it can help to tweak settings such as noise suppression and gain of your voice assistant device (such as the S32-S3-BOX-3).
+You think there is an issue with background noise or speaker volume? In some cases, it can help to tweak settings such as noise suppression and gain of your voice assistant device (such as the S32-S3-BOX-3).
### To tweak the Assist audio configuration for your device
-1. Make sure you have [access to your configuration files](/common-tasks/os/#configuring-access-to-files).
-2. Edit the general configuration:
+1. Make sure you have the ESPHome add-on installed:
+ - Go to {% my supervisor_store title="**Settings** > **Add-ons** > **Add-on store**" %}.
+ - If you do not have the **ESPHome** add-on installed, install it.
+2. Start the ESPHome add-on, and select **Open Web UI**.
+3. Adopt your device to the ESPHome add-on:
+ - Once the ESPHome add-on is started, you see your device as **Discovered**.
+ - Select **Adopt**.
+ - When prompted, enter the Network credentials of your local 2.4 GHz Wi-Fi network and select **Adopt**.
+
+4. If you see a notification that there is an update available for this device, select **Update**.
+5. Make sure you have access to the configuration file.
+ - If you are unsure what method to use, [install the File editor](/common-tasks/os/#installing-and-using-the-file-editor-add-on) add-on.
+ - In the File Editor configuration, make sure the **Enforce basepath** option is disabled.
+6. Edit the general configuration to enable debug mode:
- Access the `config` folder and open the `configuration.yaml` file.
- Enter the following text:
@@ -104,17 +115,25 @@ You think there is an issue with background background noise or speaker volume?
debug_recording_dir: /share/assist_pipeline
```
-3. Save the changes and restart Home Assistant.
-4. Make sure you have the [Samba add-on installed](/common-tasks/os/#configuring-access-to-files).
-5. On your computer, access your Home Assistant server via Samba.
- - Navigate to `/share/assist_pipeline`.
+7. Save the changes and restart Home Assistant.
+8. Navigate to `/share/assist_pipeline`.
- For each voice command you gave, you will find a subfolder with the audio file in `.wav` format.
-6. Listen to the audio file of interest.
-7. Adjust noise suppression and volume, if needed:
- - Access the `config` folder and open the `esphome/your-device-name-wake-word.yaml` file.
- - Find the `voice_assistant` section.
- - If the audio is too noisy, increase the `noise_suppression_level` (max. 4).
- - If the audio is too quiet, increase either the `auto_gain` (max. 31) or the `volume_multiplier` (no maximum, but a too high value will cause distortion eventually).
-8. Collecting the debug recordings impacts your disk space.
- - Once you have found a configuration that works, delete the folder with the audio files.
- - In the `configuration.yaml` file, delete the `assist_pipeline entry` and restart Home Assistant.
+9. Listen to the audio file of interest.
+10. Open the configuration file:
+ - In the ESPHome add-on, on your device, select **Edit**.
+ - This lets you edit the configuration file of that device.
+11. To add a section to adjust noise suppression and volume, add the following lines:
+
+ ```yaml
+ voice_assistant:
+ noise_suppression_level: 3
+ auto_gain: 31dBFS
+ volume_multiplier: 10.0
+ ```
+
+12. Adjust the settings:
+ - If the audio is too noisy, increase the `noise_suppression_level` (max. 4).
+ - If the audio is too quiet, increase either the `auto_gain` (max. 31) or the `volume_multiplier` (no maximum, but a too high value will cause distortion eventually).
+13. Note: Collecting debug recordings impacts your disk space.
+ - Once you have found a configuration that works, delete the folder with the audio files.
+ - In the `configuration.yaml` file, delete the `assist_pipeline entry` and restart Home Assistant.
diff --git a/source/voice_control/troubleshooting_the_s3_box.markdown b/source/voice_control/troubleshooting_the_s3_box.markdown
index 2c3b59e061f..470be2efe39 100644
--- a/source/voice_control/troubleshooting_the_s3_box.markdown
+++ b/source/voice_control/troubleshooting_the_s3_box.markdown
@@ -1,5 +1,10 @@
---
title: "Troubleshooting the ESP32-S3-BOX-3"
+related:
+ - docs: /voice_control/s3_box_voice_assistant/
+ title: Creating a ESP32-S3-BOX-3 voice assistant
+ - url: https://esphome.io/projects/index.html
+ title: ESPHome projects website
---
This section provides troubleshooting steps for the ESP32-S3-BOX-3 by Espressif.
@@ -77,8 +82,3 @@ This message indicates that the device could connect to the Wi-Fi, but is unable

- Go to your router, find the IP address or hostname of your device, and enter it.
-
-## Related topics
-
-- [Creating a ESP32-S3-BOX-3 voice assistant](/voice_control/s3_box_voice_assistant/)
-- [ESPHome projects website](https://esphome.io/projects/index.html)
\ No newline at end of file
diff --git a/source/voice_control/voice_remote_cloud_assistant.markdown b/source/voice_control/voice_remote_cloud_assistant.markdown
index 8b3691e29cf..3cc68294e27 100644
--- a/source/voice_control/voice_remote_cloud_assistant.markdown
+++ b/source/voice_control/voice_remote_cloud_assistant.markdown
@@ -1,5 +1,14 @@
---
title: "Creating a cloud Assist pipeline"
+related:
+ - docs: /voice_control/install_wake_word_add_on/
+ title: Enabling a wake word
+ - docs: /voice_control/create_wake_word/
+ title: Create your own wake word
+ - docs: /voice_control/voice_remote_local_assistant/
+ title: Creating a local assistant
+ - docs: /voice_control/voice_remote_expose_devices/
+ title: Exposing devices to Assist
---
In Home Assistant, the Assist pipelines are made up of various components that together form a voice assistant.
@@ -42,10 +51,3 @@ To have the fastest processing voice assistant experience, follow these steps:
6. That's it. You can now speak to your device, and the device can answer in the language you defined.
7. If you haven't done so yet, [expose your devices to Assist](/voice_control/voice_remote_expose_devices/#exposing-your-devices).
- Otherwise you won't be able to control them by voice.
-
-## Related topics
-
-- [Enable Home Assistant Cloud](https://www.nabucasa.com/config/)
-- [Enabling a wake word](/voice_control/install_wake_word_add_on/)
-- [Create your own wake word](/voice_control/create_wake_word/)
-- [Expose your devices to Assist](/voice_control/voice_remote_expose_devices/#exposing-your-devices)
diff --git a/source/voice_control/voice_remote_expose_devices.markdown b/source/voice_control/voice_remote_expose_devices.markdown
index 41c7db07351..cc87595d1c5 100644
--- a/source/voice_control/voice_remote_expose_devices.markdown
+++ b/source/voice_control/voice_remote_expose_devices.markdown
@@ -1,5 +1,11 @@
---
title: "Exposing devices"
+description: Step-by-step instructions on exposing entities to an assistant such as Assist, Google Assistant, or Alexa.
+related:
+ - docs: /voice_control/voice_remote_cloud_assistant/
+ title: Creating a Cloud assistant
+ - docs: /voice_control/voice_remote_local_assistant/
+ title: Creating a local assistant
---
To be able to control your devices over a voice command, you must expose your entities to Assist.
@@ -10,12 +16,10 @@ This is to avoid that sensitive devices, such as locks and garage doors, can ina
1. Go to **Settings** > **Voice assistants**.
2. Open the **Expose** tab.

-3. Select **Expose entities**.
- 1. Select all entities you want to be able to control by voice.
+3. To control the settings for a specific entity, select the entity from the list.
+ - In the pop-up, select all assistants to which the entity should be exposed to: Assist, Google Assistant, and/or Alexa.
+ 
+4. To expose multiple entities at once, to all the assistants, select the **Expose entities** button
+
+5. Select all entities you want to be able to control by voice.

-
-
-## Related topics
-
-- [Local assistant pipeline](/voice_control/voice_remote_local_assistant/)
-- [Cloud assistant pipeline](/voice_control/voice_remote_cloud_assistant/)
\ No newline at end of file
diff --git a/source/voice_control/voice_remote_local_assistant.markdown b/source/voice_control/voice_remote_local_assistant.markdown
index f4992eabf0f..7bf74c3677d 100644
--- a/source/voice_control/voice_remote_local_assistant.markdown
+++ b/source/voice_control/voice_remote_local_assistant.markdown
@@ -1,14 +1,23 @@
---
title: "Installing a local Assist pipeline"
+related:
+ - docs: /voice_control/voice_remote_expose_devices/#exposing-your-devices
+ title: Expose your devices to Assist
+ - docs: /voice_control/create_wake_word/
+ title: Create your own wake words
+ - url: https://github.com/openai/whisper
+ title: Whisper for speech-to-text
+ - url: https://github.com/rhasspy/piper
+ title: Piper for text-to-speech
---
In Home Assistant, the Assist pipelines are made up of various components that together form a voice assistant.
-For each component you can choose from different options. There is a speech-to-text and text-to-speech option that runs entirely local.
+For each component, you can choose from different options. There is a speech-to-text and text-to-speech option that runs entirely local. No data is sent to external servers for processing.
-The speech-to-text option is [Whisper](https://github.com/openai/whisper). It's an open source AI model that supports [various languages](https://github.com/openai/whisper#available-models-and-languages). We use a forked version called [faster-whisper](https://github.com/guillaumekln/faster-whisper). On a Raspberry Pi 4, it takes around 8 seconds to process incoming voice commands. On an Intel NUC it is done in under a second.
+The speech-to-text option is [Whisper](https://github.com/openai/whisper). It's an open source AI model that supports [various languages](https://github.com/openai/whisper#available-models-and-languages). We use a forked version called [faster-whisper](https://github.com/guillaumekln/faster-whisper). On a Raspberry Pi 4, it takes around 8 seconds to process incoming voice commands. On an Intel NUC, it is done in under a second.
-For text-to-speech we have developed [Piper](https://github.com/rhasspy/piper). Piper is a fast, local neural text-to-speech system that sounds great and is optimized for the Raspberry Pi 4. It supports [many languages](https://rhasspy.github.io/piper-samples/). On a Raspberry Pi, using medium quality models, it can generate 1.6s of voice in a second.
+For text-to-speech, we have developed [Piper](https://github.com/rhasspy/piper). Piper is a fast, local neural text-to-speech system that sounds great and is optimized for the Raspberry Pi 4. It supports [many languages](https://rhasspy.github.io/piper-samples/). On a Raspberry Pi, using medium quality models, it can generate 1.6s of voice in a second.
## Prerequisites
@@ -38,7 +47,7 @@ For the quickest way to get your local Assist pipeline started, follow these ste
- Go to {% my voice_assistants title="**Settings** > **Voice assistants**" %} and select **Add assistant**.

- - **Troubleshooting**: If you do not see any assistants here, you are not using the default configuration. In this case, you need to add the following to your `configuration.yaml` file:
+ - **Troubleshooting**: If you do not see any assistants here, you are not using the default configuration. In this case, you need to add the following to your {% term "configuration.yaml" %} file:
```yaml
# Example configuration.yaml entry
@@ -48,12 +57,12 @@ For the quickest way to get your local Assist pipeline started, follow these ste
- Enter a name. You can pick any name that is meaningful to you.
- Select the language that you want to speak.
- Under **Conversation agent**, select **Home Assistant**.
- - Under **Speech-to-text**, select **faster-whisper**.
- - Under **Text-to-speech**, select **piper**.
- - Depending on your language, you may be able to select different language variants.
+ - Under **Speech-to-text**, select **faster-whisper**. Select the language.
+ - Under **Text-to-speech**, select **piper**. Select the language.
+ - Depending on your language, you may be able to select different language variants.
- If you like, pick one of the predefined wake words.

- - You can even [define your own a wake word](/voice_control/create_wake_word/). This is not difficult to do, but you will need to set aside a bit of time for this.
+ - You can even [define your own wake word](/voice_control/create_wake_word/). This is not difficult to do, but you will need to set aside a bit of time for this.
- Once you defined your own wake word, it will show in this pick list.
3. That's it. You ensured your voice commands can be processed locally on your device.
@@ -68,10 +77,3 @@ View some of the options in the video below. Explained by Mike Hansen, creator o
The options are also documented in the add-on itself. Go to the {% my supervisor_addon addon="core_whisper" title="**Whisper**" %} or the {% my supervisor_addon addon="core_piper" title="**Piper**" %} add-on and open the **Documentation** page.
-
-## Related topics
-
-- [Create your own wake word](/voice_control/create_wake_word/)
-- [Expose your devices to Assist](/voice_control/voice_remote_expose_devices/#exposing-your-devices)
-- [Whisper for speech-to-text](https://github.com/openai/whisper)
-- [Piper for text-to-speech](https://github.com/rhasspy/piper)
diff --git a/source/voice_control/worlds-most-private-voice-assistant.markdown b/source/voice_control/worlds-most-private-voice-assistant.markdown
index 351fae4be23..82bc6e5b35a 100644
--- a/source/voice_control/worlds-most-private-voice-assistant.markdown
+++ b/source/voice_control/worlds-most-private-voice-assistant.markdown
@@ -1,5 +1,16 @@
---
title: "World's most private voice assistant"
+related:
+ - docs: /voice_control/voice_remote_cloud_assistant/
+ title: Creating a Cloud assistant
+ - docs: /voice_control/voice_remote_local_assistant/
+ title: Creating a local assistant
+ - docs: /voice_control/assist_create_open_ai_personality/
+ title: Creating an assistant personality with AI
+ - url: https://amzn.to/40k7mRa
+ title: Grandstream HT801
+ - url: https://www.nabucasa.com
+ title: Home Assistant Cloud
---
This tutorial will guide you to turn your old landline phone into the
@@ -10,7 +21,7 @@ your smart home and issue commands and get responses.
## Required material
-- Home Assistant 2023.5 or later
+- Home Assistant 2023.5 or later, installed with the Home Assistant Operating System. If you do not have Home Assistant installed yet, refer to the [installation page](/installation/) for instructions.
- An [analog phone](#about-the-analog-phone) with an RJ11 socket
- An analog telephone adapter
[Grandstream HT801](https://amzn.to/40k7mRa)
@@ -113,7 +124,7 @@ The [debug information](/voice_control/troubleshooting#view-debug-information) s
## Other troubleshooting steps
-Are things still not working as expected?
+Are things still not working as expected?
- Checkout the [general troubleshooting section for Assist](/voice_control/troubleshooting).
@@ -125,10 +136,3 @@ The phone shown in the video by TheFes is a *Heemaf type 1955*, which was used b
The phone used during creation of this tutorial is a 1953 [*Tischstation Mod.29 HF-TR* by Autophon AG](https://www.radiomuseum.org/r/autophon_tischstation_mod29_hf_tr.html).

-
-## Related topics
-
-- [Grandstream HT801](https://amzn.to/40k7mRa)
-- [Home Assistant Cloud](https://www.nabucasa.com)
-- [Cloud assistant pipeline](/voice_control/voice_remote_cloud_assistant/)
-- [Local assistant pipeline](/voice_control/voice_remote_local_assistant/)
\ No newline at end of file
diff --git a/source/yellow/index.html b/source/yellow/index.html
index 4312fe880df..a9db671f8ff 100644
--- a/source/yellow/index.html
+++ b/source/yellow/index.html
@@ -349,109 +349,230 @@ frontpage_image: /images/frontpage/yellow-frontpage.jpg