diff --git a/CODEOWNERS b/CODEOWNERS index 48521a15662..fa637d18601 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -354,7 +354,7 @@ source/_integrations/hive.markdown @Rendili @KJonline source/_integrations/hko.markdown @MisterCommand source/_integrations/hlk_sw16.markdown @jameshilliard source/_integrations/holiday.markdown @jrieger @gjohansson-ST -source/_integrations/home_connect.markdown @DavidMStraub +source/_integrations/home_connect.markdown @DavidMStraub @Diegorro98 source/_integrations/home_plus_control.markdown @cgtobi source/_integrations/homeassistant.markdown @home-assistant/core source/_integrations/homeassistant_alerts.markdown @home-assistant/core @@ -707,7 +707,7 @@ source/_integrations/rmvtransport.markdown @cgtobi source/_integrations/roborock.markdown @Lash-L source/_integrations/roku.markdown @ctalkington source/_integrations/romy.markdown @xeniter -source/_integrations/roomba.markdown @pschmitt @cyr-ius @shenxn @Xitee1 @Orhideous +source/_integrations/roomba.markdown @pschmitt @cyr-ius @shenxn @Orhideous source/_integrations/roon.markdown @pavoni source/_integrations/rpi_power.markdown @shenxn @swetoast source/_integrations/rss_feed_template.markdown @home-assistant/core @@ -796,11 +796,10 @@ source/_integrations/sonos.markdown @jjlawren @peterager source/_integrations/soundtouch.markdown @kroimon source/_integrations/spaceapi.markdown @fabaff source/_integrations/speedtestdotnet.markdown @rohankapoorcom @engrbm87 -source/_integrations/spider.markdown @peternijssen source/_integrations/splunk.markdown @Bre77 source/_integrations/spotify.markdown @frenck @joostlek source/_integrations/sql.markdown @gjohansson-ST @dougiteixeira -source/_integrations/squeezebox.markdown @rajlaud +source/_integrations/squeezebox.markdown @rajlaud @pssc @peteS-UK source/_integrations/srp_energy.markdown @briglx source/_integrations/starline.markdown @anonym-tsk source/_integrations/starlink.markdown @boswelja @@ -813,7 +812,7 @@ source/_integrations/stookwijzer.markdown @fwestenberg source/_integrations/stream.markdown @hunterjm @uvjustin @allenporter source/_integrations/stt.markdown @home-assistant/core source/_integrations/subaru.markdown @G-Two -source/_integrations/suez_water.markdown @ooii +source/_integrations/suez_water.markdown @ooii @jb101010-2 source/_integrations/sun.markdown @Swamp-Ig source/_integrations/sunweg.markdown @rokam source/_integrations/supla.markdown @mwegrzynek diff --git a/Gemfile b/Gemfile index a86b44a7678..71db3069a7a 100644 --- a/Gemfile +++ b/Gemfile @@ -10,11 +10,10 @@ group :development do gem 'stringex', '2.8.6' # > 2.1.0 causes slowdowns https://github.com/sass/sassc-ruby/issues/189 gem 'sassc', '2.1.0' - # 1.80.5 breaks the build - gem 'sass-embedded', '1.80.4' - gem 'rubocop', '1.67.0' - gem 'ruby-lsp', '0.20.1' - gem 'rackup', '2.1.0' + gem 'sass-embedded', '1.80.6' + gem 'rubocop', '1.68.0' + gem 'ruby-lsp', '0.21.3' + gem 'rackup', '2.2.0' end group :jekyll_plugins do diff --git a/Gemfile.lock b/Gemfile.lock index 53d4be5be2c..e45c236d766 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -66,7 +66,7 @@ GEM nokogiri (~> 1.12) jekyll-watch (2.2.1) listen (~> 3.0) - json (2.7.4) + json (2.8.1) kramdown (2.4.0) rexml kramdown-parser-gfm (1.1.0) @@ -86,7 +86,7 @@ GEM nokogiri (1.16.7-x86_64-linux) racc (~> 1.4) parallel (1.26.3) - parser (3.3.5.0) + parser (3.3.6.0) ast (~> 2.4.1) racc pathutil (0.16.2) @@ -100,9 +100,8 @@ GEM rack (>= 3.0.0, < 4) rack-session (2.0.0) rack (>= 3.0.0) - rackup (2.1.0) + rackup (2.2.0) rack (>= 3) - webrick (~> 1.8) rainbow (3.1.1) rake (13.2.1) rb-fsevent (0.11.2) @@ -113,7 +112,7 @@ GEM regexp_parser (2.9.2) rexml (3.3.9) rouge (4.4.0) - rubocop (1.67.0) + rubocop (1.68.0) json (~> 2.3) language_server-protocol (>= 3.17.0) parallel (~> 1.10) @@ -123,9 +122,9 @@ GEM rubocop-ast (>= 1.32.2, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.32.3) + rubocop-ast (1.34.0) parser (>= 3.3.1.0) - ruby-lsp (0.20.1) + ruby-lsp (0.21.3) language_server-protocol (~> 3.17.0) prism (>= 1.2, < 2.0) rbs (>= 3, < 4) @@ -134,9 +133,9 @@ GEM ruby2_keywords (0.0.5) safe_yaml (1.0.5) sass (3.4.25) - sass-embedded (1.80.4-arm64-darwin) + sass-embedded (1.80.6-arm64-darwin) google-protobuf (~> 4.28) - sass-embedded (1.80.4-x86_64-linux-gnu) + sass-embedded (1.80.6-x86_64-linux-gnu) google-protobuf (~> 4.28) sass-globbing (1.1.5) sass (>= 3.1) @@ -150,7 +149,7 @@ GEM rack-protection (= 4.0.0) rack-session (>= 2.0.0, < 3) tilt (~> 2.0) - sorbet-runtime (0.5.11620) + sorbet-runtime (0.5.11641) stringex (2.8.6) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) @@ -160,7 +159,7 @@ GEM tzinfo-data (1.2024.2) tzinfo (>= 1.0.0) unicode-display_width (2.6.0) - webrick (1.8.2) + webrick (1.9.0) PLATFORMS arm64-darwin-23 @@ -174,11 +173,11 @@ DEPENDENCIES jekyll-sitemap (= 1.4.0) jekyll-toc (= 0.19.0) nokogiri (= 1.16.7) - rackup (= 2.1.0) + rackup (= 2.2.0) rake (= 13.2.1) - rubocop (= 1.67.0) - ruby-lsp (= 0.20.1) - sass-embedded (= 1.80.4) + rubocop (= 1.68.0) + ruby-lsp (= 0.21.3) + sass-embedded (= 1.80.6) sass-globbing (= 1.1.5) sassc (= 2.1.0) sinatra (= 4.0.0) diff --git a/_config.yml b/_config.yml index baadd3287cc..67d3ee2ec79 100644 --- a/_config.yml +++ b/_config.yml @@ -107,9 +107,9 @@ social: # Home Assistant release details current_major_version: 2024 -current_minor_version: 10 -current_patch_version: 4 -date_released: 2024-10-25 +current_minor_version: 11 +current_patch_version: 0 +date_released: 2024-11-06 # Either # or the anchor link to latest release notes in the blog post. # Must be prefixed with a # and have double quotes around it. diff --git a/sass/homeassistant/_overrides.scss b/sass/homeassistant/_overrides.scss index 97c66c0c1c5..609776c748a 100644 --- a/sass/homeassistant/_overrides.scss +++ b/sass/homeassistant/_overrides.scss @@ -1393,12 +1393,10 @@ h1, h2, h3, h4, h5, h6 { word-wrap: break-word; } -:target { - display: block; +:target, .title-link { + display: inline-block; position: relative; - top: -100px; - visibility: hidden; - scroll-margin-top: 80px; + scroll-margin-top: 140px; } .site-header { diff --git a/sass/homeassistant/base/_global.scss b/sass/homeassistant/base/_global.scss index 9b0a0b63d06..264f85233e3 100644 --- a/sass/homeassistant/base/_global.scss +++ b/sass/homeassistant/base/_global.scss @@ -64,6 +64,11 @@ table { } } +.text-input, +textarea { + cursor: text; +} + .gist { font-size: 0.75em; } diff --git a/source/_dashboards/glance.markdown b/source/_dashboards/glance.markdown index bdf2f0aa8c0..d0f0ec954a1 100644 --- a/source/_dashboards/glance.markdown +++ b/source/_dashboards/glance.markdown @@ -115,15 +115,6 @@ double_tap_action: type: map {% endconfiguration %} -### Options for exemptions - -{% configuration badges %} -user: - required: true - description: User ID that can see the view tab. - type: string -{% endconfiguration %} - ### Examples Basic example: diff --git a/source/_dashboards/picture-elements.markdown b/source/_dashboards/picture-elements.markdown index 2d6ae4c5700..30aca8fd60d 100644 --- a/source/_dashboards/picture-elements.markdown +++ b/source/_dashboards/picture-elements.markdown @@ -407,15 +407,6 @@ style: default: "position: absolute, transform: translate(-50%, -50%)" {% endconfiguration %} -## Options for exemptions - -{% configuration badges %} -user: - required: true - description: User ID that can see the view tab. - type: string -{% endconfiguration %} - ## Notes on element attributes ### How to use the style object diff --git a/source/_dashboards/picture-glance.markdown b/source/_dashboards/picture-glance.markdown index c4c73e008d7..4a6626a3e7c 100644 --- a/source/_dashboards/picture-glance.markdown +++ b/source/_dashboards/picture-glance.markdown @@ -143,15 +143,6 @@ double_tap_action: type: map {% endconfiguration %} -### Options for exemptions - -{% configuration badges %} -user: - required: true - description: User ID that can see the view tab. - type: string -{% endconfiguration %} - ### How to use state_filter Specify different [CSS filters](https://developer.mozilla.org/en-US/docs/Web/CSS/filter) diff --git a/source/_dashboards/todo-list.markdown b/source/_dashboards/todo-list.markdown index a9f6155d174..fc8fe961237 100644 --- a/source/_dashboards/todo-list.markdown +++ b/source/_dashboards/todo-list.markdown @@ -74,6 +74,6 @@ Title example: ```yaml type: todo-list -entity: todo-list -title: todo list +entity: todo.todo_list +title: Todo List ``` diff --git a/source/_data/glossary.yml b/source/_data/glossary.yml index 26d19c853ad..f0a4b417633 100644 --- a/source/_data/glossary.yml +++ b/source/_data/glossary.yml @@ -205,6 +205,11 @@ definition: >- Device trackers are used to track the presence, or location, of a device. link: /integrations/device_tracker +- term: Diagnostics + definition: >- + The diagnostics integration provides a way to download diagnostic data from a device or integration for sharing in issue reports. Sharing diagnostics data when reporting an issue allows developers to diagnose and + fix your reported problem quicker. + link: /integrations/diagnostics - term: Discovery definition: > Discovery is the automatic setup of zeroconf/mDNS and uPnP devices after @@ -361,6 +366,12 @@ link: https://en.wikipedia.org/wiki/Host_(network) aliases: - hosts +- term: Image + definition: >- + The Image integration allows other integrations to display a static image. + link: /integrations/image + aliases: + - images - term: Integration definition: >- Integrations connect and integrate Home Assistant with devices, services, @@ -548,6 +559,8 @@ Switches are things that have two states you can select between, such as turning on or off a socket. link: /integrations/switch/ + aliases: + - switches - term: Template definition: >- A template is an automation definition that can include variables for the @@ -599,6 +612,18 @@ TTS (text-to-speech) allows Home Assistant to talk to you. link: /integrations/tts/ +- term: Update + definition: >- + An update entity is an entity that indicates if an update is available for a + device or service. This can be any update, be it a firmware update + for a device like a light bulb or router, or a software update for an add-on or a container. + excerpt: > + An update entity is an entity that indicates if an update is available for a + device or service. + link: /integrations/update + aliases: + - updates + - term: Valve definition: >- Valves are devices to control the flow of liquids and gases. All valves in diff --git a/source/_docs/authentication.markdown b/source/_docs/authentication.markdown index 8a83d5cc374..2e929a4f4f7 100644 --- a/source/_docs/authentication.markdown +++ b/source/_docs/authentication.markdown @@ -7,7 +7,7 @@ The authentication system secures access to Home Assistant. ## Login screen -You are greeted with a log in screen, asking you for user name and password. +You are greeted with a log in screen, asking you for username and password. Screenshot of the login screen, when logging in from within the local network @@ -55,9 +55,9 @@ As an extra level of security, you can turn on [multi-factor authentication](/do If you have administrator rights, you can [add a person to Home Assistant](/integrations/person/#adding-a-person-to-home-assistant) and create them a user account. -## Changing display or user name +## Changing display or username -To learn how to change a display or user name, refer to [setting up basic information](/docs/configuration/basic/). +To learn how to change a display or username, refer to [setting up basic information](/docs/configuration/basic/). ## Other authentication techniques diff --git a/source/_docs/authentication/providers.markdown b/source/_docs/authentication/providers.markdown index 872f488cc53..a2bf1ede505 100644 --- a/source/_docs/authentication/providers.markdown +++ b/source/_docs/authentication/providers.markdown @@ -123,11 +123,16 @@ homeassistant: - group: system-users ``` -First note, for `trusted_users` configuration you need to use `user id`, which you can find through {% my users title="Settings -> People" %} -> View User Detail. The `trusted_users` configuration will not validate the existence of the user, so please make sure you have put in the correct user id by yourself. +First note, for `trusted_users` configuration you need to use `user id`. -Second note, a trusted user with an IPv6 address must put the IPv6 address in quotes as shown. +1. To find the user ID, in your browser, make sure the URL of your Home Assistant ends in `config/users/`. + - For example: `homeassistant:8123/config/users`. +2. Select the user from the list, and copy the ID. + - For example: `acbbff56461748718f3650fb914b88c9`. +3. The `trusted_users` configuration will not validate the existence of the user, so please make sure you have put in the correct user id. +4. A trusted user with an IPv6 address must put the IPv6 address in quotes as shown. -In above example, if user try to access Home Assistant from 192.168.0.1, they will have only one user available to choose. They will have two users available if access from 192.168.0.38 (from 192.168.0.0/24 network). If they access from 192.168.10.0/24 network, they can choose from all available users (non-system and active users). +In the above example, if user try to access Home Assistant from 192.168.0.1, they will have only one user available to choose. They will have two users available if access from 192.168.0.38 (from 192.168.0.0/24 network). If they access from 192.168.10.0/24 network, they can choose from all available users (non-system and active users). Specially, you can use `group: GROUP_ID` to assign all users in certain `user group` to be available to choose. Group and users can be mix and match. diff --git a/source/_docs/automation/templating.markdown b/source/_docs/automation/templating.markdown index bd18fa79125..ce3529e1342 100644 --- a/source/_docs/automation/templating.markdown +++ b/source/_docs/automation/templating.markdown @@ -102,6 +102,7 @@ These are the properties available for a [Sentence trigger](/docs/automation/tri | `trigger.sentence` | Text of the sentence that was matched | `trigger.slots` | Object with matched slot values | `trigger.details` | Object with matched slot details by name, such as [wildcards](/docs/automation/trigger/#sentence-wildcards). Each detail contains: +| `trigger.device_id` | The device ID that captured the command, if any. ### State diff --git a/source/_docs/configuration/basic.markdown b/source/_docs/configuration/basic.markdown index 016a622a5d1..97c3a71e623 100644 --- a/source/_docs/configuration/basic.markdown +++ b/source/_docs/configuration/basic.markdown @@ -39,7 +39,7 @@ To change the general settings that were defined during onboarding, follow these ## Changing a person's display name -The display name is the name that is shown in Home Assistant. It can differ from the user name, which is the name used to log in. +The display name is the name that is shown in Home Assistant. It can differ from the username, which is the name used to log in. ### Prerequisites @@ -50,18 +50,19 @@ The display name is the name that is shown in Home Assistant. It can differ from 1. To edit the display name of a person using Home Assistant, go to {% my people title="**Settings** > **People**" %} and select the person for which you want to change the display name. 2. Change the display name and select **Update** to save the change. -## Changing a user name +## Changing a username -The user name is the name that is used to log in. It can differ from the display name. +The username is the name that is used to log in. It can differ from the display name. ### Prerequisites -- You need owner rights to change a user name. +- You need owner rights to change a username. ### To change a username 1. To edit the username of a person using Home Assistant, go to {% my people title="**Settings** > **People**" %} and select the person for which you want to change the display name. 2. Change the username and select **Update** to save the change. + - It must be lowercase and contain no spaces. - The log in is case-sensitive. ## Changing authentication settings diff --git a/source/_includes/asides/docs_sitemap.html b/source/_includes/asides/docs_sitemap.html index d0b3183d2fb..1b6e214ca55 100644 --- a/source/_includes/asides/docs_sitemap.html +++ b/source/_includes/asides/docs_sitemap.html @@ -126,7 +126,7 @@
  • {% active_link /voice_control/voice_remote_expose_devices/ Exposing devices to voice assistant %}
  • {% active_link /voice_control/install_wake_word_add_on/ Enabling a wake word %}
  • {% active_link /voice_control/about_wake_word/ About wake words %}
  • -
  • {% active_link /voice_control/builtin_sentences/ Built-in sentences %}
  • +
  • {% active_link /voice_control/builtin_sentences/ Sentences starter kit %}
  • {% active_link /voice_control/custom_sentences/ Custom sentences %}
  • {% active_link /voice_control/aliases/ Using aliases %}
  • {% active_link /voice_control/using_tts_in_automation/ Using Piper TTS in automations %}
  • diff --git a/source/_includes/common-tasks/network_storage.md b/source/_includes/common-tasks/network_storage.md index 90e12654a3d..6b1895cb275 100644 --- a/source/_includes/common-tasks/network_storage.md +++ b/source/_includes/common-tasks/network_storage.md @@ -1,6 +1,6 @@ ## Network storage -You can configure both Network File Share (NFS) and Windows samba (CIFS) targets to be used within Home Assistant and add-ons. +You can configure both Network File System (NFS) and Samba/Windows (CIFS) targets to be used within Home Assistant and add-ons. To list all your currently connected network storages, go to **{% my storage title="Settings > System > Storage" %}** in the UI. {% if page.installation == "os" %} diff --git a/source/_includes/installation/container/alternative.md b/source/_includes/installation/container/alternative.md index d2b1bb61d51..8ac3762f067 100644 --- a/source/_includes/installation/container/alternative.md +++ b/source/_includes/installation/container/alternative.md @@ -1,7 +1,6 @@ ### Synology NAS -Synology with DSM now supports Docker, allowing you to install Home Assistant using Docker without the need for command-line. For details about the package (including compatibility-information, if your NAS is supported), see - +Synology with DSM now supports container management through the Container Manager package, allowing you to install Home Assistant without the need for command-line. For details about the package (including compatibility-information, if your NAS is supported), see The steps would be: - Install Docker "Container Manager" package on your Synology NAS diff --git a/source/_integrations/aftership.markdown b/source/_integrations/aftership.markdown index da78091aabb..7aed005d39d 100644 --- a/source/_integrations/aftership.markdown +++ b/source/_integrations/aftership.markdown @@ -12,7 +12,7 @@ ha_integration_type: integration ha_config_flow: true --- -The `aftership` platform allows one to track deliveries by [AfterShip](https://www.aftership.com), a service that supports 490+ couriers worldwide. To use the tracking API functionality, the Essentials plan is required. This plan includes 100 shipments per month. There are various paid-for tiers after that. +The `aftership` platform allows one to track deliveries by [AfterShip](https://www.aftership.com), a service that supports 490+ couriers worldwide. To use the tracking API functionality, the Pro plan is required. The sensor value shows the number of packages that are not in `Delivered` state. As attributes are the number of packages per status. diff --git a/source/_integrations/airgradient.markdown b/source/_integrations/airgradient.markdown index 34539dbfc51..a760e9b67e8 100644 --- a/source/_integrations/airgradient.markdown +++ b/source/_integrations/airgradient.markdown @@ -14,6 +14,7 @@ ha_codeowners: ha_domain: airgradient ha_platforms: - button + - diagnostics - number - select - sensor diff --git a/source/_integrations/alexa.smart_home.markdown b/source/_integrations/alexa.smart_home.markdown index 420d74854ca..471aba89b60 100644 --- a/source/_integrations/alexa.smart_home.markdown +++ b/source/_integrations/alexa.smart_home.markdown @@ -231,17 +231,17 @@ Now remove the long-lived access token (if you want), copy the ARN of your Lambd ## Account linking -Alexa needs to link your Amazon account to your Home Assistant account. Therefore Home Assistant can make sure only authenticated Alexa requests are able to access your home's devices. In order to link the account, you have to make sure your Home Assistant can be accessed from Internet at port 443. +Alexa needs to link your Amazon account to your Home Assistant account. Therefore Home Assistant can make sure only authenticated Alexa requests are able to access your home's devices. In order to link the account, you have to make sure your Home Assistant can be accessed from Internet. - Return to the [Alexa Developer Console][alexa-dev-console], go to `Alexa Skills` page if you are not. - Find the skill you just created, click `Edit` link in the `Actions` column. - Click `ACCOUNT LINKING` in the left navigation bar of build page - Do not turn on the "Allow users to link their account to your skill from within your application or website" switch. This will require a Redirect URI, which won't work. -- Input all information required. Assuming your Home Assistant can be accessed by `https://[YOUR HOME ASSISTANT URL]`. For Alexa account linking, by default, the standard port 443 is used. Use your firewall to forward this, if needed: - - `Authorization URI`: `https://[YOUR HOME ASSISTANT URL]/auth/authorize` - - `Access Token URI`: `https://[YOUR HOME ASSISTANT URL]/auth/token` +- Input all information required. Assuming your Home Assistant can be accessed by `https://[YOUR HOME ASSISTANT URL][:PORT]`, where `PORT` is the TCP port. The port can be omitted if it is `443`. For Alexa account linking, by default, the standard port 443 is used by default. Use your firewall to forward this, if needed: + - `Authorization URI`: `https://[YOUR HOME ASSISTANT URL][:PORT]/auth/authorize` + - `Access Token URI`: `https://[YOUR HOME ASSISTANT URL][:PORT]/auth/token` - Although it is possible to assign a different port, Alexa requires you use port 443, so make sure your firewall/proxy is forwarding via port 443. + Although it is possible to assign a different port, it is preferable to use port 443, so in that case make sure your firewall/proxy is forwarding via port 443. Read [more from the Alexa developer documentation](https://developer.amazon.com/en-US/docs/alexa/account-linking/requirements-account-linking.html) about requirements for account linking. diff --git a/source/_integrations/calendar.markdown b/source/_integrations/calendar.markdown index 3a440c1f457..a745c1c799d 100644 --- a/source/_integrations/calendar.markdown +++ b/source/_integrations/calendar.markdown @@ -177,7 +177,7 @@ Add a new calendar event. A calendar `target` is selected with a [Target Selecto You either use `start_date_time` and `end_date_time`, or `start_date` and `end_date`, or `in`. {% endnote %} -This is a full example of a {% term service %} call in YAML: +This is a full example of an {% term action %} in YAML: ```yaml action: calendar.create_event diff --git a/source/_integrations/cambridge_audio.markdown b/source/_integrations/cambridge_audio.markdown index 95e72a5b8d2..c40391323e0 100644 --- a/source/_integrations/cambridge_audio.markdown +++ b/source/_integrations/cambridge_audio.markdown @@ -11,6 +11,7 @@ ha_platforms: - diagnostics - media_player - select + - switch ha_codeowners: - '@noahhusby' ha_config_flow: true diff --git a/source/_integrations/comelit.markdown b/source/_integrations/comelit.markdown index c0cc86022a7..947bb6dc8b8 100644 --- a/source/_integrations/comelit.markdown +++ b/source/_integrations/comelit.markdown @@ -20,6 +20,7 @@ ha_platforms: - binary_sensor - climate - cover + - diagnostics - humidifier - light - sensor diff --git a/source/_integrations/diagnostics.markdown b/source/_integrations/diagnostics.markdown index aa210798f7f..505ba18184c 100644 --- a/source/_integrations/diagnostics.markdown +++ b/source/_integrations/diagnostics.markdown @@ -11,10 +11,7 @@ ha_codeowners: ha_integration_type: system --- -The diagnostics {% term integration %} provides a way to download diagnostic data from -a {% term device %} or {% term integration %}, that can be shared in issue reports. Sharing -diagnostics data when reporting an issue allows developers to diagnose -and fix your reported problem quicker. +The **Diagnostics** {% term integration %} provides a way to download diagnostic data from a {% term device %} or {% term integration %} for sharing in issue reports. Sharing diagnostics data when reporting an issue allows developers to diagnose and fix your reported problem quicker.

    Screenshot showing the Download Diagnostics button on a Sonos device page diff --git a/source/_integrations/dsmr_reader.markdown b/source/_integrations/dsmr_reader.markdown index e91215d9fd2..e3d1be83de9 100644 --- a/source/_integrations/dsmr_reader.markdown +++ b/source/_integrations/dsmr_reader.markdown @@ -17,6 +17,7 @@ ha_platforms: - diagnostics - sensor ha_integration_type: integration +ha_quality_scale: gold --- The `dsmr_reader` sensor integration allows you to easily add all sensors that [DSMR Reader](https://dsmr-reader.readthedocs.io/en/latest/) (Dutch Smart Meter Requirements Reader) exposes to MQTT. It adds a separate sensor for every field in the MQTT topics which is named `sensor_dsmr_`. diff --git a/source/_integrations/epson.markdown b/source/_integrations/epson.markdown index aca9d8e1a32..47f40b8b625 100644 --- a/source/_integrations/epson.markdown +++ b/source/_integrations/epson.markdown @@ -39,6 +39,7 @@ When you want to add a device for the first time, turn it on before following th - Epson EH-TW7000 - Epson EH-TW9400W (shares platform with 7400/8400/9400(w)) - Epson EH-TW3200 +- Epson Powerlite W39 ## Configuration diff --git a/source/_integrations/fritz.markdown b/source/_integrations/fritz.markdown index a0b957e0dfb..c880b79257b 100644 --- a/source/_integrations/fritz.markdown +++ b/source/_integrations/fritz.markdown @@ -1,6 +1,6 @@ --- title: AVM FRITZ!Box Tools -description: Instructions on how to integrate AVM FRITZ!Box based routers into Home Assistant. +description: Instructions on how to integrate AVM FRITZ!Box routers into Home Assistant. ha_category: - Binary sensor - Image @@ -11,7 +11,6 @@ ha_release: '0.10' ha_domain: fritz ha_config_flow: true ha_codeowners: - - '@mammuth' - '@AaronDavidSchneider' - '@chemelli74' - '@mib1185' @@ -29,26 +28,31 @@ ha_ssdp: true ha_integration_type: integration --- -The AVM FRITZ!Box Tools integration allows you to control your [AVM FRITZ!Box](https://en.avm.de/products/fritzbox/) based router. +The AVM FRITZ!Box Tools integration allows you to control your [AVM FRITZ!Box](https://en.avm.de/products/fritzbox/) router and have presence detection for connected network devices. There is support for the following platform types within Home Assistant: -- **Device tracker** - presence detection by looking at connected devices. -- **Binary sensor** - connectivity status. -- **Image** - QR code for Guest Wi-Fi. -- **Button** - reboot, reconnect, firmware_update. -- **Sensor** - external IP address, uptime and network monitors. -- **Switch** - call deflection, port forward, parental control and Wi-Fi networks. -- **Update** - firmware status of the device. +- **{% term "Device tracker" %}** - presence detection by looking at connected devices. +- **{% term "Binary sensor" %}** - connectivity status. +- **{% term Image %}** - QR code for Guest Wi-Fi. +- **{% term Button %}** - reboot, reconnect, firmware update. +- **{% term Sensor %}** - external IP address, uptime and network monitors. +- **{% term Switch %}** - call deflection, port forward, parental control and Wi-Fi networks. +- **{% term Update %}** - firmware status of the device. + {% include integrations/config_flow.md %} {% important %} -Both TR-064 and UPnP need to be enabled in the FRITZ!Box ( Home Network -> Network -> Network settings -> Access Settings in the Home Network ) for Home Assistant to login and read device info. +Both the TR-064 (_Permit access for apps_) and UPnP (_Transmit status information over UPnP_) protocol needs to be enabled in the FRITZ!Box under **Home Network** > **Network** > **Network settings** > **Access Settings in the Home Network** for Home Assistant to login and read device info. {% endimportant %} ## Username -The configuration in the UI asks for a username. Starting from FRITZ!OS 7.24 the FRITZ!Box creates a random username for the admin user if you didn't set one yourself. This can be found after logging into the FRITZ!Box and visiting System -> FRITZ!Box Users -> Users. The username starts with `fritz` followed by four random numbers. Under properties on the right it says `created automatically`. Prior to FRITZ!OS 7.24 the default username was `admin`. +It is recommended to create a separate user to connect Home Assistant to your FRITZ!Box. To create a user, in the FRITZ!Box go to **System** > **FRITZ!Box Users** > **Users** > **Add User**. Make sure the user has the **FRITZ!Box Settings** permission. + +{% note %} +If you still want to use the predefined user, please note that as of FRITZ!OS 7.24, the FRITZ!Box creates a random username for the admin user if you didn't set one yourself. This can be found after logging into the FRITZ!Box and visiting **System** > **FRITZ!Box Users** > **Users**. The username starts with `fritz` followed by four random numbers. Under properties on the right it says `created automatically`. Prior to FRITZ!OS 7.24, the default username was `admin`. +{% endnote %} ## Actions @@ -56,50 +60,50 @@ Available {% term actions %}: `set_guest_wifi_password` ### Action `set_guest_wifi_password` -Set a new password for the guest wifi. -The password must be between 8 and 63 characters long. -If no password is given, it will be auto-generated. +Set a new password for the guest wifi. The password Length must be between 8 and 63 characters long. -| Data attribute | Optional | Description | -| ---------------------- | -------- | -------------------------------------------------------------------------------------------------------------- | -| `device_id` | no | Only act on a specific router | -| `password` | yes | New password for the guest wifi | -| `length` | yes | Length of the auto-generated password. (_default 12_) | +| Data attribute | Required | Description | +| --- | --- | --- | +| `device_id` | yes | Only act on a specific router | +| `password` | no | New password for the guest wifi (_will be auto-generated if not defined_) | +| `length` | no | Length of the auto-generated password. (_default 12_) | ## Integration options It is possible to change some behaviors through the integration options. To change the settings, go to {% my integrations title="**Settings** > **Devices & services**" %}. Select the **AVM FRITZ!Box Tools** integration, then select **Configure**. -- **Consider home**: Number of seconds that must elapse before considering a disconnected device "not at home". -- **Enable old discovery method**: Needed on some scenarios like no mesh support (fw <= 6.x), mixed brands network devices or LAN switches. +### Consider home -## Additional info +Number of seconds that must elapse before considering a disconnected device "not at home". -### Parental control +### Enable old discovery method -Parental control switches can be used to enable and disable internet access of individual devices. If a device has internet access it will be enabled, otherwise it will be disabled. You can also find the current blocking state of the individual devices in the UI of the FRITZ!Box under `Internet` -> `Filters` -> `Parental Controls` -> `Device Block` +Needed on some scenarios like no mesh support (_FritzOS <= 6.x_) or mixed brands network devices or LAN switches. -Parental control switches are designed for advanced users, thus they are disabled by default. You need to enable the wanted entities manually. +## Additional information + +### Parental control switches + +Parental control {% term switches %} can be used to enable and disable internet access of individual devices. You can also find the current blocking state of the individual devices in the UI of the FRITZ!Box under **Internet** > **Filters** > **Parental Controls** > **Device Block**. ### Device tracker -**Note**: If you don't want to automatically track newly detected devices, disable the integration system option `Enable new added entities`. +**Note**: If you don't want to automatically track newly detected devices, disable the {% term integration %} system option `Enable new added entities`. -### Port forward +### Port forward switches -Due to security reasons, AVM implemented the ability to enable/disable a port forward rule only from the host involved in the rule. -As a result, this integration will create entities only for rules that have your Home Assistant host as a destination. +Due to security reasons, AVM implemented the ability to enable/disable a port forward rule only from the host involved in the rule. As a result, this integration will create entities only for rules that have your Home Assistant host as a destination. -**Note 1**: On your FRITZ!Box, enable the setting `Permit independent port sharing for this device` for the device which runs HA (`Internet` -> `Permit Access` -> ``) +**Note 1**: On your FRITZ!Box under **Internet** > **Permit Access**, enable the setting `Permit independent port sharing for this device` for the device which runs HA. -**Note 2**: Only works if you have a dedicated IPv4 address (it won't work with DS-Lite) +**Note 2**: Only works if you have a dedicated IPv4 address (_it won't work with DS-Lite_) ## Example Automations and Scripts ### Script: Reconnect / get new IP -The following script can be used to easily add a reconnect button to your UI. If you want to reboot your FRITZ!Box, you can use `fritz.reboot` instead. +The following {% term script %} can be used to easily add a reconnect button to your UI. If you want to reboot your FRITZ!Box, you can use `fritz.reboot` instead. ```yaml fritz_box_reconnect: @@ -142,3 +146,16 @@ automation: message: "Password: ..." ``` + +## Troubleshooting + +In any case, when reporting an issue, please enable [debug logging](/docs/configuration/troubleshooting/#debug-logs-and-diagnostics), restart the integration, and as soon as the issue re-occurs stop the debug logging again (_download of debug log file will start automatically_). Further _if still possible_, please also download the {% term diagnostics %} data. If you have collected the debug log and the diagnostics data, provide them with the issue report. + +### Device presence detection is not working as expected + +Check if one of the following cases applies: + +- You see a device as still present, even if it is offline or disconnected for more than the configured [consider home](#consider-home) seconds. +- You're using additional network equipment like a network switch or Wi-Fi access point other than an AVM Fritz!Repeater or other AVM components, but not configured as a [mesh](https://en.avm.de/service/knowledge-base/dok/FRITZ-Box-7590/3329_Mesh-with-FRITZ/) in your home network. + +If one of the above cases applies to your setup, try [enabling the old discovery method](#enable-old-discovery-method) in the [integration options](#integration-options). This might resolve the issue. diff --git a/source/_integrations/history_stats.markdown b/source/_integrations/history_stats.markdown index baae42ce62a..78c08936659 100644 --- a/source/_integrations/history_stats.markdown +++ b/source/_integrations/history_stats.markdown @@ -121,7 +121,11 @@ Depending on the sensor type you choose, the `history_stats` integration can sho - **time**: The default value, which is the tracked time, in hours - **ratio**: The tracked time divided by the length of your period, as a percentage -- **count**: How many times the tracked entity matched the configured state during the time period +- **count**: How many times the tracked entity matched the configured state during the time period. This will count states (for example, how many times a light was in the `on` state during the time period), as opposed to counting state transitions (for example, how many times a light was *turned* `on`). The difference is if the entity was already in the desired state at the start of the time period, that scenario will be counted with this sensor type. + +{% note %} +For a count sensor that uses a time period that does not slide (such as one that resets upon each hour, as opposed to one which considers the trailing 60 minutes), consider using [customization](/docs/configuration/customizing-devices/#customizing-an-entity-in-yaml) to change the `state_class` to `total_increasing` to generate statistics that track the `sum`. This is useful when emulating the behavior of a `utility_meter` helper that has a defined reset cycle. Without intervention, the `state_class` of any `history_stats` sensor will be `measurement` and will therefore generate `average`, `min`, and `max` statistics. +{% endnote %} ## Time periods @@ -158,6 +162,10 @@ duration: If the duration exceeds the number of days of history stored by the `recorder` integration (`purge_keep_days`), the history statistics sensor will not have all the information it needs to look at the entire duration. For example, if `purge_keep_days` is set to 7, a history statistics sensor with a duration of 30 days will only report a value based on the last 7 days of history. {% endnote %} +{% note %} +The history stats sensor will be updated when the source entity changes or once per minute if there is no source change. Keep this in mind when using fixed durations that aren't evenly divisible by one minute. +{% endnote %} + ### Video tutorial This video tutorial explains how you can use history stats. It also shows how you can create a daily bar chart graph to visualize things such as occupancy, or how long the lights are on in a particular room. diff --git a/source/_integrations/homeassistant.markdown b/source/_integrations/homeassistant.markdown index da9b70919ff..006507b376d 100644 --- a/source/_integrations/homeassistant.markdown +++ b/source/_integrations/homeassistant.markdown @@ -296,8 +296,8 @@ homeassistant: ice_servers: # Add an entry for each STUN or TURN server - url: - - "stun:stun.l.google.com:19302" - - "stun:stun1.l.google.com:3478" + - "stun:stun.example.com:19302" + - "stun:stun2.example.com:12345" - url: "turn:turn.domain.com" username: "username" credential: "abc123" diff --git a/source/_integrations/http.markdown b/source/_integrations/http.markdown index c5a93d92325..e43e284dca3 100644 --- a/source/_integrations/http.markdown +++ b/source/_integrations/http.markdown @@ -73,7 +73,7 @@ ip_ban_enabled: description: Flag indicating whether additional IP filtering is enabled. required: false type: boolean - default: false + default: true login_attempts_threshold: description: "Number of failed login attempt from single IP after which it will be automatically banned if `ip_ban_enabled` is `true`. When set to -1 no new automatic bans will be added." required: false diff --git a/source/_integrations/intent_script.markdown b/source/_integrations/intent_script.markdown index d6188ae35d2..d8a70a8f69e 100644 --- a/source/_integrations/intent_script.markdown +++ b/source/_integrations/intent_script.markdown @@ -46,7 +46,7 @@ intent: description: List of domains that the entity supports. required: false type: list - actions: + action: description: Defines an action to run to intents. required: false type: action @@ -109,7 +109,7 @@ conversation: intent_script: EventCountToday: - actions: + action: - action: calendar.get_events target: entity_id: calendar.my_calendar diff --git a/source/_integrations/jewish_calendar.markdown b/source/_integrations/jewish_calendar.markdown index 4f6b66effb0..2291f076c94 100644 --- a/source/_integrations/jewish_calendar.markdown +++ b/source/_integrations/jewish_calendar.markdown @@ -100,35 +100,35 @@ The following is the list of holidays the sensor knows about with their selected | yom_kippur | Yom Kippur | יום הכפורים | YOM_TOV | 1 | | erev_sukkot | Erev Sukkot | ערב סוכות | EREV_YOM_TOV | 2 | | sukkot | Sukkot | סוכות | YOM_TOV | 1 | +| sukkot_ii | Sukkot II | שני של סוכות | YOM_TOV | 1 | | hol_hamoed_sukkot | Hol hamoed Sukkot | חול המועד סוכות | HOL_HAMOED | 3 | | hoshana_raba | Hoshana Raba | הושענא רבה | EREV_YOM_TOV | 2 | +| shmini_atzeret | Shmini Atzeret | שמיני עצרת | YOM_TOV | 1 | | simchat_torah | Simchat Torah | שמחת תורה | YOM_TOV | 1 | | chanukah | Chanukah | חנוכה | MELACHA_PERMITTED_HOLIDAY | 4 | +| rabin_memorial_day | Yitzhak Rabin memorial day | יום הזכרון ליצחק רבין | MEMORIAL_DAY | 8 | | asara_btevet | Asara B'Tevet | צום עשרה בטבת | FAST_DAY | 5 | | tu_bshvat | Tu B'Shvat | ט"ו בשבט | MINOR_HOLIDAY | 7 | +| family_day | Family Day | יום המשפחה | ISRAEL_NATIONAL_HOLIDAY | 9 | +| memorial_day_unknown | Memorial day for fallen whose place of burial is unknown | יום הזיכרון לחללי מערכות ישראל שמקום קבורתם לא נודע | MEMORIAL_DAY | 8 | | taanit_esther | Ta'anit Esther | תענית אסתר | FAST_DAY | 5 | | purim | Purim | פורים | MELACHA_PERMITTED_HOLIDAY | 4 | | shushan_purim | Shushan Purim | שושן פורים | MELACHA_PERMITTED_HOLIDAY | 4 | | erev_pesach | Erev Pesach | ערב פסח | EREV_YOM_TOV | 2 | | pesach | Pesach | פסח | YOM_TOV | 1 | +| pesach_ii | Pesach II | שני של פסח | YOM_TOV | 1 | | hol_hamoed_pesach | Hol hamoed Pesach | חול המועד פסח | HOL_HAMOED | 3 | | pesach_vii | Pesach VII | שביעי פסח | YOM_TOV | 1 | -| yom_haatzmaut | Yom HaAtzma'ut | יום העצמאות | MODERN_HOLIDAY | 6 | -| lag_bomer | Lag B'Omer | ל"ג בעומר | MINOR_HOLIDAY | 7 | -| erev_shavuot | Erev Shavuot | ערב שבועות | EREV_YOM_TOV | 2 | -| shavuot | Shavuot | שבועות | YOM_TOV | 1 | -| tzom_tammuz | Tzom Tammuz | צום שבעה עשר בתמוז | FAST_DAY | 5 | -| tisha_bav | Tish'a B'Av | תשעה באב | FAST_DAY | 5 | -| tu_bav | Tu B'Av | ט"ו באב | MINOR_HOLIDAY | 7 | +| pesach_viii | Pesach VIII | אחרון של פסח | YOM_TOV | 1 | | yom_hashoah | Yom HaShoah | יום השואה | MEMORIAL_DAY | 8 | | yom_hazikaron | Yom HaZikaron | יום הזכרון | MEMORIAL_DAY | 8 | +| yom_haatzmaut | Yom HaAtzma'ut | יום העצמאות | MODERN_HOLIDAY | 6 | +| lag_bomer | Lag B'Omer | ל"ג בעומר | MINOR_HOLIDAY | 7 | | yom_yerushalayim | Yom Yerushalayim | יום ירושלים | MODERN_HOLIDAY | 6 | -| shmini_atzeret | Shmini Atzeret | שמיני עצרת | YOM_TOV | 1 | -| pesach_viii | Pesach VIII | אחרון של פסח | YOM_TOV | 1 | +| erev_shavuot | Erev Shavuot | ערב שבועות | EREV_YOM_TOV | 2 | +| shavuot | Shavuot | שבועות | YOM_TOV | 1 | | shavuot_ii | Shavuot II | שני של שבועות | YOM_TOV | 1 | -| sukkot_ii | Sukkot II | שני של סוכות | YOM_TOV | 1 | -| pesach_ii | Pesach II | שני של פסח | YOM_TOV | 1 | -| family_day | Family Day | יום המשפחה | ISRAEL_NATIONAL_HOLIDAY | 9 | -| memorial_day_unknown | Memorial day for fallen whose place of burial is unknown | יום הזיכרון לחללי מערכות ישראל שמקום קבורתם לא נודע | MEMORIAL_DAY | 8 | -| rabin_memorial_day | Yitzhak Rabin memorial day | יום הזכרון ליצחק רבין | MEMORIAL_DAY | 8 | +| tzom_tammuz | Tzom Tammuz | צום שבעה עשר בתמוז | FAST_DAY | 5 | | zeev_zhabotinsky_day | Zeev Zhabotinsky day | יום זאב ז'בוטינסקי | MEMORIAL_DAY | 8 | +| tisha_bav | Tish'a B'Av | תשעה באב | FAST_DAY | 5 | +| tu_bav | Tu B'Av | ט"ו באב | MINOR_HOLIDAY | 7 | diff --git a/source/_integrations/knocki.markdown b/source/_integrations/knocki.markdown index 37516e56db0..a10add6610f 100644 --- a/source/_integrations/knocki.markdown +++ b/source/_integrations/knocki.markdown @@ -16,12 +16,30 @@ ha_platforms: ha_integration_type: hub --- -The **Knocki** {% term integration %} can receive events for the triggers set up from your [Knocki devices](https://knocki.com/). +The **Knocki** {% term integration %} allows you to trigger your favorite automations simply by tapping custom patterns (such as triple taps) on ordinary surfaces. ## Prerequisites -To use the Knocki integration, you need a Knocki account. +- You must have a [Knocki device](http://knocki.com). -Once you set a trigger in the app, it will show up in Home Assistant to use. +- Completed the setup process in the **Knocki** mobile app, as described in steps 1-7 below. + +1. Open the Knocki Mobile App. It’s a free download on [iOS](https://apps.apple.com/us/app/knocki/id1238395440) and [Android](https://play.google.com/store/apps/details?id=com.knocki.mobileapp). +2. Using the app, log-in or create a new Knocki account. +3. From the app’s home screen, select a Knocki or [add a Knocki](https://support.knocki.com/hc/en-us/articles/12769368448659-How-Do-Add-a-Knocki-to-My-Account). +4. On the app’s device screen, select a gesture or [add a gesture](https://support.knocki.com/hc/en-us/articles/360013333634-Creating-a-Gesture). +5. Next, select the [add a task](https://support.knocki.com/hc/en-us/articles/12920956118291-How-do-I-Add-Tasks-to-a-Knocki) option. +6. Scroll down the task menu and select Home Assistant. +7. Follow the in-app instructions to add the Home Assistant task. {% include integrations/config_flow.md %} + +## Automation example + +1. Go to {% my automations title="**Settings** > **Automations & scenes**" %} and in the lower right corner, select **Create Automation**. +2. Select **Create new automation**. +3. Select **Add Trigger**, select **Entity** as the trigger type. + - Search for the name of the task (as you named it in the Knocki app). Select the entity with that name appended to it. + - Select **State** as the type of entity change. +4. Select **Add action** and choose whatever action(s) you’d like the automation to trigger. +5. Finally, test the action by tapping the associated gesture pattern. diff --git a/source/_integrations/lektrico.markdown b/source/_integrations/lektrico.markdown index 2779fd8b148..aeebca94d43 100644 --- a/source/_integrations/lektrico.markdown +++ b/source/_integrations/lektrico.markdown @@ -15,6 +15,7 @@ ha_platforms: - number - select - sensor + - switch ha_integration_type: device --- diff --git a/source/_integrations/local_file.markdown b/source/_integrations/local_file.markdown index ccd1adcbac8..15592416fb9 100644 --- a/source/_integrations/local_file.markdown +++ b/source/_integrations/local_file.markdown @@ -6,7 +6,6 @@ ha_category: ha_iot_class: Local Polling ha_release: 0.22 ha_domain: local_file -ha_config_flow: true ha_platforms: - camera ha_integration_type: integration diff --git a/source/_integrations/mqtt.markdown b/source/_integrations/mqtt.markdown index 16f50d22da9..9a5badcdf4f 100644 --- a/source/_integrations/mqtt.markdown +++ b/source/_integrations/mqtt.markdown @@ -454,13 +454,7 @@ To allow a smooth migration from single component discovery to device-based disc 2. Move the `object_id` inside the discovery payload, if that is available, or use a unique ID or the component. 3. Consider using the previous `node_id` as the new `object_id` of the device discovery topic. 4. Ensure the `unique_id` matches and the `device` context has the correct identifiers. -5. Send the following payload to all existing single component discovery topics: - -```json -{"migrate_discovery": true } -``` - -This will unload the discovered item, but its settings will be retained. +5. Send the following payload to all existing single component discovery topics: `{"migrate_discovery": true }`. This will unload the discovered item, but its settings will be retained. 6. Switch the discovery topic to the device-based discovery topic and include all the component configurations. 7. Clean up the single component discovery messages with an empty payload. @@ -1317,6 +1311,7 @@ The following software has built-in support for MQTT discovery: - [Nuki Hub](https://github.com/technyon/nuki_hub) - [Nuki Smart Lock 3.0 Pro](https://support.nuki.io/hc/articles/12947926779409-MQTT-support), [more info](https://developer.nuki.io/t/mqtt-api-specification-v1-3/17626) - [OpenMQTTGateway](https://github.com/1technophile/OpenMQTTGateway) +- [OTGateway](https://github.com/Laxilef/OTGateway) - [room-assistant](https://github.com/mKeRix/room-assistant) (starting with 1.1.0) - [SmartHome](https://github.com/roncoa/SmartHome) - [SpeedTest-CLI MQTT](https://github.com/adorobis/speedtest-CLI2mqtt) @@ -1330,7 +1325,6 @@ The following software has built-in support for MQTT discovery: - [Xiaomi DaFang Hacks](https://github.com/EliasKotlyar/Xiaomi-Dafang-Hacks) - [Zehnder Comfoair RS232 MQTT](https://github.com/adorobis/hacomfoairmqtt) - [Zigbee2MQTT](https://github.com/koenkk/zigbee2mqtt) -- [OTGateway](https://github.com/Laxilef/OTGateway) ## Manual configured MQTT items diff --git a/source/_integrations/music_assistant.markdown b/source/_integrations/music_assistant.markdown deleted file mode 100644 index 548ff4acd27..00000000000 --- a/source/_integrations/music_assistant.markdown +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Music Assistant -description: Instructions on how to integrate Music Assistant into Home Assistant. -ha_category: - - Media player -ha_release: 2024.11 -ha_iot_class: Local Push -ha_config_flow: true -ha_codeowners: - - '@music_assistant' -ha_domain: music_assistant -ha_platforms: - - media_player -ha_zeroconf: true -ha_integration_type: integration ---- - -The **Music Assistant**(MA) {% term integrations %} allows you to connect Home Assistant to a [Music Assistant Server](https://music-assistant.io/). Once configured, all [MA Players](https://music-assistant.io/player-support/) show up as Home Assistant [media player entities](/integrations/media_player/). Media players will allow you to control media playback and see the currently playing item. - -There is currently support for the following Home Assistant Platforms: - -- [Media player](#media-player) - -All of the Home Assistant [Media Player Control Actions](https://www.home-assistant.io/integrations/media_player/#media-control-actions) are supported. - -{% include integrations/config_flow.md %} - -### Manual configuration - -Under normal circumstances, Home Assistant automatically discovers your running Music Assistant Server. If something special about the HA or MA setup (for example, the MA server is running as a remote Docker container) or discovery is not working, you can manually specify the URL to your Music Assistant server. - -## Media player - -The Music Assistant media player creates media player entities for all players available in MA including those imported from Home Assistant. This is needed to provide the full functionality Music Assistant has to offer. These entities will display media information, playback progress, and playback controls. - -## Notes - -- Any Home Assistant players added to Music Assistant will appear duplicated as the MA version of the player is created. The original HA player can be hidden if desired. diff --git a/source/_integrations/pegel_online.markdown b/source/_integrations/pegel_online.markdown index dfcfa9e3065..f8eaec981d0 100644 --- a/source/_integrations/pegel_online.markdown +++ b/source/_integrations/pegel_online.markdown @@ -9,6 +9,7 @@ ha_config_flow: true ha_iot_class: Cloud Polling ha_domain: pegel_online ha_platforms: + - diagnostics - sensor ha_codeowners: - '@mib1185' diff --git a/source/_integrations/person.markdown b/source/_integrations/person.markdown index d773e7a2923..b00ea83ef27 100644 --- a/source/_integrations/person.markdown +++ b/source/_integrations/person.markdown @@ -44,7 +44,8 @@ If you have administrator rights, you can add other persons to Home Assistant an - They cannot have their own dashboard, for example. - But they can still be used for device tracking and show up on a map and be used in automations. 5. If they are able to log in, fill in the user information. - - Check if the user name is correct. A suggestion is made based on the person name. But they do not have to be identical. + - Check if the username is correct. A suggestion is made based on the person name. But they do not have to be identical. + - The username must be lowercase and contain no spaces. - The username is required to log in. - The person name is the name displayed in the UI. - Enter a password and store it in a safe location. diff --git a/source/_integrations/pinecil.markdown b/source/_integrations/pinecil.markdown index f8a7e293fdb..abea23d09a1 100644 --- a/source/_integrations/pinecil.markdown +++ b/source/_integrations/pinecil.markdown @@ -4,6 +4,7 @@ description: Connect and control your Pinecil devices using the IronOS integrati ha_category: - Number - Sensor + - Update ha_release: 2024.8 ha_domain: pinecil ha_integration_type: virtual @@ -15,6 +16,7 @@ ha_config_flow: true ha_platforms: - number - sensor + - update ha_iot_class: Local Polling --- diff --git a/source/_integrations/remote_rpi_gpio.markdown b/source/_integrations/remote_rpi_gpio.markdown index 8e25bf1bfb4..e10e735d52b 100644 --- a/source/_integrations/remote_rpi_gpio.markdown +++ b/source/_integrations/remote_rpi_gpio.markdown @@ -19,7 +19,7 @@ related: The `remote_rpi_gpio` {% term integration %} is the base for all related GPIO platforms in Home Assistant. For the platform configurations, please check their corresponding sections. -The remote Raspberry Pi, and the control computer where Home Assistant is running must be configured to be able to run `remote_rpi_gpio`, see [Configuring Remote GPIO](https://gpiozero.readthedocs.io/en/stable/remote_gpio.html) for more details. +The remote Raspberry Pi, and the control computer where Home Assistant is running must be configured to be able to run `remote_rpi_gpio`, see [Configuring Remote GPIO](https://gpiozero.readthedocs.io/en/stable/remote_gpio.html) for more details. Unfortunately, this setup is not currently possible with remote, Raspberry Pi 5 hosts, [due to a lack of support in pigiod](https://github.com/joan2937/pigpio/issues/586). Note that for virtual environments, you may need to set an environment variable when starting the environment to set the pin factory, for example: diff --git a/source/_integrations/roomba.markdown b/source/_integrations/roomba.markdown index f44c0919c25..6c5f4db1601 100644 --- a/source/_integrations/roomba.markdown +++ b/source/_integrations/roomba.markdown @@ -10,7 +10,6 @@ ha_codeowners: - '@pschmitt' - '@cyr-ius' - '@shenxn' - - '@Xitee1' - '@Orhideous' ha_domain: roomba ha_config_flow: true diff --git a/source/_integrations/schedule.markdown b/source/_integrations/schedule.markdown index 6f07dfe1c22..28751234c08 100644 --- a/source/_integrations/schedule.markdown +++ b/source/_integrations/schedule.markdown @@ -171,10 +171,10 @@ triggers: - schedule.light_schedule to: "on" actions: - - service: light.turn_on + - action: light.turn_on target: - entity_id: climate.thermostat - data_template: + entity_id: light.kitchen + data: brightness_pct: "{{ state_attr('schedule.light_schedule', 'brightness') }}" kelvin: "{{ state_attr('schedule.light_schedule, 'temperature') }}" ``` diff --git a/source/_integrations/schlage.markdown b/source/_integrations/schlage.markdown index b166555d62a..5a738c02fd0 100644 --- a/source/_integrations/schlage.markdown +++ b/source/_integrations/schlage.markdown @@ -14,6 +14,7 @@ ha_platforms: - binary_sensor - diagnostics - lock + - select - sensor - switch ha_integration_type: integration diff --git a/source/_integrations/spotify.markdown b/source/_integrations/spotify.markdown index f91cd79644b..af686b8ea09 100644 --- a/source/_integrations/spotify.markdown +++ b/source/_integrations/spotify.markdown @@ -13,6 +13,7 @@ ha_codeowners: ha_domain: spotify ha_zeroconf: true ha_platforms: + - diagnostics - media_player - sensor ha_integration_type: service diff --git a/source/_integrations/squeezebox.markdown b/source/_integrations/squeezebox.markdown index 44fc26ce4da..d9cc0b10305 100644 --- a/source/_integrations/squeezebox.markdown +++ b/source/_integrations/squeezebox.markdown @@ -8,6 +8,8 @@ ha_iot_class: Local Polling ha_domain: squeezebox ha_codeowners: - '@rajlaud' + - '@pssc' + - '@peteS-UK' ha_config_flow: true ha_dhcp: true ha_platforms: diff --git a/source/_integrations/statistics.markdown b/source/_integrations/statistics.markdown index d4cbca66c65..be5fbd05c84 100644 --- a/source/_integrations/statistics.markdown +++ b/source/_integrations/statistics.markdown @@ -20,19 +20,14 @@ ha_config_flow: true The `statistics` integration observes the state of a source sensor and provides aggregated statistical characteristics about its recent past. This integration can be useful in automation, for example, to trigger an action when the air humidity in the bathroom settles after a hot shower or when the number of brewed coffees over a day gets too high. -The `statistics` sensor can use either the numeric `sensor` or `binary_sensor` as it's input. The time period and/or number of recent state changes, which should be considered, must be given in configuration. Check the configuration section below for details. +The statistics sensor updates with every update of the source sensor, for which the numeric `sensor` and `binary_sensor` are supported. The time period and/or number of recent state changes, which should be considered, must be given in configuration. Check the configuration section below for details. Assuming the [`recorder`](/integrations/recorder/) integration is running, historical sensor data is read from the database on startup and is available immediately after a restart of the platform. If the [`recorder`](/integrations/recorder/) integration is *not* running, it can take some time for the sensor to start reporting data because some characteristics calculations require more than one source sensor value. {% tip %} -The `statistics` integration is not the same as the [Long-term Statistics](https://developers.home-assistant.io/docs/core/entity/sensor/#long-term-statistics). More details on the differences can be found in the [2021.8.0 release notes](/blog/2021/08/04/release-20218/#long-term-statistics). +The `statistics` integration is different to [Long-term Statistics](https://developers.home-assistant.io/docs/core/entity/sensor/#long-term-statistics). More details on the differences can be found in the [2021.8.0 release notes](/blog/2021/08/04/release-20218/#long-term-statistics). {% endtip %} -The `statistics` sensor has an internal buffer that stores the values it needs for the computation of the various functions (for example, `average_step`). The sensor is updated whenever new values are added to the buffer or when elements are removed. This is triggered either by a change of the source sensor (which may or may not change its actual value) or by values expiring (in cases where `max_age` was specified). This means that the buffer can hold a sequence of identical values in cases where values are not changing over time. - -When using a time-based buffer (by providing a `max_age`), it is recommended to ensure that the buffer contains at least a decent number of values spanning the full range of time. For sensors that don't change much, this can be achieved by using a template sensor with a time-based trigger as input. If the input values don't cover most of the time range, the computed output values could lead to unexpected results. -Example: To find out whether a switch was used in the last 5 minutes, `count_on` could be used. However, if there are no frequent readings a single "Off" (maybe only a second ago) in the buffer would produce 0 even though the sensor was "On" for most of the last five minutes. - {% include integrations/config_flow.md %} Further information about these configuration options can be found under the [YAML configuration](#yaml-configuration) @@ -66,8 +61,8 @@ The following are supported for `sensor` source sensors `state_characteristic`: | State Characteristic | Description | | -------------------- | ----------- | -| `average_linear` | The average value of stored measurements under consideration of the time distances between them. A linear interpolation is applied per measurement pair. Suited to observe a source sensor with frequent, non-periodic sensor updates and when continuous behavior is represented by the measurements (e.g. your electricity consumption). WARNING: This doesn't compute the exact average over the full interval defined by `max_age`. It will only consider the interval between the first and the last value in the buffer. | -| `average_step` | The average value of stored measurements under consideration of the time distances between them. LOCF (last observation carried forward weighting) is applied, meaning, that the old value is assumed between two measurements. This is a better fit to how Home Assistant deals with constant values (compared to the linear function) and it is also better fitting to sensors that are switching between stable phases (e.g. a heating level set to either 1, 2 or 3). WARNING: This doesn't compute the exact average over the full interval defined by `max_age`. It will only consider the interval between the first and the last value in the buffer. | +| `average_linear` | The average value of stored measurements under consideration of the time distances between them. A linear interpolation is applied per measurement pair. Suited to observe a source sensor with frequent, non-periodic sensor updates and when continuous behavior is represented by the measurements (e.g. your electricity consumption). WARNING: This type of average may show unexpected behavior in cases where values remain stable (e.g. an equally spaced sequence of t1:0 -> t2:0 -> t3:0 -> t4:0 -> t5:10 would produce an average of 5 instead of 1,25 because the non-changing zeros in the middle (t2 to t4) are being filtered out by Home Assistant and so the actually computed curve already starts rising at t1 instead of staying flat until t4). Accordingly, this function is only making sense in the context of noisy sensors that keep changing constantly. | +| `average_step` | The average value of stored measurements under consideration of the time distances between them. LOCF (last observation carried forward weighting) is applied, meaning, that the old value is assumed between two measurements. This is a better fit to how Home Assistant deals with constant values (compared to the linear function) and it is also better fitting to sensors that are switching between stable phases (e.g. a heating level set to either 1, 2 or 3). WARNING: Even when a time interval is specified by the max age parameter, the average is not necessarily matching the average over that whole interval (e.g. when values were removed due to the sampling size limit). | | `average_timeless` | The average value of stored measurements. This method assumes that all measurements are equally spaced and, therefore, time is ignored and a simple average of values is computed. Equal to `mean`. | | `change_sample` | The average change per sample. The difference between the newest and the oldest measurement is divided by the number of in-between measurements (n-1). | | `change_second` | The average change per second. The difference between the newest and the oldest measurement is divided by seconds between them. | diff --git a/source/_integrations/suez_water.markdown b/source/_integrations/suez_water.markdown index 3d45195c6e7..ffb57c2ca21 100644 --- a/source/_integrations/suez_water.markdown +++ b/source/_integrations/suez_water.markdown @@ -8,6 +8,7 @@ ha_iot_class: Cloud Polling ha_config_flow: true ha_codeowners: - '@ooii' + - '@jb101010-2' ha_domain: suez_water ha_platforms: - sensor diff --git a/source/_integrations/switcher_kis.markdown b/source/_integrations/switcher_kis.markdown index 1a1f3315dbf..dd1e21b2add 100644 --- a/source/_integrations/switcher_kis.markdown +++ b/source/_integrations/switcher_kis.markdown @@ -17,6 +17,7 @@ ha_platforms: - climate - cover - diagnostics + - light - sensor - switch ha_config_flow: true diff --git a/source/_integrations/tado.markdown b/source/_integrations/tado.markdown index c88daa5a530..bf39c7b5f5e 100644 --- a/source/_integrations/tado.markdown +++ b/source/_integrations/tado.markdown @@ -38,6 +38,10 @@ There is currently support for the following device types within Home Assistant: - Sensor - for some additional information of the zones. - Weather - for information about the current weather at the location of your Tado home. +## Unsupported device types + +New Tado X devices are not supported by this integration, they have to be used through the [Matter integration](/integrations/matter). + {% include integrations/config_flow.md %} The Tado thermostats are internet connected thermostats. There exists an unofficial API at [my.tado.com](https://my.tado.com/), which is used by their website and now by this component. diff --git a/source/_integrations/verisure.markdown b/source/_integrations/verisure.markdown index ee8ce9abe15..10ace9d2968 100644 --- a/source/_integrations/verisure.markdown +++ b/source/_integrations/verisure.markdown @@ -96,6 +96,7 @@ Some users have reported that this integration currently doesn't work in the fol - France - Ireland - Italy +- Spain - Sweden ## Troubleshooting diff --git a/source/_integrations/vodafone_station.markdown b/source/_integrations/vodafone_station.markdown index 09c4df3df52..3d01b3f5fe8 100644 --- a/source/_integrations/vodafone_station.markdown +++ b/source/_integrations/vodafone_station.markdown @@ -15,6 +15,7 @@ ha_iot_class: Local Polling ha_platforms: - button - device_tracker + - diagnostics - sensor ha_integration_type: hub ha_quality_scale: silver diff --git a/source/_integrations/wyoming.markdown b/source/_integrations/wyoming.markdown index 46f32a88321..7550079d424 100644 --- a/source/_integrations/wyoming.markdown +++ b/source/_integrations/wyoming.markdown @@ -12,6 +12,7 @@ ha_domain: wyoming ha_integration_type: service ha_platforms: - binary_sensor + - conversation - number - select - stt diff --git a/source/_posts/2024-11-06-release-202411.markdown b/source/_posts/2024-11-06-release-202411.markdown new file mode 100644 index 00000000000..ef845f0d5fc --- /dev/null +++ b/source/_posts/2024-11-06-release-202411.markdown @@ -0,0 +1,559 @@ +--- +layout: post +title: "2024.11: Slick dashboards and speedy cameras" +description: "Our new sections dashboards are now out of experimental and have become the default, low-latency camera streams using WebRTC, live streaming logs, Home Assistant Voice updates, and much more!" +date: 2024-11-06 00:00:00 +date_formatted: "November 6, 2024" +author: Franck Nijhof +author_twitter: frenck +comments: true +categories: + - Release-Notes + - Core +og_image: /images/blog/2024-11/social.jpg +--- + + + +Home Assistant 2024.11! 🎉 + +It is November already, and we are closing in on the end of the year, but we are +not slowing down! + +Before we dive into what this release has to offer, I want to take a moment to +thank everyone who has contributed to the Home Assistant project. You might +have heard this already, but going to share it again: + +_**We are number one!** 🥇_ + +GitHub published its annual [Octoverse report], highlighting the platform's +biggest trends and projects. It named Home Assistant 2024's largest open-source +project, with over 21,000 contributors over the year. **That includes you! ❤️** + +Continuing the festivities, this release is a big one! The new dashboarding +system we have been working on all year is now out of its experimental phase +and generally available! 🥳 Exciting, **everyone** can now create beautiful +dashboards with ease! + +To top it off, this release also supports faster and lower-latency camera +streams using WebRTC, supported by the [Open Home Foundation]. +This is a huge improvement! 🎉 + +Enjoy the release! + +../Frenck + +[Open Home Foundation]: https://www.openhomefoundation.org/ +[Octoverse report]: https://github.blog/news-insights/octoverse/octoverse-2024/ + + + +- [Sections dashboard no longer experimental!](#sections-dashboard-no-longer-experimental) + - [Convert your old dashboards to sections view layout](#convert-your-old-dashboards-to-sections-view-layout) + - [Precise mode for card sizes](#precise-mode-for-card-sizes) +- [Low latency cameras using WebRTC](#low-latency-cameras-using-webrtc) +- [Integrations](#integrations) + - [New integrations](#new-integrations) + - [Noteworthy improvements to existing integrations](#noteworthy-improvements-to-existing-integrations) + - [Now available to set up from the UI](#now-available-to-set-up-from-the-ui) + - [Farewell to the following](#farewell-to-the-following) +- [Other noteworthy changes](#other-noteworthy-changes) + - [Live logs](#live-logs) +- [Voice](#voice) + - [Home Assistant intents improvements](#home-assistant-intents-improvements) + - [Join the Wake Word Collective](#join-the-wake-word-collective) +- [Need help? Join the community!](#need-help-join-the-community) +- [Backward-incompatible changes](#backward-incompatible-changes) +- [All changes](#all-changes) + +## Sections dashboard no longer experimental! + +This release marks a big milestone in our pursuit of making dashboards easier to +customize and use for everyone, aka [Project Grace]! The sections view layout, +together with its drag-and-drop 🐲 capabilities and responsive design, +is now **out of its experimental phase**, and ready for primetime! This means +that, as of this release, you will get our awesome feature-rich and easy-to-use +dashboard editing experience when you create a new dashboard. 🎉 + +Over the past few months, we have worked hard to iterate and listen to your +feedback to ensure that our new dashboard is easy to customize for both +beginners and advanced users alike. We have added new capabilities such as +[resizing cards], [visibility options], [wider sections], [new badges], +and, most recently, adding [the new heading card]. + +To finish this journey, we are adding two more features to this release. + +[new badges]: /blog/2024/08/07/release-20248/ +[Project Grace]: /blog/2024/03/04/dashboard-chapter-1/ +[resizing cards]: /blog/2024/07/03/release-20247/ +[the new heading card]: /blog/2024/10/02/release-202410/ +[visibility options]: /blog/2024/06/05/release-20246/ +[wider sections]: /blog/2024/09/04/release-20249/ + +### Convert your old dashboards to sections view layout + +

    Screenshots showing the conversion of a view in masonry into sectionsScreenshots showing the conversion of a view in masonry into sections

    + +This release includes a way to convert individual dashboard views from the old +masonry view layout to the new sections view layout. When you change the view +type to sections, you get a button to convert the view. All the cards of the +old view are then copied and placed in an imported cards section in the new +view, and you can then easily drag-and-drop them into the right sections. + +Please note that cards placed within the imported cards section are only visible +to users once moved to a section above the fold. This ensures that +cards do not get accidentally shown in the wrong sections while you are still +working on the dashboard. + +

    Screenshot of the imported cards sectionScreenshot of the imported cards section

    + +If you are not ready for the new layout yet, no worries! Your old dashboard view +is kept when a new dashboard is created, giving an excellent way for masonry +view veterans to try out sections while keeping all the hard work they have put +into customizing their cards. + +Alternatively, you can move each card one-by-one from another view. All moved +cards will also be temporarily placed in the imported cards section. + +### Precise mode for card sizes + +

    Examples of cards using precise modeExamples of cards using precise mode

    + +If you love tinkering with your dashboards and fine-tuning card sizes with more +precision, you now have even more control over the size of cards. In the layout +options of a card you can now enable “Precise mode”, which will give you three +times more options for the card widths! + +Precise mode is applied on a card-by-card level. While a normal section is +divided into 4 columns, precise modes gives you 12 columns, which allows you +to align 2, 3, 4, or 6 buttons side-by-side. + +## Low latency cameras using WebRTC + +Lots of effort has gone into this new and amazing feature for this release: +**WebRTC**! 🎉 + +

    Logo of WebRTC

    + +Not sure [what WebRTC is]? No worries! Let us try to explain. If you are +watching a camera in Home Assistant, you might have noticed it is sometimes +a bit slow and delayed. WebRTC support is going to change that! + +Camera streams will now try to use WebRTC whenever possible. +[WebRTC is a standard] that makes a peer-to-peer connection for lower-latency +audio and video streaming. You are probably using this technology a lot already, +for example, when having an online video call. When you’re away from home, +it will try to find the fastest and most direct path between your Home Assistant +instance and the camera you are trying to view. + +[The Open Home Foundation] will host the negotiating network infrastructure +([STUN servers]) **for free for all Home Assistant users** and enable the +capability to use WebRTC for peer-to-peer connections whenever possible. If you are using Home Assistant OS or our containers, after you update this will automatically work out of the box. + +

    Logo of the Open Home Foundation

    + +Sometimes, a direct connection between the client (like your browser +or mobile app) and the camera is not possible; in those situations, the camera +stream needs to be relayed by an external server. [Home Assistant Cloud] now +provides this relay server ([TURN server]), and it's **included as one of the many benefits** +available to all subscribers! + +So, no matter where you are, you should always be able to watch your cameras +via this low-latency technology. If, for whatever reason, WebRTC is not +available, it will fall back to using the old method of streaming to ensure +you can always see your camera feeds. + +So, after reading all of this, what changed? Well, camera feeds will do everything they did before, but will be faster, more responsive, and less delayed! 🎉 + +[Home Assistant Cloud]: /cloud/ +[STUN servers]: https://en.wikipedia.org/wiki/STUN +[TURN server]: https://en.wikipedia.org/wiki/Traversal_Using_Relays_around_NAT +[The Open Home Foundation]: https://www.openhomefoundation.org/ +[WebRTC is a standard]: https://webrtc.org/ +[what WebRTC is]: https://en.wikipedia.org/wiki/WebRTC + +## Integrations + +Thanks to our community for keeping pace with the new {% term integrations %} +and improvements to existing ones! You’re all awesome 🥰 + +### New integrations + +We welcome the following new integrations in this release: + +- **[LG ThinQ]**, added by [@LG-ThinQ-Integration] + Integrate your LG ThinQ devices, such as air conditioners, refrigerators, + and washing machines. LG built and provided this integration! It's super nice + to see a manufacturer providing an integration for Home Assistant. +- **[Husqvarna Automower BLE]**, added by [@alistair23] + Integrate your Husqvarna lawnmower using Bluetooth. +- **[Palazzetti]**, added by [@dotvav] + Integrate your [Palazzetti pellet stove]; control the stove, fan speeds and get the current temperature. + +[@alistair23]: https://github.com/alistair23 +[@dotvav]: https://github.com/dotvav +[@LG-ThinQ-Integration]: https://github.com/LG-ThinQ-Integration +[Husqvarna Automower BLE]: /integrations/husqvarna_automower_ble +[LG ThinQ]: /integrations/lg_thinq +[Palazzetti pellet stove]: https://palazzettigroup.com/ +[Palazzetti]: /integrations/palazzetti + +### Noteworthy improvements to existing integrations + +It is not just new {% term integrations %} that have been added; existing +integrations are also being constantly improved. Here are some of the noteworthy +changes to existing integrations: + +- [@joostlek] has extended the [Spotify integration] with a whole bunch of new + sensors for the current song playing. You can now, for example, automate + putting your house into party mode 🎉 when the song playing is danceable + enough 😎 Awesome job! +- The [LinkPlay integration] now has multiroom support! Group and ungroup your + devices to play music in sync or individually straight from Home Assistant. + Thanks [@silamon]! +- Staying in the audio department, [@mj23000] added shuffle and repeat controls + to the [Bang & Olufsen integration]. Nice! +- The [ViCare integration] now supports room sensors and hot water storage + sensors. Thanks for that [@CFenner]! +- [@starkillerOG] added sensors to track the total number of installations and + integrations to the [Analytics Insights integration]. Nice! +- The [Habitica integration] now supports sensors for gems, mystic hourglasses, + and calendars for to-dos and daily tasks. Thanks [@tr4nt0r]! +- [@YogevBokobza] added support for the [Switcher Runner S12] to the + [Switcher integration]. Thanks for that! +- The [Husqvarna Automower integration] keeps receiving love from [@Thomas55555]. + This release adds work area and progress sensors. Nice! +- [@bdraco] added support for the [SwitchBot Meter Pro] to the + [SwitchBot integration]. Thanks! +- The [SwitchBot Cloud integration] now supports locks! Thanks [@miterion]! +- A little more technical, but [@jbouwh] added support for + [MQTT device-based auto discovery]. This allows MQTT devices to be set up + and discovered once instead of separately for each entity; which is much + more efficient. Nice improvement! + +[@bdraco]: https://github.com/bdraco +[@CFenner]: https://github.com/CFenner +[@jbouwh]: https://github.com/jbouwh +[@joostlek]: https://github.com/joostlek +[@miterion]: https://github.com/miterion +[@mj23000]: https://github.com/mj23000 +[@silamon]: https://github.com/silamon +[@starkillerOG]: https://github.com/starkillerOG +[@Thomas55555]: https://github.com/Thomas55555 +[@tr4nt0r]: https://github.com/tr4nt0r +[@YogevBokobza]: https://github.com/YoavGivati +[Analytics Insights integration]: /integrations/analytics_insights +[Bang & Olufsen integration]: /integrations/bang_olufsen +[Habitica integration]: /integrations/habitica +[Husqvarna Automower integration]: /integrations/husqvarna_automower +[LinkPlay integration]: /integrations/linkplay +[MQTT device-based auto discovery]: /integrations/mqtt/#device-discovery-payload +[Spotify integration]: /integrations/spotify +[SwitchBot Cloud integration]: /integrations/switchbot_cloud +[SwitchBot integration]: /integrations/switchbot +[SwitchBot Meter Pro]: https://www.switch-bot.com/products/switchbot-meter-pro +[Switcher integration]: /integrations/switcher_kis +[Switcher Runner S12]: https://switcher.co.il/%D7%9E%D7%95%D7%A6%D7%A8/runner-lights-s12/ +[ViCare integration]: /integrations/vicare + +### Now available to set up from the UI + +While most {% term integrations %} can be set up directly from the Home Assistant +user interface, some were only available using YAML configuration. We keep moving +more integrations to the UI, making them more accessible for everyone +to set up and use. + +The following integrations are now available via the Home Assistant UI: + +- **[Local file]**, done by [@gjohansson-ST] +- **[Onkyo]**, done by [@Nebula83] +- **[Smarty]**, done by [@joostlek] + +[@gjohansson-ST]: https://github.com/gjohansson-ST +[@joostlek]: https://github.com/joostlek +[@Nebula83]: https://github.com/Nebula83 +[Local file]: /integrations/local_file +[Onkyo]: /integrations/onkyo +[Smarty]: /integrations/smarty + +### Farewell to the following + +The following {% term integrations %} are also no longer available as +of this release: + +- **Bloomsky**. Their service shut down. +- **Google Domains**. The domain registration service by Google has been + shut down. +- **Spider**. The service is no longer available. + +## Other noteworthy changes + +There are many more improvements in this release; here are some of the other +noteworthy changes: + +- [Image entities] now have a snapshot action, allowing you to save the current + image in the entity to a file. Nice [@NickM-27]! +- [@Petro31] added [(limited) template] support to the "at" field of [time triggers]. + This allows you to template the time of that trigger in, for example, + a blueprint automation. +- [Nautical miles] (`nmi`) is now a valid distance unit. This means you can now + use this as a unit for your distance sensors. Thanks [@mib1185]! +- [@tetele] added [blueprints for template entities]! This allows for easier + re-use and sharing of common blueprints for sets of templated entities. + This is an advanced feature and is only available using manual YAML + configuration. +- [@MindFreeze] and [@matthiasdebaat] have improved the network settings user + interface. It is now easier to manage and configure your network settings, + including nicer handling of IP addresses, improved Wi-Fi configuration, + and better visibility on the URLs Home Assistant is using for your instance. +- We now indicate if a custom integration is overriding a built-in integration. + This makes it easier to spot if a custom integration is taking over a + built-in integration while you are wondering why you didn't get the latest + features Home Assistant releases bring. Thanks, [@MindFreeze]! + +[(limited) template]: /docs/configuration/templating/#limited-templates +[@matthiasdebaat]: https://github.com/matthiasdebaat +[@mib1185]: https://github.com/mib1185 +[@MindFreeze]: https://github.com/MindFreeze +[@NickM-27]: https://github.com/NickM-27 +[@Petro31]: https://github.com/Petro31 +[@tetele]: https://github.com/tetele +[blueprints for template entities]: /integrations/template/#using-blueprints +[Image entities]: /integrations/image +[Nautical miles]: https://en.wikipedia.org/wiki/Nautical_mile +[time triggers]: /docs/automation/trigger/#time-trigger + +### Live logs + +Sometimes, if something does not work as expected, you might resort to a more technical +tool for finding out what is going on: The logs. + +Previously, if you looked at the logs of, for example, an add-on or the Home +Assistant Supervisor, you would only see the last 100 log lines. You would +have had to refresh the page to see new log entries. + +Well, no more! As of this release, the logs are now **streaming live**! 🎉 + +

    Screenshot of the imported cards sectionScreen recording demonstrating logs showing up as they happen.

    + +And not just that, you can scroll back in time to see previous log items. +That's a pretty cool improvement. 😎 + +## Voice + +Last year, 2023, was the [Year of the Voice] for Home Assistant. And while this +year isn't specifically dedicated to voice, everyone is still working hard +towards the goal of letting users control their homes with their voice in +their own language. + +As you might have heard through many community channels 🕵️‍♀️, we are working to +make this a reality for everyone. We are hard at work getting our Home Assistant +voice satellite hardware ready and available for selling and shipping! 🤗 + +Stay tuned for more information on that soon! + +[Year of the Voice]: /blog/2022/12/20/year-of-voice/ + +### Home Assistant intents improvements + +One of the things we are working on is the Home Assistant intents. This is a +way for a voice assistant to understand the intention behind your spoken +sentences. This is a very crucial part of a local voice assistant. + +In this release, we decided to align and combine Canadian French and French languages for the time being. Though we understand it is a unique dialect, this is about giving Canadian French users a lot more voice features. + +![Screenshot showing a few commands in Canadian French before and after this release](/images/blog/2024-11/canadian-french-on-assist.png) + +These intents are built and maintained by the community, and we are very +grateful for their work. For example, [@piitaya] and [@jlpouffier] have made a +great effort to lead the French language intents mentioned above. + +Nevertheless, we want to ensure everyone can use Home Assistant in their +own language, **so we need your help**! Help the community by contributing to +the intents for your language. You can find more information on how to do that +in our [developer documentation]. + +[@jlpouffier]: https://github.com/jlpouffier +[@piitaya]: https://github.com/piitaya +[developer documentation]: https://developers.home-assistant.io/docs/voice/intent-recognition/contributing + +### Join the Wake Word Collective + +Another essential part of voice is the Wake Word! And this is where **everyone**, +no matter your skill level, can help out with just a minute of your time! + +Wake words are the words you say to wake up your voice assistant. For example, +_"Hey Google"_ or _"Alexa"_. As we are building our own voice assistant with +our own wake words, we need to train our models to recognize these words, +regardless of your accent, language, gender, or age. + +So, get your whole home involved 🏠! Take a minute to help us out by recording your voice +saying the wake word. It is super easy, and you can do it right from your +browser or mobile, no need to install anything! + +[**Help us improve our wake words today! ❤️**](https://ohf-voice.github.io/wake-word-collective/) + +You can read more about the Wake Word Collective in our +[dedicated blog post](/blog/2024/10/24/wake-word-collective/). + +## Need help? Join the community! + +Home Assistant has a great community of users who are all more than willing +to help each other out. So, join us! + +Our very active [Discord chat server](/join-chat) is an excellent place to be +at, and don't forget to join our amazing [forums](https://community.home-assistant.io/). + +Found a bug or issue? Please report it in our [issue tracker](https://github.com/home-assistant/core/issues), +to get it fixed! Or, check [our help page](/help) for guidance for more +places you can go. + +Are you more into email? [Sign-up for our Building the Open Home Newsletter](/newsletter) +to get the latest news about features, things happening in our community and +other news about building an Open Home; straight into your inbox. + +## Backward-incompatible changes + +We do our best to avoid making changes to existing functionality that might +unexpectedly impact your Home Assistant installation. Unfortunately, sometimes, +it is inevitable. + +We always make sure to document these changes to make the transition as easy as +possible for you. This release has the following backward-incompatible changes: + +{% details "A. O. Smith" %} + +A. O. Smith now provides the hot water status as a percentage rather than low, +medium, or high. The hot water status entity has been updated accordingly. + +([@bdr99] - [#127678]) ([documentation](/integrations/aosmith)) + +[@bdr99]: https://github.com/bdr99 +[#127678]: https://github.com/home-assistant/core/pull/127678 + +{% enddetails %} + +{% details "Google Calendar" %} + +Google Calendar events that are declined are now omitted from the calendar. + +([@joelhawksley] - [#128900]) ([documentation](/integrations/google)) + +[@joelhawksley]: https://github.com/joelhawksley +[#128900]: https://github.com/home-assistant/core/pull/128900 + +{% enddetails %} + +{% details "HomeKit" %} + +Historically, many integrations implemented doorbells as binary sensors with a +device class of occupancy. This design was replaced with the new event entities, +which use a purpose-built device class of doorbell. + +HomeKit will no longer automatically link binary sensors with device class +occupancy as linked doorbell sensors. However, linked doorbell sensors can +still be configured manually via YAML. + +([@bdraco] - [#127668]) ([documentation](/integrations/homekit)) + +[@bdraco]: https://github.com/bdraco +[#127668]: https://github.com/home-assistant/core/pull/127668 + +{% enddetails %} + +{% details "Litter-Robot" %} + +Previously, Litter-Robot could have an off state. This has now changed to +`docked`, as `off` isn’t a valid state for vacuum entities. + +([@gjohansson-ST] - [#128297]) ([documentation](/integrations/litterrobot)) + +[@gjohansson-ST]: https://github.com/gjohansson-ST +[#128297]: https://github.com/home-assistant/core/pull/128297 + +{% enddetails %} + +{% details "Netatmo" %} + +The preset modes of the thermostat have been renamed in order to support +translations `Schedule`, `Frost guard`, and `Manual` have been renamed to +`schedule`, `frost_guard`, and `manual`. + +([@piitaya] - [#128890]) ([documentation](/integrations/netatmo)) + +[@piitaya]: https://github.com/piitaya +[#128890]: https://github.com/home-assistant/core/pull/128890 + +{% enddetails %} + +{% details "Tibber" %} + +The `tibber.get_prices` action has been adjusted to return datetimes as strings +instead of raw datetime objects. + +Automations or template sensors using this may need to be modified with an +`as_datetime` filter. See our [templating documentation](/docs/configuration/templating/#time) +for more information on using these filters. + +([@functionpointer] - [#123901]) ([documentation](/integrations/tibber)) + +[@functionpointer]: https://github.com/functionpointer +[#123901]: https://github.com/home-assistant/core/pull/123901 + +{% enddetails %} + +{% details "Updates" %} + +State attributes of update entities have been changed: + +- The `in_progress` state attribute is now always a `bool`, never an integer. +- A new state attribute `update_percentage` has been added. The + `update_percentage` is a number between 0-100 if an update is in progress + and the entity supports reporting progress, or `None` if an update is not + in progress or an update is in progress but the entity does not support + reporting progress. + +Scripts, automations, custom frontend components, etc., which consume the +`in_progress` state attribute of update entities, need to be updated accordingly. + +([@emontnemery] - [#128877]) ([documentation](/integrations/update)) + +[@emontnemery]: https://github.com/emontnemery +[#128877]: https://github.com/home-assistant/core/pull/128877 + +{% enddetails %} + +{% details "WMS WebControl pro" %} + +The open/closed state of awnings will be inverted so that the UI visualization +and positioning match reality. This means open (100%) now refers to the awning +being completely retracted, and closed (0%) now means the awning is fully +expanded. This is not in line with industry terminology, but Home Assistant +does not yet natively support awnings of type patio. + +([@mback2k] - [#128079]) ([documentation](/integrations/wmspro)) + +[@mback2k]: https://github.com/mback2k +[#128079]: https://github.com/home-assistant/core/pull/128079 + +{% enddetails %} + +If you are a custom integration developer and want to learn about changes and +new features available for your integration: Be sure to follow our +[developer blog][devblog]. The following are the most notable for this release: + +- [Changes to the UnitOfConductivity enum](https://developers.home-assistant.io/blog/2024/10/08/unit-of-conductivity-changes) +- [Changes to the update entity](https://developers.home-assistant.io/blog/2024/10/31/update-entity-changes) +- [Deprecating state constants for cover](https://developers.home-assistant.io/blog/2024/10/08/state-constants-cover-deprecation) +- [Extend deprecation period of hass.helpers](https://developers.home-assistant.io/blog/2024/10/09/extend-deprecation-hass-helpers) +- [New alarm control panel state property and state enum](https://developers.home-assistant.io/blog/2024/10/22/new-alarm-state-property) +- [New helpers and best practises for reauth and reconfigure flows](https://developers.home-assistant.io/blog/2024/10/21/reauth-reconfigure-helpers) +- [Reauth and reconfigure flows need to be linked to a config entry](https://developers.home-assistant.io/blog/2024/11/04/reauth-reconfigure-entry-id/) +- [The core config class has been moved](https://developers.home-assistant.io/blog/2024/10/31/core-config-moved) + +[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.11](/changelogs/core-2024.11) diff --git a/source/changelogs/core-2024.11.markdown b/source/changelogs/core-2024.11.markdown new file mode 100644 index 00000000000..aa3ef6747c3 --- /dev/null +++ b/source/changelogs/core-2024.11.markdown @@ -0,0 +1,2826 @@ +--- +title: Full changelog for Home Assistant Core 2024.11 +description: Detailed changelog for the Home Assistant Core 2024.11 release +replace_regex: \s\(\[?[a-z0-9\-\s_]+\]?\)$ +--- + +These are all the changes included in the Home Assistant Core 2024.11 release. + +For a summary in a more readable format: +[Release notes blog for this release](/blog/2024/11/06/release-202411/). + +- Bump version to 2024.11.0dev0 ([@frenck] - [#126776]) +- Use shorthand attributes in geofency device tracker ([@epenet] - [#126741]) +- Remove unnecessary patch from evohome tests ([@zxdavb] - [#126760]) +- Switch coordinator setup to `_async_setup` ([@zweckj] - [#126810]) +- Bump actions/checkout from 4.1.7 to 4.2.0 (@dependabot - [#126801]) +- Small typing improvements ([@cdce8p] - [#126818]) +- Use pytest.mark.usefixtures for start_ha in template tests ([@epenet] - [#126805]) +- Update pydantic to 1.10.18 ([@cdce8p] - [#126821]) +- Improve type hints in template ([@epenet] - [#126802]) +- Bump ruff to 0.6.8 ([@autinerd] - [#126842]) +- Improve type hints in template config_flow tests ([@epenet] - [#126803]) +- Use Parametrizing in Matter tests ([@joostlek] - [#126759]) +- Bump aiowithings to 3.1.0 ([@joostlek] - [#126854]) +- Fix small typo in mobile_app docstring ([@joostlek] - [#126863]) +- Update pytest warnings filter ([@cdce8p] - [#126858]) +- Refactor evohome test fixtures for improved testing ([@zxdavb] - [#126781]) +- Add `nmi` (nautical miles) as valid distance unit ([@mib1185] - [#124723]) +- Add FlowManager.async_has_matching_flow ([@emontnemery] - [#126804]) +- Use ConfigFlow.has_matching_flow to deduplicate fritzbox flows ([@emontnemery] - [#126891]) +- Use ConfigFlow.has_matching_flow to deduplicate gogogate2 flows ([@emontnemery] - [#126892]) +- Use ConfigFlow.has_matching_flow to deduplicate fritz flows ([@emontnemery] - [#126890]) +- Use ConfigFlow.has_matching_flow to deduplicate elkm1 flows ([@emontnemery] - [#126887]) +- Introduce base entity in Switcher ([@joostlek] - [#126822]) +- Use ConfigFlow.has_matching_flow to deduplicate steamist flows ([@emontnemery] - [#126897]) +- Use shorthand attributes in tile device tracker ([@epenet] - [#126735]) +- Use two words for Nautical miles unit ([@mib1185] - [#126905]) +- Use ConfigFlow.has_matching_flow to deduplicate hunterdouglas flows ([@emontnemery] - [#126895]) +- Update grpcio constraints to 1.62.3 ([@cdce8p] - [#126908]) +- Use ConfigFlow.has_matching_flow to deduplicate homekit_controller flows ([@emontnemery] - [#126894]) +- Cleanup sensor tests ([@epenet] - [#126881]) +- Set the default time zone for evohome tests ([@zxdavb] - [#126679]) +- Add RSS description to Feedreader event ([@rubenbe] - [#126681]) +- Use ConfigFlow.has_matching_flow to deduplicate plugwise flows ([@emontnemery] - [#126896]) +- Remove unused properties in tado device tracker ([@epenet] - [#126737]) +- Use shorthand attributes in gpslogger device tracker ([@epenet] - [#126739]) +- Use shorthand attributes in traccar device tracker ([@epenet] - [#126733]) +- Use shorthand attributes in vodafone_station device tracker ([@epenet] - [#126747]) +- Refactor Trace to avoid self import ([@epenet] - [#125822]) +- Add unique id migration to Geniushub ([@joostlek] - [#122330]) +- Fix Evohome snapshots ([@joostlek] - [#126915]) +- Add EntityIDPostMigration data migrator class ([@emontnemery] - [#125307]) +- Code quality improvements for Teslemetry ([@Bre77] - [#123444]) +- Change Turkey to Türkiye per 2022 UN resolution on official name ([@tr4nt0r] - [#126779]) +- Fix ruff import validation ([@jbouwh] - [#126917]) +- Modify pytest workflow to support testing multiple Python versions [ci] ([@cdce8p] - [#126936]) +- Extend dhcp discovery flow for ring integration ([@sdb9696] - [#126661]) +- Use ConfigFlow.has_matching_flow to deduplicate yalexs_ble flows ([@emontnemery] - [#126899]) +- Adjust BaseEditConfigView.__init__ ([@emontnemery] - [#126729]) +- Use `_async_setup` in tedee coordinator ([@zweckj] - [#126812]) +- Add support for stop command in LinkPlay ([@silamon] - [#126941]) +- Use ConfigFlow.has_matching_flow to deduplicate flux_led flows ([@emontnemery] - [#126888]) +- Translate exception from fjäråskupan ([@elupus] - [#126673]) +- Set DSMR Reader quality scale to Gold ([@erwindouna] - [#121466]) +- Bump protobuf to 5.28.2 ([@bdraco] - [#124936]) +- Update debugpy to 1.8.6 ([@frenck] - [#126945]) +- Update grpcio constraints to 1.66.1 ([@cdce8p] - [#126947]) +- Update ollama to 0.3.3 ([@frenck] - [#126953]) +- Allow passing filename to licenses script [ci] ([@cdce8p] - [#126951]) +- Add preview to mold_indicator ([@gjohansson-ST] - [#125530]) +- Add proper exception handling to lamarzocco ([@zweckj] - [#125913]) +- Add preview to statistics ([@gjohansson-ST] - [#122590]) +- Update vsure to 2.6.7 ([@frenck] - [#126950]) +- Update pyvera to 0.3.15 ([@frenck] - [#126956]) +- Update apprise to 1.9.0 ([@frenck] - [#126952]) +- Add `translation_domain` to lamarzocco exceptions ([@zweckj] - [#126959]) +- Add translation for tedee exceptions ([@zweckj] - [#126963]) +- Use ConfigFlow.has_matching_flow to deduplicate webostv flows ([@emontnemery] - [#126898]) +- Updated languages.py to add Irish lang code (manually) ([@aindriu80] - [#126689]) +- Include requirements_test_pre_commit.txt in pre-commit hassfest ([@autinerd] - [#125388]) +- Add reconfigure flow for Jewish Calendar ([@tsvi] - [#126773]) +- Bump smhi-pkg to 1.0.18 ([@gjohansson-ST] - [#126999]) +- Bump pypck to 0.7.24 ([@alengwenus] - [#126995]) +- Add Local Calendar ics events import on calendar creation ([@raulcodes] - [#117955]) +- Add Light support for Switcher Runner S11 ([@YogevBokobza] - [#126402]) +- Update grpcio constraints to 1.66.2 ([@cdce8p] - [#127026]) +- Switch oamda to use a strongly typed config entry ([@MarkGodwin] - [#127044]) +- Add unique id to mold_indicator setup from yaml ([@gjohansson-ST] - [#126992]) +- Use HassKey in application_credentials ([@epenet] - [#127069]) +- Bump docker/build-push-action from 6.7.0 to 6.8.0 (@dependabot - [#127070]) +- Use config entry runtime_data in arve ([@epenet] - [#127078]) +- Use config entry runtime_data in android ip webcam ([@epenet] - [#127080]) +- Use config entry runtime_data in aprilaire ([@epenet] - [#127079]) +- Use config entry runtime_data in aseko_pool_live ([@epenet] - [#127077]) +- Use config entry runtime_data in awair ([@epenet] - [#127073]) +- Move aussie broadband coordinator to separate class ([@epenet] - [#127081]) +- Use config entry runtime_data in aurora_abb_powerone ([@epenet] - [#127075]) +- Move atag coordinator to separate class ([@epenet] - [#127071]) +- Use config entry runtime_data in azure event hub ([@epenet] - [#127082]) +- Use config entry runtime_data in aussie broadband ([@epenet] - [#127083]) +- Use config entry runtime_data in atag ([@epenet] - [#127084]) +- Use HassKey in analytics ([@epenet] - [#127089]) +- Use HassKey in azure_event_hub ([@epenet] - [#127086]) +- Add is_opening and is_closing properties to VeluxCover ([@j-a-n] - [#127038]) +- Do not store apache kafka in hass.data ([@epenet] - [#127090]) +- Add power sensor detection in fibaro integration ([@rappenze] - [#126964]) +- Fix stale docstring in loader.USBMatcher ([@emontnemery] - [#127094]) +- Start mqtt integration discovery config flow only once if config has not changed ([@jbouwh] - [#126966]) +- Add select volume to yale_smart_alarm ([@gjohansson-ST] - [#127005]) +- Add test for start_reauth_flow test helper ([@epenet] - [#127093]) +- Use start_reauth_flow helper in switcher_kis tests ([@epenet] - [#127098]) +- Add support for room sensors in ViCare integration ([@CFenner] - [#125243]) +- Move monzo test ([@epenet] - [#127101]) +- Use HassKey in azure_data_explorer ([@epenet] - [#127087]) +- Adjust type hints in zha config flow ([@epenet] - [#127105]) +- Adjust type hints in enphase_envoy config_flow ([@epenet] - [#127106]) +- Adjust type hints in wilight config_flow ([@epenet] - [#127107]) +- Adjust type hints in insteon config_flow ([@epenet] - [#127108]) +- Add default description placeholder in workday config_flow ([@epenet] - [#127110]) +- Raise HomeAssistantError in entity action calls in Nice G.O. ([@IceBotYT] - [#126439]) +- Use a generic string as default description placeholder in workday config_flow ([@epenet] - [#127112]) +- Use scheduled current preset (if set), when setting HVAC mode in AVM Fritz!Smarthome ([@naruxde] - [#126044]) +- Add hotwater storage sensors to ViCare integration ([@CFenner] - [#126570]) +- Use start_reauth_flow helper in ezviz and netatmo tests ([@epenet] - [#127100]) +- Add Open Home Foundation logo to README ([@mrdarrengriffin] - [#127111]) +- Add devices to Withings ([@joostlek] - [#126853]) +- Fix naming and docstring in yale_smart_alarm select ([@gjohansson-ST] - [#127141]) +- Use async_update_reload_and_abort in Trafikverket Camera ([@gjohansson-ST] - [#127137]) +- Adjust type hints in zwave_js config flow ([@epenet] - [#127104]) +- Bump docker/build-push-action from 6.8.0 to 6.9.0 (@dependabot - [#127156]) +- Bump github/codeql-action from 3.26.9 to 3.26.10 (@dependabot - [#127157]) +- Fix incorrect type hint in zwave_js config flow ([@epenet] - [#127158]) +- Store arcam_fmj flow data in flow handler attributes ([@emontnemery] - [#127166]) +- Store esphome flow data in flow handler attributes ([@emontnemery] - [#127170]) +- Store ezviz flow data in flow handler attributes ([@emontnemery] - [#127171]) +- Store fully_kiosk flow data in flow handler attributes ([@emontnemery] - [#127172]) +- Store devolo_home_network flow data in flow handler attributes ([@emontnemery] - [#127169]) +- Store toon flow data in flow handler attributes ([@emontnemery] - [#127180]) +- Store keenetic_ndms2 flow data in flow handler attributes ([@emontnemery] - [#127174]) +- Store smappee flow data in flow handler attributes ([@emontnemery] - [#127178]) +- Store huawei_lte flow data in flow handler attributes ([@emontnemery] - [#127173]) +- Use ConfigFlow.has_matching_flow to deduplicate lifx flows ([@emontnemery] - [#127163]) +- Adjust type hints in alarmdecoder config_flow ([@epenet] - [#127161]) +- Adjust type hints in aosmith config_flow ([@epenet] - [#127160]) +- Change ViCare dependency back to original one ([@CFenner] - [#127168]) +- Add a working location google calendar entity ([@allenporter] - [#127016]) +- Add test helper for starting reconfiguration flow ([@epenet] - [#127154]) +- Remove unused custom flow context key 'name' from wyoming ([@emontnemery] - [#127182]) +- Adjust type hints in ezviz config_flow ([@epenet] - [#127186]) +- Avoid mutating title_placeholders in devolo_home_network ([@emontnemery] - [#127188]) +- Ensure dlna_dmr config flow title_placeholders items are [str, str] ([@emontnemery] - [#127189]) +- Adjust type hints in devialet config_flow ([@epenet] - [#127185]) +- Avoid mutating title_placeholders in synology_dsm ([@emontnemery] - [#127210]) +- Add missing None-check in roomba config flow ([@emontnemery] - [#127212]) +- Remove unused title_placeholders from plugwise ([@emontnemery] - [#127211]) +- Avoid mutating title_placeholders in reolink ([@emontnemery] - [#127209]) +- Ensure tesla_wall_connector config flow title_placeholders items are [str, str] ([@emontnemery] - [#127208]) +- Ensure soundtouch config flow title_placeholders items are [str, str] ([@emontnemery] - [#127207]) +- Ensure radiotherm config flow title_placeholders items are [str, str] ([@emontnemery] - [#127206]) +- Ensure powerwall config flow title_placeholders items are [str, str] ([@emontnemery] - [#127205]) +- Ensure ovo_energy config flow title_placeholders items are [str, str] ([@emontnemery] - [#127204]) +- Ensure ezviz config flow title_placeholders items are [str, str] ([@emontnemery] - [#127194]) +- Ensure octoprint config flow title_placeholders items are [str, str] ([@emontnemery] - [#127202]) +- Bump uv to 0.4.17 ([@edenhaus] - [#127223]) +- Simplify reconfigure step in axis config flow ([@epenet] - [#127225]) +- Remove custom flow deduplication logic from guardian ([@emontnemery] - [#127159]) +- Ensure overkiz config flow title_placeholders items are [str, str] ([@emontnemery] - [#127203]) +- Use ConfigFlow.has_matching_flow to deduplicate samsungtv flows ([@emontnemery] - [#127235]) +- Improve code of normalized name registry ([@arturpragacz] - [#125282]) +- Skip unnecessary checks for entities with unique_id ([@arturpragacz] - [#125051]) +- Improve / clean up Plugwise config_flow code ([@bouwew] - [#127238]) +- Store openhome flow data in flow handler attributes ([@emontnemery] - [#127176]) +- Ensure enphase_envoy config flow title_placeholders items are [str, str] ([@emontnemery] - [#127193]) +- Ensure flux_led config flow title_placeholders items are [str, str] ([@emontnemery] - [#127196]) +- Improve type hints in config_flow reconfigure step ([@epenet] - [#127224]) +- Use ConfigFlow.has_matching_flow to deduplicate yeelight flows ([@emontnemery] - [#127165]) +- Ensure frontier_silicon config flow title_placeholders items are [str, str] ([@emontnemery] - [#127197]) +- Bump codecov/codecov-action from 4.5.0 to 4.6.0 (@dependabot - [#127259]) +- Use start_reconfigure_flow in config flow tests ([@epenet] - [#127191]) +- Ensure dlna_dms config flow title_placeholders items are [str, str] ([@emontnemery] - [#127192]) +- Bump python-homeassistant-analytics to 0.8.0 ([@starkillerOG] - [#127271]) +- Add config_flow helper to get reauth/reconfigure config entry ([@epenet] - [#127115]) +- Update mypy-dev to 1.12.0a5 ([@cdce8p] - [#127181]) +- Ensure motionblinds_ble config flow title_placeholders items are [str, str] ([@emontnemery] - [#127201]) +- Ensure lookin config flow title_placeholders items are [str, str] ([@emontnemery] - [#127200]) +- Use _get_reauth/reconfigure_entry in fritz ([@epenet] - [#127283]) +- Remove the Google Domains integration ([@emontnemery] - [#127278]) +- Fix telegram_bot tests for Python 3.13 ([@cdce8p] - [#127293]) +- Ensure directv config flow title_placeholders items are [str, str] ([@emontnemery] - [#127288]) +- Ensure songpal config flow title_placeholders items are [str, str] ([@emontnemery] - [#127290]) +- Ensure keenetic_ndms2 config flow title_placeholders items are [str, str] ([@emontnemery] - [#127289]) +- Ensure braviatv config flow title_placeholders items are [str, str] ([@emontnemery] - [#127287]) +- Use _get_reauth/reconfigure_entry in enphase_envoy ([@epenet] - [#127281]) +- Use _get_reconfigure_entry in google_travel_time ([@epenet] - [#127285]) +- Use _get_reauth/reconfigure_entry in fritzbox ([@epenet] - [#127284]) +- Use _get_reconfigure_entry in feedreader ([@epenet] - [#127282]) +- Add electrolyzer data to Aseko Pool Live ([@hopkins-tk] - [#127249]) +- Adjust type hints in konnected config_flow ([@epenet] - [#127276]) +- Adjust type hints in goalzero config_flow ([@epenet] - [#127270]) +- Use _get_reconfigure_entry in homeworks ([@epenet] - [#127296]) +- Use _get_reconfigure_entry in jewish_calendar ([@epenet] - [#127297]) +- Use _get_reconfigure_entry in holiday ([@epenet] - [#127295]) +- Use _get_reconfigure_entry in here_travel_time ([@epenet] - [#127294]) +- Use _get_reauth/reconfigure_entry in lamarzocco ([@epenet] - [#127298]) +- Use _get_reauth/reconfigure_entry in mealie ([@epenet] - [#127301]) +- Use _get_reconfigure_entry in madvr ([@epenet] - [#127300]) +- Use _get_reconfigure_entry in lcn ([@epenet] - [#127299]) +- Use _get_reconfigure_entry in smhi ([@epenet] - [#127309]) +- Use _get_reconfigure_entry in tado ([@epenet] - [#127311]) +- Use _get_reconfigure_entry in vallox ([@epenet] - [#127313]) +- Use _get_reauth_entry in trafikverket_weatherstation ([@epenet] - [#127316]) +- Bump swiss-public-transport requirement python-opendata-transport to 0.5.0 ([@miaucl] - [#127306]) +- Use _get_reauth_entry in azure_devops config flow ([@epenet] - [#127321]) +- Use _get_reauth_entry in aseko_pool_live ([@epenet] - [#127319]) +- Use _get_reauth_entry in airvisual_pro ([@epenet] - [#127318]) +- Use _get_reauth/reconfigure_entry in tedee ([@epenet] - [#127312]) +- Use _get_reauth/reconfigure_entry in shelly ([@epenet] - [#127308]) +- Adjust reauth checks in august ([@epenet] - [#127320]) +- Use _get_reauth/reconfigure_entry in nam ([@epenet] - [#127303]) +- Add sensor for total installations and integrations to Analytics Insights ([@starkillerOG] - [#127248]) +- Add protocol upload / download sensors to Deluge ([@mgrandi] - [#119203]) +- Use _get_reauth_entry in bring config flow ([@epenet] - [#127325]) +- Use _get_reauth_entry in brunt config flow ([@epenet] - [#127324]) +- Use _get_reauth_entry in bthome config flow ([@epenet] - [#127323]) +- Use _get_reauth_entry in blue_current config flow ([@epenet] - [#127328]) +- Use _get_reauth/reconfigure_entry in solarlog ([@epenet] - [#127310]) +- Use _get_reconfigure_entry in waze_travel_time ([@epenet] - [#127314]) +- Use _get_reauth/reconfigure_entry in melcloud ([@epenet] - [#127302]) +- Ensure homekit_controller config flow title_placeholders items are [str, str] ([@emontnemery] - [#127198]) +- Use ConfigFlow.has_matching_flow to deduplicate tplink flows ([@emontnemery] - [#127164]) +- Store modern_forms flow data in flow handler attributes ([@emontnemery] - [#127175]) +- Handle the correct exception type when subscribing to the router service returns an error in the upnp component ([@StevenLooman] - [#127006]) +- Add reconfigure step to trafikverket weather ([@gjohansson-ST] - [#127140]) +- Add turn on and off function to lg_soundbar ([@skynet01] - [#127022]) +- Store instance name in Thread router discovery ([@agners] - [#127253]) +- Use _get_reconfigure_entry in brother ([@epenet] - [#127279]) +- Make numeric device classes a constant ([@bdraco] - [#127354]) +- Add line numbers to swiss-public-transport ([@polgarc] - [#127332]) +- Add reconfigure flow to trafikverket_camera ([@gjohansson-ST] - [#127355]) +- Store awair flow data in flow handler attributes ([@emontnemery] - [#127381]) +- Improve generic camera preview tests ([@emontnemery] - [#127382]) +- Add go2rtc and extend camera integration for better WebRTC support ([@edenhaus] - [#124410]) +- Use _get_reauth_entry in comelit config flow ([@epenet] - [#127386]) +- Remove unused translation keys from Tami4 ([@joostlek] - [#127342]) +- Correct reconfigure flows to get data from config entry ([@epenet] - [#127393]) +- Use _get_reauth_entry in braviatv config flow ([@epenet] - [#127326]) +- Use _get_reauth/reconfigure_entry in pyload ([@epenet] - [#127304]) +- Use _get_reauth_entry in bmw_connected_drive config flow ([@epenet] - [#127327]) +- Align config flow reconfigure step test helper with frontend ([@epenet] - [#127329]) +- Adjust type hints in androidtv_remote config_flow ([@epenet] - [#127162]) +- Add MOES Matter Light 1.0 to the blocklist for Matter transitions ([@raphaeleduardo42] - [#127345]) +- Use _get_reauth_entry in dormakaba_dkey config flow ([@epenet] - [#127392]) +- Use _get_reauth_entry in doorbird config flow ([@epenet] - [#127391]) +- Use _get_reauth_entry in discovergy config flow ([@epenet] - [#127390]) +- Use _get_reauth_entry in devolo_home_control config flow ([@epenet] - [#127387]) +- Store generic camera flow data in flow handler attributes ([@emontnemery] - [#127405]) +- Use _get_reauth_entry in caldav config flow ([@epenet] - [#127384]) +- Bump elkm1_lib to 2.2.10 ([@gwww] - [#127344]) +- Use async_update_reload_and_abort in Trafikverket Weather reauth flow ([@gjohansson-ST] - [#127341]) +- Set default Matter fabric label ([@agners] - [#127252]) +- Bump python-ecobee-api to 0.2.20 ([@myztillx] - [#127351]) +- Block Alexa Media Player v4.13.3 ([@joostlek] - [#127412]) +- Use _get_reauth_entry in devolo_home_network config flow ([@epenet] - [#127389]) +- Use async_update_reload_and_abort in abode ([@epenet] - [#127426]) +- Use async_update_reload_and_abort in airvisual_pro ([@epenet] - [#127430]) +- Use async_update_reload_and_abort in airvisual ([@epenet] - [#127429]) +- Fix AMP block ([@joostlek] - [#127424]) +- Use reauth helpers in aosmith config flow ([@epenet] - [#127432]) +- Use reauth helpers in esphome config flow ([@epenet] - [#127419]) +- Use async_update_reload_and_abort in aseko_pool_live config flow ([@epenet] - [#127433]) +- Use reauth helpers in blue_current config flow ([@epenet] - [#127434]) +- Use async_update_reload_and_abort in bosch_shc config flow ([@epenet] - [#127436]) +- Make go2rtc supported streams a frozenset ([@bdraco] - [#127439]) +- Use reauth helpers in ezviz config flow ([@epenet] - [#127448]) +- Use reauth helpers in efergy config flow ([@epenet] - [#127447]) +- Cancel listen task when setting the Matter fabric label fails ([@agners] - [#127423]) +- Reolink auto add new cameras/chimes ([@starkillerOG] - [#126268]) +- Fix config entry unique_id collision in proximity ([@emontnemery] - [#127456]) +- Don't add the same config entry id twice in google tests ([@allenporter] - [#127457]) +- Fix bluetooth tests to not create the same config entry twice ([@bdraco] - [#127461]) +- Align async_step_reconfigure type hints ([@epenet] - [#127450]) +- Use reauth helpers in comelit config flow ([@epenet] - [#127443]) +- Use reauth helpers in electric_kiwi config flow ([@epenet] - [#127414]) +- Remove test workaround from snooz ([@emontnemery] - [#127465]) +- Bump p1monitor to 3.1.0 ([@klaasnicolaas] - [#127459]) +- Use reauth helpers in dormakaba_dkey config flow ([@epenet] - [#127446]) +- Use reauth helpers in deluge config flow ([@epenet] - [#127445]) +- Use reauth helpers in caldav config flow ([@epenet] - [#127440]) +- Use reauth helpers in brunt config flow ([@epenet] - [#127438]) +- Use reauth helpers in braviatv config flow ([@epenet] - [#127437]) +- Cache serialization of config entry storage ([@bdraco] - [#127435]) +- Use _get_reauth_entry in cloudflare config flow ([@epenet] - [#127385]) +- Switch to using fast cached_property implementation in propcache ([@bdraco] - [#127339]) +- Bump cached-ipaddress to 0.7.0 ([@bdraco] - [#127475]) +- Bump yalexs to 8.9.0 ([@bdraco] - [#127474]) +- Bump uiprotect to 6.2.0 ([@bdraco] - [#127477]) +- Use reauth helpers in elmax config flow ([@epenet] - [#127417]) +- Fix config entry unique_id collision in lamarzocco tests ([@emontnemery] - [#127484]) +- Remove Spider integration ([@joostlek] - [#127346]) +- Adjust type hints in hyperion config_flow ([@epenet] - [#127273]) +- Restore __slots__ to core objects ([@bdraco] - [#127441]) +- Fix preview available in statistics ([@gjohansson-ST] - [#127349]) +- Migrate config_entries to use propcache cached_property ([@bdraco] - [#127495]) +- Prepare websocket writer for aiohttp 3.11 ([@bdraco] - [#127043]) +- Add re-authemtication flow to AVM FRITZ!Box Call Monitor ([@mib1185] - [#127497]) +- Add pylint rule for cached_property ([@bdraco] - [#127482]) +- Fix lingering tasks in snooz tests ([@epenet] - [#127523]) +- Fix config entry unique_id collision in tplink tests ([@emontnemery] - [#127522]) +- Convert evohome's test factory into an async generator ([@zxdavb] - [#126925]) +- Add support for Shelly CCT light ([@bieniu] - [#126989]) +- Bump github/codeql-action from 3.26.10 to 3.26.11 (@dependabot - [#127524]) +- Fix reolink tests ([@epenet] - [#127525]) +- Add more fixtures to the matter fixture ([@joostlek] - [#126761]) +- Add entity icons for Autarco integration ([@klaasnicolaas] - [#127505]) +- Use reauth helpers in spotify config flow ([@epenet] - [#127532]) +- Revert Alexa Media Player block ([@frenck] - [#127553]) +- Simplify Jellyfin ([@joostlek] - [#127353]) +- Use HassKey in backup ([@epenet] - [#127546]) +- Add codeowners for Squeezebox ([@rajlaud] - [#127564]) +- Use HassKey in auth ([@epenet] - [#127573]) +- Blueprints for template entities ([@tetele] - [#126971]) +- Bump ruff to 0.6.9 ([@autinerd] - [#127596]) +- Disable by default smlight auto zigbee update switch ([@tl-sl] - [#126707]) +- Bump aiohttp to 3.10.9 ([@bdraco] - [#127594]) +- Remove enigma2 yaml import ([@autinerd] - [#127597]) +- Fix blocking stat call in local media_source ([@bdraco] - [#127587]) +- Bump sigstore/cosign-installer from 3.6.0 to 3.7.0 (@dependabot - [#127628]) +- Bump actions/cache from 4.0.2 to 4.1.0 (@dependabot - [#127627]) +- Introduce Jellyfin client/server base entities ([@joostlek] - [#127572]) +- Fix Husqvarna Automower reauth title ([@Thomas55555] - [#127583]) +- Use common reconfigure string in bryant_evolution ([@epenet] - [#127561]) +- Fix grpcio wheel build ([@cdce8p] - [#127533]) +- Fix snooz tests ([@emontnemery] - [#127468]) +- Restore __slots__ to registry entries ([@bdraco] - [#127481]) +- Improve mqtt sensor options validion logging ([@jbouwh] - [#127631]) +- Bump async-upnp-client to 0.41.0 ([@StevenLooman] - [#127642]) +- Return an error if no error key is provided in Husqvarna Automower ([@Thomas55555] - [#127584]) +- Improve handling of call deflection switches in AVM Fritz!Tools ([@mib1185] - [#127592]) +- Remove automatic linkage of doorbells to HomeKit accessories via device class occupancy ([@bdraco] - [#127668]) +- Add sensors for gems and mystic hourglasses to Habitica integration ([@tr4nt0r] - [#127651]) +- Replace Rachio warning with debug logging ([@brg468] - [#127673]) +- Add tests for evohome climate entities ([@zxdavb] - [#127612]) +- Add tests for evohome water_heater entities ([@zxdavb] - [#127611]) +- Update dbus-fast to 2.24.3 ([@cdce8p] - [#127683]) +- Update bluetooth-adapters to 0.20.0 ([@cdce8p] - [#127684]) +- Update bleak-retry-connector to 3.6.0 ([@cdce8p] - [#127686]) +- Update bleak to 0.22.3 ([@cdce8p] - [#127688]) +- Update habluetooth to 3.5.0 ([@cdce8p] - [#127690]) +- Update bleak-esphome to 1.1.0 ([@cdce8p] - [#127692]) +- Update yalexs-ble to 2.5.0 ([@cdce8p] - [#127696]) +- Bump yalexs to 8.10.0 ([@bdraco] - [#127704]) +- Bump cached-ipaddress to 0.8.0 ([@bdraco] - [#127703]) +- Bump syrupy to 4.7.2 ([@joostlek] - [#127710]) +- Bump uiprotect to 6.3.1 ([@bdraco] - [#127702]) +- Add cast skill action to Habitica integration ([@tr4nt0r] - [#127000]) +- Use BSH keys as unique ID's suffix at Home Connect ([@Diegorro98] - [#126143]) +- Remove obsolete entity count safeguards when using `snapshot_platform` test helper ([@mib1185] - [#127736]) +- Remove expected lingering test fixture from Matter ([@joostlek] - [#127713]) +- Use reconfigure helpers in config tests ([@epenet] - [#127534]) +- Add work area sensors to Husqvarna Automower ([@Thomas55555] - [#126931]) +- Update A. O. Smith integration to reflect upstream API changes ([@bdr99] - [#127678]) +- Fix typo ([@strugee] - [#127775]) +- Correct typing in rediscovery tests ([@emontnemery] - [#127777]) +- Add default reconfigure reason in update_reload_and_abort ([@epenet] - [#127756]) +- Update ephem to 4.1.6 ([@cdce8p] - [#127761]) +- Disable SELinux enforcement on dev containers ([@strugee] - [#127774]) +- Update types packages ([@cdce8p] - [#127783]) +- Update pre-commit to 4.0.0 ([@cdce8p] - [#127782]) +- Add option to disable keep-alive for Enphase Envoy connections ([@catsmanac] - [#127603]) +- Extend update_entry_and_reload tests ([@epenet] - [#127776]) +- Bump pychromecast to 14.0.4 ([@emontnemery] - [#127791]) +- Use reauth helpers in permobil config flow ([@epenet] - [#127530]) +- Add strict typing to radio_browser ([@cdce8p] - [#127799]) +- Enable strict typing for workday ([@cdce8p] - [#127797]) +- Add missing patch in dnsip test ([@epenet] - [#127802]) +- Fix incorrect translation string in august ([@epenet] - [#127817]) +- Fix incorrect translation string in blink ([@epenet] - [#127828]) +- Add missing translation string in electric_kiwi ([@epenet] - [#127835]) +- Fix incorrect translation string in airvisual ([@epenet] - [#127813]) +- Add missing translation string in axis ([@epenet] - [#127822]) +- Improve Spotify mock ([@joostlek] - [#127825]) +- Replace Spotify fixtures ([@joostlek] - [#127850]) +- Update fritzconnection to 1.14.0 ([@cdce8p] - [#127793]) +- Add missing translation string in AVM Fritz!Tools ([@mib1185] - [#127863]) +- Add missing translation string in dnsip ([@epenet] - [#127833]) +- Add Tesla Fleet grid status ([@JEMcats] - [#126438]) +- Bump aioshelly to 12.0.0 ([@thecode] - [#127884]) +- Enable strict typing for shell_command ([@cdce8p] - [#127856]) +- BMW: Add reconfiguration flow ([@rikroe] - [#127726]) +- Clean up Tibber service tests ([@functionpointer] - [#127334]) +- Enable strict typing for openai_conversation ([@cdce8p] - [#127854]) +- Use separate constants in template cover ([@gjohansson-ST] - [#127853]) +- Add missing translation string in awair ([@epenet] - [#127819]) +- Add missing translation string in broadlink ([@epenet] - [#127829]) +- Add missing translation string in kitchen_sink ([@epenet] - [#127838]) +- Use SensorDeviceClass.CONDUCTIVITY for xiaomi_ble conductivity sensors ([@emontnemery] - [#127880]) +- Add missing translation string in deluge ([@epenet] - [#127831]) +- Bump propcache to 0.2.0 ([@bdraco] - [#127816]) +- Enable strict typing for panel_custom ([@cdce8p] - [#127855]) +- Don't cache reauth entry in androidtv_remote config flow ([@epenet] - [#127900]) +- Fix translation strings in geonetnz_volcano ([@mib1185] - [#127872]) +- Fix incorrect translation string in fivem ([@epenet] - [#127907]) +- Fix incorrect translation key in crownstone ([@epenet] - [#127913]) +- Add missing translation string in tile ([@epenet] - [#127911]) +- Add missing and fix incorrect translation string in permobil ([@epenet] - [#127910]) +- Don't cache reauth entry in aseko_pool_live config flow ([@epenet] - [#127902]) +- Add missing translation string in cloudflare ([@epenet] - [#127906]) +- Bump actions/checkout from 4.2.0 to 4.2.1 (@dependabot - [#127903]) +- Bump github/codeql-action from 3.26.11 to 3.26.12 (@dependabot - [#127904]) +- Use separate constants in slide cover ([@gjohansson-ST] - [#127852]) +- Bump actions/upload-artifact from 4.4.0 to 4.4.1 (@dependabot - [#127905]) +- Don't abort on unknown error in nina config flow ([@epenet] - [#127908]) +- Fix devContainer startup ([@srescio] - [#127042]) +- Add missing translation string in tesla_fleet ([@epenet] - [#127915]) +- Add new helper for matching reauth/reconfigure config flows ([@epenet] - [#127565]) +- Make FlowHandler.context a typed dict ([@emontnemery] - [#126291]) +- Use homeassistant STUN server ([@edenhaus] - [#127922]) +- Remove dead reconfigure code ([@epenet] - [#127398]) +- Bump yarl to 1.14.0 ([@bdraco] - [#127924]) +- Reinitialize hassio discovery flow on config entry removal ([@emontnemery] - [#127088]) +- Deprecate hassio service to update addon ([@joostlek] - [#127927]) +- Add device_class for LCN sensors ([@alengwenus] - [#127921]) +- Warn when async_update_entry creates a unique_id collision ([@emontnemery] - [#127929]) +- Rename `UnitOfConductivity` enum members ([@emontnemery] - [#127919]) +- Cleanup unused variable in tests ([@epenet] - [#127930]) +- Prevent `async_create_entry` from reauth/reconfigure flows ([@epenet] - [#127527]) +- Update integrations to use new UnitOfConductivity enums ([@emontnemery] - [#127932]) +- Avoid unknown error translation strings in anthropic ([@epenet] - [#127823]) +- Snapshot more platforms for Matter ([@joostlek] - [#127541]) +- Cover state is enum ([@gjohansson-ST] - [#127144]) +- Bump actions/cache from 4.1.0 to 4.1.1 (@dependabot - [#127961]) +- Bump actions/upload-artifact from 4.4.1 to 4.4.2 (@dependabot - [#127962]) +- Add updates argument to update_reload_and_abort helper ([@epenet] - [#127781]) +- Bump auroranoaa to 0.0.5 ([@johangus65] - [#127965]) +- Improve IssueRegistryItemSnapshot ([@emontnemery] - [#127949]) +- Use reconfigure helpers in brother config flow ([@epenet] - [#127975]) +- Remove deprecated yaml import from Habitica ([@tr4nt0r] - [#127946]) +- Add Spotify media player tests ([@joostlek] - [#127839]) +- Add tests for the Spotify media browser ([@joostlek] - [#127857]) +- Do not cache the reconfigure entry in google travel time config flow ([@epenet] - [#128002]) +- Simplify jewish_calendar reconfigure flow ([@epenet] - [#128008]) +- Use reconfigure helpers in nam config flow ([@epenet] - [#128016]) +- Do not cache reconfigure entry in tado config flow ([@epenet] - [#128024]) +- Enable strict typing for switch_as_x ([@cdce8p] - [#127998]) +- Do not cache reauth/reconfigure entry in pyload config flow ([@epenet] - [#128017]) +- Use reconfigure helpers in madvr config flow ([@epenet] - [#128012]) +- Do not cache reconfigure entry in smhi config flow ([@epenet] - [#128021]) +- Do not cache the reconfigure entry in homeworks config flow ([@epenet] - [#128006]) +- Use reauth/reconfigure helpers in trafikverket_camera config flow ([@epenet] - [#128026]) +- Use reauth/reconfigure helpers in trafikverket_weatherstation config flow ([@epenet] - [#128028]) +- Use reconfigure helpers in lcn config flow ([@epenet] - [#128011]) +- Do not cache reconfigure entry in waze_travel_time config flow ([@epenet] - [#128030]) +- Do not cache reconfigure entry in vallox config flow ([@epenet] - [#128029]) +- Use reauth/reconfigure helpers in fritz config flow ([@epenet] - [#127990]) +- Do not cache the reconfigure entry in holiday config flow ([@epenet] - [#128005]) +- Do not cache the reconfigure entry in here travel time config flow ([@epenet] - [#128003]) +- Do not cache the entry in lamarzocco config flow ([@epenet] - [#128010]) +- Do not cache reauth/reconfigure entry in solarlog config flow ([@epenet] - [#128023]) +- Use reconfigure helpers in melcloud config flow ([@epenet] - [#128014]) +- Use reauth/reconfigure helpers in reolink config flow ([@epenet] - [#128018]) +- Use reconfigure helpers in mealie config flow ([@epenet] - [#128013]) +- Use reauth/reconfigure helpers in fritzbox config flow ([@epenet] - [#127993]) +- Do not cache the reconfigure entry in feedreader config flow ([@epenet] - [#127989]) +- Use reconfigure helpers in enphase envoy config flow ([@epenet] - [#127977]) +- Use reconfigure helpers in fronius config flow ([@epenet] - [#128001]) +- Allow single use of device class translations in tplink snapshot tests ([@sdb9696] - [#128022]) +- Add strict typing for govee_ble ([@cdce8p] - [#128044]) +- Fix StateType imports ([@cdce8p] - [#128042]) +- Extend deprecation period for hass.helpers by 6 months ([@jpbede] - [#128038]) +- Update RestrictedPython to 7.4 ([@cdce8p] - [#128039]) +- Add state class to qBittorrent UL / DL speed ([@owenvoke] - [#127988]) +- Add missing translations strings in trafikverket_camera ([@gjohansson-ST] - [#128037]) +- Use reauth/reconfigure helpers in shelly config flow ([@epenet] - [#128019]) +- Add missing translation string in enphase envoy ([@mib1185] - [#128053]) +- End deprecation for config entry import for folder watcher ([@gjohansson-ST] - [#128056]) +- Drop reconfigure_confirm step in trafikverket_camera ([@epenet] - [#128031]) +- Use snapshot platform test helper in IPP ([@mib1185] - [#127734]) +- Add Jellyfin remote entity ([@ianhattendorf] - [#126461]) +- Bump actions/upload-artifact from 4.4.2 to 4.4.3 (@dependabot - [#128074]) +- Add ability to pass the config entry explicitly in data update coordinators ([@epenet] - [#127980]) +- Use aiohasupervisor for store APIs ([@mdegat01] - [#126780]) +- Support non-dimmable color lights in Z-Wave JS ([@AlCalzone] - [#127808]) +- Add scene support to WMS WebControl pro ([@mback2k] - [#126081]) +- Use custom function instead mashumaro in WebRTC dataclasses ([@edenhaus] - [#128099]) +- Minor improvement of device registry tests ([@emontnemery] - [#128095]) +- Remove deprecated restart service in modbus ([@gjohansson-ST] - [#128059]) +- Add squeezebox API failure test ([@pssc] - [#128066]) +- Remove deprecated speed limit lock entity from tessie ([@jpbede] - [#128043]) +- Add missing already_configured strings ([@mib1185] - [#128058]) +- Add deconz IKEA SOMRIG device trigger ([@bluemoehre] - [#127464]) +- Bump tesla-fleet-api to 0.8.4 ([@Bre77] - [#127995]) +- Improve entity registry test coverage ([@emontnemery] - [#128073]) +- Add deCONZ IKEA RODRET device trigger ([@bluemoehre] - [#128121]) +- Support open next and close next actions for shades ([@kevdliu] - [#125097]) +- Minor improvement of device_registry ([@emontnemery] - [#128075]) +- Bump aiohttp to 3.10.10 ([@bdraco] - [#128128]) +- Log exceptions in the config flow of Opower ([@tronikos] - [#128146]) +- Add reboot button for tplink ([@rytilahti] - [#127935]) +- Do not use async_config_entry_first_refresh in fronius ([@epenet] - [#128153]) +- Improve docstring of EntityComponent and EntityPlatform ([@emontnemery] - [#128135]) +- Add snapshot testing to Spotify ([@joostlek] - [#128032]) +- Remove parameter add_config_entry from DeviceRegistry.async_update_device ([@emontnemery] - [#128139]) +- Add more Spotify tests for the media player ([@joostlek] - [#127999]) +- Minor improvement of entity platform tests ([@emontnemery] - [#128158]) +- Add test for Spotify select source ([@joostlek] - [#128160]) +- Cleanup unnecessary reconfigure_confirm in fritz config flow ([@epenet] - [#128089]) +- Replace ValueError with deprecation in data update coordinator ([@epenet] - [#128082]) +- Add x-client headers to Habitica API calls ([@tr4nt0r] - [#127952]) +- Fix grammar in Template Helper creation dialog ([@marcjay] - [#128174]) +- Migrate device models to entity descriptions and add localization & icons at Home Connect ([@Diegorro98] - [#127870]) +- Remove config entry import from lg_netcast ([@gjohansson-ST] - [#128179]) +- Remove deprecated notify service in ecobee ([@gjohansson-ST] - [#128177]) +- Bump aiohasupervisor to 0.2.0b0 ([@mdegat01] - [#128173]) +- Use exposed error messages in Assist ([@synesthesiam] - [#127503]) +- Add tests for Habitica integration ([@tr4nt0r] - [#126445]) +- Remove legacy knx notify service ([@gjohansson-ST] - [#128185]) +- Remove legacy notify service from ecobee ([@jpbede] - [#128115]) +- Remove deprecated yaml support from lg_netcast ([@jpbede] - [#128114]) +- Remove not used issue strings in tessie ([@gjohansson-ST] - [#128178]) +- Use device area/floor in HassGetState intent ([@synesthesiam] - [#128197]) +- Use single_instance_allowed in hassio ([@mib1185] - [#128060]) +- Mark integrations as single_config_entry in manifest [system integrations] ([@mib1185] - [#128201]) +- Add to-do list response target for ListAddItemIntent ([@JosephAbbey] - [#121970]) +- Fix ci (dhcp tests) ([@mib1185] - [#128207]) +- Cleanup unnecessary reconfigure_confirm in fritzbox config flow ([@epenet] - [#128087]) +- Bump yarl to 1.15.0 ([@bdraco] - [#128215]) +- Mark integrations as single_config_entry in manifest [a-i] ([@mib1185] - [#128189]) +- Mark integrations as single_config_entry in manifest [k-r] ([@mib1185] - [#128191]) +- Fix binary sensor at Home Connect ([@Diegorro98] - [#128234]) +- Fix hassio data fetching over list[Repository] ([@jbouwh] - [#128206]) +- Mark mqtt as integration with single config entry ([@jbouwh] - [#128202]) +- Use reconfigure helpers in axis config flow ([@epenet] - [#127976]) +- Bump gios to version 5.0.0 ([@bieniu] - [#128257]) +- Fix translation string in google ([@j4n-e4t] - [#128237]) +- Bump yarl to 1.15.1 ([@bdraco] - [#128268]) +- Use entry.runtime_data for caldav ([@autinerd] - [#128278]) +- Do not link nextbus coordinator to config entry ([@epenet] - [#128151]) +- Do not use async_config_entry_first_refresh in fastdotcom ([@epenet] - [#128152]) +- Add translatable title to history_stats ([@gjohansson-ST] - [#128287]) +- Add translatable title to statistics ([@gjohansson-ST] - [#128286]) +- Add switch entity for Shelly scripts ([@chemelli74] - [#108171]) +- Fix state for litterrobot ([@gjohansson-ST] - [#128297]) +- Refactor todo tests ([@Lesekater] - [#128251]) +- Bump pydeconz to v118 ([@hanskroner] - [#128289]) +- Fix translation string in knocki ([@j4n-e4t] - [#128318]) +- Bump yarl to 1.15.2 ([@bdraco] - [#128309]) +- Add model_id to lamarzocco ([@zweckj] - [#128344]) +- Remove single-use variable in aussie-broadband ([@epenet] - [#128340]) +- Bump opower to 0.8.4 ([@tronikos] - [#128338]) +- Use reauth helpers in airvisual ([@epenet] - [#128335]) +- Refactor abode config flow tests ([@epenet] - [#128334]) +- Fix translation string in tankerkoenig ([@j4n-e4t] - [#128320]) +- Cleanup unnecessary reconfigure_confirm from config flows ([@epenet] - [#128086]) +- Strip path from Mastodon base url ([@andrew-codechimp] - [#127994]) +- Use reauth_confirm in azure_devops ([@epenet] - [#128349]) +- Use async_update_reload_and_abort in awair ([@epenet] - [#128345]) +- Fix translation string in tplink ([@j4n-e4t] - [#128352]) +- Fix translation string in yolink ([@j4n-e4t] - [#128353]) +- Add model_id to tedee ([@zweckj] - [#128356]) +- Rewrite go2rtc binary handling to be async ([@edenhaus] - [#128078]) +- Fix translation string in melcloud ([@j4n-e4t] - [#128363]) +- Ensure config_flow abort reasons have translations ([@epenet] - [#128140]) +- Use long option for pytest numprocesses ([@epenet] - [#128354]) +- Use reauth/reconfigure helpers in tedee config flow ([@epenet] - [#128025]) +- Fix translation string in weatherflow ([@j4n-e4t] - [#128321]) +- Fix translation string in lifx ([@j4n-e4t] - [#128362]) +- Fix translation string in eq3btsmart ([@j4n-e4t] - [#128319]) +- Fix translation string in gardena_bluetooth ([@j4n-e4t] - [#128387]) +- Improve internal naming ([@Thomas55555] - [#128390]) +- Fix initialization of some `denonavr` receivers when telnet API is enabled ([@ol-iver] - [#127882]) +- Fix go2rtc test RuntimeWarnings ([@cdce8p] - [#128411]) +- Response type should not contain datetime for Swiss Public Transport ([@miaucl] - [#128391]) +- Add tests/components/conftest.py to core files ([@epenet] - [#128425]) +- Fix reauth strings in Teslemetry ([@Bre77] - [#128426]) +- Fix translation string in rova ([@j4n-e4t] - [#128402]) +- Fix translation string in iotty ([@j4n-e4t] - [#128385]) +- Add missing translation for youtube ([@epenet] - [#128431]) +- Adjust homewizard translation strings ([@epenet] - [#128423]) +- Fix translation string in matter ([@j4n-e4t] - [#128364]) +- Fix pytest workflow for testing multiple Python versions [ci] ([@cdce8p] - [#128412]) +- Add BaseBackupManager as a common interface for backup managers ([@ludeeus] - [#126611]) +- Fail on unused ignore_translations fixture ([@epenet] - [#128422]) +- Add WS endpoint to fetch the details of a backup ([@ludeeus] - [#128430]) +- Bump github/codeql-action from 3.26.12 to 3.26.13 (@dependabot - [#128420]) +- Fix translation string in spotify ([@j4n-e4t] - [#128440]) +- Improve check for user-visible flows when checking translations in tests ([@epenet] - [#128434]) +- Refactor prometheus integration tests ([@jzucker2] - [#113849]) +- Add support HmIP-BSL after firmware update to 2.0 to homematicip_cloud ([@hahn-th] - [#117657]) +- Improve intent recognition in default conversation agent ([@arturpragacz] - [#124282]) +- Trim the text of todo and shopping list items in intents ([@synesthesiam] - [#128456]) +- Replace webexteamssdk with webexpythonsdk ([@DJF3] - [#127928]) +- Move backup plaform loading to the base class ([@ludeeus] - [#128449]) +- Add missing translation string in unifi ([@MichScha] - [#128062]) +- Fix translation string in lyric ([@j4n-e4t] - [#128386]) +- Fix default conversation agent tests ([@arturpragacz] - [#128490]) +- Bump yarl to 1.15.3 ([@bdraco] - [#128499]) +- Mark custom components that overwrite core ([@MindFreeze] - [#127937]) +- Add SOURCE_SYSTEM to DISCOVERY_SOURCES ([@epenet] - [#128457]) +- Remove duplicate oauth2 token validity check ([@CFenner] - [#128419]) +- Add missing Weheat temperature sensors ([@barryvdh] - [#128452]) +- Add even more tests to Spotify ([@joostlek] - [#128298]) +- Rename host to url in go2rtc config flow ([@edenhaus] - [#128508]) +- Add SOURCE_HASSIO to DISCOVERY_SOURCES ([@epenet] - [#128454]) +- Fix incorrect error strings in triggercmd ([@epenet] - [#128450]) +- Fix incorrect error strings in webmin ([@epenet] - [#128448]) +- Fix incorrect error strings in weatherflow ([@epenet] - [#128447]) +- Add check for valid abort reason translation in option flows ([@epenet] - [#128444]) +- Use unique_id_mismatch in aseko_pool_live reauth ([@epenet] - [#128339]) +- Correct type hints on MQTT tests ([@jbouwh] - [#128299]) +- Update build-system ([@cdce8p] - [#128256]) +- Add checks for config entry state in async_config_entry_first_refresh ([@epenet] - [#128148]) +- Reorder Google Assistant Traits ([@joostlek] - [#127646]) +- Bump aiostreammagic to 2.6.0 ([@noahhusby] - [#128498]) +- Migrate Wyoming satellite to Assist satellite entity ([@synesthesiam] - [#128488]) +- Add conversation agent to Wyoming ([@synesthesiam] - [#124373]) +- Migrate spotify to aiospotify ([@joostlek] - [#127728]) +- Prevent leak of current_entry context variable ([@epenet] - [#128145]) +- Update aioairzone-cloud to v0.6.7 ([@Noltari] - [#128231]) +- Bump uv to 0.4.22 ([@edenhaus] - [#128518]) +- Use runtime_data in rainforest_raven ([@epenet] - [#128517]) +- Bump aiostreammagic to 2.7.0 ([@noahhusby] - [#128525]) +- Add check for valid error code in translation checks in flows ([@epenet] - [#128445]) +- Update terminology for built-in blueprints ([@olafz] - [#128383]) +- Add diagnostics to Spotify ([@joostlek] - [#128521]) +- Add port to config flow of P1 Monitor integration ([@klaasnicolaas] - [#128324]) +- Always use uv from virtual environment at runtime ([@sdb9696] - [#128371]) +- Add select entity to Cambridge Audio ([@noahhusby] - [#128527]) +- Remove deprecated map integration ([@jpbede] - [#128529]) +- Fix translation string in hyperion ([@j4n-e4t] - [#128384]) +- Remove deprecated panel_iframe integration ([@jpbede] - [#128532]) +- Add missing description placeholder in Tessie ([@Bre77] - [#128481]) +- Add a missing translation for energy error ([@karwosts] - [#128413]) +- Fix translation string in guardian ([@j4n-e4t] - [#128535]) +- Bump ZHA dependencies ([@puddly] - [#128539]) +- Bump yarl to 1.15.4 ([@bdraco] - [#128536]) +- Update mypy-dev to 1.13.0a1 ([@cdce8p] - [#128548]) +- Cleanup unused snapshots ([@epenet] - [#128549]) +- Fix schema violations in manifest.json files ([@autinerd] - [#128561]) +- Keep ZHA entity enabled setting in sync with lib ([@dmulcahey] - [#125472]) +- Improve camera tests ([@emontnemery] - [#128545]) +- Use reauth helpers in google_assistant_sdk ([@epenet] - [#128582]) +- Use reauth helpers in google_generative_ai_conversation ([@epenet] - [#128583]) +- Refactor unittest tests to use pytest ([@Honza-m] - [#127770]) +- Use reauth helpers in fujitsu_fglair ([@epenet] - [#128570]) +- Rename the SkyConnect integration to Connect ZBT-1 ([@puddly] - [#128599]) +- Use reauth helpers in fyta ([@epenet] - [#128571]) +- Use reauth helpers in fitbit ([@epenet] - [#128568]) +- Remove metadata and cover art using ffmpeg proxy conversion ([@synesthesiam] - [#128603]) +- Bump mozart-api to 4.1.1.116.0 ([@mj23000] - [#128573]) +- Use reauth helpers in co2signal ([@epenet] - [#128566]) +- Use shorthand attribute in threshold binary sensor ([@gjohansson-ST] - [#128612]) +- Bump aiostreammagic to 2.8.1 ([@noahhusby] - [#128542]) +- Bump ruff to 0.7.0 ([@autinerd] - [#128626]) +- Use reauth helpers in hydrawise ([@epenet] - [#128632]) +- Use reauth helpers in husqvarna_automower ([@epenet] - [#128631]) +- Use reauth helpers in huawei_lte ([@epenet] - [#128630]) +- Use reauth helpers in honeywell ([@epenet] - [#128629]) +- Refactor duplicate host check in homeworks config flow ([@epenet] - [#128627]) +- Use reauth helpers in google_photos ([@epenet] - [#128585]) +- Use reauth helpers in google_tasks ([@epenet] - [#128586]) +- Use reauth helpers in google_mail ([@epenet] - [#128584]) +- Use shorthand attribute in trend binary sensor ([@gjohansson-ST] - [#128614]) +- Use reauth helpers in homewizard ([@epenet] - [#128628]) +- Bump reolink_aio to 0.10.0 ([@starkillerOG] - [#128578]) +- Use shorthand attribute in derivative sensor ([@gjohansson-ST] - [#128610]) +- Remove ExternalDevice 'invalid ID' migration in HomeWizard ([@DCSBL] - [#128634]) +- Add asdf tools dot file to gitignore ([@jzucker2] - [#128608]) +- Use reauth helpers in frontier_silicon ([@epenet] - [#128569]) +- Use reauth helpers in fibaro ([@epenet] - [#128567]) +- Add sensors to Omada ([@MarkGodwin] - [#127767]) +- Use snapshot assertion in rainforest_raven sensor tests ([@epenet] - [#128604]) +- Use snapshot assertion in rainforest_raven diagnostic tests ([@epenet] - [#128602]) +- Update Reolink config entry port info if needed ([@starkillerOG] - [#128589]) +- Use reauth helpers in glances ([@epenet] - [#128579]) +- Use reauth helpers in google_sheets ([@epenet] - [#128587]) +- Add list as possible values for State On/Off ModBus Switch ([@crug80] - [#127444]) +- Use reauth helpers in jvc_projector ([@epenet] - [#128650]) +- Use reauth helpers in justnimbus ([@epenet] - [#128649]) +- Use reauth helpers in imap ([@epenet] - [#128645]) +- Fix reload not triggered on DisabledError in HomeWizard ([@DCSBL] - [#128636]) +- Use reauth_confirm in osoenergy ([@epenet] - [#128665]) +- Use reauth helpers in ring ([@epenet] - [#128663]) +- Add model_id to rainforest_raven device info ([@epenet] - [#128652]) +- Refactor rainforest_raven coordinator tests ([@epenet] - [#128591]) +- Use new reauth helpers in overkiz ([@epenet] - [#128666]) +- Use reauth helpers in lacrosse_view ([@epenet] - [#128655]) +- Use reauth helpers in linear_garage_door ([@epenet] - [#128658]) +- Use reauth helpers in litterrobot ([@epenet] - [#128659]) +- Use reauth helpers in lidarr ([@epenet] - [#128657]) +- Use reauth helpers in lametric ([@epenet] - [#128656]) +- Use reauth helpers in intellifire ([@epenet] - [#128646]) +- Use reauth helpers in jellyfin ([@epenet] - [#128648]) +- Use reauth helpers in ista_ecotrend ([@epenet] - [#128647]) +- Improve logic for detecting unused ignore translations ([@epenet] - [#128441]) +- Block until config is retrieved when adding satellite entity to HA ([@synesthesiam] - [#128685]) +- Bump yarl to 1.15.5 ([@bdraco] - [#128681]) +- Use reauth_confirm in nanoleaf ([@epenet] - [#128698]) +- Add lighting effects to Hue lights managed by deCONZ ([@hanskroner] - [#128292]) +- Use reauth_confirm in myuplink ([@epenet] - [#128697]) +- Use reauth_confirm in opower ([@epenet] - [#128707]) +- Use reauth_confirm in mqtt ([@epenet] - [#128696]) +- Remove dead code and increase test coverage for google config flow ([@allenporter] - [#128690]) +- Use new reauth_helpers in onvif ([@epenet] - [#128705]) +- Use new reauth_helpers in oncue ([@epenet] - [#128704]) +- Use new reauth_helpers in notion ([@epenet] - [#128703]) +- Use new reauth_helpers in microbees ([@epenet] - [#128692]) +- Use reauth helpers in google ([@epenet] - [#128580]) +- Use new reauth_helpers in nice_go ([@epenet] - [#128702]) +- Use new reauth_helpers in mikrotik ([@epenet] - [#128693]) +- Use new reauth_helpers in nextdns ([@epenet] - [#128701]) +- Use new reauth_helpers in openexchangerates ([@epenet] - [#128706]) +- Use new reauth helpers in pvoutput ([@epenet] - [#128720]) +- Use new reauth_helpers in monzo ([@epenet] - [#128694]) +- Use new reauth_helpers in motioneye ([@epenet] - [#128695]) +- Use new reauth_helpers in nextcloud ([@epenet] - [#128700]) +- Use new reauth helpers in philips_js ([@epenet] - [#128714]) +- Use new reauth helpers in pi_hole ([@epenet] - [#128715]) +- Use new reauth helpers in point ([@epenet] - [#128716]) +- Use new reauth helpers in powerwall ([@epenet] - [#128717]) +- Use new reauth helpers in prosegur ([@epenet] - [#128718]) +- Use new reauth helpers in purpleair ([@epenet] - [#128719]) +- Use new reauth helpers in radarr ([@epenet] - [#128725]) +- Add coordinator to Twitch ([@joostlek] - [#127724]) +- Use new reauth helpers in ruckus_unleashed ([@epenet] - [#128727]) +- Use new reauth helpers in roborock ([@epenet] - [#128726]) +- Use new reauth helpers in samsungtv ([@epenet] - [#128729]) +- Use new reauth helpers in pvpc_hourly_pricing ([@epenet] - [#128721]) +- Use new reauth helpers in rympro ([@epenet] - [#128728]) +- Allow SSL security_protocol configuration property in apache_kafka component ([@jkaflik] - [#128651]) +- Catch Reolink LoginFirmwareError ([@starkillerOG] - [#128590]) +- Bump huawei-lte-api to 1.9.3 ([@scop] - [#128731]) +- Use new reauth helpers in surepetcare ([@epenet] - [#128748]) +- Use new reauth helpers in tplink ([@epenet] - [#128768]) +- Use new reauth helpers in twitch ([@epenet] - [#128767]) +- Use new reauth helpers in tuya ([@epenet] - [#128766]) +- Fix Airzone climate temperature range ([@Noltari] - [#128737]) +- Use new reauth helpers in transmission ([@epenet] - [#128765]) +- Use new reauth helpers in trafikverket_train ([@epenet] - [#128764]) +- Use new reauth helpers in trafikverket_ferry ([@epenet] - [#128763]) +- Bump spotifyaio to 0.7.0 ([@joostlek] - [#128751]) +- Use new reauth helpers in schlage ([@epenet] - [#128736]) +- Bump upcloud-api to 2.6.0 ([@scop] - [#128734]) +- Use new reauth helpers in sfr_box ([@epenet] - [#128739]) +- Fix Airzone Cloud climate temperature range ([@Noltari] - [#128740]) +- Update ha-ffmpeg to 3.2.1 ([@cdce8p] - [#128769]) +- Use new reauth helpers in tplink_omada ([@epenet] - [#128762]) +- Use new reauth helpers in thethingsnetwork ([@epenet] - [#128761]) +- Use new reauth helpers in tailscale ([@epenet] - [#128752]) +- Use new reauth helpers in sensibo ([@epenet] - [#128738]) +- Use new reauth helpers in tailwind ([@epenet] - [#128755]) +- Use new reauth helpers in skybell ([@epenet] - [#128741]) +- Use new reauth helpers in sleepiq ([@epenet] - [#128742]) +- Use new reauth helpers in smlight ([@epenet] - [#128744]) +- Use new reauth helpers in sonarr ([@epenet] - [#128745]) +- Use new reauth helpers in steam_online ([@epenet] - [#128746]) +- Use new reauth helpers in sunweg ([@epenet] - [#128747]) +- Use new reauth helpers in tautulli ([@epenet] - [#128758]) +- Use new reauth helpers in switcher_kis ([@epenet] - [#128750]) +- Use new reauth helpers in tankerkoenig ([@epenet] - [#128756]) +- Use new reauth helpers in vlc_telnet ([@epenet] - [#128780]) +- Use new reauth helpers in vodafone_station ([@epenet] - [#128781]) +- Use new reauth helpers in smarttub ([@epenet] - [#128743]) +- Use new reauth_helpers in nest ([@epenet] - [#128699]) +- Fix device data roborock ([@Lash-L] - [#128792]) +- Bump pysqueezebox to v0.10.0 ([@rajlaud] - [#128774]) +- Use new reauth helpers in unifiprotect ([@epenet] - [#128775]) +- Use new reauth helpers in verisure ([@epenet] - [#128778]) +- Use new reauth helpers in volvooncall ([@epenet] - [#128782]) +- Remove erroneous switch entity description at Home Connect ([@Diegorro98] - [#128576]) +- Use new reauth helpers in tessie ([@epenet] - [#128760]) +- Use new reauth helpers in teslemetry ([@epenet] - [#128759]) +- Update eq3btsmart to 1.2.0 ([@cdce8p] - [#128808]) +- Bump google-nest-sdm to 6.1.0 ([@allenporter] - [#128812]) +- Use new reauth helpers in weatherflow_cloud ([@epenet] - [#128821]) +- Use new reauth helpers in wallbox ([@epenet] - [#128820]) +- Simplify custom component loading ([@balloob] - [#128813]) +- Bump spotifyaio to 0.7.1 ([@joostlek] - [#128807]) +- Use new reauth helpers in webostv ([@epenet] - [#128823]) +- Use new reauth helpers in whirlpool ([@epenet] - [#128825]) +- Handle invalid zeroconf messages in Android TV Remote ([@tronikos] - [#128819]) +- Use new reauth helpers in xiaomi_ble ([@epenet] - [#128827]) +- Use new reauth helpers in yale ([@epenet] - [#128828]) +- Update zhong-hong-hvac to 1.0.13 ([@cdce8p] - [#128822]) +- Use new reauth helpers in vicare ([@epenet] - [#128779]) +- Auto lower case username for Schlage auth flows ([@frenck] - [#128730]) +- Bump plugwise to v1.4.3 ([@bouwew] - [#128773]) +- Use new reauth helpers in weheat ([@epenet] - [#128824]) +- Use new reauth helpers in youtube ([@epenet] - [#128835]) +- Use new reauth helpers in yolink ([@epenet] - [#128834]) +- Update attrs to 24.2.0 ([@cdce8p] - [#126656]) +- Add Spotify to strict typing ([@joostlek] - [#128846]) +- Use new reauth helpers in yalexs_ble ([@epenet] - [#128831]) +- Use new reauth helpers in withings ([@epenet] - [#128826]) +- Add New Music Category for Media Browser ([@peteS-UK] - [#128147]) +- Add Twitch stream viewer as readable data for integration ([@LunaBytesBack] - [#128787]) +- Align consumption sensor names in ViCare integration ([@CFenner] - [#127888]) +- Reduce the size of the Nest event media storage cache ([@oliverwoodings] - [#128855]) +- Add humidity to KNX climate ([@alexkn] - [#128844]) +- Use new reauth helpers in yale_smart_alarm ([@epenet] - [#128836]) +- Bump google-nest-sdm to 6.1.3 ([@allenporter] - [#128871]) +- Remove myself from roomba codeowners ([@Xitee1] - [#128858]) +- Bump habluetooth to 3.6.0 ([@bdraco] - [#128815]) +- Add audio feature sensors to Spotify ([@joostlek] - [#128785]) +- Improve entity cached attributes ([@emontnemery] - [#128876]) +- Use runtime_data for Swiss Public Transport ([@miaucl] - [#128369]) +- Add translations for Netatmo thermostat preset modes ([@piitaya] - [#128890]) +- Simplify Swiss public transport coordinator ([@miaucl] - [#128891]) +- Include Z-Wave JS lowSecurityReason in node added websocket message ([@MindFreeze] - [#128896]) +- Remove dead code from concord232 ([@emontnemery] - [#128907]) +- Add reconfigure flow to ring integration ([@sdb9696] - [#128357]) +- Add update_percentage state attribute to update entity ([@emontnemery] - [#128877]) +- Push real binary sensor states to state machine in tests ([@epenet] - [#128894]) +- Use STATE_ON/STATE_OFF constants in template test ([@epenet] - [#128883]) +- Bump pyopenweathermap to v0.2.1 ([@10100011] - [#128892]) +- Add ecobee set_sensors_used_in_climate service ([@myztillx] - [#102871]) +- Add Airzone switch entities to zones ([@Noltari] - [#124562]) +- Add new QNAP QSW uptime timestamp sensor ([@Noltari] - [#122589]) +- Remove explicit templating of persistent_notification service data ([@emontnemery] - [#128903]) +- Remaining addon management to aiohasupervisor ([@mdegat01] - [#128484]) +- Add Airzone Cloud main zone mode select ([@Noltari] - [#125918]) +- Add Airzone Cloud switch entities to zones ([@Noltari] - [#125917]) +- Add SIA alarm code ([@DurandAN] - [#127467]) +- Add floor heating device valve positions in Homematic IP Cloud ([@barryvdh] - [#122759]) +- Add fan `set_speed` support for Xiaomi Mi Air Purifier 3C ([@tr4nt0r] - [#126870]) +- Add config flow to local_file ([@gjohansson-ST] - [#125835]) +- Add firmware update entity to IronOS integration ([@tr4nt0r] - [#123031]) +- Deprecate entity_id template variable in camera services ([@emontnemery] - [#128592]) +- Add update_percentage property to update entity ([@emontnemery] - [#128908]) +- Allow Trend title to be translated ([@gjohansson-ST] - [#128926]) +- Fix description placeholder in fibaro reauth ([@gjohansson-ST] - [#128925]) +- Allow Random title to be translated ([@gjohansson-ST] - [#128928]) +- Bump holidays to 0.59 ([@gjohansson-ST] - [#128924]) +- Remove explicit templating of telegram_bot service data ([@emontnemery] - [#128906]) +- Remove explicit templating of minio service data ([@emontnemery] - [#128905]) +- Remove explicit templating of velbus service data ([@emontnemery] - [#128904]) +- Remove explicit templating of logbook service data ([@emontnemery] - [#128902]) +- Allow Timer title to be translated ([@gjohansson-ST] - [#128927]) +- Fix description placeholder in brunt reauth ([@rappenze] - [#128933]) +- Add subscription tier attribute to Twitch integration. ([@qwell] - [#128870]) +- Add missing strings for mold indicator ([@rahulsamant37] - [#128205]) +- Drop not needed reauth strings in tplink ([@gjohansson-ST] - [#128937]) +- Use new reauth helpers in unifi ([@epenet] - [#128837]) +- Fix description placeholder in imap reauth ([@rappenze] - [#128940]) +- Implement new state property for alarm_control_panel which is using an enum ([@gjohansson-ST] - [#126283]) +- Fix description placeholder in transmission reauth ([@rappenze] - [#128938]) +- Add motion detected binary_sensor for tplink ([@rytilahti] - [#127883]) +- Expose tplink temperature sensor as measurement ([@rytilahti] - [#128640]) +- Fix flaky update coordinator test ([@gjohansson-ST] - [#128943]) +- Bump PySwitchbot to 0.49.0 ([@bdraco] - [#128945]) +- Bump xiaomi-ble to 0.33.0 ([@bdraco] - [#128946]) +- Update astroid to 3.3.5 ([@cdce8p] - [#128948]) +- Bump yarl to 1.16.0 ([@bdraco] - [#128941]) +- Bump gcal_sync to 6.2.0 ([@allenporter] - [#128949]) +- Bump orjson to 3.10.9 ([@bdraco] - [#128952]) +- Bump pySwitchbot to 0.50.1 ([@bdraco] - [#128953]) +- Add snapshot service to image entity ([@NickM-27] - [#110057]) +- Add OSO Energy services ([@osohotwateriot] - [#118770]) +- Change Stun server port to 80 ([@klejejs] - [#128879]) +- Fix google tasks todo docstrings ([@allenporter] - [#128978]) +- Add support for fetching bindkey from Mi cloud ([@bdraco] - [#128394]) +- Fix zha test RuntimeWarnings ([@cdce8p] - [#128975]) +- Bump aiocomelit to 0.9.1 ([@chemelli74] - [#128977]) +- Bump aiovodafone to 0.6.1 ([@chemelli74] - [#128976]) +- Bump PySwitchBot to 0.51.0 ([@bdraco] - [#128990]) +- Add limited template to at field for time triggers ([@Petro31] - [#126584]) +- Update aioairzone-cloud to v0.6.8 ([@Noltari] - [#128992]) +- Bump axis to v63 ([@swoga] - [#129005]) +- Bump python-roborock to 2.6.1 ([@Lash-L] - [#128804]) +- Bump lektricowifi to 0.0.43 ([@Lektrico] - [#128979]) +- Use ConfigEntry.runtime_data in gardena_bluetooth ([@jpbede] - [#129000]) +- Improve template docstring ([@epenet] - [#128967]) +- Fix step in presets for generic thermostat ([@gjohansson-ST] - [#128922]) +- Expose scripts with no fields as entities ([@Shulyaka] - [#123061]) +- Fix FUNDING.yml to OHF ([@pvizeli] - [#129013]) +- Add Hassio HTTP logs/follow to allowed paths ([@wendevlin] - [#126606]) +- Bump orjson to 3.10.10 ([@bdraco] - [#129015]) +- Adjust logging level in ModBus ([@crug80] - [#128980]) +- Remove battery device class from bmw secondary sensor ([@zweckj] - [#128970]) +- Refactor camera.webrtc.register_ice_server ([@emontnemery] - [#129024]) +- Add go2rtc binary config to expose api only on localhost ([@edenhaus] - [#129025]) +- Bump github/codeql-action from 3.26.13 to 3.27.0 (@dependabot - [#129019]) +- Powerview migrate scene to string unique_id ([@kingy444] - [#128131]) +- Bump python bsblan version 0.6.4 ([@liudger] - [#128999]) +- Allow configuring WebRTC stun and turn servers ([@emontnemery] - [#128984]) +- Have statistics functions return a meaningful, non-none result even if only one value is available ([@unfug-at-github] - [#127305]) +- Add switch platform to the Lektrico integration ([@Lektrico] - [#126721]) +- Bump actions/cache from 4.1.1 to 4.1.2 (@dependabot - [#129018]) +- Remove deprecated channel views attribute from Twitch ([@qwell] - [#129008]) +- Use runtime_data in balboa ([@epenet] - [#129035]) +- Add `completed` to the wait variable when using triggers (`wait_for_trigger`) ([@jbergler] - [#123427]) +- Use runtime_data in bang_olufsen ([@epenet] - [#129037]) +- Create tests for sense integration ([@kbickar] - [#128418]) +- Bump sensorpush-ble to 1.7.0 ([@bdraco] - [#128951]) +- Fix calculation of attributes in group sensor ([@gjohansson-ST] - [#128601]) +- Fix get_time_zone annotations in dt_util ([@Thomas55555] - [#129050]) +- Add 'select' to configure Schlage locks "Auto Lock Time" ([@mxr] - [#123758]) +- Bump actions/checkout from 4.2.1 to 4.2.2 (@dependabot - [#129063]) +- Use fan mode when heat/cool is idle in homekit_controller ([@Xeio] - [#128618]) +- Remove bloomsky integration ([@epenet] - [#129073]) +- Switch from pysuez to pysuezV2 in Suez Water ([@jb101010-2] - [#127113]) +- Add config flow to Onkyo ([@Nebula83] - [#117319]) +- Add config flow to Smarty ([@joostlek] - [#127540]) +- Move core config functionality to its own module ([@emontnemery] - [#129065]) +- Use runtime_data in blebox ([@epenet] - [#129070]) +- Use runtime_data in blink ([@epenet] - [#129072]) +- Add unique id and tests for Smarty ([@joostlek] - [#129078]) +- Add tests for media_player to bluesound integration ([@LouisChrist] - [#125864]) +- Use runtime_data in bluemaestro ([@epenet] - [#129085]) +- Use runtime_data in blue_current ([@epenet] - [#129084]) +- Use runtime_data in buienradar ([@epenet] - [#129087]) +- Update pytest warnings filter ([@cdce8p] - [#129075]) +- Switch to using a fixture for evohome WaterHeater tests ([@zxdavb] - [#127701]) +- Use shorthand attribute in template binary sensor ([@epenet] - [#128966]) +- Fix update callback in Cambridge Audio test ([@noahhusby] - [#129092]) +- Add Meter Pro support to SwitchBot ([@bdraco] - [#128991]) +- Use runtime_data in bsblan ([@epenet] - [#129089]) +- Reduce the number of API calls in Twitch integration ([@qwell] - [#128996]) +- Add buttons to cast skills in Habitica integration ([@tr4nt0r] - [#126350]) +- Simplify webmin tests to use snapshot_platform ([@autinerd] - [#127754]) +- Add play media capability to Cambridge Audio ([@noahhusby] - [#129002]) +- Bump ruff to 0.7.1 ([@autinerd] - [#129102]) +- Allow update entities to report progress as a float ([@emontnemery] - [#128930]) +- Bump aioautomower to 2024.10.3 ([@Thomas55555] - [#128788]) +- Add coordinator to Smarty ([@joostlek] - [#129083]) +- Fix null hass error in supervisor update entities ([@mdegat01] - [#129030]) +- Add entity descriptions to Smarty Binary sensor ([@joostlek] - [#129110]) +- Add missing state_class to sensors in solarlog ([@dontinelli] - [#128296]) +- Use webrtc-models package ([@edenhaus] - [#129032]) +- Add typing for sense component ([@kbickar] - [#129119]) +- Bump actions/setup-python from 5.2.0 to 5.3.0 (@dependabot - [#129121]) +- Set up single coordinator for all config entries in IronOS ([@tr4nt0r] - [#129108]) +- Switch to using a fixture for evohome Climate tests (of zones) ([@zxdavb] - [#129100]) +- Add entity picture for healing potion in Habitica ([@tr4nt0r] - [#129107]) +- Refactor services setup in Habitica integration ([@tr4nt0r] - [#128186]) +- Prevent duplicate WMS WebControl pro config entry creation ([@mback2k] - [#128315]) +- Resume adding Z-Wave device if the page is refreshed ([@MindFreeze] - [#129081]) +- Add additional tests to Cambridge Audio ([@noahhusby] - [#128213]) +- Remove go2rtc config flow ([@emontnemery] - [#129020]) +- Add comment to Rflink battery sensor definition ([@epenet] - [#129131]) +- Add support for Faucet services in HomeKit Controller ([@feisley] - [#129094]) +- Add switch entity to Cambridge Audio ([@noahhusby] - [#128530]) +- Move bluesound service registration to separate module ([@epenet] - [#129086]) +- Use ConfigEntry.runtime_data in govee_light_local ([@jpbede] - [#128998]) +- Use NumberSelector in p1_monitor config flow ([@jpbede] - [#128939]) +- Add energy consumption sensors for cooling in ViCare integration ([@CFenner] - [#127274]) +- Add data streaming to Teslemetry ([@Bre77] - [#127559]) +- Remove string literals from modbus component tests ([@crug80] - [#128899]) +- Remove deprecated `retries` and `lazy_error_count` yaml option ([@jpbede] - [#128932]) +- Migrate config entry in anova to remove devices from entry data ([@gjohansson-ST] - [#128934]) +- Fix go2rtc config schema ([@emontnemery] - [#129141]) +- Add option to extract licenses [ci] ([@cdce8p] - [#129095]) +- Add entity descriptions to Smarty sensor ([@joostlek] - [#129111]) +- Add base class to Smarty ([@joostlek] - [#129112]) +- Vodafone Station typing ([@chemelli74] - [#129143]) +- Avoid creating Prometheus metrics for non-numeric states ([@knyar] - [#127262]) +- Bump aioswitcher to 4.2.0 ([@YogevBokobza] - [#129118]) +- Bump pymoncms library to version 0.1.1 ([@alexandrecuer] - [#129135]) +- Home connect light generalization and RGB support ([@Diegorro98] - [#126144]) +- Add opening closing state to fibaro cover ([@rappenze] - [#126958]) +- Add refoss em16 device model ([@ashionky] - [#126798]) +- Cleanup hass.data default in airtouch5 ([@epenet] - [#129156]) +- Include go2rtc in default_config ([@emontnemery] - [#129144]) +- Bump aiostreammagic to 2.8.3 ([@noahhusby] - [#129113]) +- Fix transition config storage in LCN light and scene platform ([@alengwenus] - [#127847]) +- Add husqvarna automower ble integration ([@alistair23] - [#108326]) +- Update sense-energy to 0.13.2 ([@kbickar] - [#128670]) +- Add `List access` sensor to Bring integration ([@tr4nt0r] - [#126844]) +- Add Intellifire cloud/local connectivity sensors ([@jeeftor] - [#127122]) +- Update aioopenexchangerates to 0.6.8 ([@cdce8p] - [#129162]) +- Add support for Mighty Mule MMS100 to Nice G.O. ([@IceBotYT] - [#127765]) +- Update pyxeoma to 1.4.2 ([@cdce8p] - [#129164]) +- Dynamic add/remove devices for solarlog ([@dontinelli] - [#128668]) +- Add Diegorro98 as Home Connect code owner ([@Diegorro98] - [#129169]) +- Bump aiostreammagic to 2.8.4 ([@noahhusby] - [#129166]) +- Add "Albums" sensor to Lidarr ([@iz4c] - [#125631]) +- Update zeversolar to 0.3.2 ([@cdce8p] - [#129167]) +- Door entity as enum sensor at Home Connect ([@Diegorro98] - [#126158]) +- Add light support to WMS WebControl pro ([@mback2k] - [#128308]) +- Add all models to diagnostics for Cambridge Audio ([@noahhusby] - [#129157]) +- Use TAP to activate Lutron scenes ([@cdheiser] - [#127899]) +- Improve prometheus metric name sanitization ([@rcloran] - [#126967]) +- Update goslide-api to 0.7.0 ([@cdce8p] - [#129168]) +- Enforce strict typing for Cambridge Audio ([@noahhusby] - [#129004]) +- Remove category from Assist satellite entities ([@synesthesiam] - [#129172]) +- Remove check for obsolete "rain_product_available" in meteo_france ([@Passific] - [#128533]) +- Add more Vesync IDs for the Vital200S ([@bru73f0rc3] - [#127616]) +- Update heatmiserV3 to 2.0.3 ([@cdce8p] - [#129175]) +- Fix coffee maker device type name at applicances with programs list at Home Connect ([@Diegorro98] - [#128538]) +- Fix program switches unique ID at Home Connect ([@Diegorro98] - [#128397]) +- Add lock to switchbot_cloud ([@miterion] - [#115128]) +- Add repeat media controls to Bang & Olufsen ([@mj23000] - [#128170]) +- LinkPlay multiroom support ([@silamon] - [#127862]) +- Allow to set `entity picture` on mqtt entity platforms ([@jbouwh] - [#128404]) +- Use translated exceptions for Cambridge Audio ([@noahhusby] - [#129177]) +- Add coordinators to Sense ([@kbickar] - [#129171]) +- Update aiooui to 0.1.7 ([@cdce8p] - [#129179]) +- Fix service target devices by label ([@arturpragacz] - [#127229]) +- Update krakenex to 2.2.2 ([@cdce8p] - [#129185]) +- Add media seek for sources other than Deezer for Bang & Olufsen ([@mj23000] - [#128661]) +- Fix powerview entity unique id migration when the config entry unique id is missing ([@bdraco] - [#129188]) +- Bump plugwise to v1.4.4 ([@bouwew] - [#129170]) +- Fix cambridge_audio RuntimeWarning during tests ([@cdce8p] - [#129191]) +- Create a script service schema based on fields ([@balloob] - [#128622]) +- Fix AsyncMock imports ([@cdce8p] - [#129192]) +- Update radios to 0.3.2 and pycountry to 24.6.1 ([@cdce8p] - [#129186]) +- Update apple_weatherkit to 1.1.3 ([@cdce8p] - [#129193]) +- Add support for Xiaomi Miio Standing Fan 2 (dmaker.fan.p18) ([@bieniu] - [#129160]) +- Bump lcn-frontend to 0.2.0 ([@alengwenus] - [#129061]) +- Add JSON schema for manifest.json ([@autinerd] - [#128560]) +- Migrate Smarty to has entity name ([@joostlek] - [#129145]) +- Move airthings coordinator to separate module ([@epenet] - [#129158]) +- Use runtime_data in aranet ([@epenet] - [#129155]) +- Move brunt coordinator to separate module ([@epenet] - [#129090]) +- Fix rainmachine update entities missing display_precision ([@bdraco] - [#129195]) +- Ensure go2rtc server starts using posix_spawn/vfork ([@bdraco] - [#129196]) +- Move core config class to core_config.py ([@emontnemery] - [#129163]) +- Bump anyio to 4.6.2.post1 ([@bdraco] - [#129199]) +- Add base entity to Spotify ([@joostlek] - [#128847]) +- Fix unused snapshots not triggering failure in CI ([@epenet] - [#128162]) +- Remove support for live recorder data migration of context ids ([@emontnemery] - [#125309]) +- Allow re-discovery of mqtt integration config payloads ([@jbouwh] - [#127362]) +- Bump lacrosse_view to 1.0.3 ([@IceBotYT] - [#129174]) +- Fix race condition in statistics that created spikes ([@unfug-at-github] - [#129066]) +- Refactor licenses check ([@cdce8p] - [#129194]) +- Make minor fixes / doc tweaks to evohome's WaterHeater tests ([@zxdavb] - [#129138]) +- Update gardena-bluetooth to 1.4.4 ([@cdce8p] - [#129202]) +- Update zeroconf to 0.136.0 ([@cdce8p] - [#129204]) +- Add Time platform with alarm clock to Home Connect ([@Diegorro98] - [#126155]) +- Bump pysuezV2 to 0.2.2 ([@jb101010-2] - [#129205]) +- Home connect number platform with temperature set points entities ([@Diegorro98] - [#126145]) +- Bump fyta_cli to 0.6.10 ([@dontinelli] - [#129220]) +- Add logger for fyta library in manifest.json ([@dontinelli] - [#129218]) +- Remove remnants of removed list_events action ([@joostlek] - [#129210]) +- Update aioairzone-cloud to v0.6.9 ([@Noltari] - [#129217]) +- Add more spotify sensors ([@joostlek] - [#129215]) +- Add tests of evohome integration-specific services ([@zxdavb] - [#129206]) +- Fix evohome failing to start with `'NoneType' object has no attribute 'get'` ([@zxdavb] - [#129222]) +- Fix setting brightness to 0 in HomeKit when the On characteristic is not sent ([@bdraco] - [#129201]) +- Add and remove plants (i.e. devices) dynamically in fyta ([@dontinelli] - [#129221]) +- Add dishwasher salt and rinse aid nearly empty sensors ([@boergegrunicke] - [#127762]) +- Revert "Fix unused snapshots not triggering failure in CI" ([@frenck] - [#129223]) +- Fix flaky gardena_ble test ([@gjohansson-ST] - [#129225]) +- Update govee-local-api to 1.5.3 ([@Galorhallen] - [#129226]) +- Add tests for todo platform of Habitica integration ([@tr4nt0r] - [#128199]) +- Fix zha tests for Python 3.13 ([@cdce8p] - [#129241]) +- Update aioairzone-cloud to v0.6.10 ([@Noltari] - [#129227]) +- Add new ZHA Inovelli blue switch strings ([@tleydxdy] - [#127124]) +- Properly validate License-Expression data for licenses check ([@cdce8p] - [#129216]) +- Fix `conntected_to` attribute of device tracker entities in a AVM Fritz mesh setup ([@mib1185] - [#129259]) +- Update uptime deviation interval for Vodafone Station ([@chemelli74] - [#129257]) +- Fix ESPHome media proxy exit criteria ([@emontnemery] - [#129267]) +- Mark PEGELONLINE entries as service ([@mib1185] - [#129278]) +- Add diagnostics platform to PEGELONLINE ([@mib1185] - [#129279]) +- Add battery binary sensor to Yale Smart Alarm ([@gjohansson-ST] - [#129277]) +- Lazy discover for dmaker.fan.1c ([@nicoalonsop] - [#129297]) +- Omit declined Google Calendar events ([@joelhawksley] - [#128900]) +- Use async_start_reauth in blink ([@gjohansson-ST] - [#129281]) +- Use async_start_reauth in xiaomi_miio ([@gjohansson-ST] - [#129282]) +- Use async_start_reauth helper in broadlink ([@epenet] - [#129308]) +- Use start_reauth_flow in apple_tv test ([@gjohansson-ST] - [#129313]) +- Ensure config entry is added to hass in reauth/reconfigure tests ([@epenet] - [#129315]) +- Use start_reauth_flow in permobil tests ([@epenet] - [#129314]) +- Use start_reauth_flow in system_bridge tests ([@epenet] - [#129318]) +- Use reauth_confirm in ovo_energy ([@epenet] - [#129306]) +- Bump velbusaio to 2024.10.0 ([@cereal2nd] - [#129305]) +- Convert WebSocket messages to bytes before passing them to `send_message` ([@bdraco] - [#129300]) +- Assert keys exist in Jewish calendar tests ([@tsvi] - [#129295]) +- Add reconfigure flow to Sensibo ([@gjohansson-ST] - [#129280]) +- Add shuffle media controls to Bang & Olufsen ([@mj23000] - [#129325]) +- React to state report events to increase sample size of statistics ([@unfug-at-github] - [#129211]) +- Add async webrtc offer support ([@edenhaus] - [#127981]) +- Convert async_get_webrtc_client_configuration to a callback ([@edenhaus] - [#129329]) +- Bump ZHA to 0.0.36 ([@TheJulianJES] - [#129247]) +- Bump pychromecast to 14.0.5 ([@emontnemery] - [#129251]) +- Fix CI by running gen_requirements_all.py ([@edenhaus] - [#129339]) +- Hassio logs boots ([@wendevlin] - [#129151]) +- Add ServiceValidationError to Home Connect ([@Diegorro98] - [#129309]) +- Remove media player shuffle check from Cambridge Audio ([@noahhusby] - [#129235]) +- Add switcher s12 support ([@YogevBokobza] - [#127277]) +- Fix go2rtc tests ([@edenhaus] - [#129342]) +- Palazzetti integration ([@dotvav] - [#128259]) +- Add LG ThinQ integration ([@LG-ThinQ-Integration] - [#129299]) +- Add LG ThinQ to LG brand ([@joostlek] - [#129346]) +- Fix spelling mistake in notify ([@dontinelli] - [#129349]) +- Fix calculation of attributes in statistics ([@gjohansson-ST] - [#128475]) +- Use shorthand attribute for available in statistics ([@gjohansson-ST] - [#129354]) +- Allow a fixed number of ffmpeg proxy conversions per device ([@synesthesiam] - [#129246]) +- Use shorthand attribute for native value in statistics ([@gjohansson-ST] - [#129355]) +- Clarify event tracking in docstrings for track_state_change/report ([@gjohansson-ST] - [#129338]) +- Bump yarl to 1.17.0 ([@bdraco] - [#129358]) +- Use URL validation schema for mqtt update `entity_picture` and remove custom implementation ([@jbouwh] - [#129360]) +- Fix flaky DHCP tests in CI ([@epenet] - [#129327]) +- Update nest to use the async WebRTC APIs ([@allenporter] - [#129369]) +- Bump go2rtc binary to 1.9.5 ([@edenhaus] - [#129371]) +- Bump uv to 0.4.28 ([@edenhaus] - [#129372]) +- Enable strict typing for go2rtc ([@edenhaus] - [#129374]) +- Bump webrtc-models to 0.1.0 ([@edenhaus] - [#129373]) +- Run postgres job on ubuntu 24.04 [ci] ([@cdce8p] - [#129381]) +- Fix mariadb recorder tests for Python 3.13 ([@cdce8p] - [#129303]) +- Bump go2rtc-client to 0.0.1b2 ([@edenhaus] - [#129395]) +- Use device name for matter entities ([@piitaya] - [#127798]) +- Report update_percentage in matter update entity ([@emontnemery] - [#129380]) +- Bump thinqconnect to 0.9.9 ([@LG-ThinQ-Integration] - [#129394]) +- Bump protobuf to 5.28.3 ([@bdraco] - [#129370]) +- Go2rtc server start is waiting until we got the api listen stdout line ([@edenhaus] - [#129391]) +- Clean up SensorRestore in Tesla Fleet ([@Bre77] - [#129116]) +- Fix hassfest docker image by pinning Python 3.12 ([@edenhaus] - [#129403]) +- Fix typo in cv.url_no_path ([@emontnemery] - [#129402]) +- Add and remove entities during runtime in Husqvarna Automower ([@Thomas55555] - [#127878]) +- Added deprecation to binary door sensor at Home Connect ([@Diegorro98] - [#129245]) +- Bump habitipy to 0.3.3 ([@tr4nt0r] - [#129322]) +- Update Nest configuration flow to handle upcoming changes to Pub/Sub provisioning ([@allenporter] - [#128909]) +- Use new generic notation in devolo_home_network ([@Shutgun] - [#129080]) +- Add test for extended data in setup for solarlog ([@dontinelli] - [#129345]) +- Bump aiohasupervisor to 0.2.0 ([@mdegat01] - [#129348]) +- Create repair asking user to remove duplicate config entries ([@emontnemery] - [#127948]) +- Change Tibber request spread ([@Danielhiversen] - [#129276]) +- Add smart standby functionality to lamarzocco ([@zweckj] - [#129333]) +- Add own coordinator to devolo_home_network ([@Shutgun] - [#128159]) +- Add support for Lutron HWQS Proc discovery ([@eclair4151] - [#129274]) +- Add number entities to set target temp for cooling programs in ViCare ([@CFenner] - [#127267]) +- Refactor evohome tests as per best practice ([@zxdavb] - [#129229]) +- Cleanup select mappings in lamarzocco ([@zweckj] - [#129407]) +- Fix evohome HVAC modes for VisionPro Wifi systems ([@zxdavb] - [#129161]) +- Fetch power off state for Home Connect appliances' power switch ([@Diegorro98] - [#129289]) +- Add tests for switch platform of Habitica integration ([@tr4nt0r] - [#128204]) +- Fix visualization by inverting open/closed state of patio awnings ([@mback2k] - [#128079]) +- Fix bosch shc multi controller support ([@Vendetta01] - [#127844]) +- Refactor squeezebox integration media_player to use coordinator ([@rajlaud] - [#127695]) +- Fix available conditions for chilling frost and stealth in Habitica ([@tr4nt0r] - [#129234]) +- Continue migration of methods from handler to aiohasupervisor ([@mdegat01] - [#129183]) +- Add timer sensor entity which has rw hour and read-only minute ([@LG-ThinQ-Integration] - [#129413]) +- Add min, max for WATER_HEATER device ([@LG-ThinQ-Integration] - [#129414]) +- Set config_entry explicitely in scrape coordinator ([@epenet] - [#129416]) +- Set config_entry explicitly in switcher kis coordinator ([@epenet] - [#129419]) +- Allow fetching HA url to display it in the network settings ([@MindFreeze] - [#128432]) +- Set config_entry explicitly in history stats coordinator ([@epenet] - [#129417]) +- Fix typo in nest string ([@Betacart] - [#129423]) +- Remove Mobile App config entries, when the related user gets removed ([@mib1185] - [#129268]) +- Fix go2rtc no audio issue ([@edenhaus] - [#129428]) +- Add Smarty versions to device ([@marcodutto] - [#129418]) +- Fix bad falsy-check in homeassistant.set_location service ([@emontnemery] - [#129389]) +- Add support for vacuum cleaners to the Matter integration ([@marcelveldt] - [#129420]) +- Initialise coordinator with config_entry in components (part 1) ([@epenet] - [#128080]) +- Refactor esphome ffmpeg proxy ([@emontnemery] - [#129330]) +- Bump hass-nabucasa to 0.83.0 ([@klejejs] - [#129422]) +- Disable pylint for DevoloScannerEntity ([@Shutgun] - [#129429]) +- Bump go2rtc to 1.9.6 ([@edenhaus] - [#129430]) +- Sort some code in core_config ([@emontnemery] - [#129388]) +- Add Sense Devices for entities ([@kbickar] - [#129182]) +- Report update_percentage in teslemetry update entity ([@emontnemery] - [#129384]) +- Report update_percentage in tessie update entity ([@emontnemery] - [#129385]) +- Report update_percentage in smlight update entity ([@emontnemery] - [#129383]) +- Report update_percentage in esphome update entity ([@emontnemery] - [#129376]) +- Suppress update entity's update_percentage when update not in progress ([@emontnemery] - [#129397]) +- Unexport unavailable metrics in Prometheus ([@agoode] - [#125492]) +- Fix devolo_home_network DataCoordinator arguments ([@cdce8p] - [#129441]) +- Move validation routine out of wallbox coordinator ([@epenet] - [#129415]) +- Remove duplicated entity_picture config from MQTT update entity ([@emontnemery] - [#129390]) +- Report update_percentage in zwave_js update entity ([@emontnemery] - [#129386]) +- Add tests for buttons in Habitica integration ([@tr4nt0r] - [#128194]) +- Improve mapping of myuplink entities ([@astrandb] - [#129137]) +- Bump tplink python-kasa dependency to 0.7.6 ([@sdb9696] - [#129444]) +- Add sensors for energy trends for devices ([@kbickar] - [#129439]) +- Use coordinator async_setup in iotty ([@gjohansson-ST] - [#129449]) +- Use coordinator async_setup in dwd weather ([@gjohansson-ST] - [#129448]) +- Add switch entities for LCN key-locks and regulator-locks ([@alengwenus] - [#127731]) +- Add addon support to Home Assistant Analytics Insights ([@mib1185] - [#128806]) +- Change Tibber get_prices action to return datetimes as str ([@functionpointer] - [#123901]) +- Allow set ScreenCap interval as option for AndroidTV ([@ollo69] - [#124470]) +- Remove LCN translation placeholder key ([@alengwenus] - [#129452]) +- Add cloud ICE server registration ([@klejejs] - [#128942]) +- Bump aioshelly to 12.0.1 ([@thecode] - [#129453]) +- Bump DoorBirdPy to 3.0.7 ([@bdraco] - [#129114]) +- Use new try_connect_all discover command in tplink config flow ([@sdb9696] - [#128994]) +- Add CameraCapabilities ([@edenhaus] - [#128455]) +- Correct condition signalling non-live DB migration is in progress ([@emontnemery] - [#129464]) +- Add calendar platform to Habitica integration ([@tr4nt0r] - [#128248]) +- Bump opower to 0.8.6 ([@kaydenvanrijn] - [#129454]) +- Allow smlight device to reboot before updating firmware data coordinator ([@tl-sl] - [#127442]) +- Improve demo integration's update entity ([@emontnemery] - [#129401]) +- Remove useless code from esphome ffmpeg_proxy tests ([@emontnemery] - [#129481]) +- Add entity_category to avoid header_toggle for switch ([@LG-ThinQ-Integration] - [#129477]) +- Deduplicate wav creation in esphome ffmpeg_proxy tests ([@emontnemery] - [#129484]) +- Bump pydeako to 0.5.4 ([@Balake] - [#129475]) +- Add translation_key in LG ThinQ ([@LG-ThinQ-Integration] - [#129476]) +- Bump go2rtc-client to 0.0.1b3 ([@edenhaus] - [#129486]) +- Fix nexia emergency heat migration ([@bdraco] - [#129365]) +- Update PyViCare dependency to 2.35.0 ([@CFenner] - [#129038]) +- Bump automower-ble to 0.2.0 ([@alistair23] - [#129473]) +- Remove hassio from ALLOWED_USED_COMPONENTS and move some functions to helper ([@edenhaus] - [#127228]) +- Bump aioswitcher to 4.4.0 ([@YogevBokobza] - [#129489]) +- Bump reolink_aio to 0.10.1 ([@starkillerOG] - [#129493]) +- Fix webrtc provider interface and tests ([@MartinHjelmare] - [#129488]) +- Add config entry to go2rtc ([@emontnemery] - [#129436]) +- Improve shutdown of esphome ffmpeg proxy ([@emontnemery] - [#129326]) +- Create repair issue for legacy webrtc provider ([@MartinHjelmare] - [#129334]) +- Refresh Nest WebRTC streams before expiration ([@allenporter] - [#129478]) +- Add audio output select to Cambridge Audio ([@noahhusby] - [#129366]) +- Add reconfigure step to Onkyo config flow ([@arturpragacz] - [#129088]) +- Reolink add TCP push event connection as primary method ([@starkillerOG] - [#129490]) +- Test discovery subscriptions not done when discovery is disabled ([@jbouwh] - [#129458]) +- Pass config_entry explicitly to coordinator in tedee ([@zweckj] - [#129432]) +- Explicitly pass config_entry to coordinator in lamarzocco ([@zweckj] - [#129434]) +- Change type of the config_entry in coordinator in tedee ([@zweckj] - [#129502]) +- Use common translation strings for Habitica ([@tr4nt0r] - [#129498]) +- Add musicassistant integration ([@jozefKruszynski] - [#128919]) +- Add Stun server with port 3478 ([@klejejs] - [#129501]) +- Remove unused snapshots from Habitica ([@tr4nt0r] - [#129499]) +- Bump intents to 2024.10.30 ([@synesthesiam] - [#129505]) +- Allow MQTT device based auto discovery ([@jbouwh] - [#118757]) +- Add progress support to MQTT update platform ([@jbouwh] - [#129468]) +- Update frontend to 20241030.0 ([@piitaya] - [#129508]) +- Bump ZHA dependencies ([@puddly] - [#129510]) +- Add name to description placeholders automatically for reauth flows ([@gjohansson-ST] - [#129232]) +- Raise on non-string unique id for config entry ([@gjohansson-ST] - [#125950]) +- Revert "Add musicassistant integration (#128919)" ([@marcelveldt] - [#129565]) +- Fix timeout issue on Roomba integration when adding a new device ([@AuroreVgn] - [#129230]) +- Fix current temperature calculation for incomfort boiler ([@jbouwh] - [#129496]) +- Bump uiprotect to 6.3.2 ([@cryptk] - [#129513]) +- Fix async_config_entry_first_refresh used after config entry is loaded in speedtestdotcom ([@gjohansson-ST] - [#129527]) +- Bump reolink_aio to 0.10.2 ([@starkillerOG] - [#129528]) +- Missing config_flow in manifest for local_file ([@gjohansson-ST] - [#129529]) +- Fix bthome UnitOfConductivity ([@luca-angemi] - [#129535]) +- Allow importing homeassistant.core.Config until 2025.11 ([@emontnemery] - [#129537]) +- Bump yarl to 1.17.1 ([@bdraco] - [#129539]) +- Fix "home" route in Tesla Fleet & Teslemetry ([@Bre77] - [#129546]) +- Log Reolink select value KeyError only once ([@starkillerOG] - [#129559]) +- Stringify discovered hassio uuid ([@emontnemery] - [#129572]) +- Log type as well as value for unique_id checks ([@epenet] - [#129575]) +- Update frontend to 20241031.0 ([@piitaya] - [#129583]) +- Check for async web offer overrides in camera capabilities ([@sdb9696] - [#129519]) +- Fix Geniushub setup ([@joostlek] - [#129569]) +- Bump spotifyaio to 0.8.1 ([@joostlek] - [#129573]) +- Bump aiohasupervisor to version 0.2.1 ([@emontnemery] - [#129574]) +- Fix flaky camera test ([@epenet] - [#129576]) +- Bump aiowithings to 3.1.1 ([@joostlek] - [#129586]) +- Add go2rtc debug_ui yaml key to enable go2rtc ui ([@edenhaus] - [#129587]) +- Revert "Create a script service schema based on fields" ([@emontnemery] - [#129591]) +- Pin async-timeout to 4.0.3 ([@bdraco] - [#129592]) +- Bump webrtc-models to 0.2.0 ([@edenhaus] - [#129627]) +- Bump spotifyaio to 0.8.2 ([@joostlek] - [#129639]) +- Bump aiohomekit to 3.2.6 ([@bdraco] - [#129640]) +- Bump aioesphomeapi to 27.0.1 ([@bdraco] - [#129643]) +- Bump sensorpush-ble to 1.7.1 ([@bdraco] - [#129657]) +- Bump autarco lib to v3.1.0 ([@klaasnicolaas] - [#129684]) +- Only set ESPHome configuration url to addon if there is an existing configuration for the device ([@jesserockz] - [#129356]) +- Bump Airthings BLE to 0.9.2 ([@LaStrada] - [#129659]) +- Bump python-linkplay to 0.0.17 ([@silamon] - [#129683]) +- Change alexa arm handler to allow switching arm states unless in armed_away mode ([@natekspencer] - [#129701]) +- Bump bring-api to 0.9.1 ([@tr4nt0r] - [#129702]) +- Bump DoorBirdPy to 3.0.8 ([@bdraco] - [#129709]) +- Fix nest streams broken due to CameraCapabilities change ([@allenporter] - [#129711]) +- Add missing translation string to lamarzocco ([@zweckj] - [#129713]) +- Bump HAP-python to 4.9.2 ([@bdraco] - [#129715]) +- Bump spotifyaio to 0.8.3 ([@joostlek] - [#129729]) +- Bump thinqconnect to 1.0.0 ([@LG-ThinQ-Integration] - [#129769]) +- Bump lcn-frontend to 0.2.1 ([@alengwenus] - [#129457]) +- Add watchdog to monitor and respawn go2rtc server ([@emontnemery] - [#129497]) +- Update Spotify state after mutation ([@joostlek] - [#129607]) +- Add state class to precipitation_intensity in Aemet ([@luca-angemi] - [#129670]) +- Bump ayla-iot-unofficial to 1.4.3 ([@crevetor] - [#129743]) +- Use RTCIceCandidate instead of str for candidate ([@edenhaus] - [#129793]) +- Bump yt-dlp to 2024.11.04 ([@joostlek] - [#129794]) +- Fix stringification of discovered hassio uuid ([@emontnemery] - [#129797]) +- Improve error handling in Spotify ([@joostlek] - [#129799]) +- Fix incorrect description placeholders in azure event hub ([@epenet] - [#129803]) +- Update go2rtc stream if stream_source is not matching ([@edenhaus] - [#129804]) +- Fix aborting flows for single config entry integrations ([@emontnemery] - [#129805]) +- Fix create flow logic for single config entry integrations ([@emontnemery] - [#129807]) +- Fix ESPHome dashboard check ([@balloob] - [#129812]) +- Bump python-kasa to 0.7.7 ([@sdb9696] - [#129817]) +- Remove all ice_servers on native sync WebRTC cameras ([@edenhaus] - [#129819]) +- Fix translations in homeworks ([@gjohansson-ST] - [#129824]) +- Update frontend to 20241104.0 ([@bramkragten] - [#129829]) +- Fix translations in landisgyr ([@gjohansson-ST] - [#129831]) +- Fix source mapping in Onkyo ([@arturpragacz] - [#129716]) +- Add HassRespond intent ([@synesthesiam] - [#129755]) +- Fix translation in ovo energy ([@gjohansson-ST] - [#129833]) +- Fix translations in hydrawise ([@gjohansson-ST] - [#129834]) +- Bump reolink-aio to 0.10.3 ([@starkillerOG] - [#129841]) +- Fix unifiprotect supported features being set too late ([@bdraco] - [#129850]) +- Bump uiprotect to 6.4.0 ([@bdraco] - [#129851]) +- Disable SRTP for unifiprotect RTSPS stream ([@bdraco] - [#129852]) +- Add basic testing framework to LG ThinQ ([@joostlek] - [#127785]) +- Adding new on values for Tuya Presence Detection Sensor ([@KunalAggarwal] - [#129801]) +- Skip adding providers if the camera has native WebRTC ([@edenhaus] - [#129808]) +- Validate go2rtc server version ([@emontnemery] - [#129810]) +- Bump pypalazzetti to 0.1.10 ([@dotvav] - [#129832]) +- Bump bimmer_connected to 0.16.4 ([@rikroe] - [#129838]) +- Bump pyfibaro to 0.8.0 ([@KC3BZU] - [#129846]) +- Add repair for add-on boot fail ([@mdegat01] - [#129847]) +- Update snapshot for lg thinq ([@mikey0000] - [#129856]) +- Removed stale translation and improved `set_setting` translation at Home Connect ([@Diegorro98] - [#129878]) +- Append a 1 to all go2rtc ports to avoid port conflicts ([@edenhaus] - [#129881]) +- Log go2rtc output with warning level on error ([@emontnemery] - [#129882]) +- Use default package for yt-dlp ([@joostlek] - [#129886]) +- Map go2rtc log levels to Python log levels ([@emontnemery] - [#129894]) +- Remove timers from LG ThinQ ([@joostlek] - [#129898]) +- Set friendly name of utility meter select entity when configured through YAML ([@dgomes] - [#128267]) +- Prevent update entity becoming unavailable on device disconnect in IronOS ([@tr4nt0r] - [#129840]) +- Change Ollama default to llama3.2 ([@balloob] - [#129901]) +- Improve improv BLE error handling ([@emontnemery] - [#129902]) +- Update frontend to 20241105.0 ([@piitaya] - [#129906]) +- Bump holidays to 0.60 ([@gjohansson-ST] - [#129909]) +- Update pylutron to 0.2.16 ([@kingal123] - [#129653]) +- Bump intents and add HassRespond test ([@synesthesiam] - [#129830]) +- Bump pyTibber to 0.30.4 ([@Danielhiversen] - [#129844]) +- Bump spotifyaio to 0.8.4 ([@joostlek] - [#129899]) +- Map "stop" to MediaPlayerState.IDLE in bluesound integration ([@LouisChrist] - [#129904]) +- Update Bang & Olufsen source list as availability changes ([@mj23000] - [#129910]) +- Disable uv cache ([@edenhaus] - [#129912]) +- Bump reolink_aio to 0.10.4 ([@starkillerOG] - [#129914]) +- Ensure all template names are strings ([@balloob] - [#129921]) +- Adding "peaceful" status as on value to Tuya Presence Sensor ([@KunalAggarwal] - [#129925]) +- Fix native sync WebRTC offer ([@edenhaus] - [#129931]) +- Bump spotifyaio to 0.8.5 ([@joostlek] - [#129938]) +- Write squeezebox player state after query ([@joostlek] - [#129939]) +- Bump go2rtc-client to 0.0.1b4 ([@edenhaus] - [#129942]) +- Delete binary door deprecation issue on unload at Home Connect ([@Diegorro98] - [#129947]) +- Improve error messages in Habitica ([@tr4nt0r] - [#129948]) +- Bump go2rtc-client to 0.0.1b5 ([@edenhaus] - [#129952]) +- Update frontend to 20241106.0 ([@bramkragten] - [#129953]) +- Call async_refresh_providers when camera entity feature changes ([@emontnemery] - [#129941]) +- Remove deprecation issues for LCN once entities removed ([@joostlek] - [#129955]) +- Bump go2rtc-client to 0.1.0 ([@edenhaus] - [#129965]) +- Add state invitation to list access sensor in Bring integration ([@tr4nt0r] - [#129960]) + +[#102871]: https://github.com/home-assistant/core/pull/102871 +[#108171]: https://github.com/home-assistant/core/pull/108171 +[#108326]: https://github.com/home-assistant/core/pull/108326 +[#110057]: https://github.com/home-assistant/core/pull/110057 +[#113849]: https://github.com/home-assistant/core/pull/113849 +[#115128]: https://github.com/home-assistant/core/pull/115128 +[#117319]: https://github.com/home-assistant/core/pull/117319 +[#117657]: https://github.com/home-assistant/core/pull/117657 +[#117955]: https://github.com/home-assistant/core/pull/117955 +[#118757]: https://github.com/home-assistant/core/pull/118757 +[#118770]: https://github.com/home-assistant/core/pull/118770 +[#119203]: https://github.com/home-assistant/core/pull/119203 +[#121466]: https://github.com/home-assistant/core/pull/121466 +[#121970]: https://github.com/home-assistant/core/pull/121970 +[#122330]: https://github.com/home-assistant/core/pull/122330 +[#122589]: https://github.com/home-assistant/core/pull/122589 +[#122590]: https://github.com/home-assistant/core/pull/122590 +[#122759]: https://github.com/home-assistant/core/pull/122759 +[#123031]: https://github.com/home-assistant/core/pull/123031 +[#123061]: https://github.com/home-assistant/core/pull/123061 +[#123427]: https://github.com/home-assistant/core/pull/123427 +[#123444]: https://github.com/home-assistant/core/pull/123444 +[#123758]: https://github.com/home-assistant/core/pull/123758 +[#123901]: https://github.com/home-assistant/core/pull/123901 +[#124282]: https://github.com/home-assistant/core/pull/124282 +[#124373]: https://github.com/home-assistant/core/pull/124373 +[#124410]: https://github.com/home-assistant/core/pull/124410 +[#124470]: https://github.com/home-assistant/core/pull/124470 +[#124562]: https://github.com/home-assistant/core/pull/124562 +[#124723]: https://github.com/home-assistant/core/pull/124723 +[#124936]: https://github.com/home-assistant/core/pull/124936 +[#125051]: https://github.com/home-assistant/core/pull/125051 +[#125097]: https://github.com/home-assistant/core/pull/125097 +[#125243]: https://github.com/home-assistant/core/pull/125243 +[#125282]: https://github.com/home-assistant/core/pull/125282 +[#125307]: https://github.com/home-assistant/core/pull/125307 +[#125309]: https://github.com/home-assistant/core/pull/125309 +[#125388]: https://github.com/home-assistant/core/pull/125388 +[#125472]: https://github.com/home-assistant/core/pull/125472 +[#125492]: https://github.com/home-assistant/core/pull/125492 +[#125530]: https://github.com/home-assistant/core/pull/125530 +[#125631]: https://github.com/home-assistant/core/pull/125631 +[#125822]: https://github.com/home-assistant/core/pull/125822 +[#125835]: https://github.com/home-assistant/core/pull/125835 +[#125864]: https://github.com/home-assistant/core/pull/125864 +[#125913]: https://github.com/home-assistant/core/pull/125913 +[#125917]: https://github.com/home-assistant/core/pull/125917 +[#125918]: https://github.com/home-assistant/core/pull/125918 +[#125950]: https://github.com/home-assistant/core/pull/125950 +[#126044]: https://github.com/home-assistant/core/pull/126044 +[#126081]: https://github.com/home-assistant/core/pull/126081 +[#126143]: https://github.com/home-assistant/core/pull/126143 +[#126144]: https://github.com/home-assistant/core/pull/126144 +[#126145]: https://github.com/home-assistant/core/pull/126145 +[#126155]: https://github.com/home-assistant/core/pull/126155 +[#126158]: https://github.com/home-assistant/core/pull/126158 +[#126268]: https://github.com/home-assistant/core/pull/126268 +[#126283]: https://github.com/home-assistant/core/pull/126283 +[#126291]: https://github.com/home-assistant/core/pull/126291 +[#126350]: https://github.com/home-assistant/core/pull/126350 +[#126402]: https://github.com/home-assistant/core/pull/126402 +[#126438]: https://github.com/home-assistant/core/pull/126438 +[#126439]: https://github.com/home-assistant/core/pull/126439 +[#126445]: https://github.com/home-assistant/core/pull/126445 +[#126461]: https://github.com/home-assistant/core/pull/126461 +[#126570]: https://github.com/home-assistant/core/pull/126570 +[#126584]: https://github.com/home-assistant/core/pull/126584 +[#126606]: https://github.com/home-assistant/core/pull/126606 +[#126611]: https://github.com/home-assistant/core/pull/126611 +[#126656]: https://github.com/home-assistant/core/pull/126656 +[#126661]: https://github.com/home-assistant/core/pull/126661 +[#126673]: https://github.com/home-assistant/core/pull/126673 +[#126679]: https://github.com/home-assistant/core/pull/126679 +[#126681]: https://github.com/home-assistant/core/pull/126681 +[#126689]: https://github.com/home-assistant/core/pull/126689 +[#126707]: https://github.com/home-assistant/core/pull/126707 +[#126721]: https://github.com/home-assistant/core/pull/126721 +[#126729]: https://github.com/home-assistant/core/pull/126729 +[#126733]: https://github.com/home-assistant/core/pull/126733 +[#126735]: https://github.com/home-assistant/core/pull/126735 +[#126737]: https://github.com/home-assistant/core/pull/126737 +[#126739]: https://github.com/home-assistant/core/pull/126739 +[#126741]: https://github.com/home-assistant/core/pull/126741 +[#126747]: https://github.com/home-assistant/core/pull/126747 +[#126759]: https://github.com/home-assistant/core/pull/126759 +[#126760]: https://github.com/home-assistant/core/pull/126760 +[#126761]: https://github.com/home-assistant/core/pull/126761 +[#126773]: https://github.com/home-assistant/core/pull/126773 +[#126776]: https://github.com/home-assistant/core/pull/126776 +[#126779]: https://github.com/home-assistant/core/pull/126779 +[#126780]: https://github.com/home-assistant/core/pull/126780 +[#126781]: https://github.com/home-assistant/core/pull/126781 +[#126798]: https://github.com/home-assistant/core/pull/126798 +[#126801]: https://github.com/home-assistant/core/pull/126801 +[#126802]: https://github.com/home-assistant/core/pull/126802 +[#126803]: https://github.com/home-assistant/core/pull/126803 +[#126804]: https://github.com/home-assistant/core/pull/126804 +[#126805]: https://github.com/home-assistant/core/pull/126805 +[#126810]: https://github.com/home-assistant/core/pull/126810 +[#126812]: https://github.com/home-assistant/core/pull/126812 +[#126818]: https://github.com/home-assistant/core/pull/126818 +[#126821]: https://github.com/home-assistant/core/pull/126821 +[#126822]: https://github.com/home-assistant/core/pull/126822 +[#126842]: https://github.com/home-assistant/core/pull/126842 +[#126844]: https://github.com/home-assistant/core/pull/126844 +[#126853]: https://github.com/home-assistant/core/pull/126853 +[#126854]: https://github.com/home-assistant/core/pull/126854 +[#126858]: https://github.com/home-assistant/core/pull/126858 +[#126863]: https://github.com/home-assistant/core/pull/126863 +[#126870]: https://github.com/home-assistant/core/pull/126870 +[#126881]: https://github.com/home-assistant/core/pull/126881 +[#126887]: https://github.com/home-assistant/core/pull/126887 +[#126888]: https://github.com/home-assistant/core/pull/126888 +[#126890]: https://github.com/home-assistant/core/pull/126890 +[#126891]: https://github.com/home-assistant/core/pull/126891 +[#126892]: https://github.com/home-assistant/core/pull/126892 +[#126894]: https://github.com/home-assistant/core/pull/126894 +[#126895]: https://github.com/home-assistant/core/pull/126895 +[#126896]: https://github.com/home-assistant/core/pull/126896 +[#126897]: https://github.com/home-assistant/core/pull/126897 +[#126898]: https://github.com/home-assistant/core/pull/126898 +[#126899]: https://github.com/home-assistant/core/pull/126899 +[#126905]: https://github.com/home-assistant/core/pull/126905 +[#126908]: https://github.com/home-assistant/core/pull/126908 +[#126915]: https://github.com/home-assistant/core/pull/126915 +[#126917]: https://github.com/home-assistant/core/pull/126917 +[#126925]: https://github.com/home-assistant/core/pull/126925 +[#126931]: https://github.com/home-assistant/core/pull/126931 +[#126936]: https://github.com/home-assistant/core/pull/126936 +[#126941]: https://github.com/home-assistant/core/pull/126941 +[#126945]: https://github.com/home-assistant/core/pull/126945 +[#126947]: https://github.com/home-assistant/core/pull/126947 +[#126950]: https://github.com/home-assistant/core/pull/126950 +[#126951]: https://github.com/home-assistant/core/pull/126951 +[#126952]: https://github.com/home-assistant/core/pull/126952 +[#126953]: https://github.com/home-assistant/core/pull/126953 +[#126956]: https://github.com/home-assistant/core/pull/126956 +[#126958]: https://github.com/home-assistant/core/pull/126958 +[#126959]: https://github.com/home-assistant/core/pull/126959 +[#126963]: https://github.com/home-assistant/core/pull/126963 +[#126964]: https://github.com/home-assistant/core/pull/126964 +[#126966]: https://github.com/home-assistant/core/pull/126966 +[#126967]: https://github.com/home-assistant/core/pull/126967 +[#126971]: https://github.com/home-assistant/core/pull/126971 +[#126989]: https://github.com/home-assistant/core/pull/126989 +[#126992]: https://github.com/home-assistant/core/pull/126992 +[#126995]: https://github.com/home-assistant/core/pull/126995 +[#126999]: https://github.com/home-assistant/core/pull/126999 +[#127000]: https://github.com/home-assistant/core/pull/127000 +[#127005]: https://github.com/home-assistant/core/pull/127005 +[#127006]: https://github.com/home-assistant/core/pull/127006 +[#127016]: https://github.com/home-assistant/core/pull/127016 +[#127022]: https://github.com/home-assistant/core/pull/127022 +[#127026]: https://github.com/home-assistant/core/pull/127026 +[#127038]: https://github.com/home-assistant/core/pull/127038 +[#127042]: https://github.com/home-assistant/core/pull/127042 +[#127043]: https://github.com/home-assistant/core/pull/127043 +[#127044]: https://github.com/home-assistant/core/pull/127044 +[#127069]: https://github.com/home-assistant/core/pull/127069 +[#127070]: https://github.com/home-assistant/core/pull/127070 +[#127071]: https://github.com/home-assistant/core/pull/127071 +[#127073]: https://github.com/home-assistant/core/pull/127073 +[#127075]: https://github.com/home-assistant/core/pull/127075 +[#127077]: https://github.com/home-assistant/core/pull/127077 +[#127078]: https://github.com/home-assistant/core/pull/127078 +[#127079]: https://github.com/home-assistant/core/pull/127079 +[#127080]: https://github.com/home-assistant/core/pull/127080 +[#127081]: https://github.com/home-assistant/core/pull/127081 +[#127082]: https://github.com/home-assistant/core/pull/127082 +[#127083]: https://github.com/home-assistant/core/pull/127083 +[#127084]: https://github.com/home-assistant/core/pull/127084 +[#127086]: https://github.com/home-assistant/core/pull/127086 +[#127087]: https://github.com/home-assistant/core/pull/127087 +[#127088]: https://github.com/home-assistant/core/pull/127088 +[#127089]: https://github.com/home-assistant/core/pull/127089 +[#127090]: https://github.com/home-assistant/core/pull/127090 +[#127093]: https://github.com/home-assistant/core/pull/127093 +[#127094]: https://github.com/home-assistant/core/pull/127094 +[#127098]: https://github.com/home-assistant/core/pull/127098 +[#127100]: https://github.com/home-assistant/core/pull/127100 +[#127101]: https://github.com/home-assistant/core/pull/127101 +[#127104]: https://github.com/home-assistant/core/pull/127104 +[#127105]: https://github.com/home-assistant/core/pull/127105 +[#127106]: https://github.com/home-assistant/core/pull/127106 +[#127107]: https://github.com/home-assistant/core/pull/127107 +[#127108]: https://github.com/home-assistant/core/pull/127108 +[#127110]: https://github.com/home-assistant/core/pull/127110 +[#127111]: https://github.com/home-assistant/core/pull/127111 +[#127112]: https://github.com/home-assistant/core/pull/127112 +[#127113]: https://github.com/home-assistant/core/pull/127113 +[#127115]: https://github.com/home-assistant/core/pull/127115 +[#127122]: https://github.com/home-assistant/core/pull/127122 +[#127124]: https://github.com/home-assistant/core/pull/127124 +[#127137]: https://github.com/home-assistant/core/pull/127137 +[#127140]: https://github.com/home-assistant/core/pull/127140 +[#127141]: https://github.com/home-assistant/core/pull/127141 +[#127144]: https://github.com/home-assistant/core/pull/127144 +[#127154]: https://github.com/home-assistant/core/pull/127154 +[#127156]: https://github.com/home-assistant/core/pull/127156 +[#127157]: https://github.com/home-assistant/core/pull/127157 +[#127158]: https://github.com/home-assistant/core/pull/127158 +[#127159]: https://github.com/home-assistant/core/pull/127159 +[#127160]: https://github.com/home-assistant/core/pull/127160 +[#127161]: https://github.com/home-assistant/core/pull/127161 +[#127162]: https://github.com/home-assistant/core/pull/127162 +[#127163]: https://github.com/home-assistant/core/pull/127163 +[#127164]: https://github.com/home-assistant/core/pull/127164 +[#127165]: https://github.com/home-assistant/core/pull/127165 +[#127166]: https://github.com/home-assistant/core/pull/127166 +[#127168]: https://github.com/home-assistant/core/pull/127168 +[#127169]: https://github.com/home-assistant/core/pull/127169 +[#127170]: https://github.com/home-assistant/core/pull/127170 +[#127171]: https://github.com/home-assistant/core/pull/127171 +[#127172]: https://github.com/home-assistant/core/pull/127172 +[#127173]: https://github.com/home-assistant/core/pull/127173 +[#127174]: https://github.com/home-assistant/core/pull/127174 +[#127175]: https://github.com/home-assistant/core/pull/127175 +[#127176]: https://github.com/home-assistant/core/pull/127176 +[#127178]: https://github.com/home-assistant/core/pull/127178 +[#127180]: https://github.com/home-assistant/core/pull/127180 +[#127181]: https://github.com/home-assistant/core/pull/127181 +[#127182]: https://github.com/home-assistant/core/pull/127182 +[#127185]: https://github.com/home-assistant/core/pull/127185 +[#127186]: https://github.com/home-assistant/core/pull/127186 +[#127188]: https://github.com/home-assistant/core/pull/127188 +[#127189]: https://github.com/home-assistant/core/pull/127189 +[#127191]: https://github.com/home-assistant/core/pull/127191 +[#127192]: https://github.com/home-assistant/core/pull/127192 +[#127193]: https://github.com/home-assistant/core/pull/127193 +[#127194]: https://github.com/home-assistant/core/pull/127194 +[#127196]: https://github.com/home-assistant/core/pull/127196 +[#127197]: https://github.com/home-assistant/core/pull/127197 +[#127198]: https://github.com/home-assistant/core/pull/127198 +[#127200]: https://github.com/home-assistant/core/pull/127200 +[#127201]: https://github.com/home-assistant/core/pull/127201 +[#127202]: https://github.com/home-assistant/core/pull/127202 +[#127203]: https://github.com/home-assistant/core/pull/127203 +[#127204]: https://github.com/home-assistant/core/pull/127204 +[#127205]: https://github.com/home-assistant/core/pull/127205 +[#127206]: https://github.com/home-assistant/core/pull/127206 +[#127207]: https://github.com/home-assistant/core/pull/127207 +[#127208]: https://github.com/home-assistant/core/pull/127208 +[#127209]: https://github.com/home-assistant/core/pull/127209 +[#127210]: https://github.com/home-assistant/core/pull/127210 +[#127211]: https://github.com/home-assistant/core/pull/127211 +[#127212]: https://github.com/home-assistant/core/pull/127212 +[#127223]: https://github.com/home-assistant/core/pull/127223 +[#127224]: https://github.com/home-assistant/core/pull/127224 +[#127225]: https://github.com/home-assistant/core/pull/127225 +[#127228]: https://github.com/home-assistant/core/pull/127228 +[#127229]: https://github.com/home-assistant/core/pull/127229 +[#127235]: https://github.com/home-assistant/core/pull/127235 +[#127238]: https://github.com/home-assistant/core/pull/127238 +[#127248]: https://github.com/home-assistant/core/pull/127248 +[#127249]: https://github.com/home-assistant/core/pull/127249 +[#127252]: https://github.com/home-assistant/core/pull/127252 +[#127253]: https://github.com/home-assistant/core/pull/127253 +[#127259]: https://github.com/home-assistant/core/pull/127259 +[#127262]: https://github.com/home-assistant/core/pull/127262 +[#127267]: https://github.com/home-assistant/core/pull/127267 +[#127270]: https://github.com/home-assistant/core/pull/127270 +[#127271]: https://github.com/home-assistant/core/pull/127271 +[#127273]: https://github.com/home-assistant/core/pull/127273 +[#127274]: https://github.com/home-assistant/core/pull/127274 +[#127276]: https://github.com/home-assistant/core/pull/127276 +[#127277]: https://github.com/home-assistant/core/pull/127277 +[#127278]: https://github.com/home-assistant/core/pull/127278 +[#127279]: https://github.com/home-assistant/core/pull/127279 +[#127281]: https://github.com/home-assistant/core/pull/127281 +[#127282]: https://github.com/home-assistant/core/pull/127282 +[#127283]: https://github.com/home-assistant/core/pull/127283 +[#127284]: https://github.com/home-assistant/core/pull/127284 +[#127285]: https://github.com/home-assistant/core/pull/127285 +[#127287]: https://github.com/home-assistant/core/pull/127287 +[#127288]: https://github.com/home-assistant/core/pull/127288 +[#127289]: https://github.com/home-assistant/core/pull/127289 +[#127290]: https://github.com/home-assistant/core/pull/127290 +[#127293]: https://github.com/home-assistant/core/pull/127293 +[#127294]: https://github.com/home-assistant/core/pull/127294 +[#127295]: https://github.com/home-assistant/core/pull/127295 +[#127296]: https://github.com/home-assistant/core/pull/127296 +[#127297]: https://github.com/home-assistant/core/pull/127297 +[#127298]: https://github.com/home-assistant/core/pull/127298 +[#127299]: https://github.com/home-assistant/core/pull/127299 +[#127300]: https://github.com/home-assistant/core/pull/127300 +[#127301]: https://github.com/home-assistant/core/pull/127301 +[#127302]: https://github.com/home-assistant/core/pull/127302 +[#127303]: https://github.com/home-assistant/core/pull/127303 +[#127304]: https://github.com/home-assistant/core/pull/127304 +[#127305]: https://github.com/home-assistant/core/pull/127305 +[#127306]: https://github.com/home-assistant/core/pull/127306 +[#127308]: https://github.com/home-assistant/core/pull/127308 +[#127309]: https://github.com/home-assistant/core/pull/127309 +[#127310]: https://github.com/home-assistant/core/pull/127310 +[#127311]: https://github.com/home-assistant/core/pull/127311 +[#127312]: https://github.com/home-assistant/core/pull/127312 +[#127313]: https://github.com/home-assistant/core/pull/127313 +[#127314]: https://github.com/home-assistant/core/pull/127314 +[#127316]: https://github.com/home-assistant/core/pull/127316 +[#127318]: https://github.com/home-assistant/core/pull/127318 +[#127319]: https://github.com/home-assistant/core/pull/127319 +[#127320]: https://github.com/home-assistant/core/pull/127320 +[#127321]: https://github.com/home-assistant/core/pull/127321 +[#127323]: https://github.com/home-assistant/core/pull/127323 +[#127324]: https://github.com/home-assistant/core/pull/127324 +[#127325]: https://github.com/home-assistant/core/pull/127325 +[#127326]: https://github.com/home-assistant/core/pull/127326 +[#127327]: https://github.com/home-assistant/core/pull/127327 +[#127328]: https://github.com/home-assistant/core/pull/127328 +[#127329]: https://github.com/home-assistant/core/pull/127329 +[#127332]: https://github.com/home-assistant/core/pull/127332 +[#127334]: https://github.com/home-assistant/core/pull/127334 +[#127339]: https://github.com/home-assistant/core/pull/127339 +[#127341]: https://github.com/home-assistant/core/pull/127341 +[#127342]: https://github.com/home-assistant/core/pull/127342 +[#127344]: https://github.com/home-assistant/core/pull/127344 +[#127345]: https://github.com/home-assistant/core/pull/127345 +[#127346]: https://github.com/home-assistant/core/pull/127346 +[#127349]: https://github.com/home-assistant/core/pull/127349 +[#127351]: https://github.com/home-assistant/core/pull/127351 +[#127353]: https://github.com/home-assistant/core/pull/127353 +[#127354]: https://github.com/home-assistant/core/pull/127354 +[#127355]: https://github.com/home-assistant/core/pull/127355 +[#127362]: https://github.com/home-assistant/core/pull/127362 +[#127381]: https://github.com/home-assistant/core/pull/127381 +[#127382]: https://github.com/home-assistant/core/pull/127382 +[#127384]: https://github.com/home-assistant/core/pull/127384 +[#127385]: https://github.com/home-assistant/core/pull/127385 +[#127386]: https://github.com/home-assistant/core/pull/127386 +[#127387]: https://github.com/home-assistant/core/pull/127387 +[#127389]: https://github.com/home-assistant/core/pull/127389 +[#127390]: https://github.com/home-assistant/core/pull/127390 +[#127391]: https://github.com/home-assistant/core/pull/127391 +[#127392]: https://github.com/home-assistant/core/pull/127392 +[#127393]: https://github.com/home-assistant/core/pull/127393 +[#127398]: https://github.com/home-assistant/core/pull/127398 +[#127405]: https://github.com/home-assistant/core/pull/127405 +[#127412]: https://github.com/home-assistant/core/pull/127412 +[#127414]: https://github.com/home-assistant/core/pull/127414 +[#127417]: https://github.com/home-assistant/core/pull/127417 +[#127419]: https://github.com/home-assistant/core/pull/127419 +[#127423]: https://github.com/home-assistant/core/pull/127423 +[#127424]: https://github.com/home-assistant/core/pull/127424 +[#127426]: https://github.com/home-assistant/core/pull/127426 +[#127429]: https://github.com/home-assistant/core/pull/127429 +[#127430]: https://github.com/home-assistant/core/pull/127430 +[#127432]: https://github.com/home-assistant/core/pull/127432 +[#127433]: https://github.com/home-assistant/core/pull/127433 +[#127434]: https://github.com/home-assistant/core/pull/127434 +[#127435]: https://github.com/home-assistant/core/pull/127435 +[#127436]: https://github.com/home-assistant/core/pull/127436 +[#127437]: https://github.com/home-assistant/core/pull/127437 +[#127438]: https://github.com/home-assistant/core/pull/127438 +[#127439]: https://github.com/home-assistant/core/pull/127439 +[#127440]: https://github.com/home-assistant/core/pull/127440 +[#127441]: https://github.com/home-assistant/core/pull/127441 +[#127442]: https://github.com/home-assistant/core/pull/127442 +[#127443]: https://github.com/home-assistant/core/pull/127443 +[#127444]: https://github.com/home-assistant/core/pull/127444 +[#127445]: https://github.com/home-assistant/core/pull/127445 +[#127446]: https://github.com/home-assistant/core/pull/127446 +[#127447]: https://github.com/home-assistant/core/pull/127447 +[#127448]: https://github.com/home-assistant/core/pull/127448 +[#127450]: https://github.com/home-assistant/core/pull/127450 +[#127456]: https://github.com/home-assistant/core/pull/127456 +[#127457]: https://github.com/home-assistant/core/pull/127457 +[#127459]: https://github.com/home-assistant/core/pull/127459 +[#127461]: https://github.com/home-assistant/core/pull/127461 +[#127464]: https://github.com/home-assistant/core/pull/127464 +[#127465]: https://github.com/home-assistant/core/pull/127465 +[#127467]: https://github.com/home-assistant/core/pull/127467 +[#127468]: https://github.com/home-assistant/core/pull/127468 +[#127474]: https://github.com/home-assistant/core/pull/127474 +[#127475]: https://github.com/home-assistant/core/pull/127475 +[#127477]: https://github.com/home-assistant/core/pull/127477 +[#127481]: https://github.com/home-assistant/core/pull/127481 +[#127482]: https://github.com/home-assistant/core/pull/127482 +[#127484]: https://github.com/home-assistant/core/pull/127484 +[#127495]: https://github.com/home-assistant/core/pull/127495 +[#127497]: https://github.com/home-assistant/core/pull/127497 +[#127503]: https://github.com/home-assistant/core/pull/127503 +[#127505]: https://github.com/home-assistant/core/pull/127505 +[#127522]: https://github.com/home-assistant/core/pull/127522 +[#127523]: https://github.com/home-assistant/core/pull/127523 +[#127524]: https://github.com/home-assistant/core/pull/127524 +[#127525]: https://github.com/home-assistant/core/pull/127525 +[#127527]: https://github.com/home-assistant/core/pull/127527 +[#127530]: https://github.com/home-assistant/core/pull/127530 +[#127532]: https://github.com/home-assistant/core/pull/127532 +[#127533]: https://github.com/home-assistant/core/pull/127533 +[#127534]: https://github.com/home-assistant/core/pull/127534 +[#127540]: https://github.com/home-assistant/core/pull/127540 +[#127541]: https://github.com/home-assistant/core/pull/127541 +[#127546]: https://github.com/home-assistant/core/pull/127546 +[#127553]: https://github.com/home-assistant/core/pull/127553 +[#127559]: https://github.com/home-assistant/core/pull/127559 +[#127561]: https://github.com/home-assistant/core/pull/127561 +[#127564]: https://github.com/home-assistant/core/pull/127564 +[#127565]: https://github.com/home-assistant/core/pull/127565 +[#127572]: https://github.com/home-assistant/core/pull/127572 +[#127573]: https://github.com/home-assistant/core/pull/127573 +[#127583]: https://github.com/home-assistant/core/pull/127583 +[#127584]: https://github.com/home-assistant/core/pull/127584 +[#127587]: https://github.com/home-assistant/core/pull/127587 +[#127592]: https://github.com/home-assistant/core/pull/127592 +[#127594]: https://github.com/home-assistant/core/pull/127594 +[#127596]: https://github.com/home-assistant/core/pull/127596 +[#127597]: https://github.com/home-assistant/core/pull/127597 +[#127603]: https://github.com/home-assistant/core/pull/127603 +[#127611]: https://github.com/home-assistant/core/pull/127611 +[#127612]: https://github.com/home-assistant/core/pull/127612 +[#127616]: https://github.com/home-assistant/core/pull/127616 +[#127627]: https://github.com/home-assistant/core/pull/127627 +[#127628]: https://github.com/home-assistant/core/pull/127628 +[#127631]: https://github.com/home-assistant/core/pull/127631 +[#127642]: https://github.com/home-assistant/core/pull/127642 +[#127646]: https://github.com/home-assistant/core/pull/127646 +[#127651]: https://github.com/home-assistant/core/pull/127651 +[#127668]: https://github.com/home-assistant/core/pull/127668 +[#127673]: https://github.com/home-assistant/core/pull/127673 +[#127678]: https://github.com/home-assistant/core/pull/127678 +[#127683]: https://github.com/home-assistant/core/pull/127683 +[#127684]: https://github.com/home-assistant/core/pull/127684 +[#127686]: https://github.com/home-assistant/core/pull/127686 +[#127688]: https://github.com/home-assistant/core/pull/127688 +[#127690]: https://github.com/home-assistant/core/pull/127690 +[#127692]: https://github.com/home-assistant/core/pull/127692 +[#127695]: https://github.com/home-assistant/core/pull/127695 +[#127696]: https://github.com/home-assistant/core/pull/127696 +[#127701]: https://github.com/home-assistant/core/pull/127701 +[#127702]: https://github.com/home-assistant/core/pull/127702 +[#127703]: https://github.com/home-assistant/core/pull/127703 +[#127704]: https://github.com/home-assistant/core/pull/127704 +[#127710]: https://github.com/home-assistant/core/pull/127710 +[#127713]: https://github.com/home-assistant/core/pull/127713 +[#127724]: https://github.com/home-assistant/core/pull/127724 +[#127726]: https://github.com/home-assistant/core/pull/127726 +[#127728]: https://github.com/home-assistant/core/pull/127728 +[#127731]: https://github.com/home-assistant/core/pull/127731 +[#127734]: https://github.com/home-assistant/core/pull/127734 +[#127736]: https://github.com/home-assistant/core/pull/127736 +[#127754]: https://github.com/home-assistant/core/pull/127754 +[#127756]: https://github.com/home-assistant/core/pull/127756 +[#127761]: https://github.com/home-assistant/core/pull/127761 +[#127762]: https://github.com/home-assistant/core/pull/127762 +[#127765]: https://github.com/home-assistant/core/pull/127765 +[#127767]: https://github.com/home-assistant/core/pull/127767 +[#127770]: https://github.com/home-assistant/core/pull/127770 +[#127774]: https://github.com/home-assistant/core/pull/127774 +[#127775]: https://github.com/home-assistant/core/pull/127775 +[#127776]: https://github.com/home-assistant/core/pull/127776 +[#127777]: https://github.com/home-assistant/core/pull/127777 +[#127781]: https://github.com/home-assistant/core/pull/127781 +[#127782]: https://github.com/home-assistant/core/pull/127782 +[#127783]: https://github.com/home-assistant/core/pull/127783 +[#127785]: https://github.com/home-assistant/core/pull/127785 +[#127791]: https://github.com/home-assistant/core/pull/127791 +[#127793]: https://github.com/home-assistant/core/pull/127793 +[#127797]: https://github.com/home-assistant/core/pull/127797 +[#127798]: https://github.com/home-assistant/core/pull/127798 +[#127799]: https://github.com/home-assistant/core/pull/127799 +[#127802]: https://github.com/home-assistant/core/pull/127802 +[#127808]: https://github.com/home-assistant/core/pull/127808 +[#127813]: https://github.com/home-assistant/core/pull/127813 +[#127816]: https://github.com/home-assistant/core/pull/127816 +[#127817]: https://github.com/home-assistant/core/pull/127817 +[#127819]: https://github.com/home-assistant/core/pull/127819 +[#127822]: https://github.com/home-assistant/core/pull/127822 +[#127823]: https://github.com/home-assistant/core/pull/127823 +[#127825]: https://github.com/home-assistant/core/pull/127825 +[#127828]: https://github.com/home-assistant/core/pull/127828 +[#127829]: https://github.com/home-assistant/core/pull/127829 +[#127831]: https://github.com/home-assistant/core/pull/127831 +[#127833]: https://github.com/home-assistant/core/pull/127833 +[#127835]: https://github.com/home-assistant/core/pull/127835 +[#127838]: https://github.com/home-assistant/core/pull/127838 +[#127839]: https://github.com/home-assistant/core/pull/127839 +[#127844]: https://github.com/home-assistant/core/pull/127844 +[#127847]: https://github.com/home-assistant/core/pull/127847 +[#127850]: https://github.com/home-assistant/core/pull/127850 +[#127852]: https://github.com/home-assistant/core/pull/127852 +[#127853]: https://github.com/home-assistant/core/pull/127853 +[#127854]: https://github.com/home-assistant/core/pull/127854 +[#127855]: https://github.com/home-assistant/core/pull/127855 +[#127856]: https://github.com/home-assistant/core/pull/127856 +[#127857]: https://github.com/home-assistant/core/pull/127857 +[#127862]: https://github.com/home-assistant/core/pull/127862 +[#127863]: https://github.com/home-assistant/core/pull/127863 +[#127870]: https://github.com/home-assistant/core/pull/127870 +[#127872]: https://github.com/home-assistant/core/pull/127872 +[#127878]: https://github.com/home-assistant/core/pull/127878 +[#127880]: https://github.com/home-assistant/core/pull/127880 +[#127882]: https://github.com/home-assistant/core/pull/127882 +[#127883]: https://github.com/home-assistant/core/pull/127883 +[#127884]: https://github.com/home-assistant/core/pull/127884 +[#127888]: https://github.com/home-assistant/core/pull/127888 +[#127899]: https://github.com/home-assistant/core/pull/127899 +[#127900]: https://github.com/home-assistant/core/pull/127900 +[#127902]: https://github.com/home-assistant/core/pull/127902 +[#127903]: https://github.com/home-assistant/core/pull/127903 +[#127904]: https://github.com/home-assistant/core/pull/127904 +[#127905]: https://github.com/home-assistant/core/pull/127905 +[#127906]: https://github.com/home-assistant/core/pull/127906 +[#127907]: https://github.com/home-assistant/core/pull/127907 +[#127908]: https://github.com/home-assistant/core/pull/127908 +[#127910]: https://github.com/home-assistant/core/pull/127910 +[#127911]: https://github.com/home-assistant/core/pull/127911 +[#127913]: https://github.com/home-assistant/core/pull/127913 +[#127915]: https://github.com/home-assistant/core/pull/127915 +[#127919]: https://github.com/home-assistant/core/pull/127919 +[#127921]: https://github.com/home-assistant/core/pull/127921 +[#127922]: https://github.com/home-assistant/core/pull/127922 +[#127924]: https://github.com/home-assistant/core/pull/127924 +[#127927]: https://github.com/home-assistant/core/pull/127927 +[#127928]: https://github.com/home-assistant/core/pull/127928 +[#127929]: https://github.com/home-assistant/core/pull/127929 +[#127930]: https://github.com/home-assistant/core/pull/127930 +[#127932]: https://github.com/home-assistant/core/pull/127932 +[#127935]: https://github.com/home-assistant/core/pull/127935 +[#127937]: https://github.com/home-assistant/core/pull/127937 +[#127946]: https://github.com/home-assistant/core/pull/127946 +[#127948]: https://github.com/home-assistant/core/pull/127948 +[#127949]: https://github.com/home-assistant/core/pull/127949 +[#127952]: https://github.com/home-assistant/core/pull/127952 +[#127961]: https://github.com/home-assistant/core/pull/127961 +[#127962]: https://github.com/home-assistant/core/pull/127962 +[#127965]: https://github.com/home-assistant/core/pull/127965 +[#127975]: https://github.com/home-assistant/core/pull/127975 +[#127976]: https://github.com/home-assistant/core/pull/127976 +[#127977]: https://github.com/home-assistant/core/pull/127977 +[#127980]: https://github.com/home-assistant/core/pull/127980 +[#127981]: https://github.com/home-assistant/core/pull/127981 +[#127988]: https://github.com/home-assistant/core/pull/127988 +[#127989]: https://github.com/home-assistant/core/pull/127989 +[#127990]: https://github.com/home-assistant/core/pull/127990 +[#127993]: https://github.com/home-assistant/core/pull/127993 +[#127994]: https://github.com/home-assistant/core/pull/127994 +[#127995]: https://github.com/home-assistant/core/pull/127995 +[#127998]: https://github.com/home-assistant/core/pull/127998 +[#127999]: https://github.com/home-assistant/core/pull/127999 +[#128001]: https://github.com/home-assistant/core/pull/128001 +[#128002]: https://github.com/home-assistant/core/pull/128002 +[#128003]: https://github.com/home-assistant/core/pull/128003 +[#128005]: https://github.com/home-assistant/core/pull/128005 +[#128006]: https://github.com/home-assistant/core/pull/128006 +[#128008]: https://github.com/home-assistant/core/pull/128008 +[#128010]: https://github.com/home-assistant/core/pull/128010 +[#128011]: https://github.com/home-assistant/core/pull/128011 +[#128012]: https://github.com/home-assistant/core/pull/128012 +[#128013]: https://github.com/home-assistant/core/pull/128013 +[#128014]: https://github.com/home-assistant/core/pull/128014 +[#128016]: https://github.com/home-assistant/core/pull/128016 +[#128017]: https://github.com/home-assistant/core/pull/128017 +[#128018]: https://github.com/home-assistant/core/pull/128018 +[#128019]: https://github.com/home-assistant/core/pull/128019 +[#128021]: https://github.com/home-assistant/core/pull/128021 +[#128022]: https://github.com/home-assistant/core/pull/128022 +[#128023]: https://github.com/home-assistant/core/pull/128023 +[#128024]: https://github.com/home-assistant/core/pull/128024 +[#128025]: https://github.com/home-assistant/core/pull/128025 +[#128026]: https://github.com/home-assistant/core/pull/128026 +[#128028]: https://github.com/home-assistant/core/pull/128028 +[#128029]: https://github.com/home-assistant/core/pull/128029 +[#128030]: https://github.com/home-assistant/core/pull/128030 +[#128031]: https://github.com/home-assistant/core/pull/128031 +[#128032]: https://github.com/home-assistant/core/pull/128032 +[#128037]: https://github.com/home-assistant/core/pull/128037 +[#128038]: https://github.com/home-assistant/core/pull/128038 +[#128039]: https://github.com/home-assistant/core/pull/128039 +[#128042]: https://github.com/home-assistant/core/pull/128042 +[#128043]: https://github.com/home-assistant/core/pull/128043 +[#128044]: https://github.com/home-assistant/core/pull/128044 +[#128053]: https://github.com/home-assistant/core/pull/128053 +[#128056]: https://github.com/home-assistant/core/pull/128056 +[#128058]: https://github.com/home-assistant/core/pull/128058 +[#128059]: https://github.com/home-assistant/core/pull/128059 +[#128060]: https://github.com/home-assistant/core/pull/128060 +[#128062]: https://github.com/home-assistant/core/pull/128062 +[#128066]: https://github.com/home-assistant/core/pull/128066 +[#128073]: https://github.com/home-assistant/core/pull/128073 +[#128074]: https://github.com/home-assistant/core/pull/128074 +[#128075]: https://github.com/home-assistant/core/pull/128075 +[#128078]: https://github.com/home-assistant/core/pull/128078 +[#128079]: https://github.com/home-assistant/core/pull/128079 +[#128080]: https://github.com/home-assistant/core/pull/128080 +[#128082]: https://github.com/home-assistant/core/pull/128082 +[#128086]: https://github.com/home-assistant/core/pull/128086 +[#128087]: https://github.com/home-assistant/core/pull/128087 +[#128089]: https://github.com/home-assistant/core/pull/128089 +[#128095]: https://github.com/home-assistant/core/pull/128095 +[#128099]: https://github.com/home-assistant/core/pull/128099 +[#128114]: https://github.com/home-assistant/core/pull/128114 +[#128115]: https://github.com/home-assistant/core/pull/128115 +[#128121]: https://github.com/home-assistant/core/pull/128121 +[#128128]: https://github.com/home-assistant/core/pull/128128 +[#128131]: https://github.com/home-assistant/core/pull/128131 +[#128135]: https://github.com/home-assistant/core/pull/128135 +[#128139]: https://github.com/home-assistant/core/pull/128139 +[#128140]: https://github.com/home-assistant/core/pull/128140 +[#128145]: https://github.com/home-assistant/core/pull/128145 +[#128146]: https://github.com/home-assistant/core/pull/128146 +[#128147]: https://github.com/home-assistant/core/pull/128147 +[#128148]: https://github.com/home-assistant/core/pull/128148 +[#128151]: https://github.com/home-assistant/core/pull/128151 +[#128152]: https://github.com/home-assistant/core/pull/128152 +[#128153]: https://github.com/home-assistant/core/pull/128153 +[#128158]: https://github.com/home-assistant/core/pull/128158 +[#128159]: https://github.com/home-assistant/core/pull/128159 +[#128160]: https://github.com/home-assistant/core/pull/128160 +[#128162]: https://github.com/home-assistant/core/pull/128162 +[#128170]: https://github.com/home-assistant/core/pull/128170 +[#128173]: https://github.com/home-assistant/core/pull/128173 +[#128174]: https://github.com/home-assistant/core/pull/128174 +[#128177]: https://github.com/home-assistant/core/pull/128177 +[#128178]: https://github.com/home-assistant/core/pull/128178 +[#128179]: https://github.com/home-assistant/core/pull/128179 +[#128185]: https://github.com/home-assistant/core/pull/128185 +[#128186]: https://github.com/home-assistant/core/pull/128186 +[#128189]: https://github.com/home-assistant/core/pull/128189 +[#128191]: https://github.com/home-assistant/core/pull/128191 +[#128194]: https://github.com/home-assistant/core/pull/128194 +[#128197]: https://github.com/home-assistant/core/pull/128197 +[#128199]: https://github.com/home-assistant/core/pull/128199 +[#128201]: https://github.com/home-assistant/core/pull/128201 +[#128202]: https://github.com/home-assistant/core/pull/128202 +[#128204]: https://github.com/home-assistant/core/pull/128204 +[#128205]: https://github.com/home-assistant/core/pull/128205 +[#128206]: https://github.com/home-assistant/core/pull/128206 +[#128207]: https://github.com/home-assistant/core/pull/128207 +[#128213]: https://github.com/home-assistant/core/pull/128213 +[#128215]: https://github.com/home-assistant/core/pull/128215 +[#128231]: https://github.com/home-assistant/core/pull/128231 +[#128234]: https://github.com/home-assistant/core/pull/128234 +[#128237]: https://github.com/home-assistant/core/pull/128237 +[#128248]: https://github.com/home-assistant/core/pull/128248 +[#128251]: https://github.com/home-assistant/core/pull/128251 +[#128256]: https://github.com/home-assistant/core/pull/128256 +[#128257]: https://github.com/home-assistant/core/pull/128257 +[#128259]: https://github.com/home-assistant/core/pull/128259 +[#128267]: https://github.com/home-assistant/core/pull/128267 +[#128268]: https://github.com/home-assistant/core/pull/128268 +[#128278]: https://github.com/home-assistant/core/pull/128278 +[#128286]: https://github.com/home-assistant/core/pull/128286 +[#128287]: https://github.com/home-assistant/core/pull/128287 +[#128289]: https://github.com/home-assistant/core/pull/128289 +[#128292]: https://github.com/home-assistant/core/pull/128292 +[#128296]: https://github.com/home-assistant/core/pull/128296 +[#128297]: https://github.com/home-assistant/core/pull/128297 +[#128298]: https://github.com/home-assistant/core/pull/128298 +[#128299]: https://github.com/home-assistant/core/pull/128299 +[#128308]: https://github.com/home-assistant/core/pull/128308 +[#128309]: https://github.com/home-assistant/core/pull/128309 +[#128315]: https://github.com/home-assistant/core/pull/128315 +[#128318]: https://github.com/home-assistant/core/pull/128318 +[#128319]: https://github.com/home-assistant/core/pull/128319 +[#128320]: https://github.com/home-assistant/core/pull/128320 +[#128321]: https://github.com/home-assistant/core/pull/128321 +[#128324]: https://github.com/home-assistant/core/pull/128324 +[#128334]: https://github.com/home-assistant/core/pull/128334 +[#128335]: https://github.com/home-assistant/core/pull/128335 +[#128338]: https://github.com/home-assistant/core/pull/128338 +[#128339]: https://github.com/home-assistant/core/pull/128339 +[#128340]: https://github.com/home-assistant/core/pull/128340 +[#128344]: https://github.com/home-assistant/core/pull/128344 +[#128345]: https://github.com/home-assistant/core/pull/128345 +[#128349]: https://github.com/home-assistant/core/pull/128349 +[#128352]: https://github.com/home-assistant/core/pull/128352 +[#128353]: https://github.com/home-assistant/core/pull/128353 +[#128354]: https://github.com/home-assistant/core/pull/128354 +[#128356]: https://github.com/home-assistant/core/pull/128356 +[#128357]: https://github.com/home-assistant/core/pull/128357 +[#128362]: https://github.com/home-assistant/core/pull/128362 +[#128363]: https://github.com/home-assistant/core/pull/128363 +[#128364]: https://github.com/home-assistant/core/pull/128364 +[#128369]: https://github.com/home-assistant/core/pull/128369 +[#128371]: https://github.com/home-assistant/core/pull/128371 +[#128383]: https://github.com/home-assistant/core/pull/128383 +[#128384]: https://github.com/home-assistant/core/pull/128384 +[#128385]: https://github.com/home-assistant/core/pull/128385 +[#128386]: https://github.com/home-assistant/core/pull/128386 +[#128387]: https://github.com/home-assistant/core/pull/128387 +[#128390]: https://github.com/home-assistant/core/pull/128390 +[#128391]: https://github.com/home-assistant/core/pull/128391 +[#128394]: https://github.com/home-assistant/core/pull/128394 +[#128397]: https://github.com/home-assistant/core/pull/128397 +[#128402]: https://github.com/home-assistant/core/pull/128402 +[#128404]: https://github.com/home-assistant/core/pull/128404 +[#128411]: https://github.com/home-assistant/core/pull/128411 +[#128412]: https://github.com/home-assistant/core/pull/128412 +[#128413]: https://github.com/home-assistant/core/pull/128413 +[#128418]: https://github.com/home-assistant/core/pull/128418 +[#128419]: https://github.com/home-assistant/core/pull/128419 +[#128420]: https://github.com/home-assistant/core/pull/128420 +[#128422]: https://github.com/home-assistant/core/pull/128422 +[#128423]: https://github.com/home-assistant/core/pull/128423 +[#128425]: https://github.com/home-assistant/core/pull/128425 +[#128426]: https://github.com/home-assistant/core/pull/128426 +[#128430]: https://github.com/home-assistant/core/pull/128430 +[#128431]: https://github.com/home-assistant/core/pull/128431 +[#128432]: https://github.com/home-assistant/core/pull/128432 +[#128434]: https://github.com/home-assistant/core/pull/128434 +[#128440]: https://github.com/home-assistant/core/pull/128440 +[#128441]: https://github.com/home-assistant/core/pull/128441 +[#128444]: https://github.com/home-assistant/core/pull/128444 +[#128445]: https://github.com/home-assistant/core/pull/128445 +[#128447]: https://github.com/home-assistant/core/pull/128447 +[#128448]: https://github.com/home-assistant/core/pull/128448 +[#128449]: https://github.com/home-assistant/core/pull/128449 +[#128450]: https://github.com/home-assistant/core/pull/128450 +[#128452]: https://github.com/home-assistant/core/pull/128452 +[#128454]: https://github.com/home-assistant/core/pull/128454 +[#128455]: https://github.com/home-assistant/core/pull/128455 +[#128456]: https://github.com/home-assistant/core/pull/128456 +[#128457]: https://github.com/home-assistant/core/pull/128457 +[#128475]: https://github.com/home-assistant/core/pull/128475 +[#128481]: https://github.com/home-assistant/core/pull/128481 +[#128484]: https://github.com/home-assistant/core/pull/128484 +[#128488]: https://github.com/home-assistant/core/pull/128488 +[#128490]: https://github.com/home-assistant/core/pull/128490 +[#128498]: https://github.com/home-assistant/core/pull/128498 +[#128499]: https://github.com/home-assistant/core/pull/128499 +[#128508]: https://github.com/home-assistant/core/pull/128508 +[#128517]: https://github.com/home-assistant/core/pull/128517 +[#128518]: https://github.com/home-assistant/core/pull/128518 +[#128521]: https://github.com/home-assistant/core/pull/128521 +[#128525]: https://github.com/home-assistant/core/pull/128525 +[#128527]: https://github.com/home-assistant/core/pull/128527 +[#128529]: https://github.com/home-assistant/core/pull/128529 +[#128530]: https://github.com/home-assistant/core/pull/128530 +[#128532]: https://github.com/home-assistant/core/pull/128532 +[#128533]: https://github.com/home-assistant/core/pull/128533 +[#128535]: https://github.com/home-assistant/core/pull/128535 +[#128536]: https://github.com/home-assistant/core/pull/128536 +[#128538]: https://github.com/home-assistant/core/pull/128538 +[#128539]: https://github.com/home-assistant/core/pull/128539 +[#128542]: https://github.com/home-assistant/core/pull/128542 +[#128545]: https://github.com/home-assistant/core/pull/128545 +[#128548]: https://github.com/home-assistant/core/pull/128548 +[#128549]: https://github.com/home-assistant/core/pull/128549 +[#128560]: https://github.com/home-assistant/core/pull/128560 +[#128561]: https://github.com/home-assistant/core/pull/128561 +[#128566]: https://github.com/home-assistant/core/pull/128566 +[#128567]: https://github.com/home-assistant/core/pull/128567 +[#128568]: https://github.com/home-assistant/core/pull/128568 +[#128569]: https://github.com/home-assistant/core/pull/128569 +[#128570]: https://github.com/home-assistant/core/pull/128570 +[#128571]: https://github.com/home-assistant/core/pull/128571 +[#128573]: https://github.com/home-assistant/core/pull/128573 +[#128576]: https://github.com/home-assistant/core/pull/128576 +[#128578]: https://github.com/home-assistant/core/pull/128578 +[#128579]: https://github.com/home-assistant/core/pull/128579 +[#128580]: https://github.com/home-assistant/core/pull/128580 +[#128582]: https://github.com/home-assistant/core/pull/128582 +[#128583]: https://github.com/home-assistant/core/pull/128583 +[#128584]: https://github.com/home-assistant/core/pull/128584 +[#128585]: https://github.com/home-assistant/core/pull/128585 +[#128586]: https://github.com/home-assistant/core/pull/128586 +[#128587]: https://github.com/home-assistant/core/pull/128587 +[#128589]: https://github.com/home-assistant/core/pull/128589 +[#128590]: https://github.com/home-assistant/core/pull/128590 +[#128591]: https://github.com/home-assistant/core/pull/128591 +[#128592]: https://github.com/home-assistant/core/pull/128592 +[#128599]: https://github.com/home-assistant/core/pull/128599 +[#128601]: https://github.com/home-assistant/core/pull/128601 +[#128602]: https://github.com/home-assistant/core/pull/128602 +[#128603]: https://github.com/home-assistant/core/pull/128603 +[#128604]: https://github.com/home-assistant/core/pull/128604 +[#128608]: https://github.com/home-assistant/core/pull/128608 +[#128610]: https://github.com/home-assistant/core/pull/128610 +[#128612]: https://github.com/home-assistant/core/pull/128612 +[#128614]: https://github.com/home-assistant/core/pull/128614 +[#128618]: https://github.com/home-assistant/core/pull/128618 +[#128622]: https://github.com/home-assistant/core/pull/128622 +[#128626]: https://github.com/home-assistant/core/pull/128626 +[#128627]: https://github.com/home-assistant/core/pull/128627 +[#128628]: https://github.com/home-assistant/core/pull/128628 +[#128629]: https://github.com/home-assistant/core/pull/128629 +[#128630]: https://github.com/home-assistant/core/pull/128630 +[#128631]: https://github.com/home-assistant/core/pull/128631 +[#128632]: https://github.com/home-assistant/core/pull/128632 +[#128634]: https://github.com/home-assistant/core/pull/128634 +[#128636]: https://github.com/home-assistant/core/pull/128636 +[#128640]: https://github.com/home-assistant/core/pull/128640 +[#128645]: https://github.com/home-assistant/core/pull/128645 +[#128646]: https://github.com/home-assistant/core/pull/128646 +[#128647]: https://github.com/home-assistant/core/pull/128647 +[#128648]: https://github.com/home-assistant/core/pull/128648 +[#128649]: https://github.com/home-assistant/core/pull/128649 +[#128650]: https://github.com/home-assistant/core/pull/128650 +[#128651]: https://github.com/home-assistant/core/pull/128651 +[#128652]: https://github.com/home-assistant/core/pull/128652 +[#128655]: https://github.com/home-assistant/core/pull/128655 +[#128656]: https://github.com/home-assistant/core/pull/128656 +[#128657]: https://github.com/home-assistant/core/pull/128657 +[#128658]: https://github.com/home-assistant/core/pull/128658 +[#128659]: https://github.com/home-assistant/core/pull/128659 +[#128661]: https://github.com/home-assistant/core/pull/128661 +[#128663]: https://github.com/home-assistant/core/pull/128663 +[#128665]: https://github.com/home-assistant/core/pull/128665 +[#128666]: https://github.com/home-assistant/core/pull/128666 +[#128668]: https://github.com/home-assistant/core/pull/128668 +[#128670]: https://github.com/home-assistant/core/pull/128670 +[#128681]: https://github.com/home-assistant/core/pull/128681 +[#128685]: https://github.com/home-assistant/core/pull/128685 +[#128690]: https://github.com/home-assistant/core/pull/128690 +[#128692]: https://github.com/home-assistant/core/pull/128692 +[#128693]: https://github.com/home-assistant/core/pull/128693 +[#128694]: https://github.com/home-assistant/core/pull/128694 +[#128695]: https://github.com/home-assistant/core/pull/128695 +[#128696]: https://github.com/home-assistant/core/pull/128696 +[#128697]: https://github.com/home-assistant/core/pull/128697 +[#128698]: https://github.com/home-assistant/core/pull/128698 +[#128699]: https://github.com/home-assistant/core/pull/128699 +[#128700]: https://github.com/home-assistant/core/pull/128700 +[#128701]: https://github.com/home-assistant/core/pull/128701 +[#128702]: https://github.com/home-assistant/core/pull/128702 +[#128703]: https://github.com/home-assistant/core/pull/128703 +[#128704]: https://github.com/home-assistant/core/pull/128704 +[#128705]: https://github.com/home-assistant/core/pull/128705 +[#128706]: https://github.com/home-assistant/core/pull/128706 +[#128707]: https://github.com/home-assistant/core/pull/128707 +[#128714]: https://github.com/home-assistant/core/pull/128714 +[#128715]: https://github.com/home-assistant/core/pull/128715 +[#128716]: https://github.com/home-assistant/core/pull/128716 +[#128717]: https://github.com/home-assistant/core/pull/128717 +[#128718]: https://github.com/home-assistant/core/pull/128718 +[#128719]: https://github.com/home-assistant/core/pull/128719 +[#128720]: https://github.com/home-assistant/core/pull/128720 +[#128721]: https://github.com/home-assistant/core/pull/128721 +[#128725]: https://github.com/home-assistant/core/pull/128725 +[#128726]: https://github.com/home-assistant/core/pull/128726 +[#128727]: https://github.com/home-assistant/core/pull/128727 +[#128728]: https://github.com/home-assistant/core/pull/128728 +[#128729]: https://github.com/home-assistant/core/pull/128729 +[#128730]: https://github.com/home-assistant/core/pull/128730 +[#128731]: https://github.com/home-assistant/core/pull/128731 +[#128734]: https://github.com/home-assistant/core/pull/128734 +[#128736]: https://github.com/home-assistant/core/pull/128736 +[#128737]: https://github.com/home-assistant/core/pull/128737 +[#128738]: https://github.com/home-assistant/core/pull/128738 +[#128739]: https://github.com/home-assistant/core/pull/128739 +[#128740]: https://github.com/home-assistant/core/pull/128740 +[#128741]: https://github.com/home-assistant/core/pull/128741 +[#128742]: https://github.com/home-assistant/core/pull/128742 +[#128743]: https://github.com/home-assistant/core/pull/128743 +[#128744]: https://github.com/home-assistant/core/pull/128744 +[#128745]: https://github.com/home-assistant/core/pull/128745 +[#128746]: https://github.com/home-assistant/core/pull/128746 +[#128747]: https://github.com/home-assistant/core/pull/128747 +[#128748]: https://github.com/home-assistant/core/pull/128748 +[#128750]: https://github.com/home-assistant/core/pull/128750 +[#128751]: https://github.com/home-assistant/core/pull/128751 +[#128752]: https://github.com/home-assistant/core/pull/128752 +[#128755]: https://github.com/home-assistant/core/pull/128755 +[#128756]: https://github.com/home-assistant/core/pull/128756 +[#128758]: https://github.com/home-assistant/core/pull/128758 +[#128759]: https://github.com/home-assistant/core/pull/128759 +[#128760]: https://github.com/home-assistant/core/pull/128760 +[#128761]: https://github.com/home-assistant/core/pull/128761 +[#128762]: https://github.com/home-assistant/core/pull/128762 +[#128763]: https://github.com/home-assistant/core/pull/128763 +[#128764]: https://github.com/home-assistant/core/pull/128764 +[#128765]: https://github.com/home-assistant/core/pull/128765 +[#128766]: https://github.com/home-assistant/core/pull/128766 +[#128767]: https://github.com/home-assistant/core/pull/128767 +[#128768]: https://github.com/home-assistant/core/pull/128768 +[#128769]: https://github.com/home-assistant/core/pull/128769 +[#128773]: https://github.com/home-assistant/core/pull/128773 +[#128774]: https://github.com/home-assistant/core/pull/128774 +[#128775]: https://github.com/home-assistant/core/pull/128775 +[#128778]: https://github.com/home-assistant/core/pull/128778 +[#128779]: https://github.com/home-assistant/core/pull/128779 +[#128780]: https://github.com/home-assistant/core/pull/128780 +[#128781]: https://github.com/home-assistant/core/pull/128781 +[#128782]: https://github.com/home-assistant/core/pull/128782 +[#128785]: https://github.com/home-assistant/core/pull/128785 +[#128787]: https://github.com/home-assistant/core/pull/128787 +[#128788]: https://github.com/home-assistant/core/pull/128788 +[#128792]: https://github.com/home-assistant/core/pull/128792 +[#128804]: https://github.com/home-assistant/core/pull/128804 +[#128806]: https://github.com/home-assistant/core/pull/128806 +[#128807]: https://github.com/home-assistant/core/pull/128807 +[#128808]: https://github.com/home-assistant/core/pull/128808 +[#128812]: https://github.com/home-assistant/core/pull/128812 +[#128813]: https://github.com/home-assistant/core/pull/128813 +[#128815]: https://github.com/home-assistant/core/pull/128815 +[#128819]: https://github.com/home-assistant/core/pull/128819 +[#128820]: https://github.com/home-assistant/core/pull/128820 +[#128821]: https://github.com/home-assistant/core/pull/128821 +[#128822]: https://github.com/home-assistant/core/pull/128822 +[#128823]: https://github.com/home-assistant/core/pull/128823 +[#128824]: https://github.com/home-assistant/core/pull/128824 +[#128825]: https://github.com/home-assistant/core/pull/128825 +[#128826]: https://github.com/home-assistant/core/pull/128826 +[#128827]: https://github.com/home-assistant/core/pull/128827 +[#128828]: https://github.com/home-assistant/core/pull/128828 +[#128831]: https://github.com/home-assistant/core/pull/128831 +[#128834]: https://github.com/home-assistant/core/pull/128834 +[#128835]: https://github.com/home-assistant/core/pull/128835 +[#128836]: https://github.com/home-assistant/core/pull/128836 +[#128837]: https://github.com/home-assistant/core/pull/128837 +[#128844]: https://github.com/home-assistant/core/pull/128844 +[#128846]: https://github.com/home-assistant/core/pull/128846 +[#128847]: https://github.com/home-assistant/core/pull/128847 +[#128855]: https://github.com/home-assistant/core/pull/128855 +[#128858]: https://github.com/home-assistant/core/pull/128858 +[#128870]: https://github.com/home-assistant/core/pull/128870 +[#128871]: https://github.com/home-assistant/core/pull/128871 +[#128876]: https://github.com/home-assistant/core/pull/128876 +[#128877]: https://github.com/home-assistant/core/pull/128877 +[#128879]: https://github.com/home-assistant/core/pull/128879 +[#128883]: https://github.com/home-assistant/core/pull/128883 +[#128890]: https://github.com/home-assistant/core/pull/128890 +[#128891]: https://github.com/home-assistant/core/pull/128891 +[#128892]: https://github.com/home-assistant/core/pull/128892 +[#128894]: https://github.com/home-assistant/core/pull/128894 +[#128896]: https://github.com/home-assistant/core/pull/128896 +[#128899]: https://github.com/home-assistant/core/pull/128899 +[#128900]: https://github.com/home-assistant/core/pull/128900 +[#128902]: https://github.com/home-assistant/core/pull/128902 +[#128903]: https://github.com/home-assistant/core/pull/128903 +[#128904]: https://github.com/home-assistant/core/pull/128904 +[#128905]: https://github.com/home-assistant/core/pull/128905 +[#128906]: https://github.com/home-assistant/core/pull/128906 +[#128907]: https://github.com/home-assistant/core/pull/128907 +[#128908]: https://github.com/home-assistant/core/pull/128908 +[#128909]: https://github.com/home-assistant/core/pull/128909 +[#128919]: https://github.com/home-assistant/core/pull/128919 +[#128922]: https://github.com/home-assistant/core/pull/128922 +[#128924]: https://github.com/home-assistant/core/pull/128924 +[#128925]: https://github.com/home-assistant/core/pull/128925 +[#128926]: https://github.com/home-assistant/core/pull/128926 +[#128927]: https://github.com/home-assistant/core/pull/128927 +[#128928]: https://github.com/home-assistant/core/pull/128928 +[#128930]: https://github.com/home-assistant/core/pull/128930 +[#128932]: https://github.com/home-assistant/core/pull/128932 +[#128933]: https://github.com/home-assistant/core/pull/128933 +[#128934]: https://github.com/home-assistant/core/pull/128934 +[#128937]: https://github.com/home-assistant/core/pull/128937 +[#128938]: https://github.com/home-assistant/core/pull/128938 +[#128939]: https://github.com/home-assistant/core/pull/128939 +[#128940]: https://github.com/home-assistant/core/pull/128940 +[#128941]: https://github.com/home-assistant/core/pull/128941 +[#128942]: https://github.com/home-assistant/core/pull/128942 +[#128943]: https://github.com/home-assistant/core/pull/128943 +[#128945]: https://github.com/home-assistant/core/pull/128945 +[#128946]: https://github.com/home-assistant/core/pull/128946 +[#128948]: https://github.com/home-assistant/core/pull/128948 +[#128949]: https://github.com/home-assistant/core/pull/128949 +[#128951]: https://github.com/home-assistant/core/pull/128951 +[#128952]: https://github.com/home-assistant/core/pull/128952 +[#128953]: https://github.com/home-assistant/core/pull/128953 +[#128966]: https://github.com/home-assistant/core/pull/128966 +[#128967]: https://github.com/home-assistant/core/pull/128967 +[#128970]: https://github.com/home-assistant/core/pull/128970 +[#128975]: https://github.com/home-assistant/core/pull/128975 +[#128976]: https://github.com/home-assistant/core/pull/128976 +[#128977]: https://github.com/home-assistant/core/pull/128977 +[#128978]: https://github.com/home-assistant/core/pull/128978 +[#128979]: https://github.com/home-assistant/core/pull/128979 +[#128980]: https://github.com/home-assistant/core/pull/128980 +[#128984]: https://github.com/home-assistant/core/pull/128984 +[#128990]: https://github.com/home-assistant/core/pull/128990 +[#128991]: https://github.com/home-assistant/core/pull/128991 +[#128992]: https://github.com/home-assistant/core/pull/128992 +[#128994]: https://github.com/home-assistant/core/pull/128994 +[#128996]: https://github.com/home-assistant/core/pull/128996 +[#128998]: https://github.com/home-assistant/core/pull/128998 +[#128999]: https://github.com/home-assistant/core/pull/128999 +[#129000]: https://github.com/home-assistant/core/pull/129000 +[#129002]: https://github.com/home-assistant/core/pull/129002 +[#129004]: https://github.com/home-assistant/core/pull/129004 +[#129005]: https://github.com/home-assistant/core/pull/129005 +[#129008]: https://github.com/home-assistant/core/pull/129008 +[#129013]: https://github.com/home-assistant/core/pull/129013 +[#129015]: https://github.com/home-assistant/core/pull/129015 +[#129018]: https://github.com/home-assistant/core/pull/129018 +[#129019]: https://github.com/home-assistant/core/pull/129019 +[#129020]: https://github.com/home-assistant/core/pull/129020 +[#129024]: https://github.com/home-assistant/core/pull/129024 +[#129025]: https://github.com/home-assistant/core/pull/129025 +[#129030]: https://github.com/home-assistant/core/pull/129030 +[#129032]: https://github.com/home-assistant/core/pull/129032 +[#129035]: https://github.com/home-assistant/core/pull/129035 +[#129037]: https://github.com/home-assistant/core/pull/129037 +[#129038]: https://github.com/home-assistant/core/pull/129038 +[#129050]: https://github.com/home-assistant/core/pull/129050 +[#129061]: https://github.com/home-assistant/core/pull/129061 +[#129063]: https://github.com/home-assistant/core/pull/129063 +[#129065]: https://github.com/home-assistant/core/pull/129065 +[#129066]: https://github.com/home-assistant/core/pull/129066 +[#129070]: https://github.com/home-assistant/core/pull/129070 +[#129072]: https://github.com/home-assistant/core/pull/129072 +[#129073]: https://github.com/home-assistant/core/pull/129073 +[#129075]: https://github.com/home-assistant/core/pull/129075 +[#129078]: https://github.com/home-assistant/core/pull/129078 +[#129080]: https://github.com/home-assistant/core/pull/129080 +[#129081]: https://github.com/home-assistant/core/pull/129081 +[#129083]: https://github.com/home-assistant/core/pull/129083 +[#129084]: https://github.com/home-assistant/core/pull/129084 +[#129085]: https://github.com/home-assistant/core/pull/129085 +[#129086]: https://github.com/home-assistant/core/pull/129086 +[#129087]: https://github.com/home-assistant/core/pull/129087 +[#129088]: https://github.com/home-assistant/core/pull/129088 +[#129089]: https://github.com/home-assistant/core/pull/129089 +[#129090]: https://github.com/home-assistant/core/pull/129090 +[#129092]: https://github.com/home-assistant/core/pull/129092 +[#129094]: https://github.com/home-assistant/core/pull/129094 +[#129095]: https://github.com/home-assistant/core/pull/129095 +[#129100]: https://github.com/home-assistant/core/pull/129100 +[#129102]: https://github.com/home-assistant/core/pull/129102 +[#129107]: https://github.com/home-assistant/core/pull/129107 +[#129108]: https://github.com/home-assistant/core/pull/129108 +[#129110]: https://github.com/home-assistant/core/pull/129110 +[#129111]: https://github.com/home-assistant/core/pull/129111 +[#129112]: https://github.com/home-assistant/core/pull/129112 +[#129113]: https://github.com/home-assistant/core/pull/129113 +[#129114]: https://github.com/home-assistant/core/pull/129114 +[#129116]: https://github.com/home-assistant/core/pull/129116 +[#129118]: https://github.com/home-assistant/core/pull/129118 +[#129119]: https://github.com/home-assistant/core/pull/129119 +[#129121]: https://github.com/home-assistant/core/pull/129121 +[#129131]: https://github.com/home-assistant/core/pull/129131 +[#129135]: https://github.com/home-assistant/core/pull/129135 +[#129137]: https://github.com/home-assistant/core/pull/129137 +[#129138]: https://github.com/home-assistant/core/pull/129138 +[#129141]: https://github.com/home-assistant/core/pull/129141 +[#129143]: https://github.com/home-assistant/core/pull/129143 +[#129144]: https://github.com/home-assistant/core/pull/129144 +[#129145]: https://github.com/home-assistant/core/pull/129145 +[#129151]: https://github.com/home-assistant/core/pull/129151 +[#129155]: https://github.com/home-assistant/core/pull/129155 +[#129156]: https://github.com/home-assistant/core/pull/129156 +[#129157]: https://github.com/home-assistant/core/pull/129157 +[#129158]: https://github.com/home-assistant/core/pull/129158 +[#129160]: https://github.com/home-assistant/core/pull/129160 +[#129161]: https://github.com/home-assistant/core/pull/129161 +[#129162]: https://github.com/home-assistant/core/pull/129162 +[#129163]: https://github.com/home-assistant/core/pull/129163 +[#129164]: https://github.com/home-assistant/core/pull/129164 +[#129166]: https://github.com/home-assistant/core/pull/129166 +[#129167]: https://github.com/home-assistant/core/pull/129167 +[#129168]: https://github.com/home-assistant/core/pull/129168 +[#129169]: https://github.com/home-assistant/core/pull/129169 +[#129170]: https://github.com/home-assistant/core/pull/129170 +[#129171]: https://github.com/home-assistant/core/pull/129171 +[#129172]: https://github.com/home-assistant/core/pull/129172 +[#129174]: https://github.com/home-assistant/core/pull/129174 +[#129175]: https://github.com/home-assistant/core/pull/129175 +[#129177]: https://github.com/home-assistant/core/pull/129177 +[#129179]: https://github.com/home-assistant/core/pull/129179 +[#129182]: https://github.com/home-assistant/core/pull/129182 +[#129183]: https://github.com/home-assistant/core/pull/129183 +[#129185]: https://github.com/home-assistant/core/pull/129185 +[#129186]: https://github.com/home-assistant/core/pull/129186 +[#129188]: https://github.com/home-assistant/core/pull/129188 +[#129191]: https://github.com/home-assistant/core/pull/129191 +[#129192]: https://github.com/home-assistant/core/pull/129192 +[#129193]: https://github.com/home-assistant/core/pull/129193 +[#129194]: https://github.com/home-assistant/core/pull/129194 +[#129195]: https://github.com/home-assistant/core/pull/129195 +[#129196]: https://github.com/home-assistant/core/pull/129196 +[#129199]: https://github.com/home-assistant/core/pull/129199 +[#129201]: https://github.com/home-assistant/core/pull/129201 +[#129202]: https://github.com/home-assistant/core/pull/129202 +[#129204]: https://github.com/home-assistant/core/pull/129204 +[#129205]: https://github.com/home-assistant/core/pull/129205 +[#129206]: https://github.com/home-assistant/core/pull/129206 +[#129210]: https://github.com/home-assistant/core/pull/129210 +[#129211]: https://github.com/home-assistant/core/pull/129211 +[#129215]: https://github.com/home-assistant/core/pull/129215 +[#129216]: https://github.com/home-assistant/core/pull/129216 +[#129217]: https://github.com/home-assistant/core/pull/129217 +[#129218]: https://github.com/home-assistant/core/pull/129218 +[#129220]: https://github.com/home-assistant/core/pull/129220 +[#129221]: https://github.com/home-assistant/core/pull/129221 +[#129222]: https://github.com/home-assistant/core/pull/129222 +[#129223]: https://github.com/home-assistant/core/pull/129223 +[#129225]: https://github.com/home-assistant/core/pull/129225 +[#129226]: https://github.com/home-assistant/core/pull/129226 +[#129227]: https://github.com/home-assistant/core/pull/129227 +[#129229]: https://github.com/home-assistant/core/pull/129229 +[#129230]: https://github.com/home-assistant/core/pull/129230 +[#129232]: https://github.com/home-assistant/core/pull/129232 +[#129234]: https://github.com/home-assistant/core/pull/129234 +[#129235]: https://github.com/home-assistant/core/pull/129235 +[#129241]: https://github.com/home-assistant/core/pull/129241 +[#129245]: https://github.com/home-assistant/core/pull/129245 +[#129246]: https://github.com/home-assistant/core/pull/129246 +[#129247]: https://github.com/home-assistant/core/pull/129247 +[#129251]: https://github.com/home-assistant/core/pull/129251 +[#129257]: https://github.com/home-assistant/core/pull/129257 +[#129259]: https://github.com/home-assistant/core/pull/129259 +[#129267]: https://github.com/home-assistant/core/pull/129267 +[#129268]: https://github.com/home-assistant/core/pull/129268 +[#129274]: https://github.com/home-assistant/core/pull/129274 +[#129276]: https://github.com/home-assistant/core/pull/129276 +[#129277]: https://github.com/home-assistant/core/pull/129277 +[#129278]: https://github.com/home-assistant/core/pull/129278 +[#129279]: https://github.com/home-assistant/core/pull/129279 +[#129280]: https://github.com/home-assistant/core/pull/129280 +[#129281]: https://github.com/home-assistant/core/pull/129281 +[#129282]: https://github.com/home-assistant/core/pull/129282 +[#129289]: https://github.com/home-assistant/core/pull/129289 +[#129295]: https://github.com/home-assistant/core/pull/129295 +[#129297]: https://github.com/home-assistant/core/pull/129297 +[#129299]: https://github.com/home-assistant/core/pull/129299 +[#129300]: https://github.com/home-assistant/core/pull/129300 +[#129303]: https://github.com/home-assistant/core/pull/129303 +[#129305]: https://github.com/home-assistant/core/pull/129305 +[#129306]: https://github.com/home-assistant/core/pull/129306 +[#129308]: https://github.com/home-assistant/core/pull/129308 +[#129309]: https://github.com/home-assistant/core/pull/129309 +[#129313]: https://github.com/home-assistant/core/pull/129313 +[#129314]: https://github.com/home-assistant/core/pull/129314 +[#129315]: https://github.com/home-assistant/core/pull/129315 +[#129318]: https://github.com/home-assistant/core/pull/129318 +[#129322]: https://github.com/home-assistant/core/pull/129322 +[#129325]: https://github.com/home-assistant/core/pull/129325 +[#129326]: https://github.com/home-assistant/core/pull/129326 +[#129327]: https://github.com/home-assistant/core/pull/129327 +[#129329]: https://github.com/home-assistant/core/pull/129329 +[#129330]: https://github.com/home-assistant/core/pull/129330 +[#129333]: https://github.com/home-assistant/core/pull/129333 +[#129334]: https://github.com/home-assistant/core/pull/129334 +[#129338]: https://github.com/home-assistant/core/pull/129338 +[#129339]: https://github.com/home-assistant/core/pull/129339 +[#129342]: https://github.com/home-assistant/core/pull/129342 +[#129345]: https://github.com/home-assistant/core/pull/129345 +[#129346]: https://github.com/home-assistant/core/pull/129346 +[#129348]: https://github.com/home-assistant/core/pull/129348 +[#129349]: https://github.com/home-assistant/core/pull/129349 +[#129354]: https://github.com/home-assistant/core/pull/129354 +[#129355]: https://github.com/home-assistant/core/pull/129355 +[#129356]: https://github.com/home-assistant/core/pull/129356 +[#129358]: https://github.com/home-assistant/core/pull/129358 +[#129360]: https://github.com/home-assistant/core/pull/129360 +[#129365]: https://github.com/home-assistant/core/pull/129365 +[#129366]: https://github.com/home-assistant/core/pull/129366 +[#129369]: https://github.com/home-assistant/core/pull/129369 +[#129370]: https://github.com/home-assistant/core/pull/129370 +[#129371]: https://github.com/home-assistant/core/pull/129371 +[#129372]: https://github.com/home-assistant/core/pull/129372 +[#129373]: https://github.com/home-assistant/core/pull/129373 +[#129374]: https://github.com/home-assistant/core/pull/129374 +[#129376]: https://github.com/home-assistant/core/pull/129376 +[#129380]: https://github.com/home-assistant/core/pull/129380 +[#129381]: https://github.com/home-assistant/core/pull/129381 +[#129383]: https://github.com/home-assistant/core/pull/129383 +[#129384]: https://github.com/home-assistant/core/pull/129384 +[#129385]: https://github.com/home-assistant/core/pull/129385 +[#129386]: https://github.com/home-assistant/core/pull/129386 +[#129388]: https://github.com/home-assistant/core/pull/129388 +[#129389]: https://github.com/home-assistant/core/pull/129389 +[#129390]: https://github.com/home-assistant/core/pull/129390 +[#129391]: https://github.com/home-assistant/core/pull/129391 +[#129394]: https://github.com/home-assistant/core/pull/129394 +[#129395]: https://github.com/home-assistant/core/pull/129395 +[#129397]: https://github.com/home-assistant/core/pull/129397 +[#129401]: https://github.com/home-assistant/core/pull/129401 +[#129402]: https://github.com/home-assistant/core/pull/129402 +[#129403]: https://github.com/home-assistant/core/pull/129403 +[#129407]: https://github.com/home-assistant/core/pull/129407 +[#129413]: https://github.com/home-assistant/core/pull/129413 +[#129414]: https://github.com/home-assistant/core/pull/129414 +[#129415]: https://github.com/home-assistant/core/pull/129415 +[#129416]: https://github.com/home-assistant/core/pull/129416 +[#129417]: https://github.com/home-assistant/core/pull/129417 +[#129418]: https://github.com/home-assistant/core/pull/129418 +[#129419]: https://github.com/home-assistant/core/pull/129419 +[#129420]: https://github.com/home-assistant/core/pull/129420 +[#129422]: https://github.com/home-assistant/core/pull/129422 +[#129423]: https://github.com/home-assistant/core/pull/129423 +[#129428]: https://github.com/home-assistant/core/pull/129428 +[#129429]: https://github.com/home-assistant/core/pull/129429 +[#129430]: https://github.com/home-assistant/core/pull/129430 +[#129432]: https://github.com/home-assistant/core/pull/129432 +[#129434]: https://github.com/home-assistant/core/pull/129434 +[#129436]: https://github.com/home-assistant/core/pull/129436 +[#129439]: https://github.com/home-assistant/core/pull/129439 +[#129441]: https://github.com/home-assistant/core/pull/129441 +[#129444]: https://github.com/home-assistant/core/pull/129444 +[#129448]: https://github.com/home-assistant/core/pull/129448 +[#129449]: https://github.com/home-assistant/core/pull/129449 +[#129452]: https://github.com/home-assistant/core/pull/129452 +[#129453]: https://github.com/home-assistant/core/pull/129453 +[#129454]: https://github.com/home-assistant/core/pull/129454 +[#129457]: https://github.com/home-assistant/core/pull/129457 +[#129458]: https://github.com/home-assistant/core/pull/129458 +[#129464]: https://github.com/home-assistant/core/pull/129464 +[#129468]: https://github.com/home-assistant/core/pull/129468 +[#129473]: https://github.com/home-assistant/core/pull/129473 +[#129475]: https://github.com/home-assistant/core/pull/129475 +[#129476]: https://github.com/home-assistant/core/pull/129476 +[#129477]: https://github.com/home-assistant/core/pull/129477 +[#129478]: https://github.com/home-assistant/core/pull/129478 +[#129481]: https://github.com/home-assistant/core/pull/129481 +[#129484]: https://github.com/home-assistant/core/pull/129484 +[#129486]: https://github.com/home-assistant/core/pull/129486 +[#129488]: https://github.com/home-assistant/core/pull/129488 +[#129489]: https://github.com/home-assistant/core/pull/129489 +[#129490]: https://github.com/home-assistant/core/pull/129490 +[#129493]: https://github.com/home-assistant/core/pull/129493 +[#129496]: https://github.com/home-assistant/core/pull/129496 +[#129497]: https://github.com/home-assistant/core/pull/129497 +[#129498]: https://github.com/home-assistant/core/pull/129498 +[#129499]: https://github.com/home-assistant/core/pull/129499 +[#129501]: https://github.com/home-assistant/core/pull/129501 +[#129502]: https://github.com/home-assistant/core/pull/129502 +[#129505]: https://github.com/home-assistant/core/pull/129505 +[#129508]: https://github.com/home-assistant/core/pull/129508 +[#129510]: https://github.com/home-assistant/core/pull/129510 +[#129513]: https://github.com/home-assistant/core/pull/129513 +[#129519]: https://github.com/home-assistant/core/pull/129519 +[#129527]: https://github.com/home-assistant/core/pull/129527 +[#129528]: https://github.com/home-assistant/core/pull/129528 +[#129529]: https://github.com/home-assistant/core/pull/129529 +[#129535]: https://github.com/home-assistant/core/pull/129535 +[#129537]: https://github.com/home-assistant/core/pull/129537 +[#129539]: https://github.com/home-assistant/core/pull/129539 +[#129546]: https://github.com/home-assistant/core/pull/129546 +[#129559]: https://github.com/home-assistant/core/pull/129559 +[#129565]: https://github.com/home-assistant/core/pull/129565 +[#129569]: https://github.com/home-assistant/core/pull/129569 +[#129572]: https://github.com/home-assistant/core/pull/129572 +[#129573]: https://github.com/home-assistant/core/pull/129573 +[#129574]: https://github.com/home-assistant/core/pull/129574 +[#129575]: https://github.com/home-assistant/core/pull/129575 +[#129576]: https://github.com/home-assistant/core/pull/129576 +[#129583]: https://github.com/home-assistant/core/pull/129583 +[#129586]: https://github.com/home-assistant/core/pull/129586 +[#129587]: https://github.com/home-assistant/core/pull/129587 +[#129591]: https://github.com/home-assistant/core/pull/129591 +[#129592]: https://github.com/home-assistant/core/pull/129592 +[#129607]: https://github.com/home-assistant/core/pull/129607 +[#129627]: https://github.com/home-assistant/core/pull/129627 +[#129639]: https://github.com/home-assistant/core/pull/129639 +[#129640]: https://github.com/home-assistant/core/pull/129640 +[#129643]: https://github.com/home-assistant/core/pull/129643 +[#129653]: https://github.com/home-assistant/core/pull/129653 +[#129657]: https://github.com/home-assistant/core/pull/129657 +[#129659]: https://github.com/home-assistant/core/pull/129659 +[#129670]: https://github.com/home-assistant/core/pull/129670 +[#129683]: https://github.com/home-assistant/core/pull/129683 +[#129684]: https://github.com/home-assistant/core/pull/129684 +[#129701]: https://github.com/home-assistant/core/pull/129701 +[#129702]: https://github.com/home-assistant/core/pull/129702 +[#129709]: https://github.com/home-assistant/core/pull/129709 +[#129711]: https://github.com/home-assistant/core/pull/129711 +[#129713]: https://github.com/home-assistant/core/pull/129713 +[#129715]: https://github.com/home-assistant/core/pull/129715 +[#129716]: https://github.com/home-assistant/core/pull/129716 +[#129729]: https://github.com/home-assistant/core/pull/129729 +[#129743]: https://github.com/home-assistant/core/pull/129743 +[#129755]: https://github.com/home-assistant/core/pull/129755 +[#129769]: https://github.com/home-assistant/core/pull/129769 +[#129793]: https://github.com/home-assistant/core/pull/129793 +[#129794]: https://github.com/home-assistant/core/pull/129794 +[#129797]: https://github.com/home-assistant/core/pull/129797 +[#129799]: https://github.com/home-assistant/core/pull/129799 +[#129801]: https://github.com/home-assistant/core/pull/129801 +[#129803]: https://github.com/home-assistant/core/pull/129803 +[#129804]: https://github.com/home-assistant/core/pull/129804 +[#129805]: https://github.com/home-assistant/core/pull/129805 +[#129807]: https://github.com/home-assistant/core/pull/129807 +[#129808]: https://github.com/home-assistant/core/pull/129808 +[#129810]: https://github.com/home-assistant/core/pull/129810 +[#129812]: https://github.com/home-assistant/core/pull/129812 +[#129817]: https://github.com/home-assistant/core/pull/129817 +[#129819]: https://github.com/home-assistant/core/pull/129819 +[#129824]: https://github.com/home-assistant/core/pull/129824 +[#129829]: https://github.com/home-assistant/core/pull/129829 +[#129830]: https://github.com/home-assistant/core/pull/129830 +[#129831]: https://github.com/home-assistant/core/pull/129831 +[#129832]: https://github.com/home-assistant/core/pull/129832 +[#129833]: https://github.com/home-assistant/core/pull/129833 +[#129834]: https://github.com/home-assistant/core/pull/129834 +[#129838]: https://github.com/home-assistant/core/pull/129838 +[#129840]: https://github.com/home-assistant/core/pull/129840 +[#129841]: https://github.com/home-assistant/core/pull/129841 +[#129844]: https://github.com/home-assistant/core/pull/129844 +[#129846]: https://github.com/home-assistant/core/pull/129846 +[#129847]: https://github.com/home-assistant/core/pull/129847 +[#129850]: https://github.com/home-assistant/core/pull/129850 +[#129851]: https://github.com/home-assistant/core/pull/129851 +[#129852]: https://github.com/home-assistant/core/pull/129852 +[#129856]: https://github.com/home-assistant/core/pull/129856 +[#129878]: https://github.com/home-assistant/core/pull/129878 +[#129881]: https://github.com/home-assistant/core/pull/129881 +[#129882]: https://github.com/home-assistant/core/pull/129882 +[#129886]: https://github.com/home-assistant/core/pull/129886 +[#129894]: https://github.com/home-assistant/core/pull/129894 +[#129898]: https://github.com/home-assistant/core/pull/129898 +[#129899]: https://github.com/home-assistant/core/pull/129899 +[#129901]: https://github.com/home-assistant/core/pull/129901 +[#129902]: https://github.com/home-assistant/core/pull/129902 +[#129904]: https://github.com/home-assistant/core/pull/129904 +[#129906]: https://github.com/home-assistant/core/pull/129906 +[#129909]: https://github.com/home-assistant/core/pull/129909 +[#129910]: https://github.com/home-assistant/core/pull/129910 +[#129912]: https://github.com/home-assistant/core/pull/129912 +[#129914]: https://github.com/home-assistant/core/pull/129914 +[#129921]: https://github.com/home-assistant/core/pull/129921 +[#129925]: https://github.com/home-assistant/core/pull/129925 +[#129931]: https://github.com/home-assistant/core/pull/129931 +[#129938]: https://github.com/home-assistant/core/pull/129938 +[#129939]: https://github.com/home-assistant/core/pull/129939 +[#129941]: https://github.com/home-assistant/core/pull/129941 +[#129942]: https://github.com/home-assistant/core/pull/129942 +[#129947]: https://github.com/home-assistant/core/pull/129947 +[#129948]: https://github.com/home-assistant/core/pull/129948 +[#129952]: https://github.com/home-assistant/core/pull/129952 +[#129953]: https://github.com/home-assistant/core/pull/129953 +[#129955]: https://github.com/home-assistant/core/pull/129955 +[#129960]: https://github.com/home-assistant/core/pull/129960 +[#129965]: https://github.com/home-assistant/core/pull/129965 +[@10100011]: https://github.com/10100011 +[@AlCalzone]: https://github.com/AlCalzone +[@AuroreVgn]: https://github.com/AuroreVgn +[@Balake]: https://github.com/Balake +[@Betacart]: https://github.com/Betacart +[@Bre77]: https://github.com/Bre77 +[@CFenner]: https://github.com/CFenner +[@DCSBL]: https://github.com/DCSBL +[@DJF3]: https://github.com/DJF3 +[@Danielhiversen]: https://github.com/Danielhiversen +[@Diegorro98]: https://github.com/Diegorro98 +[@DurandAN]: https://github.com/DurandAN +[@Galorhallen]: https://github.com/Galorhallen +[@Honza-m]: https://github.com/Honza-m +[@IceBotYT]: https://github.com/IceBotYT +[@JEMcats]: https://github.com/JEMcats +[@JosephAbbey]: https://github.com/JosephAbbey +[@KC3BZU]: https://github.com/KC3BZU +[@KunalAggarwal]: https://github.com/KunalAggarwal +[@LG-ThinQ-Integration]: https://github.com/LG-ThinQ-Integration +[@LaStrada]: https://github.com/LaStrada +[@Lash-L]: https://github.com/Lash-L +[@Lektrico]: https://github.com/Lektrico +[@Lesekater]: https://github.com/Lesekater +[@LouisChrist]: https://github.com/LouisChrist +[@LunaBytesBack]: https://github.com/LunaBytesBack +[@MarkGodwin]: https://github.com/MarkGodwin +[@MartinHjelmare]: https://github.com/MartinHjelmare +[@MichScha]: https://github.com/MichScha +[@MindFreeze]: https://github.com/MindFreeze +[@Nebula83]: https://github.com/Nebula83 +[@NickM-27]: https://github.com/NickM-27 +[@Noltari]: https://github.com/Noltari +[@Passific]: https://github.com/Passific +[@Petro31]: https://github.com/Petro31 +[@Shulyaka]: https://github.com/Shulyaka +[@Shutgun]: https://github.com/Shutgun +[@StevenLooman]: https://github.com/StevenLooman +[@TheJulianJES]: https://github.com/TheJulianJES +[@Thomas55555]: https://github.com/Thomas55555 +[@Vendetta01]: https://github.com/Vendetta01 +[@Xeio]: https://github.com/Xeio +[@Xitee1]: https://github.com/Xitee1 +[@YogevBokobza]: https://github.com/YogevBokobza +[@agners]: https://github.com/agners +[@agoode]: https://github.com/agoode +[@aindriu80]: https://github.com/aindriu80 +[@alengwenus]: https://github.com/alengwenus +[@alexandrecuer]: https://github.com/alexandrecuer +[@alexkn]: https://github.com/alexkn +[@alistair23]: https://github.com/alistair23 +[@allenporter]: https://github.com/allenporter +[@andrew-codechimp]: https://github.com/andrew-codechimp +[@arturpragacz]: https://github.com/arturpragacz +[@ashionky]: https://github.com/ashionky +[@astrandb]: https://github.com/astrandb +[@autinerd]: https://github.com/autinerd +[@balloob]: https://github.com/balloob +[@barryvdh]: https://github.com/barryvdh +[@bdr99]: https://github.com/bdr99 +[@bdraco]: https://github.com/bdraco +[@bieniu]: https://github.com/bieniu +[@bluemoehre]: https://github.com/bluemoehre +[@boergegrunicke]: https://github.com/boergegrunicke +[@bouwew]: https://github.com/bouwew +[@bramkragten]: https://github.com/bramkragten +[@brg468]: https://github.com/brg468 +[@bru73f0rc3]: https://github.com/bru73f0rc3 +[@catsmanac]: https://github.com/catsmanac +[@cdce8p]: https://github.com/cdce8p +[@cdheiser]: https://github.com/cdheiser +[@cereal2nd]: https://github.com/cereal2nd +[@chemelli74]: https://github.com/chemelli74 +[@crevetor]: https://github.com/crevetor +[@crug80]: https://github.com/crug80 +[@cryptk]: https://github.com/cryptk +[@dgomes]: https://github.com/dgomes +[@dmulcahey]: https://github.com/dmulcahey +[@dontinelli]: https://github.com/dontinelli +[@dotvav]: https://github.com/dotvav +[@eclair4151]: https://github.com/eclair4151 +[@edenhaus]: https://github.com/edenhaus +[@elupus]: https://github.com/elupus +[@emontnemery]: https://github.com/emontnemery +[@epenet]: https://github.com/epenet +[@erwindouna]: https://github.com/erwindouna +[@feisley]: https://github.com/feisley +[@frenck]: https://github.com/frenck +[@functionpointer]: https://github.com/functionpointer +[@gjohansson-ST]: https://github.com/gjohansson-ST +[@gwww]: https://github.com/gwww +[@hahn-th]: https://github.com/hahn-th +[@hanskroner]: https://github.com/hanskroner +[@hopkins-tk]: https://github.com/hopkins-tk +[@ianhattendorf]: https://github.com/ianhattendorf +[@iz4c]: https://github.com/iz4c +[@j-a-n]: https://github.com/j-a-n +[@j4n-e4t]: https://github.com/j4n-e4t +[@jb101010-2]: https://github.com/jb101010-2 +[@jbergler]: https://github.com/jbergler +[@jbouwh]: https://github.com/jbouwh +[@jeeftor]: https://github.com/jeeftor +[@jesserockz]: https://github.com/jesserockz +[@jkaflik]: https://github.com/jkaflik +[@joelhawksley]: https://github.com/joelhawksley +[@johangus65]: https://github.com/johangus65 +[@joostlek]: https://github.com/joostlek +[@jozefKruszynski]: https://github.com/jozefKruszynski +[@jpbede]: https://github.com/jpbede +[@jzucker2]: https://github.com/jzucker2 +[@karwosts]: https://github.com/karwosts +[@kaydenvanrijn]: https://github.com/kaydenvanrijn +[@kbickar]: https://github.com/kbickar +[@kevdliu]: https://github.com/kevdliu +[@kingal123]: https://github.com/kingal123 +[@kingy444]: https://github.com/kingy444 +[@klaasnicolaas]: https://github.com/klaasnicolaas +[@klejejs]: https://github.com/klejejs +[@knyar]: https://github.com/knyar +[@liudger]: https://github.com/liudger +[@luca-angemi]: https://github.com/luca-angemi +[@ludeeus]: https://github.com/ludeeus +[@marcelveldt]: https://github.com/marcelveldt +[@marcjay]: https://github.com/marcjay +[@marcodutto]: https://github.com/marcodutto +[@mback2k]: https://github.com/mback2k +[@mdegat01]: https://github.com/mdegat01 +[@mgrandi]: https://github.com/mgrandi +[@miaucl]: https://github.com/miaucl +[@mib1185]: https://github.com/mib1185 +[@mikey0000]: https://github.com/mikey0000 +[@miterion]: https://github.com/miterion +[@mj23000]: https://github.com/mj23000 +[@mrdarrengriffin]: https://github.com/mrdarrengriffin +[@mxr]: https://github.com/mxr +[@myztillx]: https://github.com/myztillx +[@naruxde]: https://github.com/naruxde +[@natekspencer]: https://github.com/natekspencer +[@nicoalonsop]: https://github.com/nicoalonsop +[@noahhusby]: https://github.com/noahhusby +[@ol-iver]: https://github.com/ol-iver +[@olafz]: https://github.com/olafz +[@oliverwoodings]: https://github.com/oliverwoodings +[@ollo69]: https://github.com/ollo69 +[@osohotwateriot]: https://github.com/osohotwateriot +[@owenvoke]: https://github.com/owenvoke +[@peteS-UK]: https://github.com/peteS-UK +[@piitaya]: https://github.com/piitaya +[@polgarc]: https://github.com/polgarc +[@pssc]: https://github.com/pssc +[@puddly]: https://github.com/puddly +[@pvizeli]: https://github.com/pvizeli +[@qwell]: https://github.com/qwell +[@rahulsamant37]: https://github.com/rahulsamant37 +[@rajlaud]: https://github.com/rajlaud +[@raphaeleduardo42]: https://github.com/raphaeleduardo42 +[@rappenze]: https://github.com/rappenze +[@raulcodes]: https://github.com/raulcodes +[@rcloran]: https://github.com/rcloran +[@rikroe]: https://github.com/rikroe +[@rubenbe]: https://github.com/rubenbe +[@rytilahti]: https://github.com/rytilahti +[@scop]: https://github.com/scop +[@sdb9696]: https://github.com/sdb9696 +[@silamon]: https://github.com/silamon +[@skynet01]: https://github.com/skynet01 +[@srescio]: https://github.com/srescio +[@starkillerOG]: https://github.com/starkillerOG +[@strugee]: https://github.com/strugee +[@swoga]: https://github.com/swoga +[@synesthesiam]: https://github.com/synesthesiam +[@tetele]: https://github.com/tetele +[@thecode]: https://github.com/thecode +[@tl-sl]: https://github.com/tl-sl +[@tleydxdy]: https://github.com/tleydxdy +[@tr4nt0r]: https://github.com/tr4nt0r +[@tronikos]: https://github.com/tronikos +[@tsvi]: https://github.com/tsvi +[@unfug-at-github]: https://github.com/unfug-at-github +[@wendevlin]: https://github.com/wendevlin +[@zweckj]: https://github.com/zweckj +[@zxdavb]: https://github.com/zxdavb diff --git a/source/connectzbt1/index.html b/source/connectzbt1/index.html index ff6514fd40d..9c25fe8bdd8 100644 --- a/source/connectzbt1/index.html +++ b/source/connectzbt1/index.html @@ -601,7 +601,7 @@ frontpage_image: /images/connectzbt1/connectzbt1-cover.jpg
    diff --git a/source/green/index.html b/source/green/index.html index 64c08c14d2c..582cc0756e2 100644 --- a/source/green/index.html +++ b/source/green/index.html @@ -2489,6 +2489,24 @@ dark_header: true
    + + +
    +
    +
    🇮🇹
    +
    Dinamotech
    +
    Shipping from Italy
    +
    + + + +
    +
    diff --git a/source/images/assist/wearos_assist_app.png b/source/images/assist/wearos_assist_app.png new file mode 100644 index 00000000000..822ae592ce3 Binary files /dev/null and b/source/images/assist/wearos_assist_app.png differ diff --git a/source/images/blog/2024-11/canadian-french-on-assist.png b/source/images/blog/2024-11/canadian-french-on-assist.png new file mode 100644 index 00000000000..817a6965abb Binary files /dev/null and b/source/images/blog/2024-11/canadian-french-on-assist.png differ diff --git a/source/images/blog/2024-11/dashboard-conversion.png b/source/images/blog/2024-11/dashboard-conversion.png new file mode 100644 index 00000000000..d1ec99635ea Binary files /dev/null and b/source/images/blog/2024-11/dashboard-conversion.png differ diff --git a/source/images/blog/2024-11/imported-cards.png b/source/images/blog/2024-11/imported-cards.png new file mode 100644 index 00000000000..4f402820d2b Binary files /dev/null and b/source/images/blog/2024-11/imported-cards.png differ diff --git a/source/images/blog/2024-11/precise-mode-example.png b/source/images/blog/2024-11/precise-mode-example.png new file mode 100644 index 00000000000..c2224d052ce Binary files /dev/null and b/source/images/blog/2024-11/precise-mode-example.png differ diff --git a/source/images/blog/2024-11/social.jpg b/source/images/blog/2024-11/social.jpg new file mode 100644 index 00000000000..6f7da603692 Binary files /dev/null and b/source/images/blog/2024-11/social.jpg differ diff --git a/source/images/blog/2024-11/streaming-live-logs.gif b/source/images/blog/2024-11/streaming-live-logs.gif new file mode 100644 index 00000000000..f054ddde8ff Binary files /dev/null and b/source/images/blog/2024-11/streaming-live-logs.gif differ diff --git a/source/images/blog/2024-11/webrtc-logo-horiz-retro.png b/source/images/blog/2024-11/webrtc-logo-horiz-retro.png new file mode 100644 index 00000000000..fef08510be7 Binary files /dev/null and b/source/images/blog/2024-11/webrtc-logo-horiz-retro.png differ diff --git a/source/images/docs/configuration/integration_instance_delete.png b/source/images/docs/configuration/integration_instance_delete.png new file mode 100644 index 00000000000..1177dfae720 Binary files /dev/null and b/source/images/docs/configuration/integration_instance_delete.png differ diff --git a/source/integrations/index.html b/source/integrations/index.html index fa2edd53249..24ffeaeccbe 100644 --- a/source/integrations/index.html +++ b/source/integrations/index.html @@ -120,7 +120,7 @@ regenerate: false
    diff --git a/source/more-info/statistics.markdown b/source/more-info/statistics.markdown index bda81cfff6b..5ac94fc43d9 100644 --- a/source/more-info/statistics.markdown +++ b/source/more-info/statistics.markdown @@ -3,6 +3,10 @@ title: "Expected data source not listed" description: "More information on if your expected data source is not listed." --- -You're configuring a statistic but you couldn't find your source in the dropdown? That's caused by a bug in the integration providing the entity. Integrations need to configure their entities correctly so Home Assistant knows that we need to track statistics for it and how. +You're configuring a statistic but you couldn't find your source in the dropdown? + +Check that it hasn't been excluded in the [Recorder](https://www.home-assistant.io/integrations/recorder/) configuration. + +Otherwise, It's caused by a bug in the integration providing the entity. Integrations need to configure their entities correctly so Home Assistant knows that we need to track statistics for it and how. Open an issue with the author of the integration and link them to https://developers.home-assistant.io/docs/core/entity/sensor#long-term-statistics. diff --git a/source/privacy/index.markdown b/source/privacy/index.markdown index 1e798cf7ab3..5acc79d302d 100644 --- a/source/privacy/index.markdown +++ b/source/privacy/index.markdown @@ -48,7 +48,7 @@ Ads appearing on any of our websites may be delivered to users by advertising pa ## Companion Applications -All information collected by the applications is sent directly to your hosted instance of Home Assistant. This includes, but is not limited to, sensor data and location data, which at times is sent while the application is in the background. At no point is this data logged or given to a 3rd party. +All information collected by the applications is sent directly to your hosted instance of Home Assistant. This includes, but is not limited to, sensor, health, and location data, which at times is sent while the application is in the background. At no point is this data logged or given to a 3rd party. ## Privacy Policy Changes @@ -58,6 +58,7 @@ Although most changes are likely to be minor, Home Assistant may change its Priv - October 19, 2017: Initial version - October 19, 2020: Add information about Companion Applications +- October 30, 2024: Add health data to Companion Applications _This privacy policy has been adapted from the [Automattic privacy policy][Home Assistant] and is licensed [Creative Commons ShareAlike][cc]._ diff --git a/source/voice_control/android.markdown b/source/voice_control/android.markdown index 7cd4ea2a7fe..00eee5d328c 100644 --- a/source/voice_control/android.markdown +++ b/source/voice_control/android.markdown @@ -11,17 +11,25 @@ related: ## Assist on Android phones -Assist is available on Android phones and tablets using the [Home Assistant Companion App](https://companion.home-assistant.io/docs/getting_started/) for Android. +Assist can be used on Android phones and tablets using the [Home Assistant Companion App](https://companion.home-assistant.io/docs/getting_started/). ### Prerequisites +- [Home Assistant Companion App](https://companion.home-assistant.io/docs/getting_started/) installed +- Have an Assistant set up: either [cloud](/voice_control/voice_remote_cloud_assistant/) (recommended, more performant) or [local](/voice_control/voice_remote_local_assistant/). - The devices you want to control with Assist are [exposed to Assist](/voice_control/voice_remote_expose_devices/) -### Setting up Home Assistant Assist as default assistant app on an Android phone +### Starting Assist in Home Assistant + +1. On your phone, open Home Assistant. +2. In the top-right corner, select the three-dots menu and select **Assist**. +3. [Give a command](/voice_control/custom_sentences/). + +### Setting up Home Assistant Assist as default assistant app This section was written using an Android 13. Depending on your flavor of Android, the exact steps may vary. -To define Home Assistant Assist as default assistant app, follow these steps: +To define Home Assistant Assist as default assistant app on your Android phone, follow these steps: 1. On the Android phone, go to **Settings** > **Apps** > **Default apps**. 2. Under **Digital assistant app**, select **Default digital assistant app**. @@ -76,9 +84,11 @@ Assist is available on Wear OS using the [Home Assistant Companion App](https:// The way how Assist can be set up on your phone may differ depending on your version of Wear OS. -1. After [installing the companion app](https://companion.home-assistant.io/docs/getting_started/) and connecting it to your Home Assistant, Assist might appear automatically on the **Apps screen**. -2. If it does not, visit your watch companion app or the Wear OS app and select **Add tile** inside the **Tiles** area. -3. Tap the **Assist** tile to add it to your watch: +1. After [installing the companion app](https://companion.home-assistant.io/docs/getting_started/) on your watch and connecting it to your Home Assistant, Assist appears automatically on the **Apps screen**. + + ![Assist app](/images/assist/wearos_assist_app.png) + +2. To add an Assist tile, in the Wear OS app, go to the **Tiles** area, select **Add tile** > **Assist**. ![Conversation tile](/images/assist/android_tile.png) @@ -94,10 +104,10 @@ The way how Assist can be set up on your phone may differ depending on your vers ![Assist complication](/images/assist/android_watch_5.png) - ### Using Assist on Wear OS -1. On your watch, swipe left until the **Assist** button is visible. +1. On your watch, open Assist. + - For example, swipe left until the **Assist** button is visible. ![Assist button](/images/assist/android_watch_1.png) @@ -114,10 +124,9 @@ The way how Assist can be set up on your phone may differ depending on your vers ![List of assistants](/images/assist/android_watch_6.png) - ### Setting up Home Assistant Assist as default assistant app on a Wear OS watch -This procedure was written using Wear OS version 3.5. The exact steps may vary depending on the watch and software version. +This procedure was written using Wear OS version 4.0. The exact steps may vary depending on the watch and software version. To define Home Assistant Assist as default assistant app, follow these steps: diff --git a/source/voice_control/builtin_sentences.markdown b/source/voice_control/builtin_sentences.markdown index 5e6f62456fe..7da1a505724 100644 --- a/source/voice_control/builtin_sentences.markdown +++ b/source/voice_control/builtin_sentences.markdown @@ -1,5 +1,5 @@ --- -title: "Assist - default sentences" +title: Assist - sentences starter kit related: - docs: /voice_control/aliases/ title: Create aliases @@ -19,99 +19,161 @@ related: Home Assistant comes with [built-in sentences](https://github.com/home-assistant/intents/tree/main/sentences) contributed by the community for [dozens of languages](https://developers.home-assistant.io/docs/voice/intent-recognition/supported-languages). -These sentences allow you, for example, to: +## Prerequisites -- **Turn entities on and off** - - *"turn on the living room light"* - - *"turn off ceiling fan"* - - *"turn on the TV"* - - *"lock all the doors"* - - *"open the main door"* -- **Open, close covers, or ask about their state** - - *"Close the garage door"* - - *"Open kitchen window"* - - *"Which curtains are closed"* - - *"Set bedroom curtain to 50%"* -- **Set the brightness and color of lights** - - *"Change kitchen lights brightness to 50%"* - - *"Set bed light to green"* -- **Ask about the weather** - - *"What is the weather"* - - Struggling with this one? Check the [troubleshooting section](/voice_control/troubleshooting/). -- **Add items to a list** - - *"Add bread to my shopping list"* - - *"Add decorating christmas tree to my december chores list"* -- **Get information about a state** - - *"What is the amount of energy from solar production?"* - - *"what is the heat pump co2 sensor's co2 level?"* - - *"what is the battery level of my phone?"* -- **Run a script** - - *"Run stealth mode script"* -- **Activate a scene** - - *"Activate dinner scene"* - - *"Turn kitchen dinner scene on"* -- **Inquire about people (that have device tracking activated in Home Assistant)** - - *"How many people are in the kitchen"* - - *"Who is in the garage"* - - *"Where is Anne"* -- **Control the media player** - - *"next item on TV"* - - *"skip song on the TV"* - - *"skip track on the TV"* - - *"skip to the next song on the TV"* - - *"pause TV"* - - *"TV pause"* - - *"unpause TV"* - - *"TV unpause"* - - *"resume TV"* - - *"set TV volume to 90 percent"* - - *"change the TV volume to 90"* - - *"turn TV volume down to 90 percent"* -- **Control the vacuum** - - *"return rover to base"* - - *"start rover"* -- **Use timers** - - *“Create a timer for 5 minutes”* - - *“Create a 15-minute timer for pizza”* - - *“Cancel my timer”* - - *“Pause my timer”* - - *“Resume my timer”* - - *“Add 2 minutes to my 5-minute timer”* - - *“Remove 3 minutes from my pizza timer”* +- The entities you want to control with Assist must be [exposed to Assist](/voice_control/voice_remote_expose_devices/). +- When using the names of entities or areas, make sure to use them exactly as they are defined in Home Assistant, or, [create an alias](/voice_control/aliases/). -

    Timers running on an S3-Box-3B, with countdown text and a loading bar!

    +## Device control + +### Turning entities on and off + +- *turn on the living room light* +- *turn off ceiling fan* +- *turn on the TV* +- *lock all the doors* +- *open the main door* + +### Lights + +- *Change kitchen lights brightness to 50%* +- *Set bed light to green* +- *set bed light brightness to 50%* +- *set living room brightness to 50%* +- *set brightness to 50%* + - Uses area of voice satellite +- *set kitchen lights to red* +- *set lights to red* + - Uses area of voice satellite +- *turn on the lights in the living room* + +### Covers + +- *Close the garage door* +- *Open kitchen window* +- *Which curtains are closed* +- *Set bedroom curtain to 50%* + +### Scenes and scripts + +- *Run stealth mode script* +- *Activate dinner scene* +- *Turn kitchen dinner scene on* + +### Media player + +- *next item on TV* +- *next track* +- *next track in office* +- *previous track* +- *previous track in office* +- *skip song on the TV* +- *skip track on the TV* +- *skip to the next song on the TV* +- *pause|resume* + - pauses or resumes music on voice satellite or in current area +- *pause|resume "area" music* + - pauses or resumes music in area +- *pause|resume "entity"* + - pauses or resumes music on media player +- *unpause TV* +- *TV unpause* +- *set TV volume to 90 percent* +- *change the TV volume to 90* +- *turn TV volume down to 90 percent* + +### Vacuum + +- *return rover to base* +- *start rover* + +### Lists + +- *Add bread to my shopping list* +- *Add decorating christmas tree to my december chores list* + - needs a todo list name "december chores" +- *add clean out garage to weekend list* + - needs a todo list named "Weekend" + +## Date and time + +- *what time is it?* +- *what's the date?* + +## Timers + +### Starting + +- *set a timer for 5 minutes* +- *5 minute timer* +- *set a 20 minute timer for pizza* + +### Cancelling + +- *cancel timer* + - can't cancel multiple timers yet +- *cancel 5 minute timer* +- *cancel pizza timer* +- *cancel kitchen timer* + - Must have been set by a voice satellite in the kitchen + +### Adding/Removing Time + +- *add 5 minutes to pizza timer* +- *add 5 minutes to kitchen timer* +- *remove 1 minute from timer* +- *remove 1 minute from 5 minute timer* + +### Status + +- *timer status* +- *how much time is left on pizza timer?* +- *how much time is left on kitchen timer?* +- *how much time is left on 5 minute timer?* + +

    Timers running on an S3-Box-3B, with countdown text and a loading bar!

    To learn how to set this up, refer to the [ESP32-S3-Box-3B tutorial](/voice_control/s3_box_voice_assistant/). -- **Combine timers and device control to add a delay** +### Combining timers and device control to add a delay + Unlike regular voice timers, delayed commands cannot be canceled or modified. - - *“Turn off the lights in the living room in 5 minutes”* - - *“Pause TV in 10 minutes”* - - *“Open the blinds in 5 minutes”* -- **Abort wake word** - - *"Nevermind"*: If you triggered the wake word by mistake and want to stop Home Assistant from listening +- *Turn off the lights in the living room in 5 minutes* +- *Pause TV in 10 minutes* +- *Open the blinds in 5 minutes* -The sentences only work, if the {% term entities %} are available and are named exactly the way you call them. Check the [troubleshooting section](/voice_control/troubleshooting/) to see common errors when asking for the weather forecast. +## Questions -In addition to individual {% term entities %}, commands can target **areas**: +### Get information about a state -- *"turn on all lights in the living room"* -- *"open windows in the kitchen"* -- *"change office brightness to 50%"* -- *"set bedroom lights to green"* +- *What is the amount of energy from solar production?* +- *what is the heat pump co2 sensor's co2 level?* +- *what is the battery level of my phone?* -Entity [aliases](/voice_control/aliases) are also matched so that multiple names can be used, even in different languages. +### Ask about the weather -You can extend the [built-in sentences](https://github.com/home-assistant/intents/tree/main/sentences) or [add your own](/voice_control/custom_sentences) to trigger any action in Home Assistant. +- *What is the weather* +- Struggling with this one? Check the [troubleshooting section](/voice_control/troubleshooting/). -## View existing sentences +### Ask about people + +(that have device tracking activated in Home Assistant) + +- *How many people are in the kitchen* +- *Who is in the garage* +- *Where is Anne* + +## Aborting + +- *Nevermind*: If you triggered the wake word by mistake and want to stop Home Assistant from listening + +## Troubleshooting The list of supported sentences is constantly being updated for each language. There are so many possible sentences that they cannot be all listed here. To find out what works in your language, follow these steps. -**Note**: If the voice assistant doesn't understand you, you may need to rephrase your sentence a bit. Or check if the {% term entity %} or {% term area %} name is correct for your environment. - -1. Take a look at the test sentences: +1. If the voice assistant doesn't understand you, you may need to rephrase your sentence a bit. Or check if the {% term entity %} or {% term area %} name is correct for your environment. +2. Take a look at the test sentences: - On GitHub, in the [tests](https://github.com/home-assistant/intents/tree/main/tests) folder, open the subfolder for your language. - Look through the test files to see the example sentences that have been tested. - The second part of the file name shows the {% term intent %}, the first part shows the {% term domain %}. For some {% term domains %}, such as covers, fans, and light, there are specific sentences. @@ -124,7 +186,7 @@ The list of supported sentences is constantly being updated for each language. T ![Example of a set of test sentences](/images/assist/assist-test-file-light-turn-on.png) -2. View the sentence definition for the tests: +3. View the sentence definition for the tests: - On GitHub, in the [sentences](https://github.com/home-assistant/intents/tree/main/sentences) folder, open the subfolder for your language. - Open the file of interest. @@ -132,8 +194,12 @@ The list of supported sentences is constantly being updated for each language. T - () mean alternative elements. - [] mean optional elements. - - <> mean an expansion rule. To view these rules, search for `expansion_rules` in the [_common.yaml](https://github.com/home-assistant/intents/blob/main/sentences/en/_common.yaml) file. + - <> mean an expansion rule. To view these rules, search for `expansion_rules` in the [_common.yaml](https://github.com/home-assistant/intents/blob/main/sentences/en/_common.yaml) file. - The syntax is explained in detail in the [template sentence syntax documentation](https://developers.home-assistant.io/docs/voice/intent-recognition/template-sentence-syntax/). -3. View the [sentence definition](https://github.com/home-assistant/intents/tree/main/sentences) for your language. -4. View the [response definition](https://github.com/home-assistant/intents/tree/main/responses) +4. View the [sentence definition](https://github.com/home-assistant/intents/tree/main/sentences) for your language. +5. View the [response definition](https://github.com/home-assistant/intents/tree/main/responses) +6. If there are issues when asking for the weather forecast, check the [troubleshooting section](/voice_control/troubleshooting/) to see common errors. +## More sentences + +You can extend the [built-in sentences](https://github.com/home-assistant/intents/tree/main/sentences) or [add your own](/voice_control/custom_sentences) to trigger any action in Home Assistant. diff --git a/source/voice_control/custom_sentences.markdown b/source/voice_control/custom_sentences.markdown index 04ef2dc08f1..7924dc94905 100644 --- a/source/voice_control/custom_sentences.markdown +++ b/source/voice_control/custom_sentences.markdown @@ -148,7 +148,7 @@ As mentioned above, you can then use the `intent_script` integration to implemen # Example configuration.yaml intent_script: SetVolume: - actions: + action: service: "media_player.volume_set" data: entity_id: "{{ media_player }}" diff --git a/source/voice_control/index.markdown b/source/voice_control/index.markdown index fb41ac16f9e..4cc075fd0e0 100644 --- a/source/voice_control/index.markdown +++ b/source/voice_control/index.markdown @@ -16,7 +16,7 @@ related: - docs: /voice_control/create_wake_word/ title: Create your own wake words - docs: /voice_control/builtin_sentences - title: Built-in sentences + title: Sentences starter kit - url: https://www.nabucasa.com/config/ title: Home Assistant Cloud ---