-The Dormakaba dKey lock is currently not working with USB dongles or built-in Bluetooth radios, only [ESPHome Bluetooth proxies](/integrations/bluetooth/#remote-adapters-bluetooth-proxies) work reliably.
+The Dormakaba dKey lock is currently not working with USB dongles or built-in Bluetooth radios, only [ESPHome Bluetooth proxies](/integrations/bluetooth/#remote-adapters-bluetooth-proxies) configured to allow active connections work reliably.
diff --git a/source/_integrations/enigma2.markdown b/source/_integrations/enigma2.markdown
index 372fb9f703e..10b0bf20a4a 100644
--- a/source/_integrations/enigma2.markdown
+++ b/source/_integrations/enigma2.markdown
@@ -6,7 +6,7 @@ ha_category:
ha_release: '0.90'
ha_iot_class: Local Polling
ha_codeowners:
- - '@fbradyirl'
+ - '@autinerd'
ha_domain: enigma2
ha_platforms:
- media_player
diff --git a/source/_integrations/enmax.markdown b/source/_integrations/enmax.markdown
index ddf7e10784a..e0dba77b7a7 100644
--- a/source/_integrations/enmax.markdown
+++ b/source/_integrations/enmax.markdown
@@ -4,7 +4,7 @@ description: Get energy usage from Enmax Energy using the Opower integration
ha_category:
- Energy
- Sensor
-ha_release: '2023.10'
+ha_release: 2023.8
ha_domain: enmax
ha_integration_type: virtual
ha_supporting_domain: opower
diff --git a/source/_integrations/flexit_bacnet.markdown b/source/_integrations/flexit_bacnet.markdown
index bff795e24ba..393f3885b4d 100644
--- a/source/_integrations/flexit_bacnet.markdown
+++ b/source/_integrations/flexit_bacnet.markdown
@@ -1,5 +1,5 @@
---
-title: Flexit BACnet
+title: Flexit Nordic (BACnet)
description: Instructions on how to integrate Flexit air handling unit into Home Assistant.
ha_category:
- Climate
@@ -8,7 +8,11 @@ ha_iot_class: Local Polling
ha_domain: flexit_bacnet
ha_platforms:
- climate
-ha_integration_type: integration
+ha_integration_type: device
+ha_codeowners:
+ - '@lellky'
+ - '@piotrbulinski'
+ha_config_flow: true
---
Integrates [Flexit](https://www.flexit.no/en/) Nordic series air handling unit into Home Assistant.
diff --git a/source/_integrations/foscam.markdown b/source/_integrations/foscam.markdown
index 51eaecbe76f..c229a681bb4 100644
--- a/source/_integrations/foscam.markdown
+++ b/source/_integrations/foscam.markdown
@@ -7,6 +7,7 @@ ha_iot_class: Local Polling
ha_release: 0.7.3
ha_codeowners:
- '@skgsergio'
+ - '@krmarien'
ha_domain: foscam
ha_config_flow: true
ha_platforms:
diff --git a/source/_integrations/fujitsu_anywair.markdown b/source/_integrations/fujitsu_anywair.markdown
index 8157c8cd3ea..9b3d166d297 100644
--- a/source/_integrations/fujitsu_anywair.markdown
+++ b/source/_integrations/fujitsu_anywair.markdown
@@ -1,21 +1,34 @@
---
title: Fujitsu anywAIR
-description: Instructions on how to integrate Fujitsu anywAIR controller into Home Assistant.
+description: Connect and control your Fujitsu anywAIR devices using the Advantage Air integration
ha_category:
+ - Binary switch
- Climate
- Cover
- Light
- Sensor
+ - Switch
+ - Update
- Update
ha_release: 0.117
-ha_iot_class: Local Polling
-ha_config_flow: true
ha_domain: fujitsu_anywair
ha_supporting_domain: advantage_air
ha_supporting_integration: Advantage Air
+ha_integration_type: virtual
ha_codeowners:
- '@Bre77'
-ha_integration_type: virtual
+ha_config_flow: true
+ha_platforms:
+ - binary_sensor
+ - climate
+ - cover
+ - diagnostics
+ - light
+ - select
+ - sensor
+ - switch
+ - update
+ha_iot_class: Local Polling
---
{% include integrations/supported_brand.md %}
diff --git a/source/_integrations/goodwe.markdown b/source/_integrations/goodwe.markdown
index b7946059cd8..9220e4fe4b4 100644
--- a/source/_integrations/goodwe.markdown
+++ b/source/_integrations/goodwe.markdown
@@ -13,6 +13,7 @@ ha_codeowners:
ha_domain: goodwe
ha_platforms:
- button
+ - diagnostics
- number
- select
- sensor
diff --git a/source/_integrations/growatt_server.markdown b/source/_integrations/growatt_server.markdown
index 3063255ff78..d9f5fb77a2c 100644
--- a/source/_integrations/growatt_server.markdown
+++ b/source/_integrations/growatt_server.markdown
@@ -13,7 +13,7 @@ ha_config_flow: true
ha_integration_type: integration
---
-This is a sensor to collect information from your Growatt inverters using [Growatt server](https://server.growatt.com/) by default. It is possible to specify an alternative endpoint server at configuration time e.g., [SMTEN](https://server.smten.com/).
+This is a sensor to collect information from your Growatt inverters using [Growatt server](https://server.growatt.com/) by default. It is possible to specify an alternative endpoint server at configuration time e.g., [SMTEN](https://server.smten.com/). To see the latest supported servers, add the integration in Home Assistant to see the configuration options.
This will log into your Growatt account and grab the first "Plant", after which it collects the inverters on this plant and creates sensors for these inverters as well as total sensors.
diff --git a/source/_integrations/idasen_desk.markdown b/source/_integrations/idasen_desk.markdown
index 7f3a44c8aa9..2e948d66857 100644
--- a/source/_integrations/idasen_desk.markdown
+++ b/source/_integrations/idasen_desk.markdown
@@ -16,7 +16,6 @@ ha_platforms:
ha_integration_type: integration
ha_codeowners:
- '@abmantis'
-ha_quality_scale: silver
---
The IKEA IDÅSEN integration allows you to connect your IKEA Idåsen motorized desk to Home Assistant, making it possible to control the desk height and also monitor height changes from the physical controller.
diff --git a/source/_integrations/indianamichiganpower.markdown b/source/_integrations/indianamichiganpower.markdown
index ed7cd4b5071..bacb278d251 100644
--- a/source/_integrations/indianamichiganpower.markdown
+++ b/source/_integrations/indianamichiganpower.markdown
@@ -4,7 +4,7 @@ description: Get energy usage from Indiana Michigan Power using the Opower integ
ha_category:
- Energy
- Sensor
-ha_release: 2024.1
+ha_release: 2023.8
ha_domain: indianamichiganpower
ha_integration_type: virtual
ha_supporting_domain: opower
diff --git a/source/_integrations/kentuckypower.markdown b/source/_integrations/kentuckypower.markdown
index f6e38adb837..83a5aad1c9d 100644
--- a/source/_integrations/kentuckypower.markdown
+++ b/source/_integrations/kentuckypower.markdown
@@ -4,7 +4,7 @@ description: Get energy usage from Kentucky Power using the Opower integration
ha_category:
- Energy
- Sensor
-ha_release: 2024.1
+ha_release: 2023.8
ha_domain: kentuckypower
ha_integration_type: virtual
ha_supporting_domain: opower
diff --git a/source/_integrations/modem_callerid.markdown b/source/_integrations/modem_callerid.markdown
index 75fcb248439..a49a8b97ae3 100644
--- a/source/_integrations/modem_callerid.markdown
+++ b/source/_integrations/modem_callerid.markdown
@@ -23,6 +23,14 @@ This integration also offers a button to pick up and then hang up the call to pr
{% include integrations/config_flow.md %}
+## Compatibility
+
+Reported models with this integration include that work:
+- [StarTech.com USB56KEMH2](https://www.startech.com/en-us/networking-io/usb56kemh2)
+
+Devices that did not work:
+- [StarTech.com USB56KEM3](https://www.startech.com/en-us/networking-io/usb56kem3)
+
## Examples
An example automation:
diff --git a/source/_integrations/netgear_lte.markdown b/source/_integrations/netgear_lte.markdown
index 8522c73aa3f..41970ddd18f 100644
--- a/source/_integrations/netgear_lte.markdown
+++ b/source/_integrations/netgear_lte.markdown
@@ -17,8 +17,6 @@ ha_platforms:
ha_codeowners:
- '@tkdrob'
ha_integration_type: integration
-ha_codeowners:
- - '@tkdrob'
---
The NETGEAR LTE integration for Home Assistant allows you to observe and control [NETGEAR LTE modems](https://www.netgear.com/home/mobile-wifi/lte-modems/).
diff --git a/source/_integrations/octoprint.markdown b/source/_integrations/octoprint.markdown
index 0d756a69aad..60a28cdb2d6 100644
--- a/source/_integrations/octoprint.markdown
+++ b/source/_integrations/octoprint.markdown
@@ -58,8 +58,8 @@ verify ssl:
{% endconfiguration_basic %}
### API key
-For the integration to work, please check that in Octoprint, the plugin Discovery is enabled and in the settings -> printer notifications menu pop-ups are enabled.
-The Octoprint integration will attempt to register itself via the [application keys plugin](https://docs.octoprint.org/en/master/bundledplugins/appkeys.html). After submitting the configuration UI in Home Assistant, open the Octoprint UI and click allow on the prompt.
+For the integration to work, please check that in Octoprint, the [Discovery Plugin](https://docs.octoprint.org/en/master/bundledplugins/discovery.html) is enabled and in the **Settings** -> **Printer Notifications** menu that **Enable popups** is checked.
+The Octoprint integration will attempt to register itself via the [Application Keys Plugin](https://docs.octoprint.org/en/master/bundledplugins/appkeys.html). After submitting the configuration UI in Home Assistant, open the Octoprint UI and click allow on the prompt.
## Binary sensor
@@ -71,6 +71,7 @@ The OctoPrint integration provides the following binary sensors:
## Sensor
The OctoPrint integration lets you monitor various states of your 3D printer and its print jobs.
+
Supported sensors:
- Current Printer State
diff --git a/source/_integrations/opnsense.markdown b/source/_integrations/opnsense.markdown
index 06df9f5645a..381548a3e38 100644
--- a/source/_integrations/opnsense.markdown
+++ b/source/_integrations/opnsense.markdown
@@ -14,7 +14,7 @@ ha_platforms:
ha_integration_type: integration
---
-[OPNsense](https://opnsense.org/) is an open source HardenedBSD based firewall
+[OPNsense](https://opnsense.org/) is an open source FreeBSD based firewall
and routing platform. There is currently support for the following device types
within Home Assistant:
diff --git a/source/_integrations/osoenergy.markdown b/source/_integrations/osoenergy.markdown
index 15882fec703..896a08baf7c 100644
--- a/source/_integrations/osoenergy.markdown
+++ b/source/_integrations/osoenergy.markdown
@@ -1,7 +1,7 @@
---
title: OSO Energy
description: Instructions on how to integrate OSO Energy devices with Home Assistant.
-ha_release: "2024.1"
+ha_release: '2024.1'
ha_category:
- Sensor
- Water Heater
diff --git a/source/_integrations/peco.markdown b/source/_integrations/peco.markdown
index 6de605ecfc5..e8483457470 100644
--- a/source/_integrations/peco.markdown
+++ b/source/_integrations/peco.markdown
@@ -10,6 +10,7 @@ ha_codeowners:
- '@IceBotYT'
ha_domain: peco
ha_platforms:
+ - binary_sensor
- sensor
ha_integration_type: integration
---
diff --git a/source/_integrations/ping.markdown b/source/_integrations/ping.markdown
index c4a65a1a457..3760b5ccd81 100644
--- a/source/_integrations/ping.markdown
+++ b/source/_integrations/ping.markdown
@@ -51,10 +51,10 @@ This sensor is enabled by default. The default polling interval is 30 seconds.
The sensor exposes the different round trip times in milliseconds measured by `ping` as attributes:
-- `round_trip_time_mdev`
-- `round_trip_time_avg`
-- `round_trip_time_min`
-- `round_trip_time_max`
+- `round_trip_time_mdev` - the standard deviation
+- `round_trip_time_avg` - the average round trip time
+- `round_trip_time_min` - the shortest round trip time
+- `round_trip_time_max` - the longest round trip time
When run on Windows systems, the round trip time attributes are rounded to the nearest millisecond and the mdev value is unavailable.
@@ -70,4 +70,4 @@ The device tracker is disabled by default and can be enabled in the UI.
Please keep in mind that modern smart phones will usually turn off WiFi when they are idle. Simple trackers like this may not be reliable on their own.
-See the [person integration page](/integrations/person/) for instructions on how to configure the people to be tracked.
\ No newline at end of file
+See the [person integration page](/integrations/person/) for instructions on how to configure the people to be tracked.
diff --git a/source/_integrations/portlandgeneral.markdown b/source/_integrations/portlandgeneral.markdown
index 4c84466ecee..02a76d7f407 100644
--- a/source/_integrations/portlandgeneral.markdown
+++ b/source/_integrations/portlandgeneral.markdown
@@ -1,16 +1,16 @@
---
title: Portland General Electric (PGE)
-description: Get energy usage from Portland General Electric (PGE) using the Opower integration
+description: Connect and control your Portland General Electric (PGE) devices using the Opower integration
ha_category:
- Energy
- Sensor
-ha_release: 2023.9
+ha_release: 2023.8
ha_domain: portlandgeneral
ha_integration_type: virtual
ha_supporting_domain: opower
ha_supporting_integration: Opower
ha_codeowners:
- - '@jrigling'
+ - '@tronikos'
ha_config_flow: true
ha_platforms:
- sensor
diff --git a/source/_integrations/prusalink.markdown b/source/_integrations/prusalink.markdown
index 7314fba00e0..2134255988c 100644
--- a/source/_integrations/prusalink.markdown
+++ b/source/_integrations/prusalink.markdown
@@ -18,21 +18,21 @@ ha_platforms:
ha_dhcp: true
---
-The PrusaLink integration allows you to monitor your [Prusa 3D printer](https://www.prusa3d.com) and its progress with your Home Assistant installation. This integration works with Prusa MINI, Prusa MK3.9/MK4 and Prusa XL. It does not work with the older Raspberry Pi Prusa Link printers.
+The PrusaLink integration allows you to monitor your [Prusa 3D printer](https://www.prusa3d.com) and its progress with your Home Assistant installation. This integration works with Prusa MINI/MINI+, Prusa MK3.9/MK4 and Prusa XL. It does not work with the older Raspberry Pi based Prusa Link printers.
-This integration has been updated to utilize the latest v1 API endpoints, which require firmware version 4.7.0 or later. If you own a Prusa Mini, please make sure your printer is running firmware 5.1.0 or a more recent version. Firmware versions 4.7.x and 5.0.x are not available for this model.
+This integration has been updated to utilize the latest v1 API endpoints, which require firmware version 4.7.0 or later. If you own a Prusa MINI/MINI+, please make sure your printer is running firmware 5.1.0 or a more recent version. Firmware versions 4.7.x and 5.0.x are not available for this model.
Firmware update guides can be found here:
- - [Prusa Mini](https://help.prusa3d.com/article/firmware-updating-mini-mini_124784)
- - [Prusa MK4/XL](https://help.prusa3d.com/article/how-to-update-firmware-mk4-xl_453086)
+ - [Prusa MINI/MINI+](https://help.prusa3d.com/article/firmware-updating-mini-mini_124784)
+ - [Prusa MK3.9/MK4/XL](https://help.prusa3d.com/article/how-to-update-firmware-mk4-xl_453086)
To obtain the hostname, username, and password:
- On your printer, navigate to **Settings** > **Network** > **PrusaLink**.
- Find the device's **IP address**. Alternatively, you can look for the printer's IP address or hostname on your router.
- Note that for some models, the username may not be visible, as it is hardcoded to `maker`.
- - Depending on your model, the entry may not be called **Password**, but **API key**.
+ - Depending on your model, the password entry may not be called **Password**, but **API key**.
{% include integrations/config_flow.md %}
diff --git a/source/_integrations/psoklahoma.markdown b/source/_integrations/psoklahoma.markdown
index 38c622a6552..17ae4af69c0 100644
--- a/source/_integrations/psoklahoma.markdown
+++ b/source/_integrations/psoklahoma.markdown
@@ -4,7 +4,7 @@ description: Get energy usage from Public Service Company of Oklahoma (PSO) usin
ha_category:
- Energy
- Sensor
-ha_release: 2024.1
+ha_release: 2023.8
ha_domain: psoklahoma
ha_integration_type: virtual
ha_supporting_domain: opower
diff --git a/source/_integrations/qbittorrent.markdown b/source/_integrations/qbittorrent.markdown
index 2d9e18fefc5..aa2368dc10a 100644
--- a/source/_integrations/qbittorrent.markdown
+++ b/source/_integrations/qbittorrent.markdown
@@ -56,4 +56,3 @@ response_variable: torrents
```
The response data contains the field `torrent_info` which contains a dictionary of torrents. The name of the torrents are the keys.
-
diff --git a/source/_integrations/radio_browser.markdown b/source/_integrations/radio_browser.markdown
index edbedf8e5bb..8e0abc377bc 100644
--- a/source/_integrations/radio_browser.markdown
+++ b/source/_integrations/radio_browser.markdown
@@ -25,4 +25,3 @@ To start the Radio Browser, in Home Assistant, go to **Media** > **Radio Browser
You can also use the Radio Browser in automations. When creating an automation, use the **Play Media** action to pick a station from the directory. This allows you for example to create
an automation that starts playing your favorite radio station on your
Cast devices.
-
diff --git a/source/_integrations/rest_command.markdown b/source/_integrations/rest_command.markdown
index 52c4a1747dc..1daf7bd0ee3 100644
--- a/source/_integrations/rest_command.markdown
+++ b/source/_integrations/rest_command.markdown
@@ -7,6 +7,8 @@ ha_release: 0.36
ha_iot_class: Local Push
ha_domain: rest_command
ha_integration_type: integration
+ha_codeowners:
+ - '@jpbede'
---
This integration can expose regular REST commands as services. Services can be called from a [script] or in [automation].
diff --git a/source/_integrations/scl.markdown b/source/_integrations/scl.markdown
index 031933d62fe..c8eec6aba8c 100644
--- a/source/_integrations/scl.markdown
+++ b/source/_integrations/scl.markdown
@@ -4,7 +4,7 @@ description: Get energy usage from Seattle City Light (SCL) using the Opower int
ha_category:
- Energy
- Sensor
-ha_release: 2024.1
+ha_release: 2023.8
ha_domain: scl
ha_integration_type: virtual
ha_supporting_domain: opower
diff --git a/source/_integrations/starline.markdown b/source/_integrations/starline.markdown
index 7a1711fda4c..50f9be120b8 100644
--- a/source/_integrations/starline.markdown
+++ b/source/_integrations/starline.markdown
@@ -3,12 +3,12 @@ title: StarLine
description: Instructions on how to setup your StarLine account with Home Assistant.
ha_category:
- Binary sensor
+ - Button
- Car
- Lock
- Presence detection
- Sensor
- Switch
- - Button
ha_release: 0.103
ha_iot_class: Cloud Polling
ha_config_flow: true
@@ -17,11 +17,11 @@ ha_codeowners:
ha_domain: starline
ha_platforms:
- binary_sensor
+ - button
- device_tracker
- lock
- sensor
- switch
- - button
ha_integration_type: integration
---
diff --git a/source/_integrations/swepco.markdown b/source/_integrations/swepco.markdown
index 28a16270c65..521d6c8019c 100644
--- a/source/_integrations/swepco.markdown
+++ b/source/_integrations/swepco.markdown
@@ -4,7 +4,7 @@ description: Get energy usage from Southwestern Electric Power Company (SWEPCO)
ha_category:
- Energy
- Sensor
-ha_release: 2024.1
+ha_release: 2023.8
ha_domain: swepco
ha_integration_type: virtual
ha_supporting_domain: opower
diff --git a/source/_integrations/systemmonitor.markdown b/source/_integrations/systemmonitor.markdown
index 3ec3caf7f00..33d2481e08f 100644
--- a/source/_integrations/systemmonitor.markdown
+++ b/source/_integrations/systemmonitor.markdown
@@ -10,6 +10,8 @@ ha_config_flow: true
ha_platforms:
- sensor
ha_integration_type: integration
+ha_codeowners:
+ - '@gjohansson-ST'
---
The System monitor integration allows you to monitor disk usage,
diff --git a/source/_integrations/tado.markdown b/source/_integrations/tado.markdown
index 548103d42b8..f0187342d61 100644
--- a/source/_integrations/tado.markdown
+++ b/source/_integrations/tado.markdown
@@ -14,6 +14,7 @@ ha_iot_class: Cloud Polling
ha_codeowners:
- '@michaelarnauts'
- '@chiefdragon'
+ - '@erwindouna'
ha_domain: tado
ha_config_flow: true
ha_homekit: true
diff --git a/source/_integrations/tailwind.markdown b/source/_integrations/tailwind.markdown
index b81ae5446c9..cfba164ecfc 100644
--- a/source/_integrations/tailwind.markdown
+++ b/source/_integrations/tailwind.markdown
@@ -14,8 +14,11 @@ ha_platforms:
- binary_sensor
- button
- cover
+ - diagnostics
- number
ha_integration_type: device
+ha_quality_scale: platinum
+ha_dhcp: true
---
The Tailwind integration integrates [Tailwind](https://gotailwind.com/)
diff --git a/source/_integrations/tankerkoenig.markdown b/source/_integrations/tankerkoenig.markdown
index 5e455bd445c..9f2cbe704c5 100755
--- a/source/_integrations/tankerkoenig.markdown
+++ b/source/_integrations/tankerkoenig.markdown
@@ -12,6 +12,7 @@ ha_codeowners:
- '@mib1185'
ha_platforms:
- binary_sensor
+ - diagnostics
- sensor
ha_config_flow: true
ha_integration_type: integration
diff --git a/source/_integrations/tessie.markdown b/source/_integrations/tessie.markdown
index 9d95bb59f26..c0773fd858e 100644
--- a/source/_integrations/tessie.markdown
+++ b/source/_integrations/tessie.markdown
@@ -27,7 +27,9 @@ ha_platforms:
- lock
- media_player
- number
+ - select
- sensor
+ - switch
- update
ha_integration_type: integration
---
diff --git a/source/_integrations/timer.markdown b/source/_integrations/timer.markdown
index 041e4e4f2d2..60acde7ac07 100644
--- a/source/_integrations/timer.markdown
+++ b/source/_integrations/timer.markdown
@@ -107,7 +107,7 @@ Change an active timer. This changes the duration of the timer with the duration
### Service `timer.pause`
-Pause a running timer. This will retain the remaining duration for later continuation. You can also use `entity_id: all` and all active timers will be paused.
+Pause a running timer. This will retain the remaining duration for later continuation. To resume a timer use the `timer.start` service without passing a duration. You can also use `entity_id: all` and all active timers will be paused.
| Service data attribute | Optional | Description |
| ---------------------- | -------- | ----------- |
diff --git a/source/_integrations/trend.markdown b/source/_integrations/trend.markdown
index 31832f55d20..776db5da820 100644
--- a/source/_integrations/trend.markdown
+++ b/source/_integrations/trend.markdown
@@ -3,8 +3,8 @@ title: Trend
description: Instructions on how to integrate Trend binary sensors into Home Assistant.
ha_category:
- Binary sensor
- - Utility
- Helper
+ - Utility
ha_release: 0.28
ha_iot_class: Calculated
ha_quality_scale: internal
diff --git a/source/_integrations/unifi_direct.markdown b/source/_integrations/unifi_direct.markdown
index ce42a8a3b38..44b835b7b6b 100644
--- a/source/_integrations/unifi_direct.markdown
+++ b/source/_integrations/unifi_direct.markdown
@@ -9,6 +9,8 @@ ha_domain: unifi_direct
ha_platforms:
- device_tracker
ha_integration_type: integration
+ha_codeowners:
+ - '@tofuSCHNITZEL'
---
This platform allows you to detect presence by looking at devices connected to a [UniFi AP](https://www.ui.com/products/#unifi). This device tracker differs from [Ubiquiti UniFi](/integrations/unifi) because it doesn't require the UniFi Network application.
diff --git a/source/_integrations/unifiprotect.markdown b/source/_integrations/unifiprotect.markdown
index 5eb34fc687d..63357f48574 100644
--- a/source/_integrations/unifiprotect.markdown
+++ b/source/_integrations/unifiprotect.markdown
@@ -53,11 +53,11 @@ This {% term integration %} supports all UniFi OS Consoles that can run UniFi Pr
- Any UniFi "Dream" device (**[UDMPRO](https://store.ui.com/collections/unifi-network-unifi-os-consoles/products/udm-pro)**, **[UDR](https://store.ui.com/collections/unifi-network-unifi-os-consoles/products/dream-router)**, or **[UDMSE](https://store.ui.com/collections/unifi-network-unifi-os-consoles/products/dream-machine-se)**), _except the base UniFi Dream Machine/UDM_
- UniFi Cloud Key Gen2 Plus (**[UCKP](https://store.ui.com/collections/unifi-protect-nvr/products/unifi-cloudkey-plus)**) firmware version v2.0.24+
-UCKP with Firmware v1.x **do NOT run UniFi OS**, you must upgrade to firmware `[v2.0.24](https://community.ui.com/releases/UniFi-Cloud-Key-Firmware-2-0-24/b6684f1e-8542-4660-bc0b-74e0634448e8)` or newer.
+UCKP with Firmware v1.x **do NOT run UniFi OS**, you must upgrade to firmware [`v2.0.24`](https://community.ui.com/releases/UniFi-Cloud-Key-Firmware-2-0-24/b6684f1e-8542-4660-bc0b-74e0634448e8) or newer.
### Software support
-The absolute **minimal** software version is `[v1.20.0](https://community.ui.com/releases/UniFi-Protect-Application-1-20-0/d43c0905-3fb4-456b-a7ca-73aa830cb011)` for UniFi Protect. If you have an older version, you will get errors trying to set up the integration. However, the general advice is the latest 2 minor versions of UniFi Protect and hardware supported by those are supported.
+The absolute **minimal** software version is [`v1.20.0`](https://community.ui.com/releases/UniFi-Protect-Application-1-20-0/d43c0905-3fb4-456b-a7ca-73aa830cb011) for UniFi Protect. If you have an older version, you will get errors trying to set up the integration. However, the general advice is the latest 2 minor versions of UniFi Protect and hardware supported by those are supported.
diff --git a/source/_integrations/utility_meter.markdown b/source/_integrations/utility_meter.markdown
index 12fbb5cf385..9bbea366fd1 100644
--- a/source/_integrations/utility_meter.markdown
+++ b/source/_integrations/utility_meter.markdown
@@ -14,7 +14,6 @@ ha_domain: utility_meter
ha_platforms:
- select
- sensor
-ha_config_flow: true
ha_integration_type: helper
---
diff --git a/source/_integrations/vesync.markdown b/source/_integrations/vesync.markdown
index 20cbc05459e..d072126f5ca 100644
--- a/source/_integrations/vesync.markdown
+++ b/source/_integrations/vesync.markdown
@@ -12,6 +12,7 @@ ha_codeowners:
- '@markperdue'
- '@webdjoe'
- '@thegardenmonkey'
+ - '@cdnninja'
ha_domain: vesync
ha_platforms:
- diagnostics
diff --git a/source/_integrations/weather.markdown b/source/_integrations/weather.markdown
index 714c7fa52ca..a589f9c0b0e 100644
--- a/source/_integrations/weather.markdown
+++ b/source/_integrations/weather.markdown
@@ -192,4 +192,4 @@ weather.toronto_forecast:
temperature: 0
```
-{% enddetails %}
\ No newline at end of file
+{% enddetails %}
diff --git a/source/_integrations/whisper.markdown b/source/_integrations/whisper.markdown
index 7c497e78460..dd40789effb 100644
--- a/source/_integrations/whisper.markdown
+++ b/source/_integrations/whisper.markdown
@@ -15,6 +15,7 @@ ha_config_flow: true
ha_platforms:
- stt
- tts
+ - wake_word
ha_iot_class: Local Push
---
diff --git a/source/_integrations/wyoming.markdown b/source/_integrations/wyoming.markdown
index b2fdbb7abf6..a2c1992f27d 100644
--- a/source/_integrations/wyoming.markdown
+++ b/source/_integrations/wyoming.markdown
@@ -11,10 +11,14 @@ ha_codeowners:
ha_domain: wyoming
ha_integration_type: integration
ha_platforms:
+ - binary_sensor
+ - number
+ - select
- stt
+ - switch
- tts
- - wake_word
ha_config_flow: true
+ha_zeroconf: true
---
The **Wyoming** {% term integration %} connects external voice services to Home Assistant using a [small protocol](https://github.com/rhasspy/rhasspy3/blob/master/docs/wyoming.md). This enables [Assist](/voice_control/) to use a variety of local [speech-to-text](/integrations/stt/), [text-to-speech](/integrations/tts/), and [wake-word-detection](/integrations/wake_word/) systems, such as:
diff --git a/source/_posts/2024-01-03-release-20241.markdown b/source/_posts/2024-01-03-release-20241.markdown
new file mode 100644
index 00000000000..46e8c6875e7
--- /dev/null
+++ b/source/_posts/2024-01-03-release-20241.markdown
@@ -0,0 +1,579 @@
+---
+layout: post
+title: "2024.1: Happy automating!"
+description: "Happy New Year! 🥂 2024.1 starts with many UI improvements to our automation editor, due date and description support for to-do items, a brand new valve entity, and more card features!"
+date: 2024-01-03 00:00:00
+date_formatted: "January 3, 2024"
+author: Franck Nijhof
+author_twitter: frenck
+comments: true
+categories:
+ - Release-Notes
+ - Core
+og_image: /images/blog/2024-01/social.png
+---
+
+

+
+Happy New Year! 🍾
+
+We wish you, and all the loved ones around you, all the best for 2024! 🥂
+
+I cannot think of a better way to start the new year: Home Assistant Core 2024.1! 🎉
+
+This release is fairly small, as expected; we are just coming out of the holiday
+season. However, it does contain some nice improvements and
+features to be excited about and a stunning total of 13 new integrations!
+
+My favorite: the automation editor changes. It had quite a bunch of user
+interface tweaks. Most are focused on making it friendlier and easier to use
+for new and long-term users, making it quicker to find the right trigger,
+condition, or action.
+
+I greatly like this improved experience, and I hope you do too!
+
+Enjoy the release!
+
+../Frenck
+
+
+
+- [Automation editor improvements](#automation-editor-improvements)
+ - [Improved empty automations dashboard](#improved-empty-automations-dashboard)
+ - [Guidance when creating a new automation](#guidance-when-creating-a-new-automation)
+ - [Building blocks](#building-blocks)
+ - [Improved trigger, condition \& action buttons](#improved-trigger-condition--action-buttons)
+ - [Unified actions](#unified-actions)
+- [Description \& due date support for to-do list items](#description--due-date-support-for-to-do-list-items)
+- [New entity type: Valve](#new-entity-type-valve)
+- [Swappable current/target on thermostat \& humidifier cards](#swappable-currenttarget-on-thermostat--humidifier-cards)
+- [New card features](#new-card-features)
+- [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)
+- [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=dRwzSkKYIDs)
+3 January 2024, at 12:00 PST / 21:00 CET!
+
+
+
+## Automation editor improvements
+
+The automation editor got some love for this release, with many small
+improvements to make it easier for both new and long-time users.
+
+As there are many small improvements, let’s go over them individually.
+
+PS: One quick note: all changes are UI changes, meaning that these changes
+do not affect the underlying automation configuration. All your existing
+automations will continue to work as they did before.
+
+### Improved empty automations dashboard
+
+If you start with Home Assistant, visiting the automations dashboard would
+result in an empty page. That is not very helpful if you see this for the
+first time. So, we’ve improved that!
+
+You are now greeted by the little automation robot that explains what an
+automation is and references to the documentation that can help you get started.
+
+

+
+A small but effective improvement to help new users get started. We have also
+applied this same improvement to the scripts and scenes dashboards.
+
+### Guidance when creating a new automation
+
+When starting a new automation from scratch, you used to be greeted by some,
+possibly, new terminology and almost a blank page with some buttons to
+add triggers, conditions or actions. As a new user, this immediately imposes
+a challenge: what do I need to do?
+
+You guessed it: We have slightly improved that. We have changed the big headers
+to be more descriptive and less technical. We have also added some help text to
+explain each section, including examples of what they can be used for.
+
+

+
+Don’t worry; we’ll hide the explanation once you add elements to the sections
+to keep the overview of existing automations as clean as possible.
+
+### Building blocks
+
+You might have noticed in the screenshots above the conditions and actions have
+a new button next to them: **+ Add building block**.
+
+Selecting these new buttons allows you to add logical elements to your
+automation or scripts, like **And**, **Or**, **If-then**, **Choose**, etc.
+
+These used to be mixed in with the conditions and actions but now have their
+own dedicated button. It makes it easier to find them and declutters the
+list of conditions and actions.
+
+

+
+Notice how this now opens up a dialog? A dialog gives us more space to describe
+what each building block does and room for a search box to find the one you need.
+
+### Improved trigger, condition & action buttons
+
+The bigger change can be found in the buttons to add a trigger, conditions,
+or actions to your automation. This change was not just aimed at new users
+but also long-time users.
+
+All these buttons are used to give a dropdown that allows you to select the
+type of trigger, condition, or action you want to add. This dropdown has been
+replaced by a new dialog similar to the one we just saw for the building blocks.
+
+Like the building block, it describes what each trigger, condition,
+or action does. These descriptions are important, as they help you understand
+what they do.
+
+

+
+If you add an element, we will first show you the most used
+triggers/conditions/actions by our community. We now have all others neatly
+grouped. For actions, we took it a step further and unified them with
+service calls.
+
+### Unified actions
+
+If you have been using Home Assistant for a while, you are probably familiar
+with the “service call”-action that you can add to your automation. But,
+honestly, what is a “service call”? It is a bit of a technical term that is
+especially confusing for newer users. You just want to turn on a light, right?
+
+This release unifies those “service calls” with all other actions, meaning
+there is no “service call” anymore; that layer has been refactored from the UI.
+Instead, you add an action and select the action you want to take, for example,
+turn on a light.
+
+

+
+This means that if you add an action, you see all actions (including all
+service calls), categorized, with description, and searchable! Being able
+to search through all available actions is a huge improvement.
+
+

+
+By default, just like with the triggers and conditions, we show you the most
+used actions first and the actions for the entities you have on your system.
+All others are neatly grouped by integration in the **Other actions** section.
+
+

+
+## Description & due date support for to-do list items
+
+The to-do list integration keeps getting better and better. This release adds
+support for descriptions and due dates!
+
+If the integration you are using supports it, you can now add descriptions to
+each task on your list. It fully supports the Markdown markup to add links,
+bold text, etc. If due dates (or due date + time) are supported, you can
+set these.
+
+

+
+As shown in the screenshot above, there is a whole new dialog to adjust
+your to-do item. But this is not the only change. The list itself has been
+improved as well.
+
+

+
+It is much cleaner, all big text boxes are gone, and each item is nicely
+formatted, including an excerpt of the description and the due date. If the due
+date is overdue, it will be highlighted.
+
+## New entity type: Valve
+
+A brand new entity type has been added to Home Assistant: Valve!
+
+Integrations can use this entity type to expose valves, such as a valve on
+a radiator, pool, sprinkler system, and main house gas or water line.
+
+

+
+Currently, the [Shelly integration] supports it and now provides a `valve` entity
+for the Valve addon for Shelly Gas. Additionally, support for it has been
+added to [MQTT], and the valve entities also work with Amazon Alexa
+and Google Assistant.
+
+Tip: Do you have a switch entity that controls a valve? You can now change the
+entity type to valve in the entity settings.
+
+[Shelly integration]: /integrations/shelly
+[MQTT]: integrations/valve.mqtt
+
+## Swappable current/target on thermostat & humidifier cards
+
+By popular demand, the thermostat and humidifier cards now support setting
+current temperature/humidity as the primary information to show on the
+card.
+
+You can enable the **show current temperature as primary information** option
+in the card, which will result in the target temperature being swapped with the
+current temperature in the card.
+
+

+
+## New card features
+
+Last year, we saw many new features added to the cards, so let's start
+the new year with some more!
+
+[@Quentame] added the climate fan mode card feature. This feature can be
+used with both the thermostat and the tile card:
+
+

+
+Also new is the update actions card feature. This addition by [@piitaya] allows
+you to add buttons to a card to trigger update actions when pressed.
+
+

+
+[@piitaya]: https://github.com/piitaya
+[@Quentame]: https://github.com/Quentame
+
+## Other noteworthy changes
+
+There are many more improvements in this release; here are some of the other
+noteworthy changes this release:
+
+- Two brand new [template functions] have been added this release: `median` and
+ `statistical_mode`. Thanks, [@TheFes]!
+- [@bieniu] added support for the brand new Shelly 3rd generation devices to
+ the [Shelly] integration. Nice!
+- A long-time shutdown bug has been fixed: You can now run automations triggered
+ when Home Assistant shuts down. This could, for example, be used to send
+ yourself a notification when that happens. Thanks, [@tetele]!
+- Created your own fan controller using [ESPHome]? You can now add preset modes
+ to it! Thanks, [@mill1000]!
+- The [ping] integration now has the option to configure the number of seconds
+ that must elapse before considering a disconnected device "not at home".
+ Awesome, [@jpbede]!
+- Looking for the ZAMG integration? It has been renamed to [GeoSphere Austria].
+ Thanks, [@killer0071234]!
+- Got one of those Sonos amps? [@jjlawren] added support for the subwoofer
+ crossover setting to the [Sonos] integration. Nice!
+- [@tkdrob] added support for the new calendar entity to the [Radarr] integration.
+ So you can see the release schedules straight from Home Assistant. Awesome!
+- You can now configure the minimal number of samples the [trend] helper uses.
+ It allows you to make it less sensitive when there is not that much data.
+ Thanks, [@jpbede]!
+- Got cold toes in bed? [@kbickar] to the rescue! He added support for
+ foot warmers to the [SleepIQ] integration. Nice!
+
+[@bieniu]: https://github.com/bieniu
+[@jjlawren]: https://github.com/jjlawren
+[@jpbede]: https://github.com/jpbede
+[@kbickar]: https://github.com/kbickar
+[@killer0071234]: https://github.com/killer0071234
+[@mill1000]: https://github.com/mill1000
+[@tetele]: https://github.com/tetele
+[@TheFes]: https://github.com/TheFes
+[@tkdrob]: https://github.com/tkdrob
+[ESPHome]: /integrations/esphome
+[GeoSphere Austria]: /integrations/zamg
+[ping]: /integrations/ping
+[Radarr]: /integrations/radarr
+[Shelly]: /integrations/shelly
+[SleepIQ]: /integrations/sleepiq
+[Sonos]: /integrations/sonos
+[template functions]: /docs/configuration/templating/#numeric-functions-and-filters
+[trend]: /integrations/trend
+
+## New integrations
+
+We welcome the following new integrations in this release:
+
+- **[A. O. Smith]**, added by [@bdr99]
+ Integrate and control your A. O. Smith water heater.
+- **[Blue Current]**, added by [@Floris272]
+ Monitor your Blue Current EV charger charge point(s).
+- **[DROP]**, added by [@pfrazer]
+ Manage your DROP Smart Water System with Home Assistant.
+- **[Flexit Nordic (BACnet)]**, added by [@lellky]
+ Control and monitor your Flexit Nordic series air handling units.
+- **[Holiday]**, added by [@jrieger]
+ Add holiday calendars to Home Assistant for powering automations.
+- **[Midea CCM15 AC Controller]**, added by [@ocalvo]
+ Use your AC connected to a Midea CCM15 AC Controller.
+- **[OSO Energy]**, added by [@osohotwateriot]
+ Use your OSO Energy water heater with Home Assistant.
+- **[Sun WEG]**, added by [@rokam]
+ Collect and monitor energy production data from your Sun WEG inverter.
+- **[Tailwind]**, added by [@frenck]
+ Operate your garage door openers connected to a Tailwind smart garage door controller.
+- **[Tessie]**, added by [@Bre77]
+ Integrate, monitor and control your Tesla vehicle connected to the Tessie platform.
+- **[Refoss]**, added by [@ashionky]
+ Use your Refoss smart devices directly with Home Assistant.
+- **[Valve]**, added by [@cibernox]
+ An entity type for valves, which can be used by integrations to expose valves.
+- **[Vogel's MotionMount]**, added by [@RJPoelstra]
+ Control the position of your Vogel's MotionMount TV mount.
+
+[@ashionky]: https://github.com/ashionky
+[@bdr99]: https://github.com/bdr99
+[@Bre77]: https://github.com/Bre77
+[@cibernox]: https://github.com/cibernox
+[@Floris272]: https://github.com/Floris272
+[@frenck]: https://github.com/frenck
+[@jrieger]: https://github.com/jrieger
+[@lellky]: https://github.com/lellky
+[@ocalvo]: https://github.com/ocalvo
+[@osohotwateriot]: https://github.com/osohotwateriot
+[@pfrazer]: https://github.com/pfrazer
+[@RJPoelstra]: https://github.com/RJPoelstra
+[@rokam]: https://github.com/rokam
+[A. O. Smith]: /integrations/aosmith
+[Blue Current]: /integrations/blue_current
+[DROP]: /integrations/drop_connect
+[Flexit Nordic (BACnet)]: /integrations/flexit_bacnet
+[Holiday]: /integrations/holiday
+[Midea CCM15 AC Controller]: /integrations/ccm15
+[OSO Energy]: /integrations/osoenergy
+[Refoss]: /integrations/refoss
+[Sun WEG]: /integrations/sunweg
+[Tailwind]: /integrations/tailwind
+[Tessie]: /integrations/tessie
+[Valve]: /integrations/valve
+[Vogel's MotionMount]: /integrations/motionmount
+
+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:
+
+- **[AEP Ohio]**, provided by [Opower]
+- **[AEP Texas]**, provided by [Opower]
+- **[Appalachian Power]**, provided by [Opower]
+- **[Fujitsu anywAIR]**, provided by [Advantage Air]
+- **[Indiana Michigan Power]**, provided by [Opower]
+- **[Kentucky Power]**, provided by [Opower]
+- **[Public Service Company of Oklahoma (PSO)]**, provided by [Opower]
+- **[Seattle City Light]**, provided by [Opower]
+- **[Southwestern Electric Power Company (SWEPCO)]**, provided by [Opower]
+
+[Advantage Air]: /integrations/advantage_air
+[AEP Ohio]: /integrations/aep_ohio
+[AEP Texas]: /integrations/aep_texas
+[Appalachian Power]: /integrations/appalachianpower
+[Fujitsu anywAIR]: /integrations/fujitsu_anywair
+[Indiana Michigan Power]: /integrations/indianamichiganpower
+[Kentucky Power]: /integrations/kentuckypower
+[Opower]: /integrations/opower
+[Public Service Company of Oklahoma (PSO)]: /integrations/psoklahoma
+[Seattle City Light]: /integrations/scl
+[Southwestern Electric Power Company (SWEPCO)]: /integrations/swepco
+
+## Integrations now available to set up from the UI
+
+The following integrations are now available via the Home Assistant UI:
+
+- **[Netgear LTE]**, done by [@tkdrob]
+- **[StreamLabs]**, done by [@joostlek]
+- **[Suez Water]**, done by [@joostlek]
+- **[Swiss public transport]**, done by [@miaucl]
+- **[System Monitor]**, done by [@gjohansson-ST]
+- **[Trend]**, done by [@jpbede]
+
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@joostlek]: https://github.com/joostlek
+[@jpbede]: https://github.com/jpbede
+[@miaucl]: https://github.com/miaucl
+[@tkdrob]: https://github.com/tkdrob
+[Netgear LTE]: /integrations/netgear_lte
+[StreamLabs]: /integrations/streamlabswater
+[Suez Water]: /integrations/suez_water
+[Swiss public transport]: /integrations/swiss_public_transport
+[System Monitor]: /integrations/systemmonitor
+[Trend]: /integrations/trend
+
+## 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 "Blink" %}
+
+The service calls of Blink have been adjusted. This affects
+`blink.trigger_camera`, `blink.save_video` and `blink.save_recent_clips`.
+
+This change will require these service calls to be updated with a `target` for
+the camera and by removing `name` from `data` of the blink service calls.
+
+For example, service call before 2023.11:
+
+```yaml
+service: blink.save_video
+data:
+ name: Front door
+ filename: test.mp4
+```
+
+Service call after 2023.11 and before 2024.1:
+
+```yaml
+service: blink.save_video
+data:
+ device_id: 87dc3b85c18ee84f8c322a95e8230eb2
+ name: Front door
+ filename: test.mp4
+```
+
+New service call:
+```yaml
+service: blink.save_video
+target:
+ entity_id:
+ - camera.front_door
+data:
+ filename: test.mp4
+```
+
+---
+
+The `blink.send_pin` service now uses an integration/configuration entry selector:
+
+Example service call before 2023.11:
+
+```yaml
+service: blink.send_pin
+data:
+ pin: "1234"
+```
+
+Service call after 2023.11 and before 2024.1:
+
+```yaml
+service: blink.send_pin
+data:
+ pin: "1234"
+ device_id: 87dc3b85c18ee84f8c322a95e8230eb2
+```
+
+ New service call:
+
+```yaml
+service: blink.send_pin
+data:
+ config_entry_id: a1bee602deade2b09bc522749bbce48e
+ pin: "1234"
+```
+
+---
+
+The `blink.blink_update` service is deprecated and will be removed in 2024.7.0.
+Use the `homeassistant.update_entity` service instead.
+
+([@mkmer] - [#105413]) ([documentation](/integrations/blink))
+
+[@mkmer]: https://github.com/mkmer
+[#105413]: https://github.com/home-assistant/core/pull/105413
+
+{% enddetails %}
+
+{% details "Home Assistant shutdown event" %}
+
+The event key in the (undocumented) trigger data for the `homeassistant` trigger
+platform is now the string `shutdown` for a `homeassistant` trigger configured
+to fire on shutdown instead of an `Event` object.
+
+([@tetele] - [#91165]) ([documentation](/integrations/homeassistant))
+
+[@tetele]: https://github.com/tetele
+[#91165]: https://github.com/home-assistant/core/pull/91165
+
+{% enddetails %}
+
+{% details "Modbus" %}
+
+Setting `swap: none` has been removed from the Modbus configuration.
+It is identical to omitting it: `swap:`.
+
+([@janiversen] - [#104713]) ([documentation](/integrations/modbus))
+
+[@janiversen]: https://github.com/janiversen
+[#104713]: https://github.com/home-assistant/core/pull/104713
+
+{% enddetails %}
+
+{% details "PrusaLink" %}
+
+- The printer state now contains several new statuses, most importantly
+ "attention", which always needs your intervention.
+- Firmware 4.7.0 is now the minimum version for Prusa XL and MK4.
+- Firmware 5.1.0 is now the minimum version for Prusa Mini since 4.7.x and 5.0.x
+ aren't available for the Mini.
+
+([@Skaronator] - [#103396]) ([documentation](/integrations/prusalink))
+
+[@Skaronator]: https://github.com/Skaronator
+[#103396]: https://github.com/home-assistant/core/pull/103396
+
+{% enddetails %}
+
+{% details "Reolink" %}
+
+The Reolink `Infrared lights in night mode` entity has been migrated from
+the `light` to the `switch` domain.
+
+This means the entity ID also changed, and automations and dashboards may need
+to be adjusted to use the new entity ID.
+
+If you want to go back to the light domain, use the
+[switch_as_x "Show as" option](/integrations/switch_as_x/#change-device-type-of-a-switch-from-the-existing-entity)
+on the new `Infrared lights in night mode` switch entity and select light.
+
+([@starkillerOG] - [#105916]) ([documentation](/integrations/reolink))
+
+[@starkillerOG]: https://github.com/starkillerOG
+[#105916]: https://github.com/home-assistant/core/pull/105916
+
+{% enddetails %}
+
+{% details "Shelly" %}
+
+The minimum supported firmware version for generation 1 devices is 1.11.0 (2021-07-15).
+The minimum supported firmware version for generation 2 devices is 1.0.0 (2023-08-03).
+
+You must update your devices to the firmware versions listed or newer.
+
+([@bieniu] - [#105384]) ([documentation](/integrations/shelly))
+
+[@bieniu]: https://github.com/bieniu
+[#105384]: https://github.com/home-assistant/core/pull/105384
+
+{% 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 EntityDescription data classes](https://developers.home-assistant.io/blog/2023/12/11/entity-description-changes/)
+- [Config entry now supports minor versions](https://developers.home-assistant.io/blog/2023/12/18/config-entry-minor-version/)
+- [Deprecated constants create a log entry](https://developers.home-assistant.io/blog/2023/12/19/constant-deprecation/)
+- [Deprecating all magic numbers for supported features](https://developers.home-assistant.io/blog/2023/12/28/support-feature-magic-numbers-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.1](/changelogs/core-2024.1)
diff --git a/source/changelogs/core-2024.1.markdown b/source/changelogs/core-2024.1.markdown
new file mode 100644
index 00000000000..a8c7ce3c9d8
--- /dev/null
+++ b/source/changelogs/core-2024.1.markdown
@@ -0,0 +1,1579 @@
+---
+title: Full changelog for Home Assistant Core 2024.1
+description: Detailed changelog for the Home Assistant Core 2024.1 release
+replace_regex: \s\(\[?[a-z0-9\-\s_]+\]?\)$
+---
+
+These are all the changes included in the Home Assistant Core 2024.1 release.
+
+For a summary in a more readable format:
+[Release notes blog for this release](/blog/2024/01/03/release-20241/).
+
+## All changes
+
+- Bump version to 2024.1.0dev0 ([@frenck] - [#104746])
+- Add faa_delays to strict typing ([@joostlek] - [#104720])
+- Move Faa delays state attributes to entity description ([@joostlek] - [#104748])
+- Add entity translations to faa_delays ([@joostlek] - [#104749])
+- Add strict typing to push bullet ([@engrbm87] - [#99538])
+- Reolink cleanup when CAM disconnected from NVR ([@starkillerOG] - [#103888])
+- Migrate GDACS to has entity name ([@joostlek] - [#104733])
+- Add common reolink entity description ([@starkillerOG] - [#104142])
+- Cleanup Reolink formatting (late review) ([@starkillerOG] - [#104793])
+- Make the minimum number of samples used by the trend sensor configurable ([@jpbede] - [#101102])
+- Add Flexit bacnet integration ([@lellky] - [#104275])
+- Add significant Change support for remote ([@mib1185] - [#104627])
+- Add codeowner to vesync ([@cdnninja] - [#104809])
+- Bump evohome-async to 0.4.9 ([@zxdavb] - [#103660])
+- Added typing for return value for async_migrate func. ([@sergeymaysak] - [#104828])
+- Improve decorator type annotations ([@cdce8p] - [#104821])
+- Improve decorator type annotations [matter] ([@cdce8p] - [#104822])
+- Improve decorator type annotations [sabnzbd] ([@cdce8p] - [#104823])
+- Improve decorator type annotations [core] ([@cdce8p] - [#104826])
+- Always create APCUPS device ([@joostlek] - [#104716])
+- Improve decorator type annotations [sensibo] ([@cdce8p] - [#104824])
+- Use orjson to load HomeWizard test fixtures ([@frenck] - [#104832])
+- Vesync constant cleanup ([@cdnninja] - [#104842])
+- Let executor CI test pass under worse conditions ([@jbouwh] - [#104849])
+- Change pytest fixture scope from core fixtures ([@frenck] - [#104831])
+- Add temperature to the light color mode parameter fallbacks ([@nmaggioni] - [#86026])
+- Bump bluetooth-data-tools to 0.16.0 ([@bdraco] - [#104854])
+- Fix powerwall typing ([@cdce8p] - [#104875])
+- Migrate to using faster monotonic_time_coarse from bluetooth-data-tools ([@bdraco] - [#104882])
+- Reolink only fetch data for enabled entities ([@starkillerOG] - [#104157])
+- Adjust roku type hint ([@cdce8p] - [#104877])
+- Improve decorator type annotations [esphome] ([@cdce8p] - [#104878])
+- Correct SerialException import in dsmr, firmata, landysgyr_heat_meater and rfxtrx integrations ([@jbouwh] - [#104889])
+- Add number entities for program temperature in ViCare integration ([@CFenner] - [#103960])
+- Add alarm sensor to Aurora ABB ([@davet2001] - [#104503])
+- Add MELCloud token refresh upon firmware upgrade ([@erwindouna] - [#104391])
+- Refactor bluetooth scanners for better seperation of concerns ([@bdraco] - [#104909])
+- Bump python-holidays to 0.37 ([@jrieger] - [#104937])
+- Remove CONF_PRECISION remainder from dsmr ([@jbouwh] - [#104919])
+- Add Holiday integration ([@jrieger] - [#103795])
+- Bump bluetooth-data-tools to 1.17.0 ([@bdraco] - [#104935])
+- Relocate base Bluetooth scanner code into an external library ([@bdraco] - [#104930])
+- Bump plexapi to 4.15.6 ([@jjlawren] - [#104949])
+- Add StreamLabsWater to strict typing ([@joostlek] - [#104957])
+- Bump habluetooth to 0.4.0 ([@bdraco] - [#104958])
+- Use constants in config flow scaffold ([@joostlek] - [#104964])
+- Fix bug in config flow scaffold ([@joostlek] - [#104965])
+- Add virtual integration Fujitsu anywAIR ([@Bre77] - [#102978])
+- Bump habluetooth to 0.5.1 ([@bdraco] - [#104969])
+- Bump evohome-async to 0.4.13 ([@zxdavb] - [#104960])
+- Bump screenlogicpy to v0.10.0 ([@dieselrabbit] - [#104866])
+- Remove monotonic_time_coarse datetime helper ([@bdraco] - [#104892])
+- Update balboa strings.json ([@Betacart] - [#104977])
+- Bump dbus-fast to 2.20.0 ([@bdraco] - [#104978])
+- Squeezebox to Synology DSM: add host field description ([@c0ffeeca7] - [#104864])
+- Add telegram message timestamp to event data ([@mdunda] - [#87493])
+- Allow passing breaks_in_ha_version to deprecation helper decorators ([@emontnemery] - [#104985])
+- Add scaling utils for brightness and fanspeed ([@jbouwh] - [#104753])
+- Bump opower==0.0.40 ([@tronikos] - [#104986])
+- Move config_per_platform and extract_domain_configs to config.py ([@emontnemery] - [#104989])
+- Remove "swap: none" from modbus ([@janiversen] - [#104713])
+- Refactor lock default code handling ([@jbouwh] - [#104807])
+- Make `cv.string` return subclasses of str as is ([@emontnemery] - [#103916])
+- Reverse component path ([@emontnemery] - [#104087])
+- Avoid double URL creation for hassio ingress ([@bdraco] - [#105052])
+- Bump habluetooth to 0.6.1 ([@bdraco] - [#105029])
+- Make season types translatable ([@jpbede] - [#105027])
+- Remove breaks_in_ha_version from deprecated YAML classes ([@emontnemery] - [#105062])
+- Deprecate and remove lazy_error from modbus ([@janiversen] - [#105037])
+- Add fields cancelled & extra to result of the departure HVV sensor ([@tzahari] - [#105030])
+- Improve matrix typing ([@cdce8p] - [#105067])
+- Add optional dsmr timestamp sensor ([@dupondje] - [#104979])
+- Use modern platform path when reporting platform config errors ([@emontnemery] - [#104238])
+- Add domain key config validation ([@emontnemery] - [#104242])
+- Add calendar entity to Radarr ([@tkdrob] - [#79077])
+- Finish scaffold config flow with either abort or create entry ([@joostlek] - [#105012])
+- Remove logic converting empty or falsy YAML to empty dict ([@emontnemery] - [#103912])
+- Improve yamaha tests ([@emontnemery] - [#105077])
+- Move local bluetooth scanner code into habluetooth library ([@bdraco] - [#104970])
+- Update energyzero lib to v2.0.0 ([@klaasnicolaas] - [#105080])
+- Improve raise contains mocks ([@emontnemery] - [#105078])
+- Add significant Change support for weather ([@mib1185] - [#104840])
+- Move Bluetooth advertisement tracker to habluetooth library ([@bdraco] - [#105083])
+- Split bluetooth manager so it can be extracted into the habluetooth lib ([@bdraco] - [#105015])
+- Increase frequency of weatherkit updates ([@tjhorner] - [#105094])
+- Bump renson library to version 1.7.1 ([@jimmyd-be] - [#105096])
+- Trigger Home Assistant shutdown automations right before the stop event instead of during it ([@tetele] - [#91165])
+- Update easyenergy lib to v2.0.0 ([@klaasnicolaas] - [#105108])
+- Bump aioesphomeapi to 19.3.0 ([@bdraco] - [#105114])
+- Bump habluetooth to 0.8.0 ([@bdraco] - [#105109])
+- Fix flakey logbook tests ([@bdraco] - [#105111])
+- Bump actions/setup-python from 4.7.1 to 4.8.0 (@dependabot - [#105117])
+- bump evohome-async to 0.4.15 ([@zxdavb] - [#105119])
+- Address late review for Holiday ([@jrieger] - [#105121])
+- Add Huawei LTE network mode select ([@scop] - [#104614])
+- Use freezegun in utility_meter tests ([@jpbede] - [#105123])
+- Bump python-opensky to 1.0.0 ([@joostlek] - [#105131])
+- Improve decorator type annotations [zwave_js] ([@cdce8p] - [#104825])
+- Add preset modes to ESPHome fan entities ([@mill1000] - [#103781])
+- Modernize and cleanup trend tests ([@jpbede] - [#105010])
+- Add Modbus fan speed support ([@cian] - [#104577])
+- Add extra tests for HomeWizard for unsupported entity creation ([@DCSBL] - [#105149])
+- Bump actions/setup-python from 4.8.0 to 5.0.0 (@dependabot - [#105193])
+- Use brightness scaling util in HomeWizard Number entity ([@DCSBL] - [#105147])
+- Add custom services for renson fans ([@jimmyd-be] - [#94497])
+- Add Seattle City Light virtual integration via Opower ([@dewdropawoo] - [#104997])
+- Bump easyenergy lib to v2.1.0 ([@klaasnicolaas] - [#105224])
+- Bump energyzero lib to v2.1.0 ([@klaasnicolaas] - [#105228])
+- Migrate auth tests to use freezegun ([@jpbede] - [#105243])
+- Use freezegun in cert_expiry tests ([@jpbede] - [#105125])
+- Migrate Gree to has entity name ([@joostlek] - [#104739])
+- Migrate non-component tests to use freezegun/freezer ([@jpbede] - [#105142])
+- Add Wyoming satellite audio settings ([@synesthesiam] - [#105261])
+- Add OSO Energy integration ([@osohotwateriot] - [#70365])
+- Bump actions/stale from 8.0.0 to 9.0.0 (@dependabot - [#105275])
+- Bump github/codeql-action from 2.22.8 to 2.22.9 (@dependabot - [#105274])
+- Bump habluetooth to 0.10.0 ([@bdraco] - [#105118])
+- Adjust stale bot policy for PRs ([@frenck] - [#105280])
+- Remove workaround for default lock code in Matter ([@oyvindwe] - [#105173])
+- Update yarl to 1.9.4 ([@frenck] - [#105282])
+- Replace apcaccess dependency with aioapcaccess in apcupsd ([@yuxincs] - [#104571])
+- Migrate samsungtv tests to use freezegun ([@jpbede] - [#105286])
+- Add support for accessing Squeezebox over over https ([@rajlaud] - [#95088])
+- Add A. O. Smith integration ([@bdr99] - [#104976])
+- Migrate homeassistant component tests to use freezegun ([@jpbede] - [#105333])
+- Add myself as code owner for co2signal ([@VIKTORVAV99] - [#105302])
+- Replace aiohttp mock with patch in Advantage Air ([@Bre77] - [#104932])
+- Fix SSLCipherList typing error in IMAP coordinator ([@vexofp] - [#105362])
+- Sun WEG integration ([@rokam] - [#88272])
+- Migrate template tests to use freezegun ([@jpbede] - [#105341])
+- Make network fixture scoped to session to speed up tests ([@bdraco] - [#105353])
+- Migrate gree tests to use freezegun ([@jpbede] - [#105340])
+- Fix the ruff-format error ([@Bre77] - [#105376])
+- Update freezegun to 1.3.1 ([@cdce8p] - [#105377])
+- Migrate unifi tests to use freezegun ([@jpbede] - [#105343])
+- Add data descriptions to Reolink ([@starkillerOG] - [#105298])
+- Bump `aioshelly` to version 7.0.0 ([@bieniu] - [#105384])
+- Avoid ffmpeg subprocess for many component tests ([@bdraco] - [#105354])
+- Migrate time_date tests to use freezegun ([@jpbede] - [#105409])
+- Prevent duplicate default SSLContext instances ([@vexofp] - [#105348])
+- Remove zwave_js device on device reset ([@raman325] - [#104291])
+- Accept HTTP 200 through 206 as success for RESTful Switch ([@vexofp] - [#105358])
+- Add Tessie Integration ([@Bre77] - [#104684])
+- Migrate roku tests to use freezegun ([@jpbede] - [#105418])
+- Make API init async in Minecraft Server ([@elmurato] - [#105403])
+- Add reauth to Tessie ([@Bre77] - [#105419])
+- Migrate mqtt tests to use freezegun ([@jpbede] - [#105414])
+- Improve Amazon Alexa endpoint validation ([@frenck] - [#105287])
+- Add reauth to A. O. Smith integration ([@bdr99] - [#105320])
+- Bump pylitejet to v0.6.0 ([@joncar] - [#105472])
+- Migrate tag & tts tests to use freezegun ([@jpbede] - [#105411])
+- Migrate octoprint tests to use freezegun ([@jpbede] - [#105408])
+- Migrate sonarr tests to use freezegun ([@jpbede] - [#105410])
+- Bump python-holidays to 0.38 ([@jrieger] - [#105482])
+- Make Workday UI setup nicer ([@gjohansson-ST] - [#105407])
+- Bump openai end switch from dall-e-2 to dall-e-3 ([@Shulyaka] - [#104998])
+- Follow Alpine 3.18 raspberrypi package updates ([@agners] - [#105486])
+- Reduce modbus validator for "swap" (remove special handling) ([@janiversen] - [#105021])
+- Improve test of config entry store ([@emontnemery] - [#105487])
+- Update typing-extensions to 4.9.0 ([@cdce8p] - [#105490])
+- Correctly report unavailable battery for value 255 of percentage ([@elupus] - [#104566])
+- Make it possible to inherit EntityDescription in frozen and mutable dataclasses ([@emontnemery] - [#105211])
+- Add typing in Melcloud config flow ([@erwindouna] - [#105510])
+- Relocate Bluetooth manager to habluetooth library ([@bdraco] - [#105110])
+- Add config flow to Suez water ([@joostlek] - [#104730])
+- Add Fastdotcom DataUpdateCoordinator ([@erwindouna] - [#104839])
+- Add support for Shelly Gen3 devices ([@bieniu] - [#104874])
+- Remove unneeded class _EntityDescriptionBase ([@emontnemery] - [#105518])
+- Improve tests in Tessie ([@Bre77] - [#105430])
+- Updates V2C sensor icons ([@dgomes] - [#105534])
+- Bump sigstore/cosign-installer from 3.2.0 to 3.3.0 (@dependabot - [#105537])
+- Bump anyio to 4.1.0 ([@bdraco] - [#105529])
+- Update stale doc strings in entity platform tests ([@jbouwh] - [#105526])
+- Migrate device_sun_light_trigger tests to use freezegun ([@jpbede] - [#105520])
+- Migrate geonetnz_* tests to use freezegun ([@jpbede] - [#105521])
+- Bump bluetooth libraries ([@bdraco] - [#105522])
+- Add minor version to config entries ([@emontnemery] - [#105479])
+- Add Fast.com Device Info ([@erwindouna] - [#105528])
+- Add Tado error handling to fetching devices ([@erwindouna] - [#105546])
+- Patch aiohttp server app router freeze in tests ([@MartinHjelmare] - [#105555])
+- Add Suez Water to strict typing ([@joostlek] - [#105559])
+- Use mocked entity platform for lock service tests ([@jbouwh] - [#105020])
+- Add Airvisual pro to strict typing ([@joostlek] - [#105568])
+- Add support for Happy Eyeballs to homekit_controller ([@bdraco] - [#105454])
+- Bump dbus-fast to 2.21.0 ([@bdraco] - [#105536])
+- Bump aiohomekit to 3.1.0 ([@bdraco] - [#105584])
+- Bump aioesphomeapi to 20.0.0 ([@bdraco] - [#105586])
+- Migrate homematicip_cloud tests to use freezegun ([@jpbede] - [#105592])
+- Bump PyTado to 0.17.0 ([@erwindouna] - [#105573])
+- Add Apprise to strict typing ([@joostlek] - [#105575])
+- Add Aranet to strict typing ([@joostlek] - [#105577])
+- Add Android IP webcam to strict typing ([@joostlek] - [#105570])
+- Add Fastdotcom service ([@erwindouna] - [#105553])
+- Improve FrozenOrThawed ([@emontnemery] - [#105541])
+- Refactor all Bluetooth scanners to inherit from BaseHaRemoteScanner ([@bdraco] - [#105523])
+- Add Adax to strict typing ([@joostlek] - [#105562])
+- Mark more entities secondary on Fully Kiosk Browser ([@frenck] - [#105595])
+- Bump `brother` library, use `pysnmp-lextudio` with SNMP integration ([@bieniu] - [#105591])
+- Bump aioesphomeapi to 20.1.0 ([@bdraco] - [#105602])
+- Add sensor platform to A. O. Smith integration ([@bdr99] - [#105604])
+- Bump aioesphomeapi to 21.0.0 ([@bdraco] - [#105609])
+- Bump github/codeql-action from 2.22.9 to 2.22.10 (@dependabot - [#105620])
+- Add diagnostics platform to BraviaTV ([@bieniu] - [#105603])
+- Refactor Bluetooth scanners to avoid the need to pass a callback ([@bdraco] - [#105607])
+- Allow inheriting `FrozenOrThawed` with custom init ([@emontnemery] - [#105624])
+- Fix entity descriptions in philips_js ([@emontnemery] - [#105625])
+- Reduce code duplication in Suez config flow ([@joostlek] - [#105558])
+- Use issue registry fixture ([@joostlek] - [#105633])
+- Add diagnostics download to goodwe integration ([@mletenay] - [#102928])
+- Improve cloud http api tests ([@MartinHjelmare] - [#105610])
+- Clean cloud client fixture from cloud http api tests ([@MartinHjelmare] - [#105649])
+- Deduplicate constants A-D ([@joostlek] - [#105638])
+- Migrate demo test to use freezegun ([@jpbede] - [#105644])
+- Fix goodwe tests ([@emontnemery] - [#105653])
+- Avoid mutating entity descriptions in efergy ([@emontnemery] - [#105626])
+- Avoid mutating entity descriptions in lidarr ([@emontnemery] - [#105628])
+- Avoid mutating entity descriptions in airthings_ble ([@emontnemery] - [#105627])
+- Add country code constant ([@joostlek] - [#105640])
+- Avoid mutating entity descriptions in melcloud ([@emontnemery] - [#105629])
+- Deduplicate constants E-Z ([@joostlek] - [#105657])
+- Add volume_step property to MediaPlayerEntity ([@emontnemery] - [#105574])
+- Keep capabilities up to date in the entity registry ([@emontnemery] - [#101748])
+- Migrate homekit_controller tests to use freezegun ([@jpbede] - [#105646])
+- Use Textselector in Trafikverket Camera ([@gjohansson-ST] - [#105677])
+- Set volume_step in sonos media_player ([@emontnemery] - [#105671])
+- Add error translations for Sensibo ([@gjohansson-ST] - [#105600])
+- Add error translations to Yale Smart Living ([@gjohansson-ST] - [#105678])
+- Set volume_step in enigma2 media_player ([@emontnemery] - [#105669])
+- Bump zeroconf to 0.129.0 ([@bdraco] - [#105701])
+- Remove context_recent_time property from entity base class ([@emontnemery] - [#105652])
+- Remove device_state_attributes property from entity base class ([@emontnemery] - [#105650])
+- Bump iammeter to 0.2.1 ([@yangbo1979] - [#95885])
+- Remove cloud details from assist pipeline ([@MartinHjelmare] - [#105687])
+- Allow multiple configs for srp energy ([@briglx] - [#96573])
+- Avoid mutating entity descriptions in efergy tests ([@emontnemery] - [#105717])
+- Replace Starline horn switch with button ([@Anonym-tsk] - [#105728])
+- Bump bluetooth-data-tools to 1.18.0 ([@bdraco] - [#105685])
+- Bump sunweg to 2.0.1 ([@rokam] - [#105613])
+- Add France to picnic countries ([@slhad] - [#105722])
+- Small speed up to data entry flow steps ([@bdraco] - [#105713])
+- Migrate ESPHome bleak implementation to bleak-esphome library ([@bdraco] - [#105611])
+- Include Envoy firmware version in Enphase diagnostics ([@cgarwood] - [#105742])
+- Bump bleak-esphome to 0.3.0 ([@bdraco] - [#105748])
+- Bump pytrafikverket to 0.3.9.2 ([@gjohansson-ST] - [#105752])
+- Bump brottsplatskartan 1.0.5 ([@gjohansson-ST] - [#105759])
+- Refactor cloud assist pipeline ([@MartinHjelmare] - [#105723])
+- Set volume_step in monoprice media_player ([@emontnemery] - [#105670])
+- Set volume_step in bluesound media_player ([@emontnemery] - [#105672])
+- Set volume_step in aquostv media_player ([@emontnemery] - [#105665])
+- Set volume_step in clementine media_player ([@emontnemery] - [#105666])
+- Set volume_step in cmus media_player ([@emontnemery] - [#105667])
+- Avoid mutating entity descriptions in solaredge tests ([@emontnemery] - [#105718])
+- Fix mqtt tests modifying globals ([@jbouwh] - [#105774])
+- Partly migrate Plex to has entity name ([@joostlek] - [#98841])
+- Bump opower to 0.0.41 ([@tronikos] - [#105791])
+- Add data descriptions to MQTT config flow. ([@jbouwh] - [#105301])
+- Fix translation keys in Tessie ([@Bre77] - [#105824])
+- Quality fixes for Tessie ([@Bre77] - [#105838])
+- Add Binary Sensor platform to Tessie ([@Bre77] - [#105421])
+- Bump soco to 0.30.0 ([@jjlawren] - [#105823])
+- Add Unifi device state for additional diagnostics ([@JosephBlock] - [#105138])
+- Reduce overhead to connect dispatcher ([@bdraco] - [#105715])
+- Allow inheriting base component entity descriptions in frozen dataclasses ([@emontnemery] - [#105512])
+- Update pre-commit to 3.6.0 ([@cdce8p] - [#105856])
+- Update coverage to 7.3.3 ([@cdce8p] - [#105855])
+- Update feedparser to 6.0.11 ([@cdce8p] - [#105857])
+- Ensure bluetooth auto recovery does not run in tests ([@bdraco] - [#105841])
+- Bump glances-api to 0.5.0 ([@cohenchris] - [#105813])
+- Bump bthome_ble to 3.3.1 ([@Ernst79] - [#105834])
+- Bump qingping_ble to 0.9.0 ([@Ernst79] - [#105876])
+- Fix cloud tests doing socket I/O ([@bdraco] - [#105874])
+- Bump aiodiscover to 1.6.0 ([@bdraco] - [#105885])
+- Bump bluetooth-adapters to 0.16.2 ([@bdraco] - [#105878])
+- Refactor ESPHome Bluetooth connection logic to prepare for esphome-bleak ([@bdraco] - [#105747])
+- Migrate file test to use freezegun ([@jpbede] - [#105892])
+- Bump zeroconf to 0.130.0 ([@bdraco] - [#105868])
+- Bump bleak-esphome to 0.4.0 ([@bdraco] - [#105909])
+- Remove bluetooth-data-tools dep from ESPHome ([@bdraco] - [#105912])
+- Use library constants instead of literals in Evohome ([@zxdavb] - [#105039])
+- Bump lru-dict to 1.3.0 ([@bdraco] - [#105914])
+- Add first TypeVarTuple annotations ([@cdce8p] - [#105379])
+- Implement Review Feedback for Tessie ([@Bre77] - [#105937])
+- Bump pyasuswrt to 0.1.21 ([@ollo69] - [#105922])
+- Bump asyncsleepiq to v1.4.0 ([@kbickar] - [#105939])
+- Address late review comments for A. O. Smith reauth ([@bdr99] - [#105941])
+- Add Tailwind integration ([@frenck] - [#105926])
+- Add prices service calls for easyEnergy ([@klaasnicolaas] - [#105175])
+- Add AndroidTV remote to strict typing ([@joostlek] - [#105571])
+- Add Tailwind zeroconf discovery ([@frenck] - [#105949])
+- Set volume_step in frontier_silicon media_player ([@emontnemery] - [#105953])
+- Reolink change ir to switch ([@starkillerOG] - [#105916])
+- Add reauth support to Tailwind ([@frenck] - [#105959])
+- Bump opower to 0.1.0 ([@tronikos] - [#105957])
+- Improve rfxtrx typing ([@cdce8p] - [#105966])
+- Fix easyenergy async_setup_services declaration ([@edenhaus] - [#105947])
+- Avoid mutating entity descriptions in solaredge ([@emontnemery] - [#105974])
+- Avoid mutating entity descriptions in tomorrowio ([@emontnemery] - [#105975])
+- Avoid mutating entity descriptions in onewire ([@emontnemery] - [#105970])
+- Avoid mutating entity descriptions in radarr ([@emontnemery] - [#105972])
+- Avoid mutating entity descriptions in ovo_energy ([@emontnemery] - [#105971])
+- Fix typo in deprecated comment ([@mkmer] - [#105969])
+- Add diagnostics platform to Tailwind ([@frenck] - [#105965])
+- Bump google-generativeai to 0.3.1 ([@tronikos] - [#105783])
+- Remove HaAsyncServiceBrowser from zeroconf ([@bdraco] - [#105881])
+- Add button platform to Tailwind integration ([@frenck] - [#105961])
+- Migrate directv test to use freezegun ([@jpbede] - [#105894])
+- Add significant Change support for camera ([@mib1185] - [#105866])
+- Improve logging util typing ([@cdce8p] - [#105968])
+- Allow step size any for number selector in slider mode ([@emontnemery] - [#105978])
+- Rename zamg to GeoSphere Austria ([@killer0071234] - [#105494])
+- Add DHCP discovery to Tailwind ([@frenck] - [#105981])
+- Improve Transmission Entity description class ([@engrbm87] - [#105924])
+- Avoid mutating entity descriptions in screenlogic ([@emontnemery] - [#105983])
+- Add Valve integration ([@cibernox] - [#102184])
+- Avoid mutating entity descriptions in unifiprotect ([@emontnemery] - [#105976])
+- Avoid mutating entity descriptions in sunweg ([@emontnemery] - [#105982])
+- Add new price sensors with API token access to pvpc hourly pricing ([@azogue] - [#85769])
+- Add PLC PHY rates as sensor to devolo Home Network ([@Shutgun] - [#87039])
+- Set aiohttp shutdown_timeout on AppRunner instead of TCPSite ([@cdce8p] - [#105973])
+- Add significant change helper check_valid_float ([@mib1185] - [#106005])
+- Remove leftover logging in onewire ([@epenet] - [#105986])
+- Avoid mutating entity descriptions in screenlogic ([@emontnemery] - [#106022])
+- Fix entity descriptions in upnp ([@emontnemery] - [#106023])
+- Avoid mutating entity descriptions in sunweg tests ([@emontnemery] - [#106024])
+- Update enigma2 codeowners ([@autinerd] - [#106000])
+- Bump Roborock to 0.38.0 ([@Lash-L] - [#106025])
+- Upgrade gardena_bluetooth to 1.4.1 ([@elupus] - [#106017])
+- Freeze integration entity descriptions ([@emontnemery] - [#105984])
+- Clean up device registry for doors that no longer exist in Aladdin Connect ([@mkmer] - [#99743])
+- Fix opower for AEP utilities ([@tronikos] - [#106010])
+- Correct logic in honeywell for cleaning up stale devices ([@mkmer] - [#106018])
+- Add significant Change support for alarm control panel ([@mib1185] - [#106021])
+- Bump devolo_home_control_api to 0.18.3 ([@Shutgun] - [#106035])
+- Remove ipma entity description required fields mixin ([@jpbede] - [#106039])
+- Remove gree switch entity description required fields mixin ([@jpbede] - [#105849])
+- Add significant Change support for water heater ([@mib1185] - [#106003])
+- Add binary sensor platform to Tailwind integration ([@frenck] - [#106033])
+- Remove sun entity description required fields mixin ([@jpbede] - [#105848])
+- Add myself as code owner for rest_command ([@jpbede] - [#106047])
+- Use freezegun in ign_sismologia test ([@jpbede] - [#106051])
+- Use freezegun in nsw_rural_fire_service_feed test ([@jpbede] - [#106050])
+- Use freezegun in qld_bushfire test ([@jpbede] - [#106049])
+- Use freezegun in image_upload test ([@jpbede] - [#106045])
+- Add significant Change support for climate ([@mib1185] - [#106020])
+- Use check_valid_float helper in significant change support of sensor and weather ([@mib1185] - [#106013])
+- Workday create repair if named holiday missing ([@gjohansson-ST] - [#101201])
+- Deprecate binary sensor device class constants ([@edenhaus] - [#105736])
+- Add cover platform to Tailwind integration ([@frenck] - [#106042])
+- Bump hass-nabucasa from 0.74.0 to 0.75.1 ([@ludeeus] - [#105958])
+- Update gotailwind to 0.2.2 ([@frenck] - [#106054])
+- Add dir_with_deprecated_constants function to deprecation helper ([@edenhaus] - [#106059])
+- Move common function for testing derepcation constants to util ([@edenhaus] - [#106063])
+- Upgrade Prusa Link to new Digest Authentication and /v1/ API ([@Skaronator] - [#103396])
+- Improve tests for easyEnergy ([@klaasnicolaas] - [#105989])
+- Deprecate deprecated automation constants ([@edenhaus] - [#106067])
+- Add valve support to switch_as_x ([@emontnemery] - [#105988])
+- Bump async-upnp-client to 0.38.0 ([@chishm] - [#105980])
+- Small cleanup in Tailwind ([@frenck] - [#106073])
+- Bump switchbot-api to 1.3.0 ([@raww] - [#105594])
+- Bump aioesphomeapi to 21.0.1 ([@bdraco] - [#106079])
+- Move shared enigma2 constants ([@autinerd] - [#106064])
+- Add MQTT valve platform ([@jbouwh] - [#105766])
+- Add Starline Service Mode switch ([@Anonym-tsk] - [#105741])
+- Use patch.dict in deprecation test "test_check_if_deprecated_constant" ([@edenhaus] - [#106117])
+- Add water_heater to alexa ([@jbouwh] - [#106011])
+- Deprecate deprecated remote constants ([@edenhaus] - [#106116])
+- Deprecate deprecated number constants ([@edenhaus] - [#106114])
+- Bump zeroconf to 0.131.0 ([@bdraco] - [#106037])
+- Deprecate deprecated fan constants ([@edenhaus] - [#106111])
+- Deprecate deprecated cover constants ([@edenhaus] - [#106098])
+- Deprecate deprecated humidifier constants ([@edenhaus] - [#106112])
+- Deprecate deprecated device tracker constants ([@edenhaus] - [#106099])
+- Deprecate deprecated lock constants ([@edenhaus] - [#106113])
+- Deprecate deprecated alarm control panel constants ([@edenhaus] - [#106058])
+- Move prusalink migration to async_migrate_entry and use a minor version bump ([@edenhaus] - [#106109])
+- Deprecate deprecated siren constants ([@edenhaus] - [#106121])
+- Improve error mqtt valve error logging ([@jbouwh] - [#106129])
+- Add note on overkiz measurement sensor fix ([@jbouwh] - [#105141])
+- Add water_heater to google_assistant ([@jbouwh] - [#105915])
+- Update Ruff to 0.1.8, avoid linter/formatter conflicts ([@scop] - [#106080])
+- Remove unneeded usage of run_callback_threadsafe in entity helper ([@bdraco] - [#106138])
+- Deprecate deprecated climate constants ([@edenhaus] - [#106096])
+- Deprecate deprecated sensor constants ([@edenhaus] - [#106120])
+- Break out the ESPHome Bluetooth scanner connection logic into bleak-esphome ([@bdraco] - [#105908])
+- Fix ESPHome Bluetooth diagnostics ([@bdraco] - [#106151])
+- Add climate platform to Tessie ([@Bre77] - [#105420])
+- Add switch platform to Tessie ([@Bre77] - [#106153])
+- Add virtual integrations for AEP utilities supported by opower ([@tronikos] - [#106146])
+- Add Select platform to Tessie ([@Bre77] - [#105423])
+- Update habluetooth to 2.0.0 ([@bdraco] - [#106145])
+- Bump SunWEG to 2.0.3 ([@rokam] - [#106135])
+- Refactor media_player test classes ([@emontnemery] - [#105630])
+- Bump bluetooth-data-tools to 1.19.0 ([@bdraco] - [#106156])
+- Add flags to EntityDescriptions in Tessie ([@Bre77] - [#105847])
+- Improve performance of dhcp integration client processing ([@bdraco] - [#106137])
+- Allow Fronius devices to be deleted ([@farmio] - [#106141])
+- Refactor ranging utils for mqtt cover ([@jbouwh] - [#105739])
+- Migrate google related tests to use freezegun ([@jpbede] - [#105552])
+- Fix typo's en and improve language on MQTT data descriptions ([@jbouwh] - [#106165])
+- Add update platform to Tessie ([@Bre77] - [#106093])
+- Remove warning message on BMW initialization ([@rikroe] - [#106169])
+- Make evohome strictly typed ([@zxdavb] - [#106012])
+- Remove gios sensor description required fields mixin ([@jpbede] - [#106174])
+- Move cloud stt engine to config entry ([@MartinHjelmare] - [#99608])
+- Improve entity tests ([@emontnemery] - [#106175])
+- Add Energyzero get_gas_prices and get_energy_price services ([@iamrgroot] - [#101374])
+- Bump pyvlx to 0.2.21 ([@DeerMaximum] - [#105800])
+- Improve performance of dhcp on high activity networks ([@bdraco] - [#105884])
+- Swiss public transport config flow ([@miaucl] - [#105648])
+- Bump httpx to 0.26.0 and httpcore to 1.0.2 ([@Shulyaka] - [#106194])
+- Update mypy to 1.8.0 ([@cdce8p] - [#106189])
+- Bump python-opendata-transport to 0.4.0 ([@miaucl] - [#106199])
+- Skip logging deprecated constant if the calling integration couldn't be indentified ([@edenhaus] - [#106181])
+- Fix lacrosse view sensor units ([@killercode] - [#106203])
+- Bump aiohttp-zlib-ng to 0.1.2 ([@bdraco] - [#106193])
+- Use call_soon_threadsafe in face processing of image_processing ([@jpbede] - [#106168])
+- Deprecate legacy_templates ([@edenhaus] - [#105556])
+- Add device tracker to Tessie ([@Bre77] - [#105428])
+- Add button platform to Tessie ([@Bre77] - [#106210])
+- Bump pylitejet to v0.6.2 ([@joncar] - [#106222])
+- Quality improvements for Tessie ([@Bre77] - [#106218])
+- Add lock platform to Tessie ([@Bre77] - [#106216])
+- Add cover platform to Tessie ([@Bre77] - [#105422])
+- Deprecate deprecated device_registry helper constants ([@edenhaus] - [#106227])
+- Deprecate deprecated water_heater constants ([@edenhaus] - [#106226])
+- Deprecate deprecated switch constants ([@edenhaus] - [#106225])
+- Increase version default timeout from 10 to 30 seconds ([@N3rdix] - [#106158])
+- Add number platform to Tessie ([@Bre77] - [#106205])
+- Add integration for Vogel's MotionMount ([@RJPoelstra] - [#103498])
+- Add media player platform to Tessie ([@Bre77] - [#106214])
+- Add valve support to Amazon Alexa ([@jbouwh] - [#106053])
+- Add Refoss integration ([@ashionky] - [#100573])
+- Add starline binary sensors ([@Anonym-tsk] - [#105724])
+- Add DROP integration ([@pfrazer] - [#104319])
+- Don't make huawei_lte entity classes dataclasses ([@emontnemery] - [#106160])
+- Update coverage to 7.3.4 ([@cdce8p] - [#106233])
+- Add consider home interval to ping ([@jpbede] - [#104881])
+- Update pytest warnings filter ([@cdce8p] - [#106234])
+- Return multiple trains in Trafikverket Train ([@gjohansson-ST] - [#106206])
+- Add location selector to Islamic prayer times ([@engrbm87] - [#105911])
+- Clean up swiss public transport ([@joostlek] - [#106245])
+- Add bluecurrent integration ([@Floris272] - [#82483])
+- Add full test coverage to Trafikverket Train ([@gjohansson-ST] - [#106247])
+- Log when swiss_public_transport loses connection ([@miaucl] - [#106200])
+- Add foscam coordinator ([@krmarien] - [#92665])
+- Add support for re-ordering Google Tasks ([@allenporter] - [#104769])
+- Add binary sensors to drop_connect integration ([@pfrazer] - [#106248])
+- Improve cloud binary sensor tests ([@MartinHjelmare] - [#106238])
+- Add support for caching entity properties ([@emontnemery] - [#100601])
+- Filter by supported features for todo services ([@bramkragten] - [#106241])
+- Reduce Life360 update time by fetching Places & Members in parallel ([@pnbruckner] - [#106277])
+- Add support for attribute caching to the humidifier platform ([@bdraco] - [#106271])
+- Add support for attribute caching to the number platform ([@bdraco] - [#106254])
+- Add subwoofer crossover support to Sonos Amp devices ([@jjlawren] - [#106290])
+- Add support for attribute caching to the update platform ([@bdraco] - [#106261])
+- Improve cloud system health tests ([@MartinHjelmare] - [#106235])
+- Fix flaky Tailwind tests by fixing via_device ([@frenck] - [#106294])
+- Deprecate deprecated camera constants ([@edenhaus] - [#106095])
+- Add significant Change support for humidifier ([@mib1185] - [#106015])
+- Reduce zeroconf matcher complexity ([@bdraco] - [#105880])
+- Bump github/codeql-action from 2.22.10 to 3.22.12 (@dependabot - [#106221])
+- Add support for attribute caching to the lock platform ([@bdraco] - [#106275])
+- Add support for attribute caching to the remote platform ([@bdraco] - [#106274])
+- Add support for attribute caching to the button platform ([@bdraco] - [#106259])
+- Add support for attribute caching to the text platform ([@bdraco] - [#106262])
+- Add support for attribute caching to ToggleEntity ([@bdraco] - [#106272])
+- Add support for attribute caching to the binary_sensor platform ([@bdraco] - [#106253])
+- Add support for attribute caching to the sensor platform ([@bdraco] - [#106252])
+- Add significant Change support for vacuum ([@mib1185] - [#106002])
+- Deprecate deprecated data entry flow constants ([@edenhaus] - [#106229])
+- Add support for attribute caching to the fan platform ([@bdraco] - [#106269])
+- Add diagnostics support to Tankerkoenig ([@mib1185] - [#106301])
+- Apply units of measure provided in API when available in LaCrosse View ([@doggkruse] - [#106299])
+- Rework entity description functions in Tessie ([@Bre77] - [#106287])
+- Fix mqtt valve is not resetting opening or closing state ([@jbouwh] - [#106240])
+- Restructure enigma2 integration to use async ([@autinerd] - [#104206])
+- Improve mikrotik error handling ([@Marco98] - [#106244])
+- Add switches to drop_connect integration ([@pfrazer] - [#106264])
+- Add valve platform support to google_assistant ([@jbouwh] - [#106139])
+- Fix feedreader date comparison to allow RSS entries with identical timestamps ([@mattmattmatt] - [#104925])
+- Add energy usage sensor to A. O. Smith integration ([@bdr99] - [#105616])
+- ISY994: remove reference to reload service ([@c0ffeeca7] - [#106302])
+- Add support for attribute caching to the cover platform ([@bdraco] - [#106268])
+- Add support for attribute caching to the alarm_control_panel platform ([@bdraco] - [#106265])
+- Add support for attribute caching to the light platform ([@bdraco] - [#106260])
+- Add support for attribute caching to the select platform ([@bdraco] - [#106255])
+- Improve typing on drop_connect switch entity description ([@jbouwh] - [#106314])
+- Add entity translations to Steamist ([@joostlek] - [#96182])
+- Update psutil to 5.9.7 ([@frenck] - [#106295])
+- Deprecate some deprecated const constants ([@edenhaus] - [#106230])
+- Add support for attribute caching to the switch platform ([@bdraco] - [#106258])
+- New integration Midea ccm15 climate ([@ocalvo] - [#94824])
+- Ensure MQTT attributes are bound to the respective platform entity ([@bdraco] - [#106316])
+- Add support for attribute caching to the climate platform ([@bdraco] - [#106266])
+- Update test data for screenlogic ([@dieselrabbit] - [#106325])
+- Use shorthand attributes in enigma2 ([@autinerd] - [#106318])
+- Remove unnecessary async_add_job in face processing of image_processing ([@jpbede] - [#106323])
+- Add support for attribute caching to the camera platform ([@bdraco] - [#106256])
+- Fix native_step in number not looking at _attr_native_step ([@bdraco] - [#106327])
+- Add 4 more entities in V2C Trydan EVSE ([@dgomes] - [#105531])
+- Add support for attribute caching to the event platform ([@bdraco] - [#106330])
+- Optimize use_device_name check in base entity class ([@bdraco] - [#106209])
+- Add support for attribute caching to the media_player platform ([@bdraco] - [#106257])
+- Add support for attribute caching to the image platform ([@bdraco] - [#106333])
+- Add support for attribute caching to the siren platform ([@bdraco] - [#106337])
+- Add support for attribute caching to the weather platform ([@bdraco] - [#106334])
+- Add support for attribute caching to the lawn_mower platform ([@bdraco] - [#106335])
+- Add support for attribute caching to the water_heater platform ([@bdraco] - [#106336])
+- Add support for attribute caching to the date platform ([@bdraco] - [#106338])
+- Add support for attribute caching to the time platform ([@bdraco] - [#106339])
+- Add support for attribute caching to the datetime platform ([@bdraco] - [#106340])
+- Add support for attribute caching to the todo platform ([@bdraco] - [#106341])
+- Add Airnow to strict typing ([@joostlek] - [#105566])
+- Add diagnostics to ccm15 ([@joostlek] - [#106329])
+- Add support for attribute caching to the vacuum platform ([@bdraco] - [#106332])
+- Bump openwebifpy to 4.0.2 ([@autinerd] - [#106345])
+- Bump temperusb to 1.6.1 ([@davet2001] - [#106346])
+- Add select platform to drop_connect integration ([@pfrazer] - [#106309])
+- Deprecate parameter "retries" in modbus ([@janiversen] - [#105024])
+- Split out shared screenlogic switch code ([@dieselrabbit] - [#106344])
+- Add missing sensors for Shelly Pro Dimmer 2PM ([@bieniu] - [#105008])
+- Add delay to manual refresh in Advantage Air ([@Bre77] - [#104918])
+- Add full coverage to Fast.com ([@gjohansson-ST] - [#105596])
+- Add data model to Tessie ([@Bre77] - [#106285])
+- Enable toggle on valve/cover start in google_assistant ([@jbouwh] - [#106378])
+- Use identity checks for sensor device class enums ([@bdraco] - [#106383])
+- Avoid clearing the attr cache in setter when nothing has changed ([@bdraco] - [#106384])
+- Bump getmac 0.9.4 ([@mari8i] - [#106321])
+- Add config flow to Netgear LTE ([@tkdrob] - [#93002])
+- Bump zwave-js-server-python to 0.55.1 ([@raman325] - [#105502])
+- Use shorthand attrs for more tplink light attributes ([@bdraco] - [#106399])
+- Add valve platform for Shelly Gas Valve ([@bieniu] - [#106087])
+- Cache media player url hashing ([@bdraco] - [#106400])
+- Avoid recreating a set each time sensor unit_of_measurement is called ([@bdraco] - [#106401])
+- Improve drop_connect typing ([@cdce8p] - [#106404])
+- Switch unifi_direct to external library ([@tofuSCHNITZEL] - [#105046])
+- Move cloud binary sensor to config entry ([@MartinHjelmare] - [#106409])
+- Fix pytest test collection warning ([@cdce8p] - [#106405])
+- Add alarm platform to Comelit ([@chemelli74] - [#104718])
+- Add config flow to System Monitor ([@gjohansson-ST] - [#104906])
+- Add missing translations to Tessie Button platform ([@Bre77] - [#106232])
+- Fix freeze entity description ([@chemelli74] - [#106418])
+- Use faster contains check in camera for stream feature ([@bdraco] - [#106429])
+- Add config flow to Streamlabs water ([@joostlek] - [#104962])
+- Add more binary sensors to Tessie ([@Bre77] - [#106212])
+- Add install to Tessie update platform ([@Bre77] - [#106352])
+- Use faster contains check in climate ([@bdraco] - [#106430])
+- Use faster contains check in fan ([@bdraco] - [#106431])
+- Add Support for SleepIQ Foot Warmers ([@kbickar] - [#105931])
+- Handle Auto Fan and MyFan in Advantage Air ([@Bre77] - [#95594])
+- Use faster contains check in media_player ([@bdraco] - [#106434])
+- Handle failed updates in Tessie ([@Bre77] - [#106450])
+- Move Trunks from Button to Cover in Tessie ([@Bre77] - [#106448])
+- Add names to all Tessie entities ([@Bre77] - [#106267])
+- Deprecate deprecated core constants ([@edenhaus] - [#106456])
+- Use faster contains check in vacuum ([@bdraco] - [#106437])
+- Use faster contains check in remote ([@bdraco] - [#106435])
+- Use faster contains check in update ([@bdraco] - [#106436])
+- Use faster contains check in humidifier ([@bdraco] - [#106433])
+- Add attr caching support to the geo_location platform ([@bdraco] - [#106432])
+- Improve cloud tts tests ([@MartinHjelmare] - [#106427])
+- Use faster contains check in water_heater ([@bdraco] - [#106438])
+- Raise HomeAssistantError if event is triggered with invalid event_type ([@jbouwh] - [#106357])
+- Use translation placeholders in Swiss public transport ([@joostlek] - [#106416])
+- Deprecate deprecated unit of measurement constants ([@edenhaus] - [#106455])
+- Raise ServiceValidationError on invalid select option ([@jbouwh] - [#106350])
+- Add qBittorrent torrent sensors ([@finder39] - [#105781])
+- Flip around Tailwind locked out binary sensor ([@frenck] - [#106457])
+- Remove IP / mDNS validation in airq integration setup ([@Sibgatulin] - [#106326])
+- Update quality scale for Aladdin ([@mkmer] - [#99342])
+- Revert "Raise HomeAssistantError if event is triggered with invalid event_type" ([@frenck] - [#106458])
+- Add error handling to Tailwind service methods ([@frenck] - [#106463])
+- Fix Comelit alarm state ([@chemelli74] - [#106466])
+- Fix update platform in Tessie ([@Bre77] - [#106465])
+- Mark Tailwind a platinum quality integration ([@frenck] - [#106468])
+- Bump millheater to 0.11.8 ([@Danielhiversen] - [#106464])
+- Add preselect_remember_me to `/auth/providers` ([@edenhaus] - [#106462])
+- Fix RainMachine bugs ([@kingy444] - [#106231])
+- Fix MQTT retained event messages should be discarded ([@jbouwh] - [#106425])
+- Add translation to ServiceValidationError in Lock ([@gjohansson-ST] - [#105746])
+- Add typing to config flow A ([@joostlek] - [#105721])
+- Add coordinator to Swiss public transport ([@miaucl] - [#106278])
+- Improve glances tests ([@engrbm87] - [#106402])
+- Add significant Change support for fan ([@mib1185] - [#105867])
+- Add significant Change support for media player ([@mib1185] - [#105999])
+- Add supports_response to ServiceRegistry.register() ([@rikroe] - [#106164])
+- Changed setup of easyEnergy services ([@klaasnicolaas] - [#106288])
+- Add translatable title to Persistent Notification ([@steffenrapp] - [#104661])
+- Allow clearing To-do list item extended fields ([@allenporter] - [#106208])
+- Fix Hydrawise watering time duration unit ([@dknowles2] - [#105919])
+- Revert "Add preselect_remember_me to `/auth/providers`" ([@frenck] - [#106472])
+- Fix roon volume truncation bug ([@pavoni] - [#105696])
+- Use entity descriptions in Netgear LTE ([@joostlek] - [#106414])
+- Adjust the GitHub config flow ([@ludeeus] - [#105295])
+- Bump PyViCare to 2.32.0 ([@CFenner] - [#106467])
+- Fix Generic Camera interval calculation ([@dschall] - [#105820])
+- Use snapshot assertion in homekit_controller diagnostics tests ([@jpbede] - [#105647])
+- Refactor Tado to use OAuth in the DeviceTracker ([@erwindouna] - [#102610])
+- Add config flow to trend ([@jpbede] - [#99761])
+- Implement mode validation in Climate entity component ([@gjohansson-ST] - [#105745])
+- Add device to swiss public transport ([@miaucl] - [#106475])
+- Jinja filter and function for `median` and `statistical_mode` ([@TheFes] - [#105554])
+- Remove initial entity update from swiss_public_transport ([@miaucl] - [#106478])
+- Remove hardcoded bits from LiteJet integration ([@joncar] - [#106281])
+- Delay all ZHA polling until initialization of entities has completed ([@dmulcahey] - [#105814])
+- Add Comelit alarm zones sensor ([@chemelli74] - [#106421])
+- Add significant Change support for number ([@mib1185] - [#105863])
+- Add more fine grained control over Matter server commissioning for the Companion apps ([@marcelveldt] - [#106237])
+- Add more Withings measurement sensors ([@joostlek] - [#105561])
+- Fix Starline attributes timezone ([@Anonym-tsk] - [#105645])
+- Match ZHA Custom ClusterHandler on a Custom Cluster using a unique id for the quirk ([@Caius-Bonus] - [#101709])
+- Add query type validation independent of declaration position for SQL ([@dougiteixeira] - [#105921])
+- Update frontend to 20231227.0 ([@bramkragten] - [#106486])
+- Check and register cloud hook if needed for mobile_app ([@edenhaus] - [#106461])
+- Add significant Change support for cover ([@mib1185] - [#106016])
+- Bump aiohttp-zlib-ng to 0.1.3 ([@bdraco] - [#106489])
+- Add Color Night Vision switch for UniFi Protect ([@cmsimike] - [#106500])
+- Bump zwave-js-server-python to 0.55.2 ([@MartinHjelmare] - [#106496])
+- Bump ZHA quirks to 109 and add associated configuration entities ([@dmulcahey] - [#106492])
+- Add ZHA configuration number entity to set/get thermostat cluster local temperature offset ([@theorlangur] - [#105765])
+- Opentherm gateway: Set unit of measurement for count sensors ([@bajansen] - [#106313])
+- Synchronize and cache Generic Camera still image fetching ([@dschall] - [#105821])
+- Add AsusWrt temperature sensors provided by http protocol ([@ollo69] - [#105692])
+- Move services to entity services in blink ([@mkmer] - [#105413])
+- Skip activating/deactivating Vicare standby preset ([@barche] - [#106476])
+- Handle AttributeError in ViCare integration ([@CFenner] - [#106470])
+- Avoid changing state of reduced preset in ViCare integration ([@CFenner] - [#105642])
+- Use correct state for emulated_hue covers ([@Tho85] - [#106516])
+- Fix Tessie honk button ([@Bre77] - [#106518])
+- Fix run errors in Tessie ([@Bre77] - [#106521])
+- Add missing disks to Systemmonitor ([@gjohansson-ST] - [#106541])
+- Bump python-holidays to 0.39 ([@gjohansson-ST] - [#106550])
+- Remove default value from modbus retries ([@janiversen] - [#106551])
+- Fix holiday HA language not supported ([@gjohansson-ST] - [#106554])
+- Update frontend to 20231228.0 ([@bramkragten] - [#106556])
+- Replace dash in language if needed ([@gjohansson-ST] - [#106559])
+- Remove default value for modbus lazy_error ([@janiversen] - [#106561])
+- Only check known attributes in significant change support ([@mib1185] - [#106572])
+- Bump plexapi to 4.15.7 ([@jjlawren] - [#106576])
+- Revert "Set volume_step in aquostv media_player" ([@emontnemery] - [#106577])
+- Revert "Set volume_step in clementine media_player" ([@emontnemery] - [#106578])
+- Revert "Set volume_step in cmus media_player" ([@emontnemery] - [#106579])
+- Revert "Set volume_step in monoprice media_player" ([@emontnemery] - [#106580])
+- Revert "Set volume_step in sonos media_player" ([@emontnemery] - [#106581])
+- Revert "Set volume_step in bluesound media_player" ([@emontnemery] - [#106582])
+- Revert "Set volume_step in frontier_silicon media_player" ([@emontnemery] - [#106583])
+- Systemmonitor always load imported disks ([@gjohansson-ST] - [#106546])
+- Cleanup Sonos subscription used during setup ([@jjlawren] - [#106575])
+- Revert "Set volume_step in enigma2 media_player" ([@emontnemery] - [#106584])
+- Bump aiohomekit to 3.1.1 ([@bdraco] - [#106591])
+- Update platform back-compat for custom components without UpdateEntityFeature ([@bdraco] - [#106528])
+- Camera platform back-compat for custom components without CameraEntityFeature ([@bdraco] - [#106529])
+- Rename domain aepohio to aep_ohio ([@tronikos] - [#106536])
+- Move aeptexas to aep_texas ([@joostlek] - [#106595])
+- Fix Netgear LTE halting startup ([@tkdrob] - [#106598])
+- Add helper to report deprecated entity supported features magic numbers ([@bdraco] - [#106602])
+- Fix count bug in qBittorrent ([@finder39] - [#106603])
+- Climate platform back-compat for custom components without ClimateEntityFeature ([@bdraco] - [#106605])
+- Fan platform back-compat for custom components without FanEntityFeature ([@bdraco] - [#106607])
+- Water heater platform back-compat for custom components without WaterHeaterEntityFeature ([@bdraco] - [#106608])
+- Remote platform back-compat for custom components without RemoteEntityFeature ([@bdraco] - [#106609])
+- Humidifier platform back-compat for custom components without HumidifierEntityFeature ([@bdraco] - [#106613])
+- Vacuum platform back-compat for custom components without VacuumEntityFeature ([@bdraco] - [#106614])
+- Media player platform back-compat for custom components without MediaPlayerEntityFeature ([@bdraco] - [#106616])
+- Add deprecation warning for cover supported features when using magic numbers ([@bdraco] - [#106618])
+- Add deprecation warning for alarm_control_panel supported features when using magic numbers ([@bdraco] - [#106619])
+- Add deprecation warning for lock supported features when using magic numbers ([@bdraco] - [#106620])
+- Add deprecation warning for siren supported features when using magic numbers ([@bdraco] - [#106621])
+- Migrate light entity to use contains for LightEntityFeature with deprecation warnings ([@bdraco] - [#106622])
+- Fix missing await when running shutdown jobs ([@emontnemery] - [#106632])
+- Ensure it's safe to call Entity.__repr__ on non added entity ([@emontnemery] - [#106032])
+- Fix typo in Blink strings ([@Betacart] - [#106641])
+- Fixed native apparent temperature in WeatherEntity ([@kukulich] - [#106645])
+- Fix yolink entity descriptions ([@emontnemery] - [#106649])
+- Use set instead of list in Systemmonitor ([@gjohansson-ST] - [#106650])
+- Handle no permission for disks in Systemmonitor ([@gjohansson-ST] - [#106653])
+- Fix changed_variables in automation traces ([@emontnemery] - [#106665])
+- Bump thermobeacon-ble to 0.6.2 ([@bdraco] - [#106676])
+- Bump roombapy to 1.6.10 ([@bdraco] - [#106678])
+- Bump asyncsleepiq to v1.4.1 ([@kbickar] - [#106682])
+- Fix missed cached_property for hvac_mode in climate ([@bdraco] - [#106692])
+- Pin lxml to 4.9.4 ([@bdraco] - [#106694])
+- Add missing vacuum toggle service description ([@frenck] - [#106729])
+- Fix Zlinky energy polling in ZHA ([@dmulcahey] - [#106738])
+- Bump reolink_aio to 0.8.5 ([@starkillerOG] - [#106747])
+- Bump pyunifiprotect to 4.22.4 ([@bdraco] - [#106749])
+- Bump habluetooth to 2.0.1 ([@bdraco] - [#106750])
+- Bump ZHA dependencies ([@puddly] - [#106756])
+- Bump pyatmo to v8.0.2 ([@cgtobi] - [#106758])
+- Constrain dacite to at least 1.7.0 ([@Lash-L] - [#105709])
+- Fix Hydrawise data not refreshing ([@dknowles2] - [#105923])
+- Fix fints account type check ([@kilrogg] - [#106082])
+- Bump pyunifiprotect to v4.22.5 ([@AngellusMortis] - [#106781])
+- Bump pyschlage to 2023.12.1 ([@dknowles2] - [#106782])
+- Fix emulated_hue brightness check ([@bdraco] - [#106783])
+- Bump pyduotecno to 2024.1.1 ([@Cereal2nd] - [#106801])
+- Update frontend to 20240101.0 ([@bramkragten] - [#106808])
+- Bump bleak-retry-connector to 3.4.0 ([@bdraco] - [#106831])
+- Bump pySwitchbot to 0.43.0 ([@bdraco] - [#106833])
+- Bump yalexs-ble to 2.4.0 ([@bdraco] - [#106834])
+- Fix incorrect state in Yale Access Bluetooth when lock status is unknown ([@bdraco] - [#106851])
+- Map missing preset mapping for heat mode "ready" in smarttub ([@mdz] - [#106856])
+- Don't use entity_id in __repr__ of not added entity ([@emontnemery] - [#106861])
+- Changed setup of EnergyZero services ([@iamrgroot] - [#106224])
+- Move urllib3 constraint to pyproject.toml ([@autinerd] - [#106768])
+- Update switchbot to use close_stale_connections_by_address ([@bdraco] - [#106835])
+- Close stale connections in yalexs_ble to ensure setup can proceed ([@bdraco] - [#106842])
+- Bump Zigpy to 0.60.4 ([@dmulcahey] - [#106870])
+- Improve fitbit authentication error handling ([@allenporter] - [#106885])
+- Improve To-do service error handling ([@allenporter] - [#106886])
+- Update frontend to 20240102.0 ([@bramkragten] - [#106898])
+- Apply late review comments on media player ([@mib1185] - [#106727])
+- Add try-catch for invalid auth to Tado ([@erwindouna] - [#106774])
+- Bump intents to 2024.1.2 ([@synesthesiam] - [#106909])
+- Avoid triggering ping device tracker `home` after restore ([@jpbede] - [#106913])
+- Remove group_members from significant attributes in media player ([@mib1185] - [#106916])
+- Change Tado deprecation version to 2024.7.0 ([@erwindouna] - [#106938])
+- Update frontend to 20240103.0 ([@bramkragten] - [#106942])
+
+[#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
+[#101201]: https://github.com/home-assistant/core/pull/101201
+[#101374]: https://github.com/home-assistant/core/pull/101374
+[#101709]: https://github.com/home-assistant/core/pull/101709
+[#101748]: https://github.com/home-assistant/core/pull/101748
+[#102184]: https://github.com/home-assistant/core/pull/102184
+[#102610]: https://github.com/home-assistant/core/pull/102610
+[#102928]: https://github.com/home-assistant/core/pull/102928
+[#102978]: https://github.com/home-assistant/core/pull/102978
+[#103396]: https://github.com/home-assistant/core/pull/103396
+[#103498]: https://github.com/home-assistant/core/pull/103498
+[#103660]: https://github.com/home-assistant/core/pull/103660
+[#103781]: https://github.com/home-assistant/core/pull/103781
+[#103795]: https://github.com/home-assistant/core/pull/103795
+[#103888]: https://github.com/home-assistant/core/pull/103888
+[#103912]: https://github.com/home-assistant/core/pull/103912
+[#103916]: https://github.com/home-assistant/core/pull/103916
+[#103960]: https://github.com/home-assistant/core/pull/103960
+[#104087]: https://github.com/home-assistant/core/pull/104087
+[#104142]: https://github.com/home-assistant/core/pull/104142
+[#104157]: https://github.com/home-assistant/core/pull/104157
+[#104206]: https://github.com/home-assistant/core/pull/104206
+[#104238]: https://github.com/home-assistant/core/pull/104238
+[#104242]: https://github.com/home-assistant/core/pull/104242
+[#104275]: https://github.com/home-assistant/core/pull/104275
+[#104291]: https://github.com/home-assistant/core/pull/104291
+[#104319]: https://github.com/home-assistant/core/pull/104319
+[#104391]: https://github.com/home-assistant/core/pull/104391
+[#104503]: https://github.com/home-assistant/core/pull/104503
+[#104566]: https://github.com/home-assistant/core/pull/104566
+[#104571]: https://github.com/home-assistant/core/pull/104571
+[#104577]: https://github.com/home-assistant/core/pull/104577
+[#104614]: https://github.com/home-assistant/core/pull/104614
+[#104627]: https://github.com/home-assistant/core/pull/104627
+[#104661]: https://github.com/home-assistant/core/pull/104661
+[#104684]: https://github.com/home-assistant/core/pull/104684
+[#104713]: https://github.com/home-assistant/core/pull/104713
+[#104716]: https://github.com/home-assistant/core/pull/104716
+[#104718]: https://github.com/home-assistant/core/pull/104718
+[#104720]: https://github.com/home-assistant/core/pull/104720
+[#104730]: https://github.com/home-assistant/core/pull/104730
+[#104733]: https://github.com/home-assistant/core/pull/104733
+[#104739]: https://github.com/home-assistant/core/pull/104739
+[#104746]: https://github.com/home-assistant/core/pull/104746
+[#104748]: https://github.com/home-assistant/core/pull/104748
+[#104749]: https://github.com/home-assistant/core/pull/104749
+[#104753]: https://github.com/home-assistant/core/pull/104753
+[#104769]: https://github.com/home-assistant/core/pull/104769
+[#104793]: https://github.com/home-assistant/core/pull/104793
+[#104807]: https://github.com/home-assistant/core/pull/104807
+[#104809]: https://github.com/home-assistant/core/pull/104809
+[#104821]: https://github.com/home-assistant/core/pull/104821
+[#104822]: https://github.com/home-assistant/core/pull/104822
+[#104823]: https://github.com/home-assistant/core/pull/104823
+[#104824]: https://github.com/home-assistant/core/pull/104824
+[#104825]: https://github.com/home-assistant/core/pull/104825
+[#104826]: https://github.com/home-assistant/core/pull/104826
+[#104828]: https://github.com/home-assistant/core/pull/104828
+[#104831]: https://github.com/home-assistant/core/pull/104831
+[#104832]: https://github.com/home-assistant/core/pull/104832
+[#104839]: https://github.com/home-assistant/core/pull/104839
+[#104840]: https://github.com/home-assistant/core/pull/104840
+[#104842]: https://github.com/home-assistant/core/pull/104842
+[#104849]: https://github.com/home-assistant/core/pull/104849
+[#104854]: https://github.com/home-assistant/core/pull/104854
+[#104864]: https://github.com/home-assistant/core/pull/104864
+[#104866]: https://github.com/home-assistant/core/pull/104866
+[#104874]: https://github.com/home-assistant/core/pull/104874
+[#104875]: https://github.com/home-assistant/core/pull/104875
+[#104877]: https://github.com/home-assistant/core/pull/104877
+[#104878]: https://github.com/home-assistant/core/pull/104878
+[#104881]: https://github.com/home-assistant/core/pull/104881
+[#104882]: https://github.com/home-assistant/core/pull/104882
+[#104889]: https://github.com/home-assistant/core/pull/104889
+[#104892]: https://github.com/home-assistant/core/pull/104892
+[#104906]: https://github.com/home-assistant/core/pull/104906
+[#104909]: https://github.com/home-assistant/core/pull/104909
+[#104918]: https://github.com/home-assistant/core/pull/104918
+[#104919]: https://github.com/home-assistant/core/pull/104919
+[#104925]: https://github.com/home-assistant/core/pull/104925
+[#104930]: https://github.com/home-assistant/core/pull/104930
+[#104932]: https://github.com/home-assistant/core/pull/104932
+[#104935]: https://github.com/home-assistant/core/pull/104935
+[#104937]: https://github.com/home-assistant/core/pull/104937
+[#104949]: https://github.com/home-assistant/core/pull/104949
+[#104957]: https://github.com/home-assistant/core/pull/104957
+[#104958]: https://github.com/home-assistant/core/pull/104958
+[#104960]: https://github.com/home-assistant/core/pull/104960
+[#104962]: https://github.com/home-assistant/core/pull/104962
+[#104964]: https://github.com/home-assistant/core/pull/104964
+[#104965]: https://github.com/home-assistant/core/pull/104965
+[#104969]: https://github.com/home-assistant/core/pull/104969
+[#104970]: https://github.com/home-assistant/core/pull/104970
+[#104976]: https://github.com/home-assistant/core/pull/104976
+[#104977]: https://github.com/home-assistant/core/pull/104977
+[#104978]: https://github.com/home-assistant/core/pull/104978
+[#104979]: https://github.com/home-assistant/core/pull/104979
+[#104985]: https://github.com/home-assistant/core/pull/104985
+[#104986]: https://github.com/home-assistant/core/pull/104986
+[#104989]: https://github.com/home-assistant/core/pull/104989
+[#104997]: https://github.com/home-assistant/core/pull/104997
+[#104998]: https://github.com/home-assistant/core/pull/104998
+[#105008]: https://github.com/home-assistant/core/pull/105008
+[#105010]: https://github.com/home-assistant/core/pull/105010
+[#105012]: https://github.com/home-assistant/core/pull/105012
+[#105015]: https://github.com/home-assistant/core/pull/105015
+[#105020]: https://github.com/home-assistant/core/pull/105020
+[#105021]: https://github.com/home-assistant/core/pull/105021
+[#105024]: https://github.com/home-assistant/core/pull/105024
+[#105027]: https://github.com/home-assistant/core/pull/105027
+[#105029]: https://github.com/home-assistant/core/pull/105029
+[#105030]: https://github.com/home-assistant/core/pull/105030
+[#105037]: https://github.com/home-assistant/core/pull/105037
+[#105039]: https://github.com/home-assistant/core/pull/105039
+[#105046]: https://github.com/home-assistant/core/pull/105046
+[#105052]: https://github.com/home-assistant/core/pull/105052
+[#105062]: https://github.com/home-assistant/core/pull/105062
+[#105067]: https://github.com/home-assistant/core/pull/105067
+[#105077]: https://github.com/home-assistant/core/pull/105077
+[#105078]: https://github.com/home-assistant/core/pull/105078
+[#105080]: https://github.com/home-assistant/core/pull/105080
+[#105083]: https://github.com/home-assistant/core/pull/105083
+[#105094]: https://github.com/home-assistant/core/pull/105094
+[#105096]: https://github.com/home-assistant/core/pull/105096
+[#105108]: https://github.com/home-assistant/core/pull/105108
+[#105109]: https://github.com/home-assistant/core/pull/105109
+[#105110]: https://github.com/home-assistant/core/pull/105110
+[#105111]: https://github.com/home-assistant/core/pull/105111
+[#105114]: https://github.com/home-assistant/core/pull/105114
+[#105117]: https://github.com/home-assistant/core/pull/105117
+[#105118]: https://github.com/home-assistant/core/pull/105118
+[#105119]: https://github.com/home-assistant/core/pull/105119
+[#105121]: https://github.com/home-assistant/core/pull/105121
+[#105123]: https://github.com/home-assistant/core/pull/105123
+[#105125]: https://github.com/home-assistant/core/pull/105125
+[#105131]: https://github.com/home-assistant/core/pull/105131
+[#105138]: https://github.com/home-assistant/core/pull/105138
+[#105141]: https://github.com/home-assistant/core/pull/105141
+[#105142]: https://github.com/home-assistant/core/pull/105142
+[#105147]: https://github.com/home-assistant/core/pull/105147
+[#105149]: https://github.com/home-assistant/core/pull/105149
+[#105173]: https://github.com/home-assistant/core/pull/105173
+[#105175]: https://github.com/home-assistant/core/pull/105175
+[#105193]: https://github.com/home-assistant/core/pull/105193
+[#105211]: https://github.com/home-assistant/core/pull/105211
+[#105224]: https://github.com/home-assistant/core/pull/105224
+[#105228]: https://github.com/home-assistant/core/pull/105228
+[#105243]: https://github.com/home-assistant/core/pull/105243
+[#105261]: https://github.com/home-assistant/core/pull/105261
+[#105274]: https://github.com/home-assistant/core/pull/105274
+[#105275]: https://github.com/home-assistant/core/pull/105275
+[#105280]: https://github.com/home-assistant/core/pull/105280
+[#105282]: https://github.com/home-assistant/core/pull/105282
+[#105286]: https://github.com/home-assistant/core/pull/105286
+[#105287]: https://github.com/home-assistant/core/pull/105287
+[#105295]: https://github.com/home-assistant/core/pull/105295
+[#105298]: https://github.com/home-assistant/core/pull/105298
+[#105301]: https://github.com/home-assistant/core/pull/105301
+[#105302]: https://github.com/home-assistant/core/pull/105302
+[#105320]: https://github.com/home-assistant/core/pull/105320
+[#105333]: https://github.com/home-assistant/core/pull/105333
+[#105340]: https://github.com/home-assistant/core/pull/105340
+[#105341]: https://github.com/home-assistant/core/pull/105341
+[#105343]: https://github.com/home-assistant/core/pull/105343
+[#105348]: https://github.com/home-assistant/core/pull/105348
+[#105353]: https://github.com/home-assistant/core/pull/105353
+[#105354]: https://github.com/home-assistant/core/pull/105354
+[#105358]: https://github.com/home-assistant/core/pull/105358
+[#105362]: https://github.com/home-assistant/core/pull/105362
+[#105376]: https://github.com/home-assistant/core/pull/105376
+[#105377]: https://github.com/home-assistant/core/pull/105377
+[#105379]: https://github.com/home-assistant/core/pull/105379
+[#105384]: https://github.com/home-assistant/core/pull/105384
+[#105403]: https://github.com/home-assistant/core/pull/105403
+[#105407]: https://github.com/home-assistant/core/pull/105407
+[#105408]: https://github.com/home-assistant/core/pull/105408
+[#105409]: https://github.com/home-assistant/core/pull/105409
+[#105410]: https://github.com/home-assistant/core/pull/105410
+[#105411]: https://github.com/home-assistant/core/pull/105411
+[#105413]: https://github.com/home-assistant/core/pull/105413
+[#105414]: https://github.com/home-assistant/core/pull/105414
+[#105418]: https://github.com/home-assistant/core/pull/105418
+[#105419]: https://github.com/home-assistant/core/pull/105419
+[#105420]: https://github.com/home-assistant/core/pull/105420
+[#105421]: https://github.com/home-assistant/core/pull/105421
+[#105422]: https://github.com/home-assistant/core/pull/105422
+[#105423]: https://github.com/home-assistant/core/pull/105423
+[#105428]: https://github.com/home-assistant/core/pull/105428
+[#105430]: https://github.com/home-assistant/core/pull/105430
+[#105454]: https://github.com/home-assistant/core/pull/105454
+[#105472]: https://github.com/home-assistant/core/pull/105472
+[#105479]: https://github.com/home-assistant/core/pull/105479
+[#105482]: https://github.com/home-assistant/core/pull/105482
+[#105486]: https://github.com/home-assistant/core/pull/105486
+[#105487]: https://github.com/home-assistant/core/pull/105487
+[#105490]: https://github.com/home-assistant/core/pull/105490
+[#105494]: https://github.com/home-assistant/core/pull/105494
+[#105502]: https://github.com/home-assistant/core/pull/105502
+[#105510]: https://github.com/home-assistant/core/pull/105510
+[#105512]: https://github.com/home-assistant/core/pull/105512
+[#105518]: https://github.com/home-assistant/core/pull/105518
+[#105520]: https://github.com/home-assistant/core/pull/105520
+[#105521]: https://github.com/home-assistant/core/pull/105521
+[#105522]: https://github.com/home-assistant/core/pull/105522
+[#105523]: https://github.com/home-assistant/core/pull/105523
+[#105526]: https://github.com/home-assistant/core/pull/105526
+[#105528]: https://github.com/home-assistant/core/pull/105528
+[#105529]: https://github.com/home-assistant/core/pull/105529
+[#105531]: https://github.com/home-assistant/core/pull/105531
+[#105534]: https://github.com/home-assistant/core/pull/105534
+[#105536]: https://github.com/home-assistant/core/pull/105536
+[#105537]: https://github.com/home-assistant/core/pull/105537
+[#105541]: https://github.com/home-assistant/core/pull/105541
+[#105546]: https://github.com/home-assistant/core/pull/105546
+[#105552]: https://github.com/home-assistant/core/pull/105552
+[#105553]: https://github.com/home-assistant/core/pull/105553
+[#105554]: https://github.com/home-assistant/core/pull/105554
+[#105555]: https://github.com/home-assistant/core/pull/105555
+[#105556]: https://github.com/home-assistant/core/pull/105556
+[#105558]: https://github.com/home-assistant/core/pull/105558
+[#105559]: https://github.com/home-assistant/core/pull/105559
+[#105561]: https://github.com/home-assistant/core/pull/105561
+[#105562]: https://github.com/home-assistant/core/pull/105562
+[#105566]: https://github.com/home-assistant/core/pull/105566
+[#105568]: https://github.com/home-assistant/core/pull/105568
+[#105570]: https://github.com/home-assistant/core/pull/105570
+[#105571]: https://github.com/home-assistant/core/pull/105571
+[#105573]: https://github.com/home-assistant/core/pull/105573
+[#105574]: https://github.com/home-assistant/core/pull/105574
+[#105575]: https://github.com/home-assistant/core/pull/105575
+[#105577]: https://github.com/home-assistant/core/pull/105577
+[#105584]: https://github.com/home-assistant/core/pull/105584
+[#105586]: https://github.com/home-assistant/core/pull/105586
+[#105591]: https://github.com/home-assistant/core/pull/105591
+[#105592]: https://github.com/home-assistant/core/pull/105592
+[#105594]: https://github.com/home-assistant/core/pull/105594
+[#105595]: https://github.com/home-assistant/core/pull/105595
+[#105596]: https://github.com/home-assistant/core/pull/105596
+[#105600]: https://github.com/home-assistant/core/pull/105600
+[#105602]: https://github.com/home-assistant/core/pull/105602
+[#105603]: https://github.com/home-assistant/core/pull/105603
+[#105604]: https://github.com/home-assistant/core/pull/105604
+[#105607]: https://github.com/home-assistant/core/pull/105607
+[#105609]: https://github.com/home-assistant/core/pull/105609
+[#105610]: https://github.com/home-assistant/core/pull/105610
+[#105611]: https://github.com/home-assistant/core/pull/105611
+[#105613]: https://github.com/home-assistant/core/pull/105613
+[#105616]: https://github.com/home-assistant/core/pull/105616
+[#105620]: https://github.com/home-assistant/core/pull/105620
+[#105624]: https://github.com/home-assistant/core/pull/105624
+[#105625]: https://github.com/home-assistant/core/pull/105625
+[#105626]: https://github.com/home-assistant/core/pull/105626
+[#105627]: https://github.com/home-assistant/core/pull/105627
+[#105628]: https://github.com/home-assistant/core/pull/105628
+[#105629]: https://github.com/home-assistant/core/pull/105629
+[#105630]: https://github.com/home-assistant/core/pull/105630
+[#105633]: https://github.com/home-assistant/core/pull/105633
+[#105638]: https://github.com/home-assistant/core/pull/105638
+[#105640]: https://github.com/home-assistant/core/pull/105640
+[#105642]: https://github.com/home-assistant/core/pull/105642
+[#105644]: https://github.com/home-assistant/core/pull/105644
+[#105645]: https://github.com/home-assistant/core/pull/105645
+[#105646]: https://github.com/home-assistant/core/pull/105646
+[#105647]: https://github.com/home-assistant/core/pull/105647
+[#105648]: https://github.com/home-assistant/core/pull/105648
+[#105649]: https://github.com/home-assistant/core/pull/105649
+[#105650]: https://github.com/home-assistant/core/pull/105650
+[#105652]: https://github.com/home-assistant/core/pull/105652
+[#105653]: https://github.com/home-assistant/core/pull/105653
+[#105657]: https://github.com/home-assistant/core/pull/105657
+[#105665]: https://github.com/home-assistant/core/pull/105665
+[#105666]: https://github.com/home-assistant/core/pull/105666
+[#105667]: https://github.com/home-assistant/core/pull/105667
+[#105669]: https://github.com/home-assistant/core/pull/105669
+[#105670]: https://github.com/home-assistant/core/pull/105670
+[#105671]: https://github.com/home-assistant/core/pull/105671
+[#105672]: https://github.com/home-assistant/core/pull/105672
+[#105677]: https://github.com/home-assistant/core/pull/105677
+[#105678]: https://github.com/home-assistant/core/pull/105678
+[#105685]: https://github.com/home-assistant/core/pull/105685
+[#105687]: https://github.com/home-assistant/core/pull/105687
+[#105692]: https://github.com/home-assistant/core/pull/105692
+[#105696]: https://github.com/home-assistant/core/pull/105696
+[#105701]: https://github.com/home-assistant/core/pull/105701
+[#105709]: https://github.com/home-assistant/core/pull/105709
+[#105713]: https://github.com/home-assistant/core/pull/105713
+[#105715]: https://github.com/home-assistant/core/pull/105715
+[#105717]: https://github.com/home-assistant/core/pull/105717
+[#105718]: https://github.com/home-assistant/core/pull/105718
+[#105721]: https://github.com/home-assistant/core/pull/105721
+[#105722]: https://github.com/home-assistant/core/pull/105722
+[#105723]: https://github.com/home-assistant/core/pull/105723
+[#105724]: https://github.com/home-assistant/core/pull/105724
+[#105728]: https://github.com/home-assistant/core/pull/105728
+[#105736]: https://github.com/home-assistant/core/pull/105736
+[#105739]: https://github.com/home-assistant/core/pull/105739
+[#105741]: https://github.com/home-assistant/core/pull/105741
+[#105742]: https://github.com/home-assistant/core/pull/105742
+[#105745]: https://github.com/home-assistant/core/pull/105745
+[#105746]: https://github.com/home-assistant/core/pull/105746
+[#105747]: https://github.com/home-assistant/core/pull/105747
+[#105748]: https://github.com/home-assistant/core/pull/105748
+[#105752]: https://github.com/home-assistant/core/pull/105752
+[#105759]: https://github.com/home-assistant/core/pull/105759
+[#105765]: https://github.com/home-assistant/core/pull/105765
+[#105766]: https://github.com/home-assistant/core/pull/105766
+[#105774]: https://github.com/home-assistant/core/pull/105774
+[#105781]: https://github.com/home-assistant/core/pull/105781
+[#105783]: https://github.com/home-assistant/core/pull/105783
+[#105791]: https://github.com/home-assistant/core/pull/105791
+[#105800]: https://github.com/home-assistant/core/pull/105800
+[#105813]: https://github.com/home-assistant/core/pull/105813
+[#105814]: https://github.com/home-assistant/core/pull/105814
+[#105820]: https://github.com/home-assistant/core/pull/105820
+[#105821]: https://github.com/home-assistant/core/pull/105821
+[#105823]: https://github.com/home-assistant/core/pull/105823
+[#105824]: https://github.com/home-assistant/core/pull/105824
+[#105834]: https://github.com/home-assistant/core/pull/105834
+[#105838]: https://github.com/home-assistant/core/pull/105838
+[#105841]: https://github.com/home-assistant/core/pull/105841
+[#105847]: https://github.com/home-assistant/core/pull/105847
+[#105848]: https://github.com/home-assistant/core/pull/105848
+[#105849]: https://github.com/home-assistant/core/pull/105849
+[#105855]: https://github.com/home-assistant/core/pull/105855
+[#105856]: https://github.com/home-assistant/core/pull/105856
+[#105857]: https://github.com/home-assistant/core/pull/105857
+[#105863]: https://github.com/home-assistant/core/pull/105863
+[#105866]: https://github.com/home-assistant/core/pull/105866
+[#105867]: https://github.com/home-assistant/core/pull/105867
+[#105868]: https://github.com/home-assistant/core/pull/105868
+[#105874]: https://github.com/home-assistant/core/pull/105874
+[#105876]: https://github.com/home-assistant/core/pull/105876
+[#105878]: https://github.com/home-assistant/core/pull/105878
+[#105880]: https://github.com/home-assistant/core/pull/105880
+[#105881]: https://github.com/home-assistant/core/pull/105881
+[#105884]: https://github.com/home-assistant/core/pull/105884
+[#105885]: https://github.com/home-assistant/core/pull/105885
+[#105892]: https://github.com/home-assistant/core/pull/105892
+[#105894]: https://github.com/home-assistant/core/pull/105894
+[#105908]: https://github.com/home-assistant/core/pull/105908
+[#105909]: https://github.com/home-assistant/core/pull/105909
+[#105911]: https://github.com/home-assistant/core/pull/105911
+[#105912]: https://github.com/home-assistant/core/pull/105912
+[#105914]: https://github.com/home-assistant/core/pull/105914
+[#105915]: https://github.com/home-assistant/core/pull/105915
+[#105916]: https://github.com/home-assistant/core/pull/105916
+[#105919]: https://github.com/home-assistant/core/pull/105919
+[#105921]: https://github.com/home-assistant/core/pull/105921
+[#105922]: https://github.com/home-assistant/core/pull/105922
+[#105923]: https://github.com/home-assistant/core/pull/105923
+[#105924]: https://github.com/home-assistant/core/pull/105924
+[#105926]: https://github.com/home-assistant/core/pull/105926
+[#105931]: https://github.com/home-assistant/core/pull/105931
+[#105937]: https://github.com/home-assistant/core/pull/105937
+[#105939]: https://github.com/home-assistant/core/pull/105939
+[#105941]: https://github.com/home-assistant/core/pull/105941
+[#105947]: https://github.com/home-assistant/core/pull/105947
+[#105949]: https://github.com/home-assistant/core/pull/105949
+[#105953]: https://github.com/home-assistant/core/pull/105953
+[#105957]: https://github.com/home-assistant/core/pull/105957
+[#105958]: https://github.com/home-assistant/core/pull/105958
+[#105959]: https://github.com/home-assistant/core/pull/105959
+[#105961]: https://github.com/home-assistant/core/pull/105961
+[#105965]: https://github.com/home-assistant/core/pull/105965
+[#105966]: https://github.com/home-assistant/core/pull/105966
+[#105968]: https://github.com/home-assistant/core/pull/105968
+[#105969]: https://github.com/home-assistant/core/pull/105969
+[#105970]: https://github.com/home-assistant/core/pull/105970
+[#105971]: https://github.com/home-assistant/core/pull/105971
+[#105972]: https://github.com/home-assistant/core/pull/105972
+[#105973]: https://github.com/home-assistant/core/pull/105973
+[#105974]: https://github.com/home-assistant/core/pull/105974
+[#105975]: https://github.com/home-assistant/core/pull/105975
+[#105976]: https://github.com/home-assistant/core/pull/105976
+[#105978]: https://github.com/home-assistant/core/pull/105978
+[#105980]: https://github.com/home-assistant/core/pull/105980
+[#105981]: https://github.com/home-assistant/core/pull/105981
+[#105982]: https://github.com/home-assistant/core/pull/105982
+[#105983]: https://github.com/home-assistant/core/pull/105983
+[#105984]: https://github.com/home-assistant/core/pull/105984
+[#105986]: https://github.com/home-assistant/core/pull/105986
+[#105988]: https://github.com/home-assistant/core/pull/105988
+[#105989]: https://github.com/home-assistant/core/pull/105989
+[#105999]: https://github.com/home-assistant/core/pull/105999
+[#106000]: https://github.com/home-assistant/core/pull/106000
+[#106002]: https://github.com/home-assistant/core/pull/106002
+[#106003]: https://github.com/home-assistant/core/pull/106003
+[#106005]: https://github.com/home-assistant/core/pull/106005
+[#106010]: https://github.com/home-assistant/core/pull/106010
+[#106011]: https://github.com/home-assistant/core/pull/106011
+[#106012]: https://github.com/home-assistant/core/pull/106012
+[#106013]: https://github.com/home-assistant/core/pull/106013
+[#106015]: https://github.com/home-assistant/core/pull/106015
+[#106016]: https://github.com/home-assistant/core/pull/106016
+[#106017]: https://github.com/home-assistant/core/pull/106017
+[#106018]: https://github.com/home-assistant/core/pull/106018
+[#106020]: https://github.com/home-assistant/core/pull/106020
+[#106021]: https://github.com/home-assistant/core/pull/106021
+[#106022]: https://github.com/home-assistant/core/pull/106022
+[#106023]: https://github.com/home-assistant/core/pull/106023
+[#106024]: https://github.com/home-assistant/core/pull/106024
+[#106025]: https://github.com/home-assistant/core/pull/106025
+[#106032]: https://github.com/home-assistant/core/pull/106032
+[#106033]: https://github.com/home-assistant/core/pull/106033
+[#106035]: https://github.com/home-assistant/core/pull/106035
+[#106037]: https://github.com/home-assistant/core/pull/106037
+[#106039]: https://github.com/home-assistant/core/pull/106039
+[#106042]: https://github.com/home-assistant/core/pull/106042
+[#106045]: https://github.com/home-assistant/core/pull/106045
+[#106047]: https://github.com/home-assistant/core/pull/106047
+[#106049]: https://github.com/home-assistant/core/pull/106049
+[#106050]: https://github.com/home-assistant/core/pull/106050
+[#106051]: https://github.com/home-assistant/core/pull/106051
+[#106053]: https://github.com/home-assistant/core/pull/106053
+[#106054]: https://github.com/home-assistant/core/pull/106054
+[#106058]: https://github.com/home-assistant/core/pull/106058
+[#106059]: https://github.com/home-assistant/core/pull/106059
+[#106063]: https://github.com/home-assistant/core/pull/106063
+[#106064]: https://github.com/home-assistant/core/pull/106064
+[#106067]: https://github.com/home-assistant/core/pull/106067
+[#106073]: https://github.com/home-assistant/core/pull/106073
+[#106079]: https://github.com/home-assistant/core/pull/106079
+[#106080]: https://github.com/home-assistant/core/pull/106080
+[#106082]: https://github.com/home-assistant/core/pull/106082
+[#106087]: https://github.com/home-assistant/core/pull/106087
+[#106093]: https://github.com/home-assistant/core/pull/106093
+[#106095]: https://github.com/home-assistant/core/pull/106095
+[#106096]: https://github.com/home-assistant/core/pull/106096
+[#106098]: https://github.com/home-assistant/core/pull/106098
+[#106099]: https://github.com/home-assistant/core/pull/106099
+[#106109]: https://github.com/home-assistant/core/pull/106109
+[#106111]: https://github.com/home-assistant/core/pull/106111
+[#106112]: https://github.com/home-assistant/core/pull/106112
+[#106113]: https://github.com/home-assistant/core/pull/106113
+[#106114]: https://github.com/home-assistant/core/pull/106114
+[#106116]: https://github.com/home-assistant/core/pull/106116
+[#106117]: https://github.com/home-assistant/core/pull/106117
+[#106120]: https://github.com/home-assistant/core/pull/106120
+[#106121]: https://github.com/home-assistant/core/pull/106121
+[#106129]: https://github.com/home-assistant/core/pull/106129
+[#106135]: https://github.com/home-assistant/core/pull/106135
+[#106137]: https://github.com/home-assistant/core/pull/106137
+[#106138]: https://github.com/home-assistant/core/pull/106138
+[#106139]: https://github.com/home-assistant/core/pull/106139
+[#106141]: https://github.com/home-assistant/core/pull/106141
+[#106145]: https://github.com/home-assistant/core/pull/106145
+[#106146]: https://github.com/home-assistant/core/pull/106146
+[#106151]: https://github.com/home-assistant/core/pull/106151
+[#106153]: https://github.com/home-assistant/core/pull/106153
+[#106156]: https://github.com/home-assistant/core/pull/106156
+[#106158]: https://github.com/home-assistant/core/pull/106158
+[#106160]: https://github.com/home-assistant/core/pull/106160
+[#106164]: https://github.com/home-assistant/core/pull/106164
+[#106165]: https://github.com/home-assistant/core/pull/106165
+[#106168]: https://github.com/home-assistant/core/pull/106168
+[#106169]: https://github.com/home-assistant/core/pull/106169
+[#106174]: https://github.com/home-assistant/core/pull/106174
+[#106175]: https://github.com/home-assistant/core/pull/106175
+[#106181]: https://github.com/home-assistant/core/pull/106181
+[#106189]: https://github.com/home-assistant/core/pull/106189
+[#106193]: https://github.com/home-assistant/core/pull/106193
+[#106194]: https://github.com/home-assistant/core/pull/106194
+[#106199]: https://github.com/home-assistant/core/pull/106199
+[#106200]: https://github.com/home-assistant/core/pull/106200
+[#106203]: https://github.com/home-assistant/core/pull/106203
+[#106205]: https://github.com/home-assistant/core/pull/106205
+[#106206]: https://github.com/home-assistant/core/pull/106206
+[#106208]: https://github.com/home-assistant/core/pull/106208
+[#106209]: https://github.com/home-assistant/core/pull/106209
+[#106210]: https://github.com/home-assistant/core/pull/106210
+[#106212]: https://github.com/home-assistant/core/pull/106212
+[#106214]: https://github.com/home-assistant/core/pull/106214
+[#106216]: https://github.com/home-assistant/core/pull/106216
+[#106218]: https://github.com/home-assistant/core/pull/106218
+[#106221]: https://github.com/home-assistant/core/pull/106221
+[#106222]: https://github.com/home-assistant/core/pull/106222
+[#106224]: https://github.com/home-assistant/core/pull/106224
+[#106225]: https://github.com/home-assistant/core/pull/106225
+[#106226]: https://github.com/home-assistant/core/pull/106226
+[#106227]: https://github.com/home-assistant/core/pull/106227
+[#106229]: https://github.com/home-assistant/core/pull/106229
+[#106230]: https://github.com/home-assistant/core/pull/106230
+[#106231]: https://github.com/home-assistant/core/pull/106231
+[#106232]: https://github.com/home-assistant/core/pull/106232
+[#106233]: https://github.com/home-assistant/core/pull/106233
+[#106234]: https://github.com/home-assistant/core/pull/106234
+[#106235]: https://github.com/home-assistant/core/pull/106235
+[#106237]: https://github.com/home-assistant/core/pull/106237
+[#106238]: https://github.com/home-assistant/core/pull/106238
+[#106240]: https://github.com/home-assistant/core/pull/106240
+[#106241]: https://github.com/home-assistant/core/pull/106241
+[#106244]: https://github.com/home-assistant/core/pull/106244
+[#106245]: https://github.com/home-assistant/core/pull/106245
+[#106247]: https://github.com/home-assistant/core/pull/106247
+[#106248]: https://github.com/home-assistant/core/pull/106248
+[#106252]: https://github.com/home-assistant/core/pull/106252
+[#106253]: https://github.com/home-assistant/core/pull/106253
+[#106254]: https://github.com/home-assistant/core/pull/106254
+[#106255]: https://github.com/home-assistant/core/pull/106255
+[#106256]: https://github.com/home-assistant/core/pull/106256
+[#106257]: https://github.com/home-assistant/core/pull/106257
+[#106258]: https://github.com/home-assistant/core/pull/106258
+[#106259]: https://github.com/home-assistant/core/pull/106259
+[#106260]: https://github.com/home-assistant/core/pull/106260
+[#106261]: https://github.com/home-assistant/core/pull/106261
+[#106262]: https://github.com/home-assistant/core/pull/106262
+[#106264]: https://github.com/home-assistant/core/pull/106264
+[#106265]: https://github.com/home-assistant/core/pull/106265
+[#106266]: https://github.com/home-assistant/core/pull/106266
+[#106267]: https://github.com/home-assistant/core/pull/106267
+[#106268]: https://github.com/home-assistant/core/pull/106268
+[#106269]: https://github.com/home-assistant/core/pull/106269
+[#106271]: https://github.com/home-assistant/core/pull/106271
+[#106272]: https://github.com/home-assistant/core/pull/106272
+[#106274]: https://github.com/home-assistant/core/pull/106274
+[#106275]: https://github.com/home-assistant/core/pull/106275
+[#106277]: https://github.com/home-assistant/core/pull/106277
+[#106278]: https://github.com/home-assistant/core/pull/106278
+[#106281]: https://github.com/home-assistant/core/pull/106281
+[#106285]: https://github.com/home-assistant/core/pull/106285
+[#106287]: https://github.com/home-assistant/core/pull/106287
+[#106288]: https://github.com/home-assistant/core/pull/106288
+[#106290]: https://github.com/home-assistant/core/pull/106290
+[#106294]: https://github.com/home-assistant/core/pull/106294
+[#106295]: https://github.com/home-assistant/core/pull/106295
+[#106299]: https://github.com/home-assistant/core/pull/106299
+[#106301]: https://github.com/home-assistant/core/pull/106301
+[#106302]: https://github.com/home-assistant/core/pull/106302
+[#106309]: https://github.com/home-assistant/core/pull/106309
+[#106313]: https://github.com/home-assistant/core/pull/106313
+[#106314]: https://github.com/home-assistant/core/pull/106314
+[#106316]: https://github.com/home-assistant/core/pull/106316
+[#106318]: https://github.com/home-assistant/core/pull/106318
+[#106321]: https://github.com/home-assistant/core/pull/106321
+[#106323]: https://github.com/home-assistant/core/pull/106323
+[#106325]: https://github.com/home-assistant/core/pull/106325
+[#106326]: https://github.com/home-assistant/core/pull/106326
+[#106327]: https://github.com/home-assistant/core/pull/106327
+[#106329]: https://github.com/home-assistant/core/pull/106329
+[#106330]: https://github.com/home-assistant/core/pull/106330
+[#106332]: https://github.com/home-assistant/core/pull/106332
+[#106333]: https://github.com/home-assistant/core/pull/106333
+[#106334]: https://github.com/home-assistant/core/pull/106334
+[#106335]: https://github.com/home-assistant/core/pull/106335
+[#106336]: https://github.com/home-assistant/core/pull/106336
+[#106337]: https://github.com/home-assistant/core/pull/106337
+[#106338]: https://github.com/home-assistant/core/pull/106338
+[#106339]: https://github.com/home-assistant/core/pull/106339
+[#106340]: https://github.com/home-assistant/core/pull/106340
+[#106341]: https://github.com/home-assistant/core/pull/106341
+[#106344]: https://github.com/home-assistant/core/pull/106344
+[#106345]: https://github.com/home-assistant/core/pull/106345
+[#106346]: https://github.com/home-assistant/core/pull/106346
+[#106350]: https://github.com/home-assistant/core/pull/106350
+[#106352]: https://github.com/home-assistant/core/pull/106352
+[#106357]: https://github.com/home-assistant/core/pull/106357
+[#106378]: https://github.com/home-assistant/core/pull/106378
+[#106383]: https://github.com/home-assistant/core/pull/106383
+[#106384]: https://github.com/home-assistant/core/pull/106384
+[#106399]: https://github.com/home-assistant/core/pull/106399
+[#106400]: https://github.com/home-assistant/core/pull/106400
+[#106401]: https://github.com/home-assistant/core/pull/106401
+[#106402]: https://github.com/home-assistant/core/pull/106402
+[#106404]: https://github.com/home-assistant/core/pull/106404
+[#106405]: https://github.com/home-assistant/core/pull/106405
+[#106409]: https://github.com/home-assistant/core/pull/106409
+[#106414]: https://github.com/home-assistant/core/pull/106414
+[#106416]: https://github.com/home-assistant/core/pull/106416
+[#106418]: https://github.com/home-assistant/core/pull/106418
+[#106421]: https://github.com/home-assistant/core/pull/106421
+[#106425]: https://github.com/home-assistant/core/pull/106425
+[#106427]: https://github.com/home-assistant/core/pull/106427
+[#106429]: https://github.com/home-assistant/core/pull/106429
+[#106430]: https://github.com/home-assistant/core/pull/106430
+[#106431]: https://github.com/home-assistant/core/pull/106431
+[#106432]: https://github.com/home-assistant/core/pull/106432
+[#106433]: https://github.com/home-assistant/core/pull/106433
+[#106434]: https://github.com/home-assistant/core/pull/106434
+[#106435]: https://github.com/home-assistant/core/pull/106435
+[#106436]: https://github.com/home-assistant/core/pull/106436
+[#106437]: https://github.com/home-assistant/core/pull/106437
+[#106438]: https://github.com/home-assistant/core/pull/106438
+[#106448]: https://github.com/home-assistant/core/pull/106448
+[#106450]: https://github.com/home-assistant/core/pull/106450
+[#106455]: https://github.com/home-assistant/core/pull/106455
+[#106456]: https://github.com/home-assistant/core/pull/106456
+[#106457]: https://github.com/home-assistant/core/pull/106457
+[#106458]: https://github.com/home-assistant/core/pull/106458
+[#106461]: https://github.com/home-assistant/core/pull/106461
+[#106462]: https://github.com/home-assistant/core/pull/106462
+[#106463]: https://github.com/home-assistant/core/pull/106463
+[#106464]: https://github.com/home-assistant/core/pull/106464
+[#106465]: https://github.com/home-assistant/core/pull/106465
+[#106466]: https://github.com/home-assistant/core/pull/106466
+[#106467]: https://github.com/home-assistant/core/pull/106467
+[#106468]: https://github.com/home-assistant/core/pull/106468
+[#106470]: https://github.com/home-assistant/core/pull/106470
+[#106472]: https://github.com/home-assistant/core/pull/106472
+[#106475]: https://github.com/home-assistant/core/pull/106475
+[#106476]: https://github.com/home-assistant/core/pull/106476
+[#106478]: https://github.com/home-assistant/core/pull/106478
+[#106486]: https://github.com/home-assistant/core/pull/106486
+[#106489]: https://github.com/home-assistant/core/pull/106489
+[#106492]: https://github.com/home-assistant/core/pull/106492
+[#106496]: https://github.com/home-assistant/core/pull/106496
+[#106500]: https://github.com/home-assistant/core/pull/106500
+[#106516]: https://github.com/home-assistant/core/pull/106516
+[#106518]: https://github.com/home-assistant/core/pull/106518
+[#106521]: https://github.com/home-assistant/core/pull/106521
+[#106528]: https://github.com/home-assistant/core/pull/106528
+[#106529]: https://github.com/home-assistant/core/pull/106529
+[#106536]: https://github.com/home-assistant/core/pull/106536
+[#106541]: https://github.com/home-assistant/core/pull/106541
+[#106546]: https://github.com/home-assistant/core/pull/106546
+[#106550]: https://github.com/home-assistant/core/pull/106550
+[#106551]: https://github.com/home-assistant/core/pull/106551
+[#106554]: https://github.com/home-assistant/core/pull/106554
+[#106556]: https://github.com/home-assistant/core/pull/106556
+[#106559]: https://github.com/home-assistant/core/pull/106559
+[#106561]: https://github.com/home-assistant/core/pull/106561
+[#106572]: https://github.com/home-assistant/core/pull/106572
+[#106575]: https://github.com/home-assistant/core/pull/106575
+[#106576]: https://github.com/home-assistant/core/pull/106576
+[#106577]: https://github.com/home-assistant/core/pull/106577
+[#106578]: https://github.com/home-assistant/core/pull/106578
+[#106579]: https://github.com/home-assistant/core/pull/106579
+[#106580]: https://github.com/home-assistant/core/pull/106580
+[#106581]: https://github.com/home-assistant/core/pull/106581
+[#106582]: https://github.com/home-assistant/core/pull/106582
+[#106583]: https://github.com/home-assistant/core/pull/106583
+[#106584]: https://github.com/home-assistant/core/pull/106584
+[#106591]: https://github.com/home-assistant/core/pull/106591
+[#106595]: https://github.com/home-assistant/core/pull/106595
+[#106598]: https://github.com/home-assistant/core/pull/106598
+[#106602]: https://github.com/home-assistant/core/pull/106602
+[#106603]: https://github.com/home-assistant/core/pull/106603
+[#106605]: https://github.com/home-assistant/core/pull/106605
+[#106607]: https://github.com/home-assistant/core/pull/106607
+[#106608]: https://github.com/home-assistant/core/pull/106608
+[#106609]: https://github.com/home-assistant/core/pull/106609
+[#106613]: https://github.com/home-assistant/core/pull/106613
+[#106614]: https://github.com/home-assistant/core/pull/106614
+[#106616]: https://github.com/home-assistant/core/pull/106616
+[#106618]: https://github.com/home-assistant/core/pull/106618
+[#106619]: https://github.com/home-assistant/core/pull/106619
+[#106620]: https://github.com/home-assistant/core/pull/106620
+[#106621]: https://github.com/home-assistant/core/pull/106621
+[#106622]: https://github.com/home-assistant/core/pull/106622
+[#106632]: https://github.com/home-assistant/core/pull/106632
+[#106641]: https://github.com/home-assistant/core/pull/106641
+[#106645]: https://github.com/home-assistant/core/pull/106645
+[#106649]: https://github.com/home-assistant/core/pull/106649
+[#106650]: https://github.com/home-assistant/core/pull/106650
+[#106653]: https://github.com/home-assistant/core/pull/106653
+[#106665]: https://github.com/home-assistant/core/pull/106665
+[#106676]: https://github.com/home-assistant/core/pull/106676
+[#106678]: https://github.com/home-assistant/core/pull/106678
+[#106682]: https://github.com/home-assistant/core/pull/106682
+[#106692]: https://github.com/home-assistant/core/pull/106692
+[#106694]: https://github.com/home-assistant/core/pull/106694
+[#106727]: https://github.com/home-assistant/core/pull/106727
+[#106729]: https://github.com/home-assistant/core/pull/106729
+[#106738]: https://github.com/home-assistant/core/pull/106738
+[#106747]: https://github.com/home-assistant/core/pull/106747
+[#106749]: https://github.com/home-assistant/core/pull/106749
+[#106750]: https://github.com/home-assistant/core/pull/106750
+[#106756]: https://github.com/home-assistant/core/pull/106756
+[#106758]: https://github.com/home-assistant/core/pull/106758
+[#106768]: https://github.com/home-assistant/core/pull/106768
+[#106774]: https://github.com/home-assistant/core/pull/106774
+[#106781]: https://github.com/home-assistant/core/pull/106781
+[#106782]: https://github.com/home-assistant/core/pull/106782
+[#106783]: https://github.com/home-assistant/core/pull/106783
+[#106801]: https://github.com/home-assistant/core/pull/106801
+[#106808]: https://github.com/home-assistant/core/pull/106808
+[#106831]: https://github.com/home-assistant/core/pull/106831
+[#106833]: https://github.com/home-assistant/core/pull/106833
+[#106834]: https://github.com/home-assistant/core/pull/106834
+[#106835]: https://github.com/home-assistant/core/pull/106835
+[#106842]: https://github.com/home-assistant/core/pull/106842
+[#106851]: https://github.com/home-assistant/core/pull/106851
+[#106856]: https://github.com/home-assistant/core/pull/106856
+[#106861]: https://github.com/home-assistant/core/pull/106861
+[#106870]: https://github.com/home-assistant/core/pull/106870
+[#106885]: https://github.com/home-assistant/core/pull/106885
+[#106886]: https://github.com/home-assistant/core/pull/106886
+[#106898]: https://github.com/home-assistant/core/pull/106898
+[#106909]: https://github.com/home-assistant/core/pull/106909
+[#106913]: https://github.com/home-assistant/core/pull/106913
+[#106916]: https://github.com/home-assistant/core/pull/106916
+[#106938]: https://github.com/home-assistant/core/pull/106938
+[#106942]: https://github.com/home-assistant/core/pull/106942
+[#70365]: https://github.com/home-assistant/core/pull/70365
+[#79077]: https://github.com/home-assistant/core/pull/79077
+[#82483]: https://github.com/home-assistant/core/pull/82483
+[#85769]: https://github.com/home-assistant/core/pull/85769
+[#86026]: https://github.com/home-assistant/core/pull/86026
+[#87039]: https://github.com/home-assistant/core/pull/87039
+[#87493]: https://github.com/home-assistant/core/pull/87493
+[#88272]: https://github.com/home-assistant/core/pull/88272
+[#91165]: https://github.com/home-assistant/core/pull/91165
+[#92665]: https://github.com/home-assistant/core/pull/92665
+[#93002]: https://github.com/home-assistant/core/pull/93002
+[#94497]: https://github.com/home-assistant/core/pull/94497
+[#94824]: https://github.com/home-assistant/core/pull/94824
+[#95088]: https://github.com/home-assistant/core/pull/95088
+[#95594]: https://github.com/home-assistant/core/pull/95594
+[#95885]: https://github.com/home-assistant/core/pull/95885
+[#96182]: https://github.com/home-assistant/core/pull/96182
+[#96573]: https://github.com/home-assistant/core/pull/96573
+[#98841]: https://github.com/home-assistant/core/pull/98841
+[#99342]: https://github.com/home-assistant/core/pull/99342
+[#99538]: https://github.com/home-assistant/core/pull/99538
+[#99608]: https://github.com/home-assistant/core/pull/99608
+[#99743]: https://github.com/home-assistant/core/pull/99743
+[#99761]: https://github.com/home-assistant/core/pull/99761
+[@AngellusMortis]: https://github.com/AngellusMortis
+[@Anonym-tsk]: https://github.com/Anonym-tsk
+[@Betacart]: https://github.com/Betacart
+[@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
+[@Danielhiversen]: https://github.com/Danielhiversen
+[@DeerMaximum]: https://github.com/DeerMaximum
+[@Ernst79]: https://github.com/Ernst79
+[@Floris272]: https://github.com/Floris272
+[@JosephBlock]: https://github.com/JosephBlock
+[@Lash-L]: https://github.com/Lash-L
+[@Marco98]: https://github.com/Marco98
+[@MartinHjelmare]: https://github.com/MartinHjelmare
+[@N3rdix]: https://github.com/N3rdix
+[@RJPoelstra]: https://github.com/RJPoelstra
+[@Shulyaka]: https://github.com/Shulyaka
+[@Shutgun]: https://github.com/Shutgun
+[@Sibgatulin]: https://github.com/Sibgatulin
+[@Skaronator]: https://github.com/Skaronator
+[@TheFes]: https://github.com/TheFes
+[@Tho85]: https://github.com/Tho85
+[@VIKTORVAV99]: https://github.com/VIKTORVAV99
+[@agners]: https://github.com/agners
+[@allenporter]: https://github.com/allenporter
+[@ashionky]: https://github.com/ashionky
+[@autinerd]: https://github.com/autinerd
+[@azogue]: https://github.com/azogue
+[@bajansen]: https://github.com/bajansen
+[@barche]: https://github.com/barche
+[@bdr99]: https://github.com/bdr99
+[@bdraco]: https://github.com/bdraco
+[@bieniu]: https://github.com/bieniu
+[@bramkragten]: https://github.com/bramkragten
+[@briglx]: https://github.com/briglx
+[@c0ffeeca7]: https://github.com/c0ffeeca7
+[@cdce8p]: https://github.com/cdce8p
+[@cdnninja]: https://github.com/cdnninja
+[@cgarwood]: https://github.com/cgarwood
+[@cgtobi]: https://github.com/cgtobi
+[@chemelli74]: https://github.com/chemelli74
+[@chishm]: https://github.com/chishm
+[@cian]: https://github.com/cian
+[@cibernox]: https://github.com/cibernox
+[@cmsimike]: https://github.com/cmsimike
+[@cohenchris]: https://github.com/cohenchris
+[@davet2001]: https://github.com/davet2001
+[@dewdropawoo]: https://github.com/dewdropawoo
+[@dgomes]: https://github.com/dgomes
+[@dieselrabbit]: https://github.com/dieselrabbit
+[@dknowles2]: https://github.com/dknowles2
+[@dmulcahey]: https://github.com/dmulcahey
+[@doggkruse]: https://github.com/doggkruse
+[@dougiteixeira]: https://github.com/dougiteixeira
+[@dschall]: https://github.com/dschall
+[@dupondje]: https://github.com/dupondje
+[@edenhaus]: https://github.com/edenhaus
+[@elmurato]: https://github.com/elmurato
+[@elupus]: https://github.com/elupus
+[@emontnemery]: https://github.com/emontnemery
+[@engrbm87]: https://github.com/engrbm87
+[@epenet]: https://github.com/epenet
+[@erwindouna]: https://github.com/erwindouna
+[@farmio]: https://github.com/farmio
+[@finder39]: https://github.com/finder39
+[@frenck]: https://github.com/frenck
+[@gjohansson-ST]: https://github.com/gjohansson-ST
+[@iamrgroot]: https://github.com/iamrgroot
+[@janiversen]: https://github.com/janiversen
+[@jbouwh]: https://github.com/jbouwh
+[@jimmyd-be]: https://github.com/jimmyd-be
+[@jjlawren]: https://github.com/jjlawren
+[@joncar]: https://github.com/joncar
+[@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
+[@killercode]: https://github.com/killercode
+[@kilrogg]: https://github.com/kilrogg
+[@kingy444]: https://github.com/kingy444
+[@klaasnicolaas]: https://github.com/klaasnicolaas
+[@krmarien]: https://github.com/krmarien
+[@kukulich]: https://github.com/kukulich
+[@lellky]: https://github.com/lellky
+[@ludeeus]: https://github.com/ludeeus
+[@marcelveldt]: https://github.com/marcelveldt
+[@mari8i]: https://github.com/mari8i
+[@mattmattmatt]: https://github.com/mattmattmatt
+[@mdunda]: https://github.com/mdunda
+[@mdz]: https://github.com/mdz
+[@miaucl]: https://github.com/miaucl
+[@mib1185]: https://github.com/mib1185
+[@mill1000]: https://github.com/mill1000
+[@mkmer]: https://github.com/mkmer
+[@mletenay]: https://github.com/mletenay
+[@nmaggioni]: https://github.com/nmaggioni
+[@ocalvo]: https://github.com/ocalvo
+[@ollo69]: https://github.com/ollo69
+[@osohotwateriot]: https://github.com/osohotwateriot
+[@oyvindwe]: https://github.com/oyvindwe
+[@pavoni]: https://github.com/pavoni
+[@pfrazer]: https://github.com/pfrazer
+[@pnbruckner]: https://github.com/pnbruckner
+[@puddly]: https://github.com/puddly
+[@rajlaud]: https://github.com/rajlaud
+[@raman325]: https://github.com/raman325
+[@raww]: https://github.com/raww
+[@rikroe]: https://github.com/rikroe
+[@rokam]: https://github.com/rokam
+[@scop]: https://github.com/scop
+[@sergeymaysak]: https://github.com/sergeymaysak
+[@slhad]: https://github.com/slhad
+[@starkillerOG]: https://github.com/starkillerOG
+[@steffenrapp]: https://github.com/steffenrapp
+[@synesthesiam]: https://github.com/synesthesiam
+[@tetele]: https://github.com/tetele
+[@theorlangur]: https://github.com/theorlangur
+[@tjhorner]: https://github.com/tjhorner
+[@tkdrob]: https://github.com/tkdrob
+[@tofuSCHNITZEL]: https://github.com/tofuSCHNITZEL
+[@tronikos]: https://github.com/tronikos
+[@tzahari]: https://github.com/tzahari
+[@vexofp]: https://github.com/vexofp
+[@yangbo1979]: https://github.com/yangbo1979
+[@yuxincs]: https://github.com/yuxincs
+[@zxdavb]: https://github.com/zxdavb
diff --git a/source/images/blog/2024-01/add-action-other-integrations.png b/source/images/blog/2024-01/add-action-other-integrations.png
new file mode 100644
index 00000000000..cd4210b66ac
Binary files /dev/null and b/source/images/blog/2024-01/add-action-other-integrations.png differ
diff --git a/source/images/blog/2024-01/add-action-search.png b/source/images/blog/2024-01/add-action-search.png
new file mode 100644
index 00000000000..8061771980a
Binary files /dev/null and b/source/images/blog/2024-01/add-action-search.png differ
diff --git a/source/images/blog/2024-01/add-light-action.png b/source/images/blog/2024-01/add-light-action.png
new file mode 100644
index 00000000000..ebc9b03227b
Binary files /dev/null and b/source/images/blog/2024-01/add-light-action.png differ
diff --git a/source/images/blog/2024-01/add-trigger-dialog.png b/source/images/blog/2024-01/add-trigger-dialog.png
new file mode 100644
index 00000000000..9c3c642ce8d
Binary files /dev/null and b/source/images/blog/2024-01/add-trigger-dialog.png differ
diff --git a/source/images/blog/2024-01/automation-building-blocks.png b/source/images/blog/2024-01/automation-building-blocks.png
new file mode 100644
index 00000000000..a44e47f47fd
Binary files /dev/null and b/source/images/blog/2024-01/automation-building-blocks.png differ
diff --git a/source/images/blog/2024-01/automation-descriptions.png b/source/images/blog/2024-01/automation-descriptions.png
new file mode 100644
index 00000000000..8f54890eb75
Binary files /dev/null and b/source/images/blog/2024-01/automation-descriptions.png differ
diff --git a/source/images/blog/2024-01/climate-card-change-primary-temperature.png b/source/images/blog/2024-01/climate-card-change-primary-temperature.png
new file mode 100644
index 00000000000..8d76764148c
Binary files /dev/null and b/source/images/blog/2024-01/climate-card-change-primary-temperature.png differ
diff --git a/source/images/blog/2024-01/climate-fan-card-feature.png b/source/images/blog/2024-01/climate-fan-card-feature.png
new file mode 100644
index 00000000000..2f69d4ff3c2
Binary files /dev/null and b/source/images/blog/2024-01/climate-fan-card-feature.png differ
diff --git a/source/images/blog/2024-01/social.png b/source/images/blog/2024-01/social.png
new file mode 100644
index 00000000000..bac68c31a55
Binary files /dev/null and b/source/images/blog/2024-01/social.png differ
diff --git a/source/images/blog/2024-01/start-automating.png b/source/images/blog/2024-01/start-automating.png
new file mode 100644
index 00000000000..d5b0b33fd3d
Binary files /dev/null and b/source/images/blog/2024-01/start-automating.png differ
diff --git a/source/images/blog/2024-01/todo-dialog.png b/source/images/blog/2024-01/todo-dialog.png
new file mode 100644
index 00000000000..f3b59311946
Binary files /dev/null and b/source/images/blog/2024-01/todo-dialog.png differ
diff --git a/source/images/blog/2024-01/todo-new-dashboard.png b/source/images/blog/2024-01/todo-new-dashboard.png
new file mode 100644
index 00000000000..0dfa431f34a
Binary files /dev/null and b/source/images/blog/2024-01/todo-new-dashboard.png differ
diff --git a/source/images/blog/2024-01/update-card-feature.png b/source/images/blog/2024-01/update-card-feature.png
new file mode 100644
index 00000000000..392de546235
Binary files /dev/null and b/source/images/blog/2024-01/update-card-feature.png differ
diff --git a/source/images/blog/2024-01/valve-entity-type.png b/source/images/blog/2024-01/valve-entity-type.png
new file mode 100644
index 00000000000..e239576591b
Binary files /dev/null and b/source/images/blog/2024-01/valve-entity-type.png differ