From 74a6cc9eb511c7fa6df7412eb28235a88e660523 Mon Sep 17 00:00:00 2001 From: Claudio Ruggeri - CR-Tech <41435902+crug80@users.noreply.github.com> Date: Mon, 13 Jan 2025 15:38:20 +0100 Subject: [PATCH 01/57] Changed default slave/device address to 1 (#36876) Pymodbus version 3.7.0 changed the default address to 1 from 0, that it is identified as brodcast address. I forgot to change the doc when I bumped pymodbus 3.7.4. --- source/_integrations/modbus.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 <>_<>. From 9abf7af7689c4d881238631e02147f7af19fa08a Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Mon, 13 Jan 2025 12:40:28 -0500 Subject: [PATCH 02/57] Add note for new users to SmartThings (#36908) Co-authored-by: Joost Lekkerkerker --- source/_integrations/smartthings.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/_integrations/smartthings.markdown b/source/_integrations/smartthings.markdown index 2d2b7ad3691..fc0815a3fcb 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)). From ddf9516c2f0760dc4ca7072423befbb38d1f8854 Mon Sep 17 00:00:00 2001 From: Joost Lekkerkerker Date: Mon, 13 Jan 2025 20:31:35 +0100 Subject: [PATCH 03/57] Fix date on backup post (#36909) --- source/_posts/2025-01-03-3-2-1-backup.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From eecdff0eebcdb09ddb2e793762b010ff3afed0b5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2025 07:38:45 +0100 Subject: [PATCH 04/57] build(deps): bump tilt from 2.5.0 to 2.6.0 (#36911) Bumps [tilt](https://github.com/jeremyevans/tilt) from 2.5.0 to 2.6.0. - [Changelog](https://github.com/jeremyevans/tilt/blob/master/CHANGELOG.md) - [Commits](https://github.com/jeremyevans/tilt/compare/v2.5.0...v2.6.0) --- updated-dependencies: - dependency-name: tilt dependency-type: indirect update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5137849eb53..6e61a12dc39 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -156,7 +156,7 @@ GEM 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) From 0c86ecca59a2f2db3ff9c7e5df4b5e0b29b564d6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2025 07:39:13 +0100 Subject: [PATCH 05/57] build(deps-dev): bump sass-embedded from 1.83.1 to 1.83.3 (#36912) Bumps [sass-embedded](https://github.com/sass-contrib/sass-embedded-host-ruby) from 1.83.1 to 1.83.3. - [Commits](https://github.com/sass-contrib/sass-embedded-host-ruby/compare/v1.83.1...v1.83.3) --- updated-dependencies: - dependency-name: sass-embedded dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 0eb0c0c7887..5935965ae65 100644 --- a/Gemfile +++ b/Gemfile @@ -10,7 +10,7 @@ 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.3' gem 'rubocop', '1.70.0' gem 'ruby-lsp', '0.23.5' gem 'rackup', '2.2.1' diff --git a/Gemfile.lock b/Gemfile.lock index 6e61a12dc39..69c93b50d95 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -135,9 +135,9 @@ GEM ruby2_keywords (0.0.5) safe_yaml (1.0.5) sass (3.4.25) - sass-embedded (1.83.1-arm64-darwin) + sass-embedded (1.83.3-arm64-darwin) google-protobuf (~> 4.29) - sass-embedded (1.83.1-x86_64-linux-gnu) + sass-embedded (1.83.3-x86_64-linux-gnu) google-protobuf (~> 4.29) sass-globbing (1.1.5) sass (>= 3.1) @@ -180,7 +180,7 @@ DEPENDENCIES rake (= 13.2.1) rubocop (= 1.70.0) ruby-lsp (= 0.23.5) - sass-embedded (= 1.83.1) + sass-embedded (= 1.83.3) sass-globbing (= 1.1.5) sassc (= 2.1.0) sinatra (= 4.1.1) From 42b110fc11655b16b77c65c99c73c3d87bb536ba Mon Sep 17 00:00:00 2001 From: dotvav Date: Tue, 14 Jan 2025 13:24:38 +0100 Subject: [PATCH 06/57] Add wpalacontrol compatibility and removal instructions (#36915) --- source/_integrations/palazzetti.markdown | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) 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 %} From e94e1520defad01364194a750f23386d47d87e90 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Jan 2025 08:33:44 +0100 Subject: [PATCH 07/57] build(deps-dev): bump sass-embedded from 1.83.3 to 1.83.4 (#36928) Bumps [sass-embedded](https://github.com/sass-contrib/sass-embedded-host-ruby) from 1.83.3 to 1.83.4. - [Commits](https://github.com/sass-contrib/sass-embedded-host-ruby/compare/v1.83.3...v1.83.4) --- updated-dependencies: - dependency-name: sass-embedded dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 5935965ae65..7042107e8f4 100644 --- a/Gemfile +++ b/Gemfile @@ -10,7 +10,7 @@ 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.3' + gem 'sass-embedded', '1.83.4' gem 'rubocop', '1.70.0' gem 'ruby-lsp', '0.23.5' gem 'rackup', '2.2.1' diff --git a/Gemfile.lock b/Gemfile.lock index 69c93b50d95..dfae422a791 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -135,9 +135,9 @@ GEM ruby2_keywords (0.0.5) safe_yaml (1.0.5) sass (3.4.25) - sass-embedded (1.83.3-arm64-darwin) + sass-embedded (1.83.4-arm64-darwin) google-protobuf (~> 4.29) - sass-embedded (1.83.3-x86_64-linux-gnu) + sass-embedded (1.83.4-x86_64-linux-gnu) google-protobuf (~> 4.29) sass-globbing (1.1.5) sass (>= 3.1) @@ -180,7 +180,7 @@ DEPENDENCIES rake (= 13.2.1) rubocop (= 1.70.0) ruby-lsp (= 0.23.5) - sass-embedded (= 1.83.3) + sass-embedded (= 1.83.4) sass-globbing (= 1.1.5) sassc (= 2.1.0) sinatra (= 4.1.1) From 90da0c71340877baa523d57fee98f81ccd01688b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Jan 2025 08:34:12 +0100 Subject: [PATCH 08/57] build(deps-dev): bump sorbet-runtime from 0.5.11751 to 0.5.11755 (#36929) Bumps [sorbet-runtime](https://github.com/sorbet/sorbet) from 0.5.11751 to 0.5.11755. - [Release notes](https://github.com/sorbet/sorbet/releases) - [Commits](https://github.com/sorbet/sorbet/commits) --- updated-dependencies: - dependency-name: sorbet-runtime dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index dfae422a791..60f5fc56488 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -152,7 +152,7 @@ GEM rack-protection (= 4.1.1) rack-session (>= 2.0.0, < 3) tilt (~> 2.0) - sorbet-runtime (0.5.11751) + sorbet-runtime (0.5.11755) stringex (2.8.6) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) From 42ac2a87bc4b4670182f60d84b03798a5cb97e1e Mon Sep 17 00:00:00 2001 From: Brooks Johnson <2008881+bkjohnson@users.noreply.github.com> Date: Wed, 15 Jan 2025 00:01:02 -0800 Subject: [PATCH 09/57] Update documentation for piper TTS automation (#36927) * Update documentation for piper TTS automation * Remove old images * Obey the AI This suggestion results in a broken preview build, and I imagine it will break an actual deployment too. But the AI insisted that this was correct. * Revert "Obey the AI" This reverts commit b8d54c32ea53532c51d8b18cc24b0b3d920724e7. --- source/images/assist/media-message.png | Bin 0 -> 16867 bytes source/images/assist/select-entity.png | Bin 0 -> 36122 bytes source/images/assist/speak-action.png | Bin 0 -> 19612 bytes source/images/assist/tts_action.png | Bin 37126 -> 0 bytes source/images/assist/tts_enter_text.png | Bin 15191 -> 0 bytes .../images/assist/tts_select_media_player.png | Bin 51976 -> 0 bytes .../images/assist/tts_select_media_source.png | Bin 25993 -> 0 bytes source/images/assist/tts_select_piper.png | Bin 17345 -> 0 bytes .../using_tts_in_automation.markdown | 14 ++++++-------- 9 files changed, 6 insertions(+), 8 deletions(-) create mode 100644 source/images/assist/media-message.png create mode 100644 source/images/assist/select-entity.png create mode 100644 source/images/assist/speak-action.png delete mode 100644 source/images/assist/tts_action.png delete mode 100644 source/images/assist/tts_enter_text.png delete mode 100644 source/images/assist/tts_select_media_player.png delete mode 100644 source/images/assist/tts_select_media_source.png delete mode 100644 source/images/assist/tts_select_piper.png diff --git a/source/images/assist/media-message.png b/source/images/assist/media-message.png new file mode 100644 index 0000000000000000000000000000000000000000..5a3ea1576590f2ffe91c27fdf874f565fed9d036 GIT binary patch literal 16867 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 G$NvMkRf(bi literal 0 HcmV?d00001 diff --git a/source/images/assist/tts_action.png b/source/images/assist/tts_action.png deleted file mode 100644 index 3fbee5f8574fb19883adb04e9256cc0a9847ea28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37126 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 diff --git a/source/images/assist/tts_enter_text.png b/source/images/assist/tts_enter_text.png deleted file mode 100644 index b3710aae1eba0ae065f90d80409cb3ccf2df40e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15191 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 diff --git a/source/images/assist/tts_select_piper.png b/source/images/assist/tts_select_piper.png deleted file mode 100644 index 528ce128ad53703649d3e6a85d86946049d96013..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17345 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⪙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 S!9Q|<6Bm{dD*mYJ`~LxC@24UF 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. - ![Select your media player](/images/assist/tts_select_media_player.png) -4. Select **Pick media**, then, select **Text-to-speech**. - ![Select your media source](/images/assist/tts_select_media_source.png) -5. To use fully local text-to-speech processing, select **Piper**. - ![Select Piper](/images/assist/tts_select_piper.png) +3. From the drop-down menu, search for or select **TTS: Speak**. + ![Select the TTS action](/images/assist/speak-action.png) +4. To use fully local text-to-speech processing, select **piper** from the **Choose entity** control. + ![Select Piper](/images/assist/select-entity.png) +5. Select the media player you want the automation to use. 6. Enter the text you want to hear for this automation. - ![Enter text to be spoken](/images/assist/tts_enter_text.png) + ![Enter text to be spoken](/images/assist/media-message.png) 7. Your text-to-speech action is now ready to be used in your script or automation. - ![Enter text to be spoken](/images/assist/tts_action.png) 8. Save your action. From 0815c0c85c79388bb6216f4bfc4e14c2fd78b9cb Mon Sep 17 00:00:00 2001 From: "Steven B." <51370195+sdb9696@users.noreply.github.com> Date: Wed, 15 Jan 2025 11:01:30 +0000 Subject: [PATCH 10/57] Improve quality of tplink docs (#36803) * Improve quality of tplink docs * Update post coderabbitai review * Apply suggestions from code review Co-authored-by: Teemu R. * Revert Gemfile.lock * Update post review * Update order of intro devices --------- Co-authored-by: Teemu R. --- source/_integrations/tplink.markdown | 141 ++++++++++++++++++++++++--- 1 file changed, 126 insertions(+), 15 deletions(-) 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. From a586302e16b3c85b140847f0b34243e9d481c0d3 Mon Sep 17 00:00:00 2001 From: Laura <6484174+laupalombi@users.noreply.github.com> Date: Wed, 15 Jan 2025 16:40:42 +0100 Subject: [PATCH 11/57] VPE links as potential next steps after basic Assist setup (#36933) * VPE related links * VPE in sidebar * Update docs_sitemap.html --- source/_includes/asides/docs_sitemap.html | 1 + source/voice_control/android.markdown | 2 ++ source/voice_control/apple.markdown | 2 ++ source/voice_control/best_practices.markdown | 2 ++ .../voice_control/expanding_assist.markdown | 2 ++ source/voice_control/index.markdown | 2 ++ .../voice_remote_cloud_assistant.markdown | 18 ++++++++++------- .../voice_remote_local_assistant.markdown | 20 ++++++++++--------- 8 files changed, 33 insertions(+), 16 deletions(-) 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/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/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/). From e73f47903eec24a1fefda8eea06ab1e320db5a4d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Jan 2025 08:12:57 +0100 Subject: [PATCH 12/57] build(deps): bump concurrent-ruby from 1.3.4 to 1.3.5 (#36946) Bumps [concurrent-ruby](https://github.com/ruby-concurrency/concurrent-ruby) from 1.3.4 to 1.3.5. - [Release notes](https://github.com/ruby-concurrency/concurrent-ruby/releases) - [Changelog](https://github.com/ruby-concurrency/concurrent-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/ruby-concurrency/concurrent-ruby/compare/v1.3.4...v1.3.5) --- updated-dependencies: - dependency-name: concurrent-ruby dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 60f5fc56488..e27405ead6a 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) From 2513850950a365a14888529a586e537a3a5a6790 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Jan 2025 08:13:21 +0100 Subject: [PATCH 13/57] build(deps-dev): bump sorbet-runtime from 0.5.11755 to 0.5.11761 (#36947) Bumps [sorbet-runtime](https://github.com/sorbet/sorbet) from 0.5.11755 to 0.5.11761. - [Release notes](https://github.com/sorbet/sorbet/releases) - [Commits](https://github.com/sorbet/sorbet/commits) --- updated-dependencies: - dependency-name: sorbet-runtime dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index e27405ead6a..e9ad979870e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -152,7 +152,7 @@ GEM rack-protection (= 4.1.1) rack-session (>= 2.0.0, < 3) tilt (~> 2.0) - sorbet-runtime (0.5.11755) + sorbet-runtime (0.5.11761) stringex (2.8.6) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) From 2f3fc3be368da228b348a1bb59e714e780390d04 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Jan 2025 08:24:13 +0100 Subject: [PATCH 14/57] build(deps-dev): bump parser from 3.3.6.0 to 3.3.7.0 (#36948) Bumps [parser](https://github.com/whitequark/parser) from 3.3.6.0 to 3.3.7.0. - [Changelog](https://github.com/whitequark/parser/blob/master/CHANGELOG.md) - [Commits](https://github.com/whitequark/parser/compare/v3.3.6.0...v3.3.7.0) --- updated-dependencies: - dependency-name: parser dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index e9ad979870e..c911292e894 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -86,7 +86,7 @@ GEM nokogiri (1.18.1-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) From cb7f7f3c6e4118f373803ef63664d9f86c333f49 Mon Sep 17 00:00:00 2001 From: Tomer Shemesh Date: Thu, 16 Jan 2025 02:45:34 -0500 Subject: [PATCH 15/57] add onkyo to ssdp page (#36938) --- source/_integrations/ssdp.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_integrations/ssdp.markdown b/source/_integrations/ssdp.markdown index b2fa9112893..a8356eafd4c 100644 --- a/source/_integrations/ssdp.markdown +++ b/source/_integrations/ssdp.markdown @@ -41,6 +41,7 @@ The following integrations are automatically discovered by the SSDP integration: - [LG webOS TV](/integrations/webostv/) - [Logitech Harmony](/integrations/harmony/) - [OctoPrint](/integrations/octoprint/) + - [Onkyo](/integrations/onkyo/) - [Philips Hue](/integrations/hue/) - [Roku](/integrations/roku/) - [Samsung SyncThru Printer](/integrations/syncthru/) From 076356c36707f765a0860b52dc8bf9c2522157df Mon Sep 17 00:00:00 2001 From: Tomer Shemesh Date: Thu, 16 Jan 2025 02:46:17 -0500 Subject: [PATCH 16/57] Add Lutron Caseta to SSDP page (#36942) * Add Lutron Caseta to SSDP page * lutron accent --- source/_integrations/ssdp.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_integrations/ssdp.markdown b/source/_integrations/ssdp.markdown index a8356eafd4c..7ffa6516953 100644 --- a/source/_integrations/ssdp.markdown +++ b/source/_integrations/ssdp.markdown @@ -40,6 +40,7 @@ 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/) From 340bbecd66390f435bf42d05783eb86ebc651cf8 Mon Sep 17 00:00:00 2001 From: Jan Bouwhuis Date: Thu, 16 Jan 2025 09:35:57 +0100 Subject: [PATCH 17/57] Improve incomfort docs (#36949) * Improve incomfort docs * Rephrase * Typo * Update source/_integrations/incomfort.markdown Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Apply suggestions from code review * fix link --------- Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- source/_integrations/incomfort.markdown | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/source/_integrations/incomfort.markdown b/source/_integrations/incomfort.markdown index f35e7fe3184..4b7c104397f 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,18 @@ 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. +## 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: From ac9b4a3f70abfea2d15fd5022fd80121fee67a59 Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Thu, 16 Jan 2025 09:37:17 +0100 Subject: [PATCH 18/57] Integration concept: fix list item (#36951) --- source/getting-started/concepts-terminology.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 Cloud icon indicates that this integration depends on the cloud. -The file icon Configuration 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 Configuration 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 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. From 419a984d227e2a005a879548dc468c0bd1fa289b Mon Sep 17 00:00:00 2001 From: OzGav Date: Fri, 17 Jan 2025 02:32:15 +1000 Subject: [PATCH 19/57] Add better content types to examples (#36954) * Add better content types to examples * Update source/_integrations/music_assistant.markdown Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- source/_integrations/music_assistant.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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' ``` From 36cbcc09a4d058efeb1508b98cfc7fae4c1f37ab Mon Sep 17 00:00:00 2001 From: Jan Bouwhuis Date: Thu, 16 Jan 2025 22:40:13 +0100 Subject: [PATCH 20/57] Document how the data is updated for the incomfort integration (#36961) --- source/_integrations/incomfort.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/_integrations/incomfort.markdown b/source/_integrations/incomfort.markdown index 4b7c104397f..f30043a1d8a 100644 --- a/source/_integrations/incomfort.markdown +++ b/source/_integrations/incomfort.markdown @@ -41,6 +41,10 @@ Any room thermostats (there can be 0, 1 or 2) are represented as **Climate** dev 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. From a34e8ce592cc807a5eb341c3653e3c47d7b6686c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Jan 2025 07:51:27 +0100 Subject: [PATCH 21/57] build(deps): bump tzinfo-data from 1.2024.2 to 1.2025.1 (#36965) Bumps [tzinfo-data](https://github.com/tzinfo/tzinfo-data) from 1.2024.2 to 1.2025.1. - [Release notes](https://github.com/tzinfo/tzinfo-data/releases) - [Commits](https://github.com/tzinfo/tzinfo-data/compare/v1.2024.2...v1.2025.1) --- updated-dependencies: - dependency-name: tzinfo-data dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index c911292e894..07043287ca4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -159,7 +159,7 @@ GEM 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) From ce61d721ffc9e21cc634c2cc7aff8dda6f05111a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Jan 2025 07:52:02 +0100 Subject: [PATCH 22/57] build(deps-dev): bump ruby-lsp from 0.23.5 to 0.23.6 (#36966) Bumps [ruby-lsp](https://github.com/Shopify/ruby-lsp) from 0.23.5 to 0.23.6. - [Release notes](https://github.com/Shopify/ruby-lsp/releases) - [Commits](https://github.com/Shopify/ruby-lsp/compare/v0.23.5...v0.23.6) --- updated-dependencies: - dependency-name: ruby-lsp dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 7042107e8f4..9b8572e4c1d 100644 --- a/Gemfile +++ b/Gemfile @@ -12,7 +12,7 @@ group :development do gem 'sassc', '2.1.0' 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 diff --git a/Gemfile.lock b/Gemfile.lock index 07043287ca4..fb5bf172565 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -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) @@ -179,7 +179,7 @@ DEPENDENCIES rackup (= 2.2.1) rake (= 13.2.1) rubocop (= 1.70.0) - ruby-lsp (= 0.23.5) + ruby-lsp (= 0.23.6) sass-embedded (= 1.83.4) sass-globbing (= 1.1.5) sassc (= 2.1.0) From 25715f712f1356e12adc90acecba4acb7a45155d Mon Sep 17 00:00:00 2001 From: Brian Krausz Date: Fri, 17 Jan 2025 00:31:56 -0800 Subject: [PATCH 23/57] Preserve integration category filter on noop keyup (#36844) --- source/integrations/index.html | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) 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(); } From b5420afc726d1b6208437287646b1622056866c3 Mon Sep 17 00:00:00 2001 From: Jordan Herzstein <63795875+jherzstein@users.noreply.github.com> Date: Fri, 17 Jan 2025 03:42:27 -0500 Subject: [PATCH 24/57] Update cgroup_version.markdown (#36923) --- source/more-info/unsupported/cgroup_version.markdown | 2 ++ 1 file changed, 2 insertions(+) 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. From 28cfe146c257d6a61f2d7e6b9e7201c40e726d2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Cauwelier?= Date: Fri, 17 Jan 2025 09:55:07 +0100 Subject: [PATCH 25/57] flux: document how the "mired" mode actually sets kelvin (#36808) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Hervé Cauwelier --- source/_integrations/flux.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From 6fda8d05ddb3ccd465e5a6539f62f7b9cf1935e7 Mon Sep 17 00:00:00 2001 From: Andre Lengwenus Date: Fri, 17 Jan 2025 11:28:25 +0100 Subject: [PATCH 26/57] Add tip for obtaining the device_id (#36815) --- source/_integrations/lcn.markdown | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/source/_integrations/lcn.markdown b/source/_integrations/lcn.markdown index 8814c6d968c..38f621e2299 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. From 040e0ff62e813dbe2da838ebaa2def95466d15b6 Mon Sep 17 00:00:00 2001 From: Darren Griffin Date: Fri, 17 Jan 2025 13:10:56 +0000 Subject: [PATCH 27/57] Fix mobile nav height (#36969) --- sass/homeassistant/base/_navigation.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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; } From 468822ffcb96c6f01fa851f2a02d6f41ebdf4726 Mon Sep 17 00:00:00 2001 From: Darren Griffin Date: Fri, 17 Jan 2025 13:11:53 +0000 Subject: [PATCH 28/57] Fix table overflow and sizing (#36970) --- sass/homeassistant/_overrides.scss | 4 ++++ 1 file changed, 4 insertions(+) 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); From aed501258731f86866ccd72bf0a7ed213ff58605 Mon Sep 17 00:00:00 2001 From: shapournemati-iotty <130070037+shapournemati-iotty@users.noreply.github.com> Date: Fri, 17 Jan 2025 14:12:57 +0100 Subject: [PATCH 29/57] Improve iotty procucts naming to include model (#36967) * Improve iotty procucts naming to include model * Remove codeowners erroneously added * Remove unclear and non-standardized market restriction comment --- source/_integrations/iotty.markdown | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) 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 From 0fca125faeb4e7aad17e52b058cbd71d065eea80 Mon Sep 17 00:00:00 2001 From: Manuel Stahl Date: Sun, 19 Jan 2025 19:36:02 +0100 Subject: [PATCH 30/57] Update stiebel_eltron.markdown (#37001) --- source/_integrations/stiebel_eltron.markdown | 1 + 1 file changed, 1 insertion(+) 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 From 7bd7deebe9f3cabae5631c793a8f3283d4400e8c Mon Sep 17 00:00:00 2001 From: Manu <4445816+tr4nt0r@users.noreply.github.com> Date: Sun, 19 Jan 2025 19:58:51 +0100 Subject: [PATCH 31/57] Add troubleshooting section (#36999) --- source/_integrations/habitica.markdown | 6 ++++++ 1 file changed, 6 insertions(+) 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: From 6392d0cd9477f15c6a6b971bcb5f6e1c868b69c0 Mon Sep 17 00:00:00 2001 From: Smart Home Junkie <67226335+smarthomejunkie@users.noreply.github.com> Date: Sun, 19 Jan 2025 20:43:15 +0100 Subject: [PATCH 32/57] Update google_generative_ai_conversation.markdown (#36998) Co-authored-by: Franck Nijhof --- .../google_generative_ai_conversation.markdown | 6 ++++++ 1 file changed, 6 insertions(+) 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. + + From 243044d82db93af2cfba28965e039b1eb8b25f08 Mon Sep 17 00:00:00 2001 From: Andre Lengwenus Date: Sun, 19 Jan 2025 20:51:39 +0100 Subject: [PATCH 33/57] Add remove integration section (#36990) --- source/_integrations/lcn.markdown | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/source/_integrations/lcn.markdown b/source/_integrations/lcn.markdown index 38f621e2299..20befb354e8 100644 --- a/source/_integrations/lcn.markdown +++ b/source/_integrations/lcn.markdown @@ -812,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 %} From bbd1aa50c223cffac3230d438931826f12727811 Mon Sep 17 00:00:00 2001 From: vukisz <48272340+vukisz@users.noreply.github.com> Date: Sun, 19 Jan 2025 21:52:20 +0200 Subject: [PATCH 34/57] Update solax.markdown (#36983) --- source/_integrations/solax.markdown | 13 ------------- 1 file changed, 13 deletions(-) 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; -} -``` From 3f893412ab4f4b898f11a0e71b6fd5e639f4c62d Mon Sep 17 00:00:00 2001 From: Matthew Simpson Date: Sun, 19 Jan 2025 19:52:53 +0000 Subject: [PATCH 35/57] Add note that Plusnet Hub Two work with bt_smarthub integration (#36982) --- source/_integrations/bt_smarthub.markdown | 2 ++ 1 file changed, 2 insertions(+) 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. From ab405abfdbf2aee2626e388900ee8c4eefd61e72 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 07:50:30 +0100 Subject: [PATCH 36/57] build(deps-dev): bump i18n from 1.14.6 to 1.14.7 (#37014) --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index fb5bf172565..c5747a66c0d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -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) From 0cfedd149470999d591cf21a4223d7f53bf44574 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 07:56:16 +0100 Subject: [PATCH 37/57] build(deps-dev): bump sorbet-runtime from 0.5.11761 to 0.5.11766 (#37012) --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index c5747a66c0d..0978275efc3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -152,7 +152,7 @@ GEM rack-protection (= 4.1.1) rack-session (>= 2.0.0, < 3) tilt (~> 2.0) - sorbet-runtime (0.5.11761) + sorbet-runtime (0.5.11766) stringex (2.8.6) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) From 906c57ef203838b5ef024ae5db04e1f88479131a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2025 07:57:15 +0100 Subject: [PATCH 38/57] build(deps): bump nokogiri from 1.18.1 to 1.18.2 (#37013) --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 9b8572e4c1d..6ae166847d3 100644 --- a/Gemfile +++ b/Gemfile @@ -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 0978275efc3..e91cfe3a242 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -81,9 +81,9 @@ 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.7.0) @@ -175,7 +175,7 @@ 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) From 0c50a41c75345daabda18210f5ba7c979ee779c2 Mon Sep 17 00:00:00 2001 From: IceBotYT <34712694+IceBotYT@users.noreply.github.com> Date: Mon, 20 Jan 2025 02:06:37 -0500 Subject: [PATCH 39/57] Add high level description to Nice G.O. (#37009) --- source/_integrations/nice_go.markdown | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/_integrations/nice_go.markdown b/source/_integrations/nice_go.markdown index c448b3497e8..bef507f7e19 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 From 84d37ffefa3d5818da8a692f5396df4744aad491 Mon Sep 17 00:00:00 2001 From: IceBotYT <34712694+IceBotYT@users.noreply.github.com> Date: Mon, 20 Jan 2025 02:07:23 -0500 Subject: [PATCH 40/57] Add removal instructions to Nice G.O. (#37010) --- source/_integrations/nice_go.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/_integrations/nice_go.markdown b/source/_integrations/nice_go.markdown index bef507f7e19..69cd5a33c23 100644 --- a/source/_integrations/nice_go.markdown +++ b/source/_integrations/nice_go.markdown @@ -47,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 %} From 894a26d71321704428e01400c6f5c1d106002fbf Mon Sep 17 00:00:00 2001 From: LHuisingh <31296055+LHuisingh@users.noreply.github.com> Date: Sun, 19 Jan 2025 23:08:17 -0800 Subject: [PATCH 41/57] Make wording consistent (#37006) Make the wording relating to attributes more consistent within this sentence. --- source/_docs/configuration/state_object.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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`.

    Screenshot showing three lights with different states: `on`, `off`, or `unavailable` From ea7bf764ba154c2f977ab746fb4e543ab84050f4 Mon Sep 17 00:00:00 2001 From: adynis Date: Mon, 20 Jan 2025 09:09:24 +0200 Subject: [PATCH 42/57] Improve 'conditions' explanation (#37005) I find it confusing to read only "If any of them do not return true, the automation will stop executing" (it's a double negation plus an "any" in the begining"). I've added an additional statement before --- source/_docs/automation/condition.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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. From 8638d733425cc8a5261e483a77a59facc1f8eee8 Mon Sep 17 00:00:00 2001 From: Calaway Date: Mon, 20 Jan 2025 00:11:03 -0700 Subject: [PATCH 43/57] Calaway add verified device (#37008) * Update existing links Checked all existing links against Leviton's website and updated as necessary. * Revert link Revert one link (I can't find this one on https://leviton.com/products/). * Add verified device I verified this device works on my Home Assistant setup --- source/_integrations/decora_wifi.markdown | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/source/_integrations/decora_wifi.markdown b/source/_integrations/decora_wifi.markdown index 44e45d11811..cef6f06e7b9 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) +- [DW15S-1BZ](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 %} From 78dfbe5f3a6a88771ea9c4ba9a4873cc09838034 Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Mon, 20 Jan 2025 08:24:26 +0100 Subject: [PATCH 44/57] RPI GPIO: use with Core installation type only (#37015) --- source/_integrations/remote_rpi_gpio.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/remote_rpi_gpio.markdown b/source/_integrations/remote_rpi_gpio.markdown index 2a6113ad0e3..590880ac39a 100644 --- a/source/_integrations/remote_rpi_gpio.markdown +++ b/source/_integrations/remote_rpi_gpio.markdown @@ -18,7 +18,7 @@ related: ha_quality_scale: legacy --- -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. +If you run a {% term "Home Assistant Core" %} installation type, 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. Don't use this if you run an installation type other than {% term "Home Assistant Core" %}. 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). From d4b83b5f618001490157ecc254e1b4349ff54b29 Mon Sep 17 00:00:00 2001 From: Rick Auch <48502913+mekaneck@users.noreply.github.com> Date: Mon, 20 Jan 2025 08:36:14 -0600 Subject: [PATCH 45/57] Add sensor type=time to the history_stats.markdown (#37011) --- source/_integrations/history_stats.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From 97990d297b43c619f66c2ca40b3820d73919a469 Mon Sep 17 00:00:00 2001 From: Exonip <41260107+Exonip@users.noreply.github.com> Date: Mon, 20 Jan 2025 15:37:07 +0100 Subject: [PATCH 46/57] Update documentation: Clarification of API registration guidelines (#37017) --- source/_integrations/hvv_departures.markdown | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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/). From 75da33b075bb2b8eac941705278ae12841c75c2c Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Mon, 20 Jan 2025 18:17:29 +0100 Subject: [PATCH 47/57] 2025.1.3 (#37020) --- _config.yml | 4 +- .../_posts/2025-01-03-release-20251.markdown | 147 ++++++++++++++---- source/changelogs/core-2025.1.markdown | 146 +++++++++++++---- 3 files changed, 243 insertions(+), 54 deletions(-) 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/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 From 40011e8a41fd189178c7fd294baa2bf440f9b4cd Mon Sep 17 00:00:00 2001 From: Miranda-GB Date: Mon, 20 Jan 2025 18:17:38 +0000 Subject: [PATCH 48/57] Add Matter badge to Third Reality (#37021) Co-authored-by: Joost Lekkerkerker --- source/_integrations/third_reality.markdown | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) 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/) From d3b07441de074aac22efe94dc3bc1f446f828a8a Mon Sep 17 00:00:00 2001 From: Calaway Date: Mon, 20 Jan 2025 13:26:08 -0700 Subject: [PATCH 49/57] Fix wrong Leviton Decora model number (#37023) I accidentally left the model number that I copied from the line above. This corrects it. --- source/_integrations/decora_wifi.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/decora_wifi.markdown b/source/_integrations/decora_wifi.markdown index cef6f06e7b9..9d9df97cbd0 100644 --- a/source/_integrations/decora_wifi.markdown +++ b/source/_integrations/decora_wifi.markdown @@ -24,7 +24,7 @@ Supported devices (tested): - [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) -- [DW15S-1BZ](https://leviton.com/products/d2msd-1bw) (Decora Smart Motion Sensing Dimmer Switch, Wi-Fi 2nd Gen) +- [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 %} From d755fd2cd2bfab5ee6e51053c8cea07a606b960e Mon Sep 17 00:00:00 2001 From: Luke Lashley Date: Tue, 21 Jan 2025 01:33:12 -0500 Subject: [PATCH 50/57] Add Troubleshooting for Roborock Cloud API only (#37019) * Add Troubleshooting for cloud api only * tiny tweaks --------- Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> --- source/_integrations/roborock.markdown | 6 ++++++ 1 file changed, 6 insertions(+) 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. From 359dcf22a9cf0397ecf80368eec3ed0648da2802 Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Tue, 21 Jan 2025 07:36:34 +0100 Subject: [PATCH 51/57] Revert "RPI GPIO: use with Core installation type only (#37015)" (#37027) --- source/_integrations/remote_rpi_gpio.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/remote_rpi_gpio.markdown b/source/_integrations/remote_rpi_gpio.markdown index 590880ac39a..2a6113ad0e3 100644 --- a/source/_integrations/remote_rpi_gpio.markdown +++ b/source/_integrations/remote_rpi_gpio.markdown @@ -18,7 +18,7 @@ related: ha_quality_scale: legacy --- -If you run a {% term "Home Assistant Core" %} installation type, 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. Don't use this if you run an installation type other than {% term "Home Assistant Core" %}. +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. 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). From a220d30fc791970e3179cc8e644f5acd416a2497 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Jan 2025 08:01:42 +0100 Subject: [PATCH 52/57] build(deps): bump actions/stale from 9.0.0 to 9.1.0 (#37028) --- .github/workflows/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 }} From 5dfa871361b589e1933289fb0a1b18fae24ff543 Mon Sep 17 00:00:00 2001 From: SMJ Date: Tue, 21 Jan 2025 21:38:38 +0800 Subject: [PATCH 53/57] Update smartthings.markdown to highlight TLS maximum version limitation (#37029) Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- source/_integrations/smartthings.markdown | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/_integrations/smartthings.markdown b/source/_integrations/smartthings.markdown index fc0815a3fcb..b0cac8beefe 100644 --- a/source/_integrations/smartthings.markdown +++ b/source/_integrations/smartthings.markdown @@ -65,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 From 13e201910627ca890a5ccac241f9ca5c654704d3 Mon Sep 17 00:00:00 2001 From: Klaas Schoute Date: Tue, 21 Jan 2025 15:41:13 +0100 Subject: [PATCH 54/57] Update supported devices for Powerfox integration (#37034) --- source/_integrations/powerfox.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 | From 2df962de7c61b14e20b3943908ea47fad9848e80 Mon Sep 17 00:00:00 2001 From: David Date: Wed, 22 Jan 2025 01:15:52 -0700 Subject: [PATCH 55/57] Update CIFS Authentication Documentation (#36767) * Update network_storage.md * Update network_storage.md * tiny tweak --------- Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> --- source/_includes/common-tasks/network_storage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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": From 3a86125ab3db16eda0e26686219a67013b753329 Mon Sep 17 00:00:00 2001 From: Sam Reed Date: Wed, 22 Jan 2025 08:17:23 +0000 Subject: [PATCH 56/57] aquacell.markdown: Expand documentation (#37044) * aquacell.markdown: Tweak docs * aquacell.markdown: Add TwinTec too * aquacell.markdown: Mention Culligan --- source/_integrations/aquacell.markdown | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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 From 86f1968ecf531ebc3a7993c1461664a0e17da0aa Mon Sep 17 00:00:00 2001 From: Bob <17985900+NanoBob@users.noreply.github.com> Date: Wed, 22 Jan 2025 09:18:22 +0100 Subject: [PATCH 57/57] Add Landis+Gyr E360 to known working meters, with additional elaboration regarding needing a special P1 cable (#37043) --- source/_integrations/dsmr.markdown | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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.