diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
index 7a7d712f113..3f8cb0d747a 100644
--- a/.github/workflows/stale.yml
+++ b/.github/workflows/stale.yml
@@ -11,7 +11,7 @@ jobs:
pull-requests: write
runs-on: ubuntu-latest
steps:
- - uses: actions/stale@v9.0.0
+ - uses: actions/stale@v9.1.0
if: ${{ github.repository_owner == 'home-assistant' }}
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/Gemfile b/Gemfile
index 0eb0c0c7887..6ae166847d3 100644
--- a/Gemfile
+++ b/Gemfile
@@ -10,9 +10,9 @@ 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'
- gem 'sass-embedded', '1.83.1'
+ gem 'sass-embedded', '1.83.4'
gem 'rubocop', '1.70.0'
- gem 'ruby-lsp', '0.23.5'
+ gem 'ruby-lsp', '0.23.6'
gem 'rackup', '2.2.1'
end
@@ -24,7 +24,7 @@ group :jekyll_plugins do
end
gem 'sinatra', '4.1.1'
-gem 'nokogiri', '1.18.1'
+gem 'nokogiri', '1.18.2'
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library
diff --git a/Gemfile.lock b/Gemfile.lock
index 4cdf4b358b7..4bc505654dc 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -21,7 +21,7 @@ GEM
sass (>= 3.3.0, < 3.5)
compass-import-once (1.0.5)
sass (>= 3.2, < 3.5)
- concurrent-ruby (1.3.4)
+ concurrent-ruby (1.3.5)
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
@@ -36,7 +36,7 @@ GEM
bigdecimal
rake (>= 13)
http_parser.rb (0.8.0)
- i18n (1.14.6)
+ i18n (1.14.7)
concurrent-ruby (~> 1.0)
jekyll (4.3.4)
addressable (~> 2.4)
@@ -81,12 +81,12 @@ GEM
multi_json (1.15.0)
mustermann (3.0.3)
ruby2_keywords (~> 0.0.1)
- nokogiri (1.18.1-arm64-darwin)
+ nokogiri (1.18.2-arm64-darwin)
racc (~> 1.4)
- nokogiri (1.18.1-x86_64-linux-gnu)
+ nokogiri (1.18.2-x86_64-linux-gnu)
racc (~> 1.4)
parallel (1.26.3)
- parser (3.3.6.0)
+ parser (3.3.7.0)
ast (~> 2.4.1)
racc
pathutil (0.16.2)
@@ -126,7 +126,7 @@ GEM
unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.37.0)
parser (>= 3.3.1.0)
- ruby-lsp (0.23.5)
+ ruby-lsp (0.23.6)
language_server-protocol (~> 3.17.0)
prism (>= 1.2, < 2.0)
rbs (>= 3, < 4)
@@ -135,7 +135,9 @@ GEM
ruby2_keywords (0.0.5)
safe_yaml (1.0.5)
sass (3.4.25)
- sass-embedded (1.83.1)
+ sass-embedded (1.83.4-arm64-darwin)
+ google-protobuf (~> 4.29)
+ sass-embedded (1.83.4-x86_64-linux-gnu)
google-protobuf (~> 4.29)
rake (>= 13)
sass-globbing (1.1.5)
@@ -151,14 +153,14 @@ GEM
rack-protection (= 4.1.1)
rack-session (>= 2.0.0, < 3)
tilt (~> 2.0)
- sorbet-runtime (0.5.11751)
+ sorbet-runtime (0.5.11766)
stringex (2.8.6)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
- tilt (2.5.0)
+ tilt (2.6.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
- tzinfo-data (1.2024.2)
+ tzinfo-data (1.2025.1)
tzinfo (>= 1.0.0)
unicode-display_width (2.6.0)
webrick (1.9.1)
@@ -174,12 +176,12 @@ DEPENDENCIES
jekyll-paginate (= 1.1.0)
jekyll-sitemap (= 1.4.0)
jekyll-toc (= 0.19.0)
- nokogiri (= 1.18.1)
+ nokogiri (= 1.18.2)
rackup (= 2.2.1)
rake (= 13.2.1)
rubocop (= 1.70.0)
- ruby-lsp (= 0.23.5)
- sass-embedded (= 1.83.1)
+ ruby-lsp (= 0.23.6)
+ sass-embedded (= 1.83.4)
sass-globbing (= 1.1.5)
sassc (= 2.1.0)
sinatra (= 4.1.1)
diff --git a/_config.yml b/_config.yml
index 237d69e50c9..67286e6c667 100644
--- a/_config.yml
+++ b/_config.yml
@@ -108,8 +108,8 @@ social:
# Home Assistant release details
current_major_version: 2025
current_minor_version: 1
-current_patch_version: 2
-date_released: 2025-01-09
+current_patch_version: 3
+date_released: 2025-01-20
# 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 d7ecf1f4585..e13d4d81983 100644
--- a/sass/homeassistant/_overrides.scss
+++ b/sass/homeassistant/_overrides.scss
@@ -1130,7 +1130,11 @@ article.listing {
&>table,
&>.entry-content>table {
background-color: #fff;
+ display: block;
+ overflow-x: auto;
table-layout: auto;
+ width: fit-content;
+ max-width: 100%;
&>thead {
background-color: rgba(0, 0, 0, .025);
diff --git a/sass/homeassistant/base/_navigation.scss b/sass/homeassistant/base/_navigation.scss
index 8a9dd2dd4ab..d887e31de31 100644
--- a/sass/homeassistant/base/_navigation.scss
+++ b/sass/homeassistant/base/_navigation.scss
@@ -152,7 +152,7 @@ header .grid {
.menu {
background: $white;
box-shadow: 0px 64px 32px rgba(0,0,0,.1);
- max-height: 100vh;
+ max-height: calc(100vh - 68px);
overflow-y: auto;
}
diff --git a/source/_docs/automation/condition.markdown b/source/_docs/automation/condition.markdown
index 3b782367fd9..ea19da75dbf 100644
--- a/source/_docs/automation/condition.markdown
+++ b/source/_docs/automation/condition.markdown
@@ -3,7 +3,7 @@ title: "Automation conditions"
description: "Automations can test conditions when invoked."
---
-Conditions are an optional part of an automation rule. They can be used to prevent the automation's actions from being run. After a {% term trigger %} occurred, all conditions will be checked. If any of them do not return true, the automation will stop executing.
+Conditions are an optional part of an automation rule. They can be used to prevent the automation's actions from being run. After a {% term trigger %} occurred, all conditions will be checked. The automation will be executed if all conditions return true, otherwise, if any of them does not return true, the automation will stop executing.
Conditions look very similar to triggers, but they are very different — a trigger will look at events happening in the system, while a condition only looks at how the system looks right now. A trigger can observe that a switch is being turned on. A condition can only see if a switch is currently on or off.
diff --git a/source/_docs/configuration/state_object.markdown b/source/_docs/configuration/state_object.markdown
index 7f70fd8a92e..c792feb5e35 100644
--- a/source/_docs/configuration/state_object.markdown
+++ b/source/_docs/configuration/state_object.markdown
@@ -32,7 +32,7 @@ The `state` prefix indicates that this information is part of the state object (
### About the state
-The screenshot shows three lights in different states (the `state.state`): `on`, `off`, and `unavailable`. Each light comes with its own entity state attributes such as `supported_color_modes`, `supported_features`. These attributes have their own state: the state of `supported_color_modes` is `color_temp` and `hs`, the state of the `supported_features` attribute is `4`.
+The screenshot shows three lights in different states (the `state.state`): `on`, `off`, and `unavailable`. Each light comes with its own entity state attributes such as `supported_color_modes`, `supported_features`. These attributes have their own state: the state of the `supported_color_modes` attribute is `color_temp` and `hs`, the state of the `supported_features` attribute is `4`.
diff --git a/source/_includes/asides/docs_sitemap.html b/source/_includes/asides/docs_sitemap.html
index 7f03543c25e..fb9b3a70d24 100644
--- a/source/_includes/asides/docs_sitemap.html
+++ b/source/_includes/asides/docs_sitemap.html
@@ -279,5 +279,6 @@
Home Assistant Green {% icon "tabler:external-link" %}
Home Assistant Yellow {% icon "tabler:external-link" %}
Home Assistant Connect ZBT-1 {% icon "tabler:external-link" %}
+ Home Assistant Voice Preview Edition {% icon "tabler:external-link" %}
diff --git a/source/_includes/common-tasks/network_storage.md b/source/_includes/common-tasks/network_storage.md
index 45e49c6df28..43b5cbb4baa 100644
--- a/source/_includes/common-tasks/network_storage.md
+++ b/source/_includes/common-tasks/network_storage.md
@@ -56,7 +56,7 @@ Server:
"[NFS]1 Remote share path":
description: The path used to connect to the remote storage server.
"[CIFS]2 Username":
- description: The username to use when connecting to the storage server.
+ description: The username to use when connecting to the storage server. Use User Principal Name for domain accounts. For example: `user@domain.com`.
"[CIFS]2 Password":
description: The password to use when connecting to the storage server.
"[CIFS]2 Share":
diff --git a/source/_integrations/aquacell.markdown b/source/_integrations/aquacell.markdown
index f51bde2caf1..938c97f376a 100644
--- a/source/_integrations/aquacell.markdown
+++ b/source/_integrations/aquacell.markdown
@@ -14,17 +14,19 @@ ha_platforms:
ha_integration_type: device
---
-AquaCell is a water-softening device. The [AquaCell](https://www.aquacell-waterontharder.nl/) {% term integration %} allows you to monitor your AquaCell device in Home Assistant.
+AquaCell is a water-softening device made by [Culligan](https://culliganinternational.com). The [AquaCell](https://www.aquacell-waterontharder.nl/) {% term integration %} allows you to monitor your AquaCell device in Home Assistant.
You will need your Aquacell account information as used in the **AquaCell** app.
-This integration also supports [Harvey](https://www.harveywatersofteners.co.uk/) softeners.
+This integration also supports other [Culligan brands](https://culliganinternational.com/brands) of water softener, such as [Harvey](https://www.harveywatersofteners.co.uk/) and [TwinTec](https://www.twintec.com/) (made by Harvey) softeners.
## Supported devices
-This integration only works for softener models which have an **i-Lid** and are configured through the 'Mijn AquaCell' or 'My Harvey' mobile app.
+This integration only works for softener models which have an **i-Lid** and are configured through the 'Mijn AquaCell' or 'myHarvey' mobile app.
These models are also recognizable by the required curved salt blocks.
+
- [AquaCell](https://www.aquacell-waterontharder.nl/aquacell)
- [HarveyArc Water Softener](https://www.harveywatersofteners.co.uk/products/water-softeners/harveyarc-water-softener)
+- [TwinTec Cobalt](https://www.twintec.com/our-products/tt-cobalt/)
## Prerequisites
diff --git a/source/_integrations/bt_smarthub.markdown b/source/_integrations/bt_smarthub.markdown
index 46ecaffb4ab..7ea9f917376 100644
--- a/source/_integrations/bt_smarthub.markdown
+++ b/source/_integrations/bt_smarthub.markdown
@@ -20,6 +20,8 @@ ha_quality_scale: legacy
This platform offers presence detection by looking at connected devices to a [BT Smart Hub](https://en.wikipedia.org/wiki/BT_Smart_Hub) based router.
This router is sometimes referred to as the BT Home Hub 6.
+It has been reported that the Plusnet Hub Two also works with this integration.
+
## Configuration
To use a BT Smart Hub router in your installation, add the following to your {% term "`configuration.yaml`" %} file.
diff --git a/source/_integrations/decora_wifi.markdown b/source/_integrations/decora_wifi.markdown
index 44e45d11811..9d9df97cbd0 100644
--- a/source/_integrations/decora_wifi.markdown
+++ b/source/_integrations/decora_wifi.markdown
@@ -19,11 +19,12 @@ Support for [Leviton Decora Wi-Fi](https://leviton.com/products/residential/smar
Supported devices (tested):
-- [DW6HD1-BZ](https://www.leviton.com/products/dw6hd-1bz) (Decora Smart Wi-Fi 600W Dimmer)
-- [DW15P-1BW](https://www.leviton.com/products/dw15p-1bw) (Decora Smart Wi-Fi Plug-in Outlet)
-- [DW15S-1BZ](https://www.leviton.com/products/dw15s-1bz) (Decora Smart Wi-Fi 15A Switch)
+- [DW6HD1-BZ](https://leviton.com/products/dw6hd-1bz) (Decora Smart Wi-Fi 600W Dimmer)
+- [DW15P-1BW](https://leviton.com/products/dw15p-1bw) (Decora Smart Wi-Fi Plug-in Outlet)
+- [DW15S-1BZ](https://leviton.com/products/dw15s-1bz) (Decora Smart Wi-Fi 15A Switch)
- [D215S-2RW](https://store.leviton.com/products/decora-smart-wi-fi-switch-2nd-gen-d215s-2rw) (Decora Smart Wi-Fi 15A Switch - 2nd Gen)
- [DN15S-1BW](https://leviton.com/products/dn15s-1bw) (Decora Smart No-Neutral Switch) via [MLWSB-1BW](https://leviton.com/products/mlwsb-1bw) (Decora Smart Wi-Fi Bridge for No-Neutral Switch and Dimmer)
+- [D2MSD-1BW](https://leviton.com/products/d2msd-1bw) (Decora Smart Motion Sensing Dimmer Switch, Wi-Fi 2nd Gen)
To enable these lights, add the following lines to your {% term "`configuration.yaml`" %} file.
{% include integrations/restart_ha_after_config_inclusion.md %}
diff --git a/source/_integrations/dsmr.markdown b/source/_integrations/dsmr.markdown
index 50009f3d4ec..e051b1a1066 100644
--- a/source/_integrations/dsmr.markdown
+++ b/source/_integrations/dsmr.markdown
@@ -54,7 +54,8 @@ This integration is known to work for:
- Iskra ME382 / MT382 (DSMR 2.2)
- ISKRA AM550 (DSMR 5.0)
-- Landis+Gyr E350 (DMSR 4)
+- Landis+Gyr E350 (DSMR 4)
+- Landis+Gyr E360 (DSMR 5)*
- Landis+Gyr ZCF110 / ZM F110 (DSMR 4.2)
- Kaifa E0026
- Kaifa MA304C (DSMR 4.2)
@@ -64,6 +65,8 @@ This integration is known to work for:
- Ziv E0058 ESMR5
- EasyMeter Q3D
+Remarks:
+\* The E360 requires a special P1 cable, various webstores sell these specific to the E360.
### M-Bus support
A smart meter can have multiple subdevices, also known as [M-Bus](https://m-bus.com/) devices.
diff --git a/source/_integrations/flux.markdown b/source/_integrations/flux.markdown
index f5214ca6c94..7ef893e597f 100644
--- a/source/_integrations/flux.markdown
+++ b/source/_integrations/flux.markdown
@@ -84,7 +84,7 @@ disable_brightness_adjust:
type: boolean
default: false
mode:
- description: Select how color temperature is passed to lights. Valid values are `xy`, `mired` and `rgb`.
+ description: Select how color temperature is passed to lights. Valid values are `xy`, `mired` (alias to kelvin) and `rgb`.
required: false
default: xy
type: string
diff --git a/source/_integrations/google_generative_ai_conversation.markdown b/source/_integrations/google_generative_ai_conversation.markdown
index 390c218d922..1c8e0b4ac14 100644
--- a/source/_integrations/google_generative_ai_conversation.markdown
+++ b/source/_integrations/google_generative_ai_conversation.markdown
@@ -125,3 +125,9 @@ data:
response_variable: generated_content
```
{% endraw %}
+
+### Video tutorial
+
+This video tutorial explains how Google Generative AI can be set up, how you can send an AI-generated message to your smart speaker when you arrive home, and how you can analyze an image taken from your doorbell camera as soon as someone rings the doorbell.
+
+
diff --git a/source/_integrations/habitica.markdown b/source/_integrations/habitica.markdown
index b46f2b405d3..729f79242b7 100644
--- a/source/_integrations/habitica.markdown
+++ b/source/_integrations/habitica.markdown
@@ -409,6 +409,12 @@ This integration performs the following requests:
Please keep these limits in mind to avoid exceeding Habitica's request allowance. Efforts are ongoing to optimize the integration and reduce the number of requests it makes.
+## Troubleshooting
+
+The Habitica integration relies on an active internet connection to communicate with **Habitica**. If you encounter issues, verify that your network connection is stable. Additionally, the Habitica service itself may experience downtime, whether unexpected or due to scheduled maintenance. In these trying times of uncertainty and challenge, when fate tests your resolve, seek guidance from the [Habitica Outage Instructions](https://habitica.fandom.com/wiki/Outage_Instructions) on the community-maintained Habitica wiki — wisdom shared by adventurers who have faced such trials before.
+
+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 reoccurs stop the debug logging again (_download of debug log file will start automatically_). Further _if still possible_, please also download the [diagnostics](/integrations/diagnostics) data. If you have collected the debug log and the diagnostics data, provide them with the issue report.
+
## Remove integration
This integration can be removed by following these steps:
diff --git a/source/_integrations/history_stats.markdown b/source/_integrations/history_stats.markdown
index 78c08936659..bc340880ce1 100644
--- a/source/_integrations/history_stats.markdown
+++ b/source/_integrations/history_stats.markdown
@@ -124,7 +124,7 @@ Depending on the sensor type you choose, the `history_stats` integration can sho
- **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.
+For a **time** or **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
diff --git a/source/_integrations/hvv_departures.markdown b/source/_integrations/hvv_departures.markdown
index a1d77aca6c3..08b6342798e 100644
--- a/source/_integrations/hvv_departures.markdown
+++ b/source/_integrations/hvv_departures.markdown
@@ -75,8 +75,7 @@ If the selected station has elevators, binary sensors will be available.
You have to apply for credentials via the HVV website. You can see their official guide [here](https://www.hvv.de/de/fahrplaene/abruf-fahrplaninfos/datenabruf) (the page is only available in German).
-In your mail, tell them you are using your API credentials for use within Home Assistant. They will send you a contract you will have to sign and send back. After about a week, you will receive your API credentials.
-
+In your mail, tell them you are using your API credentials for use within Home Assistant. They will subsequently send your API credentials in a follow-up response.
## Data
Data is provided by [HVV](https://www.hvv.de/).
diff --git a/source/_integrations/incomfort.markdown b/source/_integrations/incomfort.markdown
index f35e7fe3184..f30043a1d8a 100644
--- a/source/_integrations/incomfort.markdown
+++ b/source/_integrations/incomfort.markdown
@@ -21,8 +21,9 @@ ha_config_flow: true
---
The `incomfort` {% term integration %} links Home Assistant with your Intergas Lan2RF gateway, including the boiler and any room thermostats attached to it.
+The integration uses the [incomfort](https://pypi.org/project/incomfort-client/) client library.
-It uses the [incomfort](https://pypi.org/project/incomfort-client/) client library.
+The Intergas Lan2RF Gateway connects thermostats based on the OpenTherm standard. An example of such a thermostat is the [Comfort Touch Thermostat](https://www.intergas-verwarming.nl/en/consumer/products/comfort-touch-thermostat/). The thermostats and LAN2RF gateway are often sold as a set. The gateway is suitable for use with Intergas Kombi Kompakt HRE and HReco appliances from year of manufacture 2014. If the Comfort Touch thermostat is used together with the gateway, then this will work in combination with Intergas Kombi Kompakt HRE, HReco, or Xtreme devices from year of manufacture 2017.
### Boiler
@@ -34,12 +35,22 @@ In addition, there is a **Sensor** for each of CV pressure, CV temperature, and
### Rooms
-Any room thermostats (there can be 0, 1 or 2) are represented as **Climate** devices. They will report the thermostat's `temperature` (setpoint, target temperature) and `current_temperature` and the setpoint can be changed.
+Any room thermostats (there can be 0, 1 or 2) are represented as **Climate** devices. They will report the thermostat's target `temperature` and `current_temperature` and the target temperature can be changed. This is similar to changing the target temperature override using the Comfort Touch App that comes with the thermostat/gateway. Note that any override will be reset when a new set point is reached on the thermostat's schedule.
{% include integrations/config_flow.md %}
The hub does not have to be in the same network as HA, but must be reachable via port 80/HTTP.
+## Data updates
+
+The `incomfort` {% term integration %} will fetch state data from the gateway every 30 seconds. When the target temperature on the thermostat is changed, it might take some time for the set point to be updated on the Home Assistant climate {% term entity %}.
+
+## Remove integration
+
+This integration follows standard integration removal, no extra steps are required.
+
+{% include integrations/remove_device_service.md %}
+
## Automation
To send an alert if the CV pressure is too low or too high, consider the following example:
diff --git a/source/_integrations/iotty.markdown b/source/_integrations/iotty.markdown
index e5212549b06..933d941f7f3 100644
--- a/source/_integrations/iotty.markdown
+++ b/source/_integrations/iotty.markdown
@@ -40,20 +40,20 @@ US version:
EU version:
-- [iotty Smart Switch](https://iotty.uk/collections/prodotti-singoli/products/e1-e2-plus-smart-switch-for-lights-and-gates)
-- [iotty Smart Switch (variant)](https://iotty.uk/collections/prodotti-singoli/products/e1-e2-plus-smart-switch-for-lights-and-gates?variant=48626603032911)
-- [iotty Plus Interruttore Intelligente](https://iotty.it/collections/prodotti-singoli/products/i3-plus-interruttore-intelligente-per-luci-e-cancelli)
+- [E1 PLUS Smart Switch - for lights and gates](https://iotty.uk/collections/prodotti-singoli/products/e1-e2-plus-smart-switch-for-lights-and-gates)
+- [E2 PLUS Smart Switch - for lights and gates](https://iotty.uk/collections/prodotti-singoli/products/e1-e2-plus-smart-switch-for-lights-and-gates?variant=48626603032911)
+- [i3 PLUS Smart Switch - for lights and gates](https://iotty.it/collections/prodotti-singoli/products/i3-plus-interruttore-intelligente-per-luci-e-cancelli)
### iotty Shutter
-- [iotty Smart Shades Switch](https://iotty.uk/collections/frontpage/products/e2s-plus-smart-shades-switch-for-shutters-and-blinds)
-- [iotty Plus Interruttore Intelligente per Tende e Tapparelle](https://iotty.it/collections/prodotti-singoli/products/i3s-plus-interruttore-intelligente-per-tende-e-tapparelle) (currently only available for the Italian market)
+- [E2S PLUS Smart Shades Switch - for shutters and blinds](https://iotty.uk/collections/frontpage/products/e2s-plus-smart-shades-switch-for-shutters-and-blinds)
+- [i3S PLUS Smart Shades Switch - for shutters and blinds](https://iotty.it/collections/prodotti-singoli/products/i3s-plus-interruttore-intelligente-per-tende-e-tapparelle)
### iotty Outlet
-- [iotty Smart Outlet - Italy](https://iotty.it/collections/prodotti-singoli/products/oit-plus-presa-intelligente)
-- [iotty Smart Outlet - Germany](https://iotty.de/collections/prodotti-singoli/products/ode-plus-smarte-steckdose)
-- [iotty Smart Outlet - France](https://iotty.fr/collections/prodotti-singoli/products/ofr-plus-prise-intelligente)
+- [OiT PLUS Smart Outlet](https://iotty.it/collections/prodotti-singoli/products/oit-plus-presa-intelligente)
+- [ODE PLUS Smart Outlet](https://iotty.de/collections/prodotti-singoli/products/ode-plus-smarte-steckdose)
+- [OFR PLUS Smart Outlet](https://iotty.fr/collections/prodotti-singoli/products/ofr-plus-prise-intelligente)
## Supported entities
diff --git a/source/_integrations/lcn.markdown b/source/_integrations/lcn.markdown
index 8814c6d968c..20befb354e8 100644
--- a/source/_integrations/lcn.markdown
+++ b/source/_integrations/lcn.markdown
@@ -433,6 +433,20 @@ Refer to the [Performing actions](/docs/scripts/service-calls) page for examples
When actions are linked to a particular device, the device is identified by its `device_id`. This `device_id` is a unique identifier supplied by Home Assistant.
+{% tip %}
+A simple method to obtain the `device_id` for LCN modules in automations and scripts is to use a template with the `device_id()` function as detailed [here](/docs/configuration/templating/#devices). This allows for finding the `device_id` using the module name as shown in the frontend or configured in the LCN-PRO software.
+
+{% raw %}
+```yaml
+action: lcn.pck
+data:
+ device_id: "{{ device_id('Module name') }}"
+ pck: PIN4
+```
+{% endraw %}
+
+{% endtip %}
+
### Action: `output_abs`
Set absolute brightness of output port in percent.
@@ -798,3 +812,15 @@ The motor values specify which hardware relay or outputs configuration will be u
Whenever a key has to be provided, it is defined by a joint string consisting of the table identifier (`a`, `b`, `c`, `d`) and the corresponding key number.
Examples: `a1`, `a5`, `d8`.
+
+## Remove integration
+
+This integration follows standard integration removal, no extra steps are required.
+
+{% include integrations/remove_device_service.md %}
+
+{% warning %}
+
+Removing the integration will delete all device and entity configuration done via the UI panel.
+
+{% endwarning %}
diff --git a/source/_integrations/modbus.markdown b/source/_integrations/modbus.markdown
index c578afd80da..8e6183ac9e1 100644
--- a/source/_integrations/modbus.markdown
+++ b/source/_integrations/modbus.markdown
@@ -369,12 +369,12 @@ slave:
description: "Identical to `device_address`"
required: false
type: integer
- default: 0
+ default: 1
device_address:
- description: "Id of the device. Used to address multiple devices on a rs485 bus or devices connected to a modbus repeater."
+ description: "Id of the device. Used to address multiple devices on a rs485 bus or devices connected to a modbus repeater. 0 is the broadcast id. "
required: false
type: integer
- default: 0
+ default: 1
unique_id:
description: "ID that uniquely identifies this entity.
Slaves will be given a unique_id of <>_<>.
diff --git a/source/_integrations/music_assistant.markdown b/source/_integrations/music_assistant.markdown
index 08e8b267f01..ae804021bfd 100644
--- a/source/_integrations/music_assistant.markdown
+++ b/source/_integrations/music_assistant.markdown
@@ -49,7 +49,7 @@ Play Adele's album 25
```yaml
entity_id: media_player.music_assistant_player
-media_content_type: MUSIC
+media_content_type: album
media_content_id: 'Adele - 25'
```
@@ -57,7 +57,7 @@ Play all tracks from Stevie Wonder in random order
```yaml
entity_id: media_player.music_assistant_player
-media_content_type: MUSIC
+media_content_type: artist
media_content_id: 'Stevie Wonder'
```
@@ -65,7 +65,7 @@ Play the playlist The Best of Disco
```yaml
entity_id: media_player.music_assistant_player
-media_content_type: PLAYLIST
+media_content_type: playlist
media_content_id: 'The Best of Disco'
```
diff --git a/source/_integrations/nice_go.markdown b/source/_integrations/nice_go.markdown
index c448b3497e8..69cd5a33c23 100644
--- a/source/_integrations/nice_go.markdown
+++ b/source/_integrations/nice_go.markdown
@@ -21,7 +21,10 @@ ha_platforms:
ha_integration_type: hub
---
-The **Nice G.O.** {% term integration %} lets you control Nice G.O. garage doors through Home Assistant. Device names in Home Assistant are generated based on the names defined in your Nice G.O. mobile app.
+The **Nice G.O.** {% term integration %} is used to integrate with [Nice/Linear](https://linear-solutions.com/) and [Mighty Mule](https://mightymule.com/) products.
+This integration is used for garage doors and gate openers created by these companies.
+
+Device names in Home Assistant are generated based on the names defined in your Nice G.O. mobile app.
## Prerequisites
@@ -44,3 +47,9 @@ Lights on your garage door will appear as lights.
## Switch
A switch for turning vacation mode on and off will be made available for each device. Vacation mode prevents the operation of the door from physical control points such as a wall station, wireless keypad, remote control, or HomeLink. It can still be controlled from Home Assistant.
+
+## Removing the integration
+
+This integration follows standard integration removal. No extra steps are required.
+
+{% include integrations/remove_device_service.md %}
diff --git a/source/_integrations/palazzetti.markdown b/source/_integrations/palazzetti.markdown
index 6024b4e408c..ccaa03f3ac2 100644
--- a/source/_integrations/palazzetti.markdown
+++ b/source/_integrations/palazzetti.markdown
@@ -18,16 +18,17 @@ ha_integration_type: device
ha_dhcp: true
---
-## Prerequisites
-
-- You need the Connection Box bridge to be added to a network accessible to Home Assistant.
-- You either need to:
- - know the IP address or hostname of the Connection Box on the network.
- - or configure the Connection Box with DHCP on the same network as Home Assistant.
-
The **Palazzetti** {% term integration %} integrates the [Palazzetti](https://palazzettigroup.com/)
stoves equipped with a [Connection Box](https://palazzettigroup.com/research-and-development/app/).
-It is accessing the device's local API.
+It is accessing the device's local API. [WPalaControl](https://github.com/Domochip/WPalaControl)
+devices have a compatible API and are supported by this integration too.
+
+## Prerequisites
+
+- You need the Connection Box bridge or WPalaControl to be added to a network accessible to Home Assistant.
+- You either need to:
+ - know the IP address or hostname of the Connection Box or WPalaControl on the network.
+ - or configure the Connection Box or WPalaControl with DHCP on the same network as Home Assistant.
{% include integrations/config_flow.md %}
@@ -168,3 +169,8 @@ only when the status of the stove is in one of the following states: `off`, `off
`clean_fire`, `cooling`, `ecomode`, `firewood_finished`.
{% enddetails %}
+## Removing the integration
+
+This integration follows standard integration removal. No extra steps are required.
+
+{% include integrations/remove_device_service.md %}
diff --git a/source/_integrations/powerfox.markdown b/source/_integrations/powerfox.markdown
index e4bbef3c4d8..53ba42931f2 100644
--- a/source/_integrations/powerfox.markdown
+++ b/source/_integrations/powerfox.markdown
@@ -40,7 +40,7 @@ Not all Poweropti devices are supported currently. Check the list below to see i
| Device | Type | Supported |
| --------------------- | ----------- | ---------- |
| PA 201901 / PA 201902 | Power meter | Yes |
-| PB 202001 | Power meter | Not tested |
+| PB 202001 | Power meter | Yes |
| WA 201902 | Water meter | Yes |
| Powerfox FLOW | Gas meter | No |
| HA 201902 | Heat meter | No |
diff --git a/source/_integrations/roborock.markdown b/source/_integrations/roborock.markdown
index fb32496cb31..f9175f4b44b 100644
--- a/source/_integrations/roborock.markdown
+++ b/source/_integrations/roborock.markdown
@@ -238,3 +238,9 @@ Roborock servers require accepting a user agreement before using the API, which
3. Hit **Revoke authorization**.
4. Log back in and accept the policy.
5. Reload the Roborock integration!
+
+### The integration tells me it cannot reach my vacuum and is using the cloud API and that this is not supported
+
+This integration has the capability to control your devices through the cloud API and the local API. If the local API is not reachable, it will just use the cloud API. We recommend only using the local API as it helps prevent any kind of rate-limiting.
+
+The steps needed to fix this issue are specific to your networking setup. Make sure your Home Assistant instance can communicate on port 58867 with the IP address of your vacuum. This may require changing firewall settings, VLAN configuration, etc.
diff --git a/source/_integrations/smartthings.markdown b/source/_integrations/smartthings.markdown
index 2d2b7ad3691..b0cac8beefe 100644
--- a/source/_integrations/smartthings.markdown
+++ b/source/_integrations/smartthings.markdown
@@ -31,6 +31,10 @@ ha_dhcp: true
ha_integration_type: integration
---
+{% warning %}
+The Samsung SmartThings integration currently does not allow new installations. We are working directly with Samsung to get this resolved.
+{% endwarning %}
+
SmartThings is integrated into Home Assistant through the SmartThings Cloud API. The features of this integration include:
1. Controlling SmartThings devices as Home Assistant entities ([see platforms for supported devices and capabilities](#platforms)).
@@ -61,7 +65,9 @@ The PAT is used to create a Home Assistant SmartApp in your SmartThings account
This integration requires an internet accessible incoming webhook to receive push updates from SmartThings. The preferred approach is to subscribe to [Home Assistant Cloud (Nabu Casa)](https://www.nabucasa.com/) and the integration will configure and use a cloudhook automatically. Alternatively, you will have to configure and setup an internet accessible webhook in Home Assistant as described below:
-1. Setup [remote access](/docs/configuration/remote/) via a domain name secured with SSL. *Self-signed SSL certificates are not supported by the SmartThings Cloud API.*
+1. Setup [remote access](/docs/configuration/remote/) via a domain name secured with SSL.
+ 1. *Self-signed SSL certificates are not supported by the SmartThings Cloud API.*
+ 2. *SmartThings Cloud API requires SSL connection with **maximum** TLS version 1.2*
2. Set the external URL in the Home Assistant [configuration](/integrations/homeassistant/#external_url) to the URL that Home Assistant is available on the internet (this must start with `https://`). If you do not use Nabu Casa you must configure your network to allow TCP traffic from the internet to reach the IP address and port of the device running Home Assistant.
## Setup instructions
diff --git a/source/_integrations/solax.markdown b/source/_integrations/solax.markdown
index c148a7d2a2d..6c2588f9c4f 100644
--- a/source/_integrations/solax.markdown
+++ b/source/_integrations/solax.markdown
@@ -46,16 +46,3 @@ There are generally at least 3 sensors from your inverter that you need to confi
- The consumption sensor (in kWh) for the **Grid Consumption**.
- The feed-in sensor (in kWh) for the **Return to grid**, for example, the solar panel energy you do not consume and return to the grid instead.
- The on-grid yield sensor (in kWh) for the **Solar production**.
-
-### Note
-
-Inverter models with newer firmware (and also those using devices like PocketWifi) no longer expose an API when connected to your wireless network, they do however continue to expose it on their own broadcasted SSID. To use this sensor in this case it is necessary to set up a reverse proxy with something like NGINX and use a Raspberry Pi (or similar) with two network connections (one being Wi-Fi that connects to the inverters SSID).
-
-
-Example NGINX configuration
-
-```text
-location / {
- proxy_pass http://5.8.8.8;
-}
-```
diff --git a/source/_integrations/ssdp.markdown b/source/_integrations/ssdp.markdown
index b2fa9112893..7ffa6516953 100644
--- a/source/_integrations/ssdp.markdown
+++ b/source/_integrations/ssdp.markdown
@@ -40,7 +40,9 @@ The following integrations are automatically discovered by the SSDP integration:
- [Konnected.io](/integrations/konnected/)
- [LG webOS TV](/integrations/webostv/)
- [Logitech Harmony](/integrations/harmony/)
+ - [Lutron Caséta](/integrations/lutron_caseta/)
- [OctoPrint](/integrations/octoprint/)
+ - [Onkyo](/integrations/onkyo/)
- [Philips Hue](/integrations/hue/)
- [Roku](/integrations/roku/)
- [Samsung SyncThru Printer](/integrations/syncthru/)
diff --git a/source/_integrations/stiebel_eltron.markdown b/source/_integrations/stiebel_eltron.markdown
index 95b6078c2e6..0454a8fce0a 100644
--- a/source/_integrations/stiebel_eltron.markdown
+++ b/source/_integrations/stiebel_eltron.markdown
@@ -30,6 +30,7 @@ It requires the following components:
By now, the following units are tested:
- LWZ 504e
+- LWZ 404eco
- LWZ 304
- LWZ 304 Trend
diff --git a/source/_integrations/third_reality.markdown b/source/_integrations/third_reality.markdown
index 29d4db226a1..46039115399 100644
--- a/source/_integrations/third_reality.markdown
+++ b/source/_integrations/third_reality.markdown
@@ -7,28 +7,39 @@ ha_category:
- Cover
- Switch
- Binary sensor
+ - Light
- Sensor
- Button
ha_domain: third_reality
ha_integration_type: integration
works_with:
- zigbee
+ - matter
ha_platforms:
- binary_sensor
- button
+ - light
- sensor
- switch
- cover
-ha_iot_standard: zigbee
+ha_iot_standard:
+ - zigbee
+ - matter
ha_brand: true
---
-[Third Reality](https://3reality.com) is a member of the Works with Home Assistant partner program for their Zigbee products. Third Reality is committed to making sure their products are up-to-date and ready to use in Home Assistant.
+[Third Reality](https://3reality.com) is a member of the Works with Home Assistant partner program for their Zigbee and Matter products. Third Reality is committed to making sure their products are up-to-date and ready to use in Home Assistant.
Third Reality Zigbee devices work locally and integrate seamlessly with the Zigbee integration in Home Assistant (Zigbee stick required).
-To add Third Reality products, pair them as Zigbee devices:
+To add Third Reality products, pair them as Zigbee or Matter devices, depending on which you have purchased:
{% my add_zigbee_device badge brand=page.ha_domain %}
[Learn more about Zigbee in Home Assistant.](/integrations/zha/)
+
+Third Reality Matter devices work locally and integrate seamlessly with the Matter integration in Home Assistant. As all connectivity is happening locally, status updates and controlling your devices happen instantly in Home Assistant.
+
+{% my add_matter_device badge domain=page.ha_domain %}
+
+[Learn more about Matter in Home Assistant.](/integrations/matter/)
diff --git a/source/_integrations/tplink.markdown b/source/_integrations/tplink.markdown
index 84756d2190e..738be9c6499 100644
--- a/source/_integrations/tplink.markdown
+++ b/source/_integrations/tplink.markdown
@@ -39,7 +39,13 @@ ha_dhcp: true
ha_integration_type: integration
---
-The `tplink` integration allows you to control your [TP-Link Kasa Smart Home Devices](https://www.tp-link.com/kasa-smart/) and [TP-Link Tapo Devices](https://www.tapo.com/) such as plugs, power strips, wall switches and bulbs.
+The `tplink` integration allows you to control your [TP-Link Kasa Smart Home Devices](https://www.tp-link.com/kasa-smart/) and [TP-Link Tapo Devices](https://www.tapo.com/) such as cameras, lights, plugs, wall switches, hubs, and hub-attached devices.
+
+## How you can use this integration
+
+The TP-Link integration lets you do many things, such as switching devices on and off based on schedules or events, monitoring energy usage in the Home Assistant dashboards, viewing live camera feeds, and controlling device configurations manually or via automations.
+
+## Prerequisites
You need to provision your newly purchased device to connect to your network before it can be added via the integration. This can be done either by using [kasa command-line tool](https://python-kasa.readthedocs.io/en/latest/cli.html#provisioning) or by adding it to the official Kasa or Tapo app before trying to add them to Home Assistant. Some apps for TP-Link's other products, such as the Deco app, also allow you to add Kasa and Tapo devices. Since these devices use the same TP-Link Cloud Account for authorization, they work with this integration as well.
@@ -48,6 +54,29 @@ If you have an older device that does not currently require authentication, you
{% include integrations/config_flow.md %}
+{% configuration_basic %}
+
+Host:
+ description: |
+ Hostname or IP address of your TP-Link device.
+Username:
+ description: |
+ Your TP-Link cloud username which is your *case-sensitive* email address. Required for Tapo and newer Kasa devices.
+Password:
+ description: |
+ Your TP-Link cloud password. Required for Tapo and newer Kasa devices.
+Live view:
+ description: |
+ Checkbox to enable live view will create the live view camera entity for Tapo cameras. Requires your camera account credentials which you set up from the Tapo app under **Device Settings** > **Advanced Settings** > **Camera Account**.
+Camera account username:
+ description: |
+ Your camera account username as configured in the Tapo app.
+Camera account password:
+ description: |
+ Your camera account password configured for the device in the Tapo app.
+
+{% endconfiguration_basic %}
+
## Supported Devices
See [Supported Devices in python-kasa](https://python-kasa.readthedocs.io/en/stable/SUPPORTED.html) for an up to date list that includes hardware and firmware versions.
@@ -88,31 +117,113 @@ Alternatively, you can factory reset and then prevent the device from accessing
[^2]: Newer versions require authentication
[^3]: Devices may work across TAPO/KASA branded hubs
-## Unavailable entities
+
+## Supported functionality
+
+### Cameras
+
+Only Tapo cameras are currently supported.
+In order for live view to work, you will need to enable your camera account in the Tapo App under **Device Settings** > **Advanced Settings** > **Camera Account**.
+If you do not want to do this, keep **Live view** unchecked when adding the device. This can be changed at a later date using the `reconfigure` option on the integration entry.
+
+Depending on the supported features of the camera, you can control various settings such as privacy mode, pan/tilt, and motion detection alerts.
+
+### Lights
+
+Light entities are added for bulbs, light strips, and dimmer switches.
+Depending on the supported features of the device, the integration will allow changing brightness, color, color temperature, and light effects.
+
+If light effects are supported by a device, they can be selected from the bottom of the light card.
+Light presets are also supported and can be set via the config preset drop down on the device page.
+
+Depending on the supported features of the device you can control various other configuration settings such as on/off transitions and auto-on/off.
+
+### Plugs and switches
+
+Switch entities are added for plugs, simple wall switches and power strips. In addition to turning devices on and off, you can control the various configuration options that the device supports, such as auto-on/off and automatic firmware updates.
+
+### Energy monitoring
+
+If a device supports energy monitoring sensors will be created for consumption metrics which can be fed into the Home Assistant energy dashboard.
+
+### Hub-attached devices
+
+Various hub attached devices are supported such as those providing climate control, motion detection, humidity monitoring and water leak detection.
+
+
+## Data updates
+
+Devices are polled for data updates every 5 seconds. When you make changes through Home Assistant (e.g., switching a device on), the device's state is updated immediately rather than waiting for the next poll.
+The integration connects locally to the devices without going via the TP-Link cloud. This is different from the native Tapo and Kasa apps which will connect to the devices via the TP-Link cloud if the device has access to the internet.
+
+## Known limitations
+
+### Camera connections
+
+Some firmware versions of Tapo Cameras will not authenticate unless you enable **Tapo Lab** > **Third-Party Compatibility** in the native Tapo app.
+Alternatively, you can factory reset and then prevent the device from accessing the internet.
+
+### Subnets and discovery
+
+If devices are on a different subnet to Home Assistant, automatic discovery will not work.
+In this instance it is recommended to add devices by IP address and configure them with static IP addresses to prevent issues when IP addresses change.
+
+### Buttons
+
+The hub-attached Tapo buttons S200B and S200D, do not currently support alerting when the button is pressed.
+
+### Hub-attached cameras
+
+Hub attached cameras will be supported in the future. Due to battery considerations they do not support live view.
+
+### No light effects on kasa bulbs
+
+Light effects are currently not supported on Kasa bulbs.
+
+### Kasa power strips
+
+Due to limitations of the devices, the energy monitoring state of Kasa power strip child plugs is only updated every 60 seconds.
+
+If required, you can manually trigger an update via **Developer tools** > **Actions** > **Home Assistant Core Integration: Update entity** passing a list of the child entities.
+
+## Troubleshooting
+
+### Device connections
+
+- Take note of the known limitation for subnets above.
+- Try switching the device off for 5 seconds before switching back on again.
+- Check the [supported device list](#supported-devices) to see if the device is tested to work with the integration.
+- Try running the [kasa tool](https://github.com/python-kasa/python-kasa) to connect to the device. An easy way to do this is to [install uv](https://docs.astral.sh/uv/getting-started/installation/) and run `uvx --from python-kasa kasa --username --password `
+- Raise a support issue
+
+### Unavailable entities
Some entities might be showing as Unavailable if they have been removed from the integration.
-## Cameras
-
-Only Tapo cameras are currently supported.
-In order for live view to work, you will need to enable your camera account in the Tapo App > **Advanced Settings** > **Camera Account**.
-If you do not want to do this, keep **Live view** unchecked when adding the device.
-
-### Total consumption
+#### Total consumption sensor
This entity is only reported by older kasa devices.
Currently, Tapo devices and newer Kasa devices do not report total consumption, although briefly during 2024.6, they incorrectly reported today's consumption as "total consumption." You can safely delete this entity if it is reported as unavailable on a newer Kasa or Tapo device.
-### Update
+#### Update available sensor
This entity has been removed from the integration due to stability issues, calling the TPLink cloud API to check for updates. It will be replaced in a future release with a new Update entity, but if you have an Unavailable entity ID starting with `binary_sensor.` and ending with `update`, you can safely delete it.
-## Light effects
-If light effects are supported by a device they can be selected from the bottom of the light card.
-They are currently not supported on Kasa bulbs.
+## Examples
-### Random Effect - Action `tplink.random_effect`
+### Automation ideas
+
+- Turn on lights when it gets dark and turn them off again with a voice command.
+- Turn off privacy mode and turn on motion detection for internal cameras when you leave home (with geofencing) and toggle back when you get home.
+
+### Light effect services
+
+There are two services for light effects that can be used in automations.
+
+These are available on devices that support light effects such as bulbs and light strips, except for [kasa bulbs](#no-light-effects-on-kasa-bulbs)
+
+#### Random Effect - Action `tplink.random_effect`
Light strips allow setting a random effect.
@@ -161,7 +272,7 @@ data:
random_seed: 80
```
-### Sequence Effect - Action `tplink.sequence_effect`
+#### Sequence Effect - Action `tplink.sequence_effect`
Light strips allow setting a sequence effect.
diff --git a/source/_posts/2025-01-03-3-2-1-backup.markdown b/source/_posts/2025-01-03-3-2-1-backup.markdown
index 249ab82c540..cdb91af5876 100644
--- a/source/_posts/2025-01-03-3-2-1-backup.markdown
+++ b/source/_posts/2025-01-03-3-2-1-backup.markdown
@@ -3,7 +3,7 @@ layout: post
title: "3…2…1… Backup"
description: "Stop what you're doing and take 5 minutes to set up automatic encrypted backups to keep your smart home running smoothly."
date: 2025-01-03 00:00:01
-date_formatted: "January 03, 2025"
+date_formatted: "January 3, 2025"
author: Paulus Schoutsen
comments: true
categories: Announcements
diff --git a/source/_posts/2025-01-03-release-20251.markdown b/source/_posts/2025-01-03-release-20251.markdown
index 4288ca141bc..54c4a1f06a0 100644
--- a/source/_posts/2025-01-03-release-20251.markdown
+++ b/source/_posts/2025-01-03-release-20251.markdown
@@ -71,6 +71,7 @@ Enjoy the release!
- [Patch releases](#patch-releases)
- [2025.1.1 - January 7](#202511---january-7)
- [2025.1.2 - January 9](#202512---january-9)
+ - [2025.1.3 - January 20](#202513---january-20)
- [Need help? Join the community!](#need-help-join-the-community)
- [Backward-incompatible changes](#backward-incompatible-changes)
- [All changes](#all-changes)
@@ -691,18 +692,18 @@ release every Friday.
### 2025.1.2 - January 9
-- Fix Météo-France setup in non French cities (because of failed next rain sensor) ([@Quentame] - [#134782]) ([meteo_france docs])
-- Increase cloud backup download timeout ([@ludeeus] - [#134961]) ([cloud docs])
-- Fix ZHA "referencing a non existing `via_device`" warning ([@puddly] - [#135008]) ([zha docs])
-- Catch errors in automation (instead of raise unexpected error) in Overkiz ([@iMicknl] - [#135026]) ([overkiz docs])
-- Fix channel retrieval for Reolink DUO V1 connected to a NVR ([@starkillerOG] - [#135035]) ([reolink docs])
-- Bump aioautomower to 2025.1.0 ([@Thomas55555] - [#135039]) ([husqvarna_automower docs])
-- Bump cookidoo-api to 0.12.2 ([@miaucl] - [#135045]) ([cookidoo docs])
-- Implement upload retry logic in CloudBackupAgent ([@ludeeus] - [#135062]) ([cloud docs])
-- Add jitter to backup start time to avoid thundering herd ([@emontnemery] - [#135065]) ([backup docs])
-- Bump pysuezV2 to 2.0.3 ([@jb101010-2] - [#135080]) ([suez_water docs])
-- Fix Flick Electric Pricing ([@ZephireNZ] - [#135154]) ([flick_electric docs])
-- Update frontend to 20250109.0 ([@bramkragten] - [#135235]) ([frontend docs])
+- Fix Météo-France setup in non French cities (because of failed next rain sensor) ([@Quentame] - [#134782])
+- Increase cloud backup download timeout ([@ludeeus] - [#134961])
+- Fix ZHA "referencing a non existing `via_device`" warning ([@puddly] - [#135008])
+- Catch errors in automation (instead of raise unexpected error) in Overkiz ([@iMicknl] - [#135026])
+- Fix channel retrieval for Reolink DUO V1 connected to a NVR ([@starkillerOG] - [#135035])
+- Bump aioautomower to 2025.1.0 ([@Thomas55555] - [#135039])
+- Bump cookidoo-api to 0.12.2 ([@miaucl] - [#135045])
+- Implement upload retry logic in CloudBackupAgent ([@ludeeus] - [#135062])
+- Add jitter to backup start time to avoid thundering herd ([@emontnemery] - [#135065])
+- Bump pysuezV2 to 2.0.3 ([@jb101010-2] - [#135080])
+- Fix Flick Electric Pricing ([@ZephireNZ] - [#135154])
+- Update frontend to 20250109.0 ([@bramkragten] - [#135235])
[#134782]: https://github.com/home-assistant/core/pull/134782
[#134961]: https://github.com/home-assistant/core/pull/134961
@@ -721,27 +722,121 @@ release every Friday.
[@ZephireNZ]: https://github.com/ZephireNZ
[@bramkragten]: https://github.com/bramkragten
[@emontnemery]: https://github.com/emontnemery
+[@frenck]: https://github.com/frenck
[@iMicknl]: https://github.com/iMicknl
[@jb101010-2]: https://github.com/jb101010-2
[@ludeeus]: https://github.com/ludeeus
[@miaucl]: https://github.com/miaucl
[@puddly]: https://github.com/puddly
[@starkillerOG]: https://github.com/starkillerOG
-[abode docs]: /integrations/abode/
-[acaia docs]: /integrations/acaia/
-[adax docs]: /integrations/adax/
-[backup docs]: /integrations/backup/
-[cloud docs]: /integrations/cloud/
-[cookidoo docs]: /integrations/cookidoo/
-[flick_electric docs]: /integrations/flick_electric/
-[frontend docs]: /integrations/frontend/
-[husqvarna_automower docs]: /integrations/husqvarna_automower/
-[meteo_france docs]: /integrations/meteo_france/
-[overkiz docs]: /integrations/overkiz/
-[reolink docs]: /integrations/reolink/
-[suez_water docs]: /integrations/suez_water/
-[zha docs]: /integrations/zha/
+### 2025.1.3 - January 20
+
+- Fix DiscoveryFlowHandler when discovery_function returns bool ([@kgraefe] - [#133563])
+- Aprilaire - Fix humidifier showing when it is not available ([@chamberlain2007] - [#133984])
+- Gracefully handle webhook unsubscription if error occurs while contacting Withings ([@dcmeglio] - [#134271])
+- Image entity key error when camera is ignored in EZVIZ ([@RenierM26] - [#134343])
+- Bump pyaussiebb to 0.1.5 ([@Bre77] - [#134943])
+- Fix Watergate Power supply mode description and MQTT/Wifi uptimes ([@adam-the-hero] - [#135085])
+- Fix missing comma in ollama MODEL_NAMES ([@epenet] - [#135262])
+- Bump Freebox to 1.2.2 ([@Quentame] - [#135313])
+- Actually use translated entity names in Lametric ([@joostlek] - [#135381])
+- Fix descriptions of send_message action of Bring! integration ([@NoRi2909] - [#135446])
+- Bump switchbot-api to 2.3.1 ([@SeraphicRav] - [#135451])
+- Fix incorrect cast in HitachiAirToWaterHeatingZone in Overkiz ([@iMicknl] - [#135468])
+- Replace pyhiveapi with pyhive-integration ([@KJonline] - [#135482])
+- Fix referenced objects in script sequences ([@arturpragacz] - [#135499])
+- Use STT/TTS languages for LLM fallback ([@synesthesiam] - [#135533])
+- Bump demetriek to 1.2.0 ([@joostlek] - [#135580])
+- Use device supplied ranges in LaMetric ([@joostlek] - [#135590])
+- Bump elkm1-lib to 2.2.11 ([@gwww] - [#135616])
+- Fix mqtt number state validation ([@jbouwh] - [#135621])
+- Add reauthentication to SmartThings ([@joostlek] - [#135673])
+- Handle invalid HS color values in HomeKit Bridge ([@bdraco] - [#135739])
+- Update aioairzone to v0.9.9 ([@Noltari] - [#135866])
+- Remove device_class from NFC and fingerprint event descriptions ([@RaHehl] - [#135867])
+- Prevent HomeKit from going unavailable when min/max is reversed ([@bdraco] - [#135892])
+- Bump onvif-zeep-async to 3.2.2 ([@bdraco] - [#135898])
+- Round brightness in Niko Home Control ([@VandeurenGlenn] - [#135920])
+- Update NHC lib to v0.3.4 ([@VandeurenGlenn] - [#135923])
+- Update knx-frontend to 2025.1.18.164225 ([@farmio] - [#135941])
+- Bump aiooui to 0.1.8 ([@bdraco] - [#135945])
+- Bump aiooui to 0.1.9 ([@bdraco] - [#135956])
+- Fix switchbot cloud library logger ([@joostlek] - [#135987])
+- Correct type for off delay in rfxtrx ([@elupus] - [#135994])
+- Handle invalid datetime in onvif ([@bdraco] - [#136014])
+- Bump aioraven to 0.7.1 ([@cottsay] - [#136017])
+- Bump onvif-zeep-async to 3.2.3 ([@bdraco] - [#136022])
+- Bump yt-dlp to 2025.01.15 ([@joostlek] - [#136072])
+- Bump deebot-client to 11.0.0 ([@edenhaus] - [#136073])
+- Always include SSL folder in backups ([@emontnemery] - [#136080])
+
+[#133563]: https://github.com/home-assistant/core/pull/133563
+[#133984]: https://github.com/home-assistant/core/pull/133984
+[#134271]: https://github.com/home-assistant/core/pull/134271
+[#134343]: https://github.com/home-assistant/core/pull/134343
+[#134943]: https://github.com/home-assistant/core/pull/134943
+[#135085]: https://github.com/home-assistant/core/pull/135085
+[#135262]: https://github.com/home-assistant/core/pull/135262
+[#135313]: https://github.com/home-assistant/core/pull/135313
+[#135381]: https://github.com/home-assistant/core/pull/135381
+[#135446]: https://github.com/home-assistant/core/pull/135446
+[#135451]: https://github.com/home-assistant/core/pull/135451
+[#135468]: https://github.com/home-assistant/core/pull/135468
+[#135482]: https://github.com/home-assistant/core/pull/135482
+[#135499]: https://github.com/home-assistant/core/pull/135499
+[#135533]: https://github.com/home-assistant/core/pull/135533
+[#135580]: https://github.com/home-assistant/core/pull/135580
+[#135590]: https://github.com/home-assistant/core/pull/135590
+[#135616]: https://github.com/home-assistant/core/pull/135616
+[#135621]: https://github.com/home-assistant/core/pull/135621
+[#135673]: https://github.com/home-assistant/core/pull/135673
+[#135739]: https://github.com/home-assistant/core/pull/135739
+[#135866]: https://github.com/home-assistant/core/pull/135866
+[#135867]: https://github.com/home-assistant/core/pull/135867
+[#135892]: https://github.com/home-assistant/core/pull/135892
+[#135898]: https://github.com/home-assistant/core/pull/135898
+[#135920]: https://github.com/home-assistant/core/pull/135920
+[#135923]: https://github.com/home-assistant/core/pull/135923
+[#135941]: https://github.com/home-assistant/core/pull/135941
+[#135945]: https://github.com/home-assistant/core/pull/135945
+[#135956]: https://github.com/home-assistant/core/pull/135956
+[#135987]: https://github.com/home-assistant/core/pull/135987
+[#135994]: https://github.com/home-assistant/core/pull/135994
+[#136014]: https://github.com/home-assistant/core/pull/136014
+[#136017]: https://github.com/home-assistant/core/pull/136017
+[#136022]: https://github.com/home-assistant/core/pull/136022
+[#136072]: https://github.com/home-assistant/core/pull/136072
+[#136073]: https://github.com/home-assistant/core/pull/136073
+[#136080]: https://github.com/home-assistant/core/pull/136080
+[@Bre77]: https://github.com/Bre77
+[@KJonline]: https://github.com/KJonline
+[@NoRi2909]: https://github.com/NoRi2909
+[@Noltari]: https://github.com/Noltari
+[@Quentame]: https://github.com/Quentame
+[@RaHehl]: https://github.com/RaHehl
+[@RenierM26]: https://github.com/RenierM26
+[@SeraphicRav]: https://github.com/SeraphicRav
+[@VandeurenGlenn]: https://github.com/VandeurenGlenn
+[@adam-the-hero]: https://github.com/adam-the-hero
+[@arturpragacz]: https://github.com/arturpragacz
+[@bdraco]: https://github.com/bdraco
+[@bramkragten]: https://github.com/bramkragten
+[@chamberlain2007]: https://github.com/chamberlain2007
+[@cottsay]: https://github.com/cottsay
+[@dcmeglio]: https://github.com/dcmeglio
+[@edenhaus]: https://github.com/edenhaus
+[@elupus]: https://github.com/elupus
+[@emontnemery]: https://github.com/emontnemery
+[@epenet]: https://github.com/epenet
+[@farmio]: https://github.com/farmio
+[@frenck]: https://github.com/frenck
+[@gwww]: https://github.com/gwww
+[@iMicknl]: https://github.com/iMicknl
+[@jbouwh]: https://github.com/jbouwh
+[@joostlek]: https://github.com/joostlek
+[@kgraefe]: https://github.com/kgraefe
+[@synesthesiam]: https://github.com/synesthesiam
## Need help? Join the community!
diff --git a/source/changelogs/core-2025.1.markdown b/source/changelogs/core-2025.1.markdown
index c1fcda662f6..b74782733a5 100644
--- a/source/changelogs/core-2025.1.markdown
+++ b/source/changelogs/core-2025.1.markdown
@@ -1141,18 +1141,18 @@ For a summary in a more readable format:
## Release 2025.1.2 - January 9
-- Fix Météo-France setup in non French cities (because of failed next rain sensor) ([@Quentame] - [#134782]) ([meteo_france docs])
-- Increase cloud backup download timeout ([@ludeeus] - [#134961]) ([cloud docs])
-- Fix ZHA "referencing a non existing `via_device`" warning ([@puddly] - [#135008]) ([zha docs])
-- Catch errors in automation (instead of raise unexpected error) in Overkiz ([@iMicknl] - [#135026]) ([overkiz docs])
-- Fix channel retrieval for Reolink DUO V1 connected to a NVR ([@starkillerOG] - [#135035]) ([reolink docs])
-- Bump aioautomower to 2025.1.0 ([@Thomas55555] - [#135039]) ([husqvarna_automower docs])
-- Bump cookidoo-api to 0.12.2 ([@miaucl] - [#135045]) ([cookidoo docs])
-- Implement upload retry logic in CloudBackupAgent ([@ludeeus] - [#135062]) ([cloud docs])
-- Add jitter to backup start time to avoid thundering herd ([@emontnemery] - [#135065]) ([backup docs])
-- Bump pysuezV2 to 2.0.3 ([@jb101010-2] - [#135080]) ([suez_water docs])
-- Fix Flick Electric Pricing ([@ZephireNZ] - [#135154]) ([flick_electric docs])
-- Update frontend to 20250109.0 ([@bramkragten] - [#135235]) ([frontend docs])
+- Fix Météo-France setup in non French cities (because of failed next rain sensor) ([@Quentame] - [#134782])
+- Increase cloud backup download timeout ([@ludeeus] - [#134961])
+- Fix ZHA "referencing a non existing `via_device`" warning ([@puddly] - [#135008])
+- Catch errors in automation (instead of raise unexpected error) in Overkiz ([@iMicknl] - [#135026])
+- Fix channel retrieval for Reolink DUO V1 connected to a NVR ([@starkillerOG] - [#135035])
+- Bump aioautomower to 2025.1.0 ([@Thomas55555] - [#135039])
+- Bump cookidoo-api to 0.12.2 ([@miaucl] - [#135045])
+- Implement upload retry logic in CloudBackupAgent ([@ludeeus] - [#135062])
+- Add jitter to backup start time to avoid thundering herd ([@emontnemery] - [#135065])
+- Bump pysuezV2 to 2.0.3 ([@jb101010-2] - [#135080])
+- Fix Flick Electric Pricing ([@ZephireNZ] - [#135154])
+- Update frontend to 20250109.0 ([@bramkragten] - [#135235])
[#134782]: https://github.com/home-assistant/core/pull/134782
[#134961]: https://github.com/home-assistant/core/pull/134961
@@ -1178,20 +1178,114 @@ For a summary in a more readable format:
[@miaucl]: https://github.com/miaucl
[@puddly]: https://github.com/puddly
[@starkillerOG]: https://github.com/starkillerOG
-[abode docs]: /integrations/abode/
-[acaia docs]: /integrations/acaia/
-[adax docs]: /integrations/adax/
-[backup docs]: /integrations/backup/
-[cloud docs]: /integrations/cloud/
-[cookidoo docs]: /integrations/cookidoo/
-[flick_electric docs]: /integrations/flick_electric/
-[frontend docs]: /integrations/frontend/
-[husqvarna_automower docs]: /integrations/husqvarna_automower/
-[meteo_france docs]: /integrations/meteo_france/
-[overkiz docs]: /integrations/overkiz/
-[reolink docs]: /integrations/reolink/
-[suez_water docs]: /integrations/suez_water/
-[zha docs]: /integrations/zha/
+
+## Release 2025.1.3 - January 20
+
+- Fix DiscoveryFlowHandler when discovery_function returns bool ([@kgraefe] - [#133563])
+- Aprilaire - Fix humidifier showing when it is not available ([@chamberlain2007] - [#133984])
+- Gracefully handle webhook unsubscription if error occurs while contacting Withings ([@dcmeglio] - [#134271])
+- Image entity key error when camera is ignored in EZVIZ ([@RenierM26] - [#134343])
+- Bump pyaussiebb to 0.1.5 ([@Bre77] - [#134943])
+- Fix Watergate Power supply mode description and MQTT/Wifi uptimes ([@adam-the-hero] - [#135085])
+- Fix missing comma in ollama MODEL_NAMES ([@epenet] - [#135262])
+- Bump Freebox to 1.2.2 ([@Quentame] - [#135313])
+- Actually use translated entity names in Lametric ([@joostlek] - [#135381])
+- Fix descriptions of send_message action of Bring! integration ([@NoRi2909] - [#135446])
+- Bump switchbot-api to 2.3.1 ([@SeraphicRav] - [#135451])
+- Fix incorrect cast in HitachiAirToWaterHeatingZone in Overkiz ([@iMicknl] - [#135468])
+- Replace pyhiveapi with pyhive-integration ([@KJonline] - [#135482])
+- Fix referenced objects in script sequences ([@arturpragacz] - [#135499])
+- Use STT/TTS languages for LLM fallback ([@synesthesiam] - [#135533])
+- Bump demetriek to 1.2.0 ([@joostlek] - [#135580])
+- Use device supplied ranges in LaMetric ([@joostlek] - [#135590])
+- Bump elkm1-lib to 2.2.11 ([@gwww] - [#135616])
+- Fix mqtt number state validation ([@jbouwh] - [#135621])
+- Add reauthentication to SmartThings ([@joostlek] - [#135673])
+- Handle invalid HS color values in HomeKit Bridge ([@bdraco] - [#135739])
+- Update aioairzone to v0.9.9 ([@Noltari] - [#135866])
+- Remove device_class from NFC and fingerprint event descriptions ([@RaHehl] - [#135867])
+- Prevent HomeKit from going unavailable when min/max is reversed ([@bdraco] - [#135892])
+- Bump onvif-zeep-async to 3.2.2 ([@bdraco] - [#135898])
+- Round brightness in Niko Home Control ([@VandeurenGlenn] - [#135920])
+- Update NHC lib to v0.3.4 ([@VandeurenGlenn] - [#135923])
+- Update knx-frontend to 2025.1.18.164225 ([@farmio] - [#135941])
+- Bump aiooui to 0.1.8 ([@bdraco] - [#135945])
+- Bump aiooui to 0.1.9 ([@bdraco] - [#135956])
+- Fix switchbot cloud library logger ([@joostlek] - [#135987])
+- Correct type for off delay in rfxtrx ([@elupus] - [#135994])
+- Handle invalid datetime in onvif ([@bdraco] - [#136014])
+- Bump aioraven to 0.7.1 ([@cottsay] - [#136017])
+- Bump onvif-zeep-async to 3.2.3 ([@bdraco] - [#136022])
+- Bump yt-dlp to 2025.01.15 ([@joostlek] - [#136072])
+- Bump deebot-client to 11.0.0 ([@edenhaus] - [#136073])
+- Always include SSL folder in backups ([@emontnemery] - [#136080])
+
+[#133563]: https://github.com/home-assistant/core/pull/133563
+[#133984]: https://github.com/home-assistant/core/pull/133984
+[#134271]: https://github.com/home-assistant/core/pull/134271
+[#134343]: https://github.com/home-assistant/core/pull/134343
+[#134943]: https://github.com/home-assistant/core/pull/134943
+[#135085]: https://github.com/home-assistant/core/pull/135085
+[#135262]: https://github.com/home-assistant/core/pull/135262
+[#135313]: https://github.com/home-assistant/core/pull/135313
+[#135381]: https://github.com/home-assistant/core/pull/135381
+[#135446]: https://github.com/home-assistant/core/pull/135446
+[#135451]: https://github.com/home-assistant/core/pull/135451
+[#135468]: https://github.com/home-assistant/core/pull/135468
+[#135482]: https://github.com/home-assistant/core/pull/135482
+[#135499]: https://github.com/home-assistant/core/pull/135499
+[#135533]: https://github.com/home-assistant/core/pull/135533
+[#135580]: https://github.com/home-assistant/core/pull/135580
+[#135590]: https://github.com/home-assistant/core/pull/135590
+[#135616]: https://github.com/home-assistant/core/pull/135616
+[#135621]: https://github.com/home-assistant/core/pull/135621
+[#135673]: https://github.com/home-assistant/core/pull/135673
+[#135739]: https://github.com/home-assistant/core/pull/135739
+[#135866]: https://github.com/home-assistant/core/pull/135866
+[#135867]: https://github.com/home-assistant/core/pull/135867
+[#135892]: https://github.com/home-assistant/core/pull/135892
+[#135898]: https://github.com/home-assistant/core/pull/135898
+[#135920]: https://github.com/home-assistant/core/pull/135920
+[#135923]: https://github.com/home-assistant/core/pull/135923
+[#135941]: https://github.com/home-assistant/core/pull/135941
+[#135945]: https://github.com/home-assistant/core/pull/135945
+[#135956]: https://github.com/home-assistant/core/pull/135956
+[#135987]: https://github.com/home-assistant/core/pull/135987
+[#135994]: https://github.com/home-assistant/core/pull/135994
+[#136014]: https://github.com/home-assistant/core/pull/136014
+[#136017]: https://github.com/home-assistant/core/pull/136017
+[#136022]: https://github.com/home-assistant/core/pull/136022
+[#136072]: https://github.com/home-assistant/core/pull/136072
+[#136073]: https://github.com/home-assistant/core/pull/136073
+[#136080]: https://github.com/home-assistant/core/pull/136080
+[@Bre77]: https://github.com/Bre77
+[@KJonline]: https://github.com/KJonline
+[@NoRi2909]: https://github.com/NoRi2909
+[@Noltari]: https://github.com/Noltari
+[@Quentame]: https://github.com/Quentame
+[@RaHehl]: https://github.com/RaHehl
+[@RenierM26]: https://github.com/RenierM26
+[@SeraphicRav]: https://github.com/SeraphicRav
+[@VandeurenGlenn]: https://github.com/VandeurenGlenn
+[@adam-the-hero]: https://github.com/adam-the-hero
+[@arturpragacz]: https://github.com/arturpragacz
+[@bdraco]: https://github.com/bdraco
+[@bramkragten]: https://github.com/bramkragten
+[@chamberlain2007]: https://github.com/chamberlain2007
+[@cottsay]: https://github.com/cottsay
+[@dcmeglio]: https://github.com/dcmeglio
+[@edenhaus]: https://github.com/edenhaus
+[@elupus]: https://github.com/elupus
+[@emontnemery]: https://github.com/emontnemery
+[@epenet]: https://github.com/epenet
+[@farmio]: https://github.com/farmio
+[@frenck]: https://github.com/frenck
+[@gwww]: https://github.com/gwww
+[@iMicknl]: https://github.com/iMicknl
+[@jbouwh]: https://github.com/jbouwh
+[@joostlek]: https://github.com/joostlek
+[@kgraefe]: https://github.com/kgraefe
+[@synesthesiam]: https://github.com/synesthesiam
[#115483]: https://github.com/home-assistant/core/pull/115483
[#117355]: https://github.com/home-assistant/core/pull/117355
diff --git a/source/getting-started/concepts-terminology.markdown b/source/getting-started/concepts-terminology.markdown
index 56d073be7bb..8cec0ca7c59 100644
--- a/source/getting-started/concepts-terminology.markdown
+++ b/source/getting-started/concepts-terminology.markdown
@@ -13,7 +13,7 @@ Integrations are pieces of software that allow Home Assistant to connect to othe
Some integration cards show an icon:
- The cloud icon
indicates that this integration depends on the cloud.
-The file icon
indicates that this integration was not set up via the UI. You have either set it up in your {% term "`configuration.yaml`" %} file, or it is a dependency set up by another integration. If you want to configure it, you will need to do so in your {% term "`configuration.yaml`" %} file.
+- The file icon
indicates that this integration was not set up via the UI. You have either set it up in your {% term "`configuration.yaml`" %} file, or it is a dependency set up by another integration. If you want to configure it, you will need to do so in your {% term "`configuration.yaml`" %} file.
- The custom icon
indicates that this is not an official Home Assistant integration but that it was custom made. It could be imported from another source, for example downloaded from HACS.
For a full list of compatible {% term integrations %}, refer to the [integrations](/integrations) documentation.
diff --git a/source/images/assist/media-message.png b/source/images/assist/media-message.png
new file mode 100644
index 00000000000..5a3ea157659
Binary files /dev/null and b/source/images/assist/media-message.png differ
diff --git a/source/images/assist/select-entity.png b/source/images/assist/select-entity.png
new file mode 100644
index 00000000000..a8d477ae40e
Binary files /dev/null and b/source/images/assist/select-entity.png differ
diff --git a/source/images/assist/speak-action.png b/source/images/assist/speak-action.png
new file mode 100644
index 00000000000..4773a426f79
Binary files /dev/null and b/source/images/assist/speak-action.png differ
diff --git a/source/images/assist/tts_action.png b/source/images/assist/tts_action.png
deleted file mode 100644
index 3fbee5f8574..00000000000
Binary files a/source/images/assist/tts_action.png and /dev/null differ
diff --git a/source/images/assist/tts_enter_text.png b/source/images/assist/tts_enter_text.png
deleted file mode 100644
index b3710aae1eb..00000000000
Binary files a/source/images/assist/tts_enter_text.png and /dev/null differ
diff --git a/source/images/assist/tts_select_media_player.png b/source/images/assist/tts_select_media_player.png
deleted file mode 100644
index 7e6fe819e02..00000000000
Binary files a/source/images/assist/tts_select_media_player.png and /dev/null differ
diff --git a/source/images/assist/tts_select_media_source.png b/source/images/assist/tts_select_media_source.png
deleted file mode 100644
index 80b4486e234..00000000000
Binary files a/source/images/assist/tts_select_media_source.png and /dev/null differ
diff --git a/source/images/assist/tts_select_piper.png b/source/images/assist/tts_select_piper.png
deleted file mode 100644
index 528ce128ad5..00000000000
Binary files a/source/images/assist/tts_select_piper.png and /dev/null differ
diff --git a/source/integrations/index.html b/source/integrations/index.html
index 24ffeaeccbe..908979ca990 100644
--- a/source/integrations/index.html
+++ b/source/integrations/index.html
@@ -67,7 +67,7 @@ regenerate: false
{%- assign category_name = cat -%}
{%- endif -%}
{%- endfor -%}
- {%- endif -%}
+ {%- endif -%}
{%- assign components_count = components_count | plus: 1 -%}
{%- endif -%}
{%- endfor -%}
@@ -98,7 +98,7 @@ regenerate: false
{%- assign category_name = cat -%}
{%- endif -%}
{%- endfor -%}
- {%- endif -%}
+ {%- endif -%}
{%- assign components_count = components_count | plus: 1 -%}
{%- endif -%}
{%- endfor -%}
@@ -208,7 +208,7 @@ allComponents.pop(); // remove placeholder element at the end
if (hash.indexOf(SEARCH_PREFIX) === 0) {
// search through title and category
search = decodeURIComponent(hash).substring(SEARCH_PREFIX.length).toLowerCase();
- filter = comp =>
+ filter = comp =>
comp.search.indexOf(search) !== -1 ||
comp.cat.find((c) => c.includes("#")) != undefined;
@@ -309,17 +309,19 @@ allComponents.pop(); // remove placeholder element at the end
};
// update view by search text
+ let lastSearchText = '';
searchInputEl.addEventListener('keyup', debounce(() => {
const text = searchInputEl.value
// sanitize input
.replace(/[(\?|\&\{\}\(\))]/gi, '')
.trim();
-
- let newHash = typeof text === "string" && text.length >= 1
- ? SEARCH_PREFIX + text
- : '#all';
- // Only apply filter if hash has changed
- if (newHash !== window.location.hash) {
+
+ // Only apply filter if value has changed
+ if (lastSearchText !== text) {
+ lastSearchText = text;
+ const newHash = typeof text === "string" && text.length >= 1
+ ? SEARCH_PREFIX + text
+ : '#all';
history.pushState('', '', newHash);
applyFilter();
}
diff --git a/source/more-info/unsupported/cgroup_version.markdown b/source/more-info/unsupported/cgroup_version.markdown
index ad49b3c3faf..19b9bb4f3e2 100644
--- a/source/more-info/unsupported/cgroup_version.markdown
+++ b/source/more-info/unsupported/cgroup_version.markdown
@@ -16,6 +16,8 @@ before we publish a version that will require you to upgrade CGroups.
## The solution
+If your host uses CGroup v2, add this to the Linux kernel boot parameters: `systemd.unified_cgroup_hierarchy=0` and then reboot your operating system.
+
In a supervised installation if you have switched to CGroup v2 you will need to
revert what you did. Or you can re-run the [supervised installer](https://github.com/home-assistant/supervised-installer)
to fix it. Please be sure to reboot the system after the installation is done.
diff --git a/source/voice_control/android.markdown b/source/voice_control/android.markdown
index dfc8b3699dd..f7b06c1b5e9 100644
--- a/source/voice_control/android.markdown
+++ b/source/voice_control/android.markdown
@@ -7,6 +7,8 @@ related:
title: Best practices with Assist
- url: https://companion.home-assistant.io/docs/getting_started/
title: Home Assistant Companion App
+ - url: https://voice-pe.home-assistant.io/
+ title: Voice Preview Edition
---
## Assist on Android phones
diff --git a/source/voice_control/apple.markdown b/source/voice_control/apple.markdown
index 65fbe00da53..87f28cfde9f 100644
--- a/source/voice_control/apple.markdown
+++ b/source/voice_control/apple.markdown
@@ -7,6 +7,8 @@ related:
title: Best practices with Assist
- url: https://companion.home-assistant.io/docs/getting_started/
title: Home Assistant Companion App
+ - url: https://voice-pe.home-assistant.io/
+ title: Voice Preview Edition
---
## Assist on iPhones
diff --git a/source/voice_control/best_practices.markdown b/source/voice_control/best_practices.markdown
index b09048e8542..d3efbedbd2a 100644
--- a/source/voice_control/best_practices.markdown
+++ b/source/voice_control/best_practices.markdown
@@ -11,6 +11,8 @@ related:
title: Sentences starter kit
- url: https://www.nabucasa.com/config/
title: Home Assistant Cloud
+ - url: https://voice-pe.home-assistant.io/
+ title: Voice Preview Edition
---
There are a few things you should do to get the most out of the voice assistant experience.
diff --git a/source/voice_control/expanding_assist.markdown b/source/voice_control/expanding_assist.markdown
index a1e715e1d22..9793b29becc 100644
--- a/source/voice_control/expanding_assist.markdown
+++ b/source/voice_control/expanding_assist.markdown
@@ -7,6 +7,8 @@ related:
title: Custom sentences with Assist
- url: https://www.nabucasa.com/config/
title: Home Assistant Cloud
+ - url: https://voice-pe.home-assistant.io/
+ title: Voice Preview Edition
---
Once you have completed the steps in the [Best practices](/voice_control/best_practices/), you have your bases covered and are ready to use Assist. This section provides some ideas on how to expand your setup for more advanced use cases.
diff --git a/source/voice_control/index.markdown b/source/voice_control/index.markdown
index b60813e94d0..69beced6a2b 100644
--- a/source/voice_control/index.markdown
+++ b/source/voice_control/index.markdown
@@ -11,6 +11,8 @@ related:
title: Best practices with Assist
- url: https://www.nabucasa.com/config/assist/
title: Home Assistant Cloud
+ - url: https://voice-pe.home-assistant.io/
+ title: Voice Preview Edition
---
This section will help you set up Assist, which is Home Assistant voice assistant.
diff --git a/source/voice_control/using_tts_in_automation.markdown b/source/voice_control/using_tts_in_automation.markdown
index 302eb6c4c63..561720f9f10 100644
--- a/source/voice_control/using_tts_in_automation.markdown
+++ b/source/voice_control/using_tts_in_automation.markdown
@@ -6,14 +6,12 @@ This procedure shows you how to create a text-to-speech {% term action %}. For t
1. Go to **{% my automations title="Settings > Automations & Scenes" %}**, and select **Create automation**.
2. Select **Create new automation**, then **Add action**.
-3. From the drop-down menu, select **Play media** and select the media player you want to use for this automation.
- 
-4. Select **Pick media**, then, select **Text-to-speech**.
- 
-5. To use fully local text-to-speech processing, select **Piper**.
- 
+3. From the drop-down menu, search for or select **TTS: Speak**.
+ 
+4. To use fully local text-to-speech processing, select **piper** from the **Choose entity** control.
+ 
+5. Select the media player you want the automation to use.
6. Enter the text you want to hear for this automation.
- 
+ 
7. Your text-to-speech action is now ready to be used in your script or automation.
- 
8. Save your action.
diff --git a/source/voice_control/voice_remote_cloud_assistant.markdown b/source/voice_control/voice_remote_cloud_assistant.markdown
index a5c9d65a64f..5bc193a2467 100644
--- a/source/voice_control/voice_remote_cloud_assistant.markdown
+++ b/source/voice_control/voice_remote_cloud_assistant.markdown
@@ -1,16 +1,16 @@
---
title: "Getting Started - Home Assistant Cloud"
related:
- - docs: /voice_control/install_wake_word_add_on/
- title: Enabling a wake word
- - docs: /voice_control/create_wake_word/
- title: Create your own wake word
+ - docs: /voice_control/best_practices/
+ title: Best practices with Assist
+ - docs: /voice_control/expanding_assist/
+ title: Expanding Assist
- docs: /voice_control/voice_remote_local_assistant/
title: Creating a local assistant
- docs: /voice_control/voice_remote_expose_devices/
title: Exposing devices to Assist
- - docs: /voice_control/best_practices/
- title: Best practices with Assist
+ - url: https://voice-pe.home-assistant.io/documentation/
+ title: Voice Preview Edition - Documentation
---
Before being able to use Assist, you need to configure it.
@@ -48,4 +48,8 @@ To have the fastest processing voice assistant experience, follow these steps:
6. That's it. You can now speak to your device, and the device can answer in the language you defined.
-Once Assist is configured, now can now start using it. Check this page to learn how:
+
+## Next steps
+Once Assist is configured, now can now start using it. You can now talk through your device ([Android](/voice_control/android/), [iOS](/voice_control/apple/) or [Voice Preview edition](https://voice-pe.home-assistant.io/getting-started/)).
+
+To get the best out of the voice interaction, don't forget to check the [best practices](/voice_control/best_practices/).
diff --git a/source/voice_control/voice_remote_local_assistant.markdown b/source/voice_control/voice_remote_local_assistant.markdown
index 188e8cb5dd8..4c01878a9cf 100644
--- a/source/voice_control/voice_remote_local_assistant.markdown
+++ b/source/voice_control/voice_remote_local_assistant.markdown
@@ -1,16 +1,16 @@
---
title: "Getting started - Local"
related:
- - docs: /voice_control/voice_remote_expose_devices/#exposing-your-devices
- title: Expose your devices to Assist
- - docs: /voice_control/create_wake_word/
- title: Create your own wake words
- - url: https://github.com/openai/whisper
- title: Whisper for speech-to-text
- - url: https://github.com/rhasspy/piper
- title: Piper for text-to-speech
- docs: /voice_control/best_practices/
title: Best practices with Assist
+ - docs: /voice_control/expanding_assist/
+ title: Expanding Assist
+ - docs: /voice_control/voice_remote_local_assistant/
+ title: Creating a local assistant
+ - docs: /voice_control/voice_remote_expose_devices/
+ title: Exposing devices to Assist
+ - url: https://voice-pe.home-assistant.io/documentation/
+ title: Voice Preview Edition - Documentation
---
The simplest and most effective way to use Assist is to leverage the voice providers (for speech-to-text and text-to-speech) included in [Home Assistant Cloud](/voice_control/voice_remote_cloud_assistant/)
@@ -95,4 +95,6 @@ The options are also documented in the add-on itself. Go to the {% my supervisor
Also be sure to check the specific tutorial for [using Piper in Automations](voice_control/using_tts_in_automation/)
## Next steps
-Once the pipeline is configured, you are ready to jump into the basic conversation setup in Best Practices
+Once Assist is configured, now can now start using it. You can now talk through your device ([Android](/voice_control/android/), [iOS](/voice_control/apple/) or [Voice Preview edition](https://voice-pe.home-assistant.io/getting-started/)).
+
+To get the best out of the voice interaction, don't forget to check the [best practices](/voice_control/best_practices/).