From c24b1fb1e18b641303f41509d8a248cbbee2fce1 Mon Sep 17 00:00:00 2001 From: Darren Griffin Date: Mon, 23 Dec 2024 15:13:18 +0000 Subject: [PATCH 01/48] Updates VPE distributor list (#36514) * Fix display issues when :target is active * Content update * Change :target to display block * Added Australian distributors --- source/voice-pe/index.html | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/source/voice-pe/index.html b/source/voice-pe/index.html index 603c6c0022b..749b360b897 100644 --- a/source/voice-pe/index.html +++ b/source/voice-pe/index.html @@ -1452,11 +1452,10 @@ frontpage_image: /images/frontpage/voice-pe-frontpage.jpg -
Shipping to Europe
From 654e17e80249420c05a78926489a9982b2e5d038 Mon Sep 17 00:00:00 2001 From: andrewstech Date: Mon, 23 Dec 2024 15:43:49 +0000 Subject: [PATCH 02/48] Add Monzo to the Finance category (#36510) --- source/_integrations/monzo.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_integrations/monzo.markdown b/source/_integrations/monzo.markdown index afcfa7b1cf6..0534bc085b6 100644 --- a/source/_integrations/monzo.markdown +++ b/source/_integrations/monzo.markdown @@ -3,6 +3,7 @@ title: Monzo description: Instructions on how to integrate Monzo integration into Home Assistant. ha_category: - Sensor + - Finance ha_release: 2024.6 ha_iot_class: Cloud Polling ha_codeowners: From a5bb5daa70f60e26bd04ccfac9cd14f4cb7ca6b0 Mon Sep 17 00:00:00 2001 From: Erwin B Date: Mon, 23 Dec 2024 16:44:37 +0100 Subject: [PATCH 03/48] Update sensor.rest.markdown for external IP address sensor (#36503) --- source/_integrations/sensor.rest.markdown | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/source/_integrations/sensor.rest.markdown b/source/_integrations/sensor.rest.markdown index 346285725ff..51b8b4fb04f 100644 --- a/source/_integrations/sensor.rest.markdown +++ b/source/_integrations/sensor.rest.markdown @@ -172,7 +172,7 @@ In this section you find some real-life examples of how to use this sensor. ### External IP address -You can find your external IP address using the service [JSON Test](https://www.jsontest.com/) at their [http://ip.jsontest.com/](http://ip.jsontest.com/) URL. +You can find your external IP address using the [ipify](https://www.ipify.org) service for both IPv4 and IPv6. {% raw %} @@ -182,6 +182,11 @@ sensor: name: "External IP" resource: "https://api.ipify.org/?format=json" value_template: "{{ value_json.ip }}" + + - platform: rest + name: "External IPv6" + resource: "https://api6.ipify.org/?format=json" + value_template: "{{ value_json.ip }}" ``` {% endraw %} From 6576d0724222a1126ae17568898fefddb0326220 Mon Sep 17 00:00:00 2001 From: Mick Vleeshouwer Date: Mon, 23 Dec 2024 16:45:18 +0100 Subject: [PATCH 04/48] Improve Overkiz documentation (#36505) --- source/_integrations/overkiz.markdown | 73 ++++++++++++++++++++------- 1 file changed, 54 insertions(+), 19 deletions(-) diff --git a/source/_integrations/overkiz.markdown b/source/_integrations/overkiz.markdown index f3ba6d7c814..c6ff4a345af 100644 --- a/source/_integrations/overkiz.markdown +++ b/source/_integrations/overkiz.markdown @@ -1,6 +1,6 @@ --- title: Overkiz -description: Instructions on how to integrate hubs whom use the Overkiz platform with Home Assistant. +description: Instructions on how to integrate hubs that use the Overkiz IoT platform with Home Assistant. ha_category: - Alarm - Binary sensor @@ -49,39 +49,70 @@ ha_platforms: ha_integration_type: hub --- -The Overkiz (by Somfy) integration platform is used by many different vendors, like Somfy, Hitachi, and Atlantic. This integration will allow users to integrate their devices into Home Assistant using the Overkiz API. +The Overkiz (by Somfy) IoT platform is used by many different vendors, like Somfy, Hitachi, and Atlantic. This integration will allow users to integrate their devices into Home Assistant using the Overkiz API. -## Supported hubs +## Supported hubs & devices - Atlantic Cozytouch +- Bouygues Flexom - Hitachi Hi Kumo - Nexity Eugénie -- Rexel Energeasy +- Sauter Cozytouch +- Simu LiveIn2 - Somfy Connectivity Kit - Somfy Connexoon IO _(local API available)_ - Somfy Connexoon RTS _(local API available)_ -- Somfy TaHoma _(local API available)_ +- Somfy TaHoma v2 _(local API available)_ - Somfy TaHoma Beecon _(local API available)_ - Somfy TaHoma Switch _(local API available)_ - Thermor Cozytouch - -## Supported devices +- Ubiwizz Over 6000 devices from 60 brands are compatible with the Overkiz platform. This integration will retrieve your devices and map them to the relevant Home Assistant platforms. {% include integrations/config_flow.md %} +The Overkiz integration supports both the Overkiz cloud API and the local API (only supported by some Somfy hubs). For compatible Somfy hubs, you can connect locally, allowing device control without an internet connection. Start by selecting the server or app that you use to control your devices. + +### Login to Overkiz (Cloud API) + +{% configuration_basic %} +"Username": + description: "Username for your Overkiz cloud account (account you use in your IoT app)." +Password: + description: "Password for your Overkiz cloud account (account you use in your IoT app)." +{% endconfiguration_basic %} + +### Login to Overkiz (Local API) + +To use the local API, you will need to activate the [Somfy TaHoma Developer Mode](https://github.com/Somfy-Developer/Somfy-TaHoma-Developer-Mode?tab=readme-ov-file#getting-started) via the Somfy website. Activating this mode will enable a local API on your TaHoma box. Your cloud credentials are required to negotiate a token with the cloud API to authenticate your calls to the local API. This is a one-time setup and the token will be stored in your Home Assistant configuration. + +Scenarios and climate entities are **not** supported via the Somfy TaHoma Developer Mode. + +{% configuration_basic %} +"Host": + description: "The hostname or IP address of your Overkiz hub. The hostname is your Gateway PIN + .local:8443 (e.g. 1234-4567-8912.local)." +"Username": + description: "Username for your Overkiz cloud account (account you use in your IoT app)." +Password: + description: "Password for your Overkiz cloud account (account you use in your IoT app)." +Verify SSL: + description: "Verify the SSL certificate of your hub. This option is available only when connecting via the hostname." +{% endconfiguration_basic %} + +## Data updates + +This integration retrieves data from Overkiz every 30 seconds to ensure timely updates. If you only have stateless devices (RTS protocol), the integration will poll for new data every hour to reduce unnecessary load on the Overkiz API. + ## Known limitations ### Zigbee, Z-Wave, Hue, and Sonos devices not supported -Even though most Overkiz hubs support adding Zigbee, Z-Wave, Hue, and Sonos devices, this isn't supported in the Overkiz integration. All these platforms have native integrations in Home Assistant which are more stable and feature-rich. +Even though most Overkiz hubs support adding Zigbee, Z-Wave, Hue, and Sonos devices, this isn't supported in the Overkiz integration. All these platforms have native integrations in Home Assistant, which provide more frequent state updates and are more feature-rich. ### Stateless RTS covers -Covers that use the RTS protocol are stateless and do not report their state back to the hub. This means that Home Assistant will not know the state of the device after it has been controlled. - -If you only control your RTS cover from Home Assistant, you can use the [template cover](/integrations/cover.template/) to create a stateful cover entity. This will allow you to keep track of the current state (open or closed) and use the cover in automations and scenes. +RTS covers do not report their state back to the hub, so Home Assistant cannot track their state after they are controlled. If you only control your RTS cover from Home Assistant, you can use the [template cover](/integrations/cover.template/) to create a stateful cover entity. This will help you track the current state (open or closed) and use the cover in automations and scenes. ```yaml cover: @@ -114,18 +145,22 @@ During peak hours, it could happen that the Overkiz platform is unable to execut The Overkiz API only supports 10 requests in its execution queue. If you try to command more devices at the same time, for example with a group, this will fail with `EXEC_QUEUE_FULL`. To work around this, you can create a scenario in the corresponding application and call that scenario instead after syncing it in the integration. -### Internet connectivity required +### Device support via the local API -This integration communicates via the cloud-based Overkiz API in most cases. Depending on your hub and devices, there are options which communicate over your local network. +Various sensors, scenarios, and climate entities are **not** supported via the Somfy TaHoma Developer Mode due to limitations of the local API. If your device functions with the Cloud API but not with the Local API, this is an inherent limitation of the Local API and cannot be resolved. -#### Local API via Somfy TaHoma Developer Mode +### Device support via HomeKit -The Somfy TaHoma v2, Somfy Connexoon and Somfy TaHoma Switch support the [Somfy TaHoma Developer Mode (local API)](https://github.com/Somfy-Developer/Somfy-TaHoma-Developer-Mode). During setup, you can choose **Local API**. This allows you to use the local API in Home Assistant. Climate devices are not supported via the Somfy TaHoma Developer Mode. +If your hub (e.g. Somfy Connectivity Kit) supports HomeKit, a sensor named **HomeKit Setup Code** will be added to Home Assistant. To configure the [HomeKit Controller](/integrations/homekit_controller/) integration for local control, follow these steps: -#### Local API via HomeKit Controller +1. Locate the **HomeKit Setup Code** sensor in Home Assistant. +2. Retrieve the setup code value from the sensor. +3. Use this setup code to configure the [HomeKit Controller](/integrations/homekit_controller/) integration in Home Assistant. -If your hub (e.g. Somfy Connectivity Kit) supports HomeKit natively, your setup code will be added as a sensor in Home Assistant. Find your hub in Home Assistant and retrieve the value from the **HomeKit Setup Code** sensor. You can now configure the [HomeKit Controller](/integrations/homekit_controller/) integration in Home Assistant and benefit from local support. Only a [limited set of devices is supported](https://service.somfy.com/downloads/nl_v5/tahoma-homekitcompatibilitylist_eng.pdf). +Please note that only a [limited set of devices is supported via HomeKit](https://service.somfy.com/downloads/nl_v5/tahoma-homekitcompatibilitylist_eng.pdf). -#### Local API via Velux KLF200 hub +## Removing the integration -If you are only using Somfy IO-compatible devices, you could purchase a Velux KLF200 hub and use [the Velux integration](/integrations/velux/) which has a local API. +This integration follows standard integration removal. No extra steps are required. + +{% include integrations/remove_device_service.md %} \ No newline at end of file From f1dbfc8e7f5c8e20f59fe4a304e5e962e59f12c2 Mon Sep 17 00:00:00 2001 From: Simon <80467011+sorgfresser@users.noreply.github.com> Date: Mon, 23 Dec 2024 15:45:38 +0000 Subject: [PATCH 05/48] Add removal instructions to ElevenLabs (#36507) --- source/_integrations/elevenlabs.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/_integrations/elevenlabs.markdown b/source/_integrations/elevenlabs.markdown index e5ff68d2f02..a6b27e66389 100644 --- a/source/_integrations/elevenlabs.markdown +++ b/source/_integrations/elevenlabs.markdown @@ -47,3 +47,9 @@ data: ``` For more information about using text-to-speech with Home Assistant and more details on all the options it provides, see the [TTS documentation](/integrations/tts/). + +## Removing the integration + +This integration follows standard integration removal. No extra steps are required. + +{% include integrations/remove_device_service.md %} From 9d6b4c9e6a184280456e6b2dcb95f0f936dea5ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ab=C3=ADlio=20Costa?= Date: Mon, 23 Dec 2024 20:31:23 +0000 Subject: [PATCH 06/48] Update description and remove section for Idasen Desk (#36523) --- source/_integrations/idasen_desk.markdown | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/source/_integrations/idasen_desk.markdown b/source/_integrations/idasen_desk.markdown index f31ab9e81bd..db6fb5c11f0 100644 --- a/source/_integrations/idasen_desk.markdown +++ b/source/_integrations/idasen_desk.markdown @@ -17,7 +17,7 @@ ha_codeowners: - '@abmantis' --- -The IKEA IDÃ…SEN integration allows you to connect your IKEA IdÃ¥sen motorized desk to Home Assistant, making it possible to control the desk height and also monitor height changes from the physical controller. +The IKEA IDÃ…SEN {% term integration %} allows you to connect your [IKEA IdÃ¥sen](https://www.ikea.com/us/en/cat/idasen-system-47424/) motorized desk to Home Assistant, making it possible to control the desk height and also monitor height changes from the physical controller. {% tip %} @@ -47,3 +47,9 @@ This integration provides two buttons to connect and disconnect to/from the desk Height: description: The current height of the desk, in meters. {% endconfiguration_basic %} + +## Removing the integration + +This integration follows standard integration removal. No extra steps are required. + +{% include integrations/remove_device_service.md %} From 89729b6d9812248bb65c0689e8726d0bcddb1513 Mon Sep 17 00:00:00 2001 From: Derek <67642332+dsellers1@users.noreply.github.com> Date: Mon, 23 Dec 2024 19:36:21 -0500 Subject: [PATCH 07/48] Update button.markdown (#36527) --- source/_dashboards/button.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_dashboards/button.markdown b/source/_dashboards/button.markdown index 19ebda8313e..8a0013e07e1 100644 --- a/source/_dashboards/button.markdown +++ b/source/_dashboards/button.markdown @@ -156,6 +156,7 @@ Screenshot of a vertical stack card with 4 buttons and an entity selector. The image shows a vertical stack card with 4 buttons arranged in a horizontal stack card and an entity selector. The buttons use the toggle action to run a script, for example, the Netflix script, which starts up the TV and opens Netflix. To learn how to create scripts, refer to [scripts](/docs/scripts/). ```yaml +type: vertical-stack cards: - entities: - entity: input_select.living_room_scene @@ -201,5 +202,4 @@ cards: action: more-info show_name: true show_icon: true -type: vertical-stack ``` From d70fc202be8fd88488e65791baa5df9606cff5b0 Mon Sep 17 00:00:00 2001 From: brucedk <40279859+brucedk@users.noreply.github.com> Date: Mon, 23 Dec 2024 22:11:51 -0300 Subject: [PATCH 08/48] Update alexa.smart_home.markdown to include Brazilian Portuguese (#36529) --- source/_integrations/alexa.smart_home.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/_integrations/alexa.smart_home.markdown b/source/_integrations/alexa.smart_home.markdown index f44104a2190..9a3b285756d 100644 --- a/source/_integrations/alexa.smart_home.markdown +++ b/source/_integrations/alexa.smart_home.markdown @@ -151,7 +151,7 @@ Next you need create a Lambda function. - Click `Services` in top navigation bar, expand the menu to display all AWS services, then under `Compute` section click `Lambda` to navigate to Lambda console. Or you may use this [link](https://console.aws.amazon.com/lambda/home) **IMPORTANT - Alexa Skills are only supported in specific AWS regions.** Your current server location will be displayed in the top-right corner (for example, Ohio). Select an available server from the list below ([reference](https://developer.amazon.com/en-US/docs/alexa/smarthome/develop-smart-home-skills-in-multiple-languages.html#deploy)) based on your Amazon account's locale, not your physical location. **Alexa Lambda functions created in other regions will not work properly and may prevent account linking! For example, if your locale is set to English (US) and you live in California, you must use US East (N.Virginia), not US West (Oregon). While the setup process will complete with an incorrect region, the skill will not function, and there will be no clear error messages indicating the cause.** - - **US East (N.Virginia)** region for English (US) or English (CA) skills + - **US East (N.Virginia)** region for English (US), English (CA) or Portuguese (BR) skills - **EU (Ireland)** region for English (UK), English (IN), German (DE), Spanish (ES) or French (FR) skills - **US West (Oregon)** region for Japanese and English (AU) skills. @@ -256,7 +256,7 @@ Self signed certificates will not work, but you can use a free Let's Encrypt cer {% endimportant %} - `Client ID`: - - `https://pitangui.amazon.com/` if you are in US + - `https://pitangui.amazon.com/` if you are in US or BR - `https://layla.amazon.com/` if you are in EU - `https://alexa.amazon.co.jp/` if you are in JP and AU (not verified yet) @@ -323,7 +323,7 @@ alexa: type: map keys: locale: - description: The locale of your Alexa devices. Supported locales are `de-DE`, `en-AU`, `en-CA`, `en-GB`, `en-IN`, `en-US`, `es-ES`, `es-MX`, `fr-CA`, `fr-FR`, `it-IT`, `ja-JP`. See [Alexa Locale](#alexa-locale) for additional information. + description: The locale of your Alexa devices. Supported locales are `de-DE`, `en-AU`, `en-CA`, `en-GB`, `en-IN`, `en-US`, `es-ES`, `es-MX`, `fr-CA`, `fr-FR`, `it-IT`, `ja-JP`, `pt-BR`. See [Alexa Locale](#alexa-locale) for additional information. required: false type: string default: en-US From b2f61b24e26d89bfc3d6810a7421ed28405a522b Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Tue, 24 Dec 2024 00:05:46 -0500 Subject: [PATCH 09/48] Update OpenAI default model It's gpt-4o-mini. Fixes #36304 --- source/_integrations/openai_conversation.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/openai_conversation.markdown b/source/_integrations/openai_conversation.markdown index 977e8458891..c2bc2ffe991 100644 --- a/source/_integrations/openai_conversation.markdown +++ b/source/_integrations/openai_conversation.markdown @@ -57,7 +57,7 @@ If you choose to not use the recommended settings, you can configure the followi {% configuration_basic %} Model: - description: The GPT language model is used for text generation. You can find more details on the available models in the [OpenAI GPT-3.5 Turbo Documentation](https://platform.openai.com/docs/models/gpt-3-5-turbo), [OpenAI GPT-4 Turbo and GPT-4 Documentation](https://platform.openai.com/docs/models/gpt-4-turbo-and-gpt-4), or [GPT-4o Documentation](https://platform.openai.com/docs/models/gpt-4o). The default is "gpt-4o". + description: The GPT language model is used for text generation. You can find more details on the available models in the [GPT-4o Documentation](https://platform.openai.com/docs/models/gpt-4o). The default is "gpt-4o-mini". Maximum Tokens to Return in Response: description: The maximum number of words or "tokens" that the AI model should generate in its completion of the prompt. For more information, see the [OpenAI Completion Documentation](https://platform.openai.com/docs/guides/completion/introduction). Temperature: From b2bd335739eea47af15edfa4b46d156dc3a0576e Mon Sep 17 00:00:00 2001 From: starkillerOG Date: Tue, 24 Dec 2024 16:19:04 +0100 Subject: [PATCH 10/48] Fix styling mistake in Reolink docs (#36536) --- source/_integrations/reolink.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/reolink.markdown b/source/_integrations/reolink.markdown index af7ed92d690..681dcb55f55 100644 --- a/source/_integrations/reolink.markdown +++ b/source/_integrations/reolink.markdown @@ -496,7 +496,7 @@ You can receive rich notifications on your phone when someone rings a Reolink do - Turn on (outdoor) lights near the camera to improve image clarity at night once the camera detects a person, vehicle, or animal. - Turn off notifications and recording when you get home (based on, e.g., geofencing) and turn it back on when you leave home. -When someone presses the doorbell, Play ringtones on speakers (Echo Dot/Google Home/smart hubs) throughout the house. +- When someone presses the doorbell, play ringtones on speakers (Echo Dot/Google Home/smart hubs) throughout the house. - Pause a TV and show a notification badge on the TV when the doorbell is pressed (only when the TV is already on). - Play the quick replay messages of a Reolink doorbell only when not home (geofencing) - Wake up and start recording on other battery cameras nearby if one camera/motion sensor detects an event. From 797008dbe8a27c3683a17f9667f52894673b99f2 Mon Sep 17 00:00:00 2001 From: Christopher Fenner <9592452+CFenner@users.noreply.github.com> Date: Wed, 25 Dec 2024 00:49:58 +0100 Subject: [PATCH 11/48] Update vicare.markdown --- source/_integrations/vicare.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/_integrations/vicare.markdown b/source/_integrations/vicare.markdown index f03288982d3..f2c7fd1ca92 100644 --- a/source/_integrations/vicare.markdown +++ b/source/_integrations/vicare.markdown @@ -165,6 +165,12 @@ Sets the target temperature of domestic hot water to the given temperature. | `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. | | `temperature` | no | New target temperature for water heater. | +## Removing the integration + +This integration follows standard integration removal, once the integration is removed you can remove the API client (assuming it was only used by this integration) by going to the [Viessmann developer portal](https://app.developer.viessmann.com/) and deleting the client you created for Home Assistant. + +{% include integrations/remove_device_service.md %} + ## Troubleshooting ### UTF-8 characters in passwords From 0086b7533b1c9bd241cc9ff37724092a42a7c5c5 Mon Sep 17 00:00:00 2001 From: Christopher Fenner <9592452+CFenner@users.noreply.github.com> Date: Wed, 25 Dec 2024 00:54:43 +0100 Subject: [PATCH 12/48] Update vicare.markdown --- source/_integrations/vicare.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/vicare.markdown b/source/_integrations/vicare.markdown index f2c7fd1ca92..28f2af9411c 100644 --- a/source/_integrations/vicare.markdown +++ b/source/_integrations/vicare.markdown @@ -167,7 +167,7 @@ Sets the target temperature of domestic hot water to the given temperature. ## Removing the integration -This integration follows standard integration removal, once the integration is removed you can remove the API client (assuming it was only used by this integration) by going to the [Viessmann developer portal](https://app.developer.viessmann.com/) and deleting the client you created for Home Assistant. +This integration follows standard integration removal, once the integration is removed, you can remove the API client (assuming it was only used by this integration) by going to the [Viessmann developer portal](https://app.developer.viessmann.com/) and deleting the client you created for Home Assistant. {% include integrations/remove_device_service.md %} From ac2f5902de57859286b079969f085728da22e52c Mon Sep 17 00:00:00 2001 From: Christopher Fenner <9592452+CFenner@users.noreply.github.com> Date: Wed, 25 Dec 2024 00:59:01 +0100 Subject: [PATCH 13/48] move section --- source/_integrations/vicare.markdown | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/_integrations/vicare.markdown b/source/_integrations/vicare.markdown index 28f2af9411c..ecfae2b0001 100644 --- a/source/_integrations/vicare.markdown +++ b/source/_integrations/vicare.markdown @@ -165,12 +165,6 @@ Sets the target temperature of domestic hot water to the given temperature. | `entity_id` | yes | String or list of strings that point at `entity_id`'s of climate devices to control. | | `temperature` | no | New target temperature for water heater. | -## Removing the integration - -This integration follows standard integration removal, once the integration is removed, you can remove the API client (assuming it was only used by this integration) by going to the [Viessmann developer portal](https://app.developer.viessmann.com/) and deleting the client you created for Home Assistant. - -{% include integrations/remove_device_service.md %} - ## Troubleshooting ### UTF-8 characters in passwords @@ -196,3 +190,9 @@ Invalid data from Vicare server: { ``` Usually, this resolves itself after a while, but if this state persists, try to power cycle your gateway. + +## Removing the integration + +This integration follows standard integration removal, once the integration is removed, you can remove the API client (assuming it was only used by this integration) by going to the [Viessmann developer portal](https://app.developer.viessmann.com/) and deleting the client you created for Home Assistant. + +{% include integrations/remove_device_service.md %} From 5d7554506f78382d0eb5fa287a98ac2f3b3ee89a Mon Sep 17 00:00:00 2001 From: Christopher Fenner <9592452+CFenner@users.noreply.github.com> Date: Wed, 25 Dec 2024 15:22:11 +0100 Subject: [PATCH 14/48] Apply suggestions from code review Co-authored-by: Josef Zweck --- source/_integrations/vicare.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/vicare.markdown b/source/_integrations/vicare.markdown index ecfae2b0001..6801075769b 100644 --- a/source/_integrations/vicare.markdown +++ b/source/_integrations/vicare.markdown @@ -193,6 +193,6 @@ Usually, this resolves itself after a while, but if this state persists, try to ## Removing the integration -This integration follows standard integration removal, once the integration is removed, you can remove the API client (assuming it was only used by this integration) by going to the [Viessmann developer portal](https://app.developer.viessmann.com/) and deleting the client you created for Home Assistant. +This integration follows standard integration removal. Once the integration is removed, you can remove the API client (assuming it was only used by this integration) by going to the [Viessmann developer portal](https://app.developer.viessmann.com/) and deleting the client you created for Home Assistant. {% include integrations/remove_device_service.md %} From f471f3072626037038b9d90b5bf4f20302ab6df9 Mon Sep 17 00:00:00 2001 From: Markus Jacobsen Date: Wed, 25 Dec 2024 14:33:15 +0000 Subject: [PATCH 15/48] Fix Bang & Olufsen limitations wording (#36550) * Fix limitations wording * Reorder limitations section --- source/_integrations/bang_olufsen.markdown | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/source/_integrations/bang_olufsen.markdown b/source/_integrations/bang_olufsen.markdown index 0513e099c00..ec92d023b3c 100644 --- a/source/_integrations/bang_olufsen.markdown +++ b/source/_integrations/bang_olufsen.markdown @@ -71,7 +71,7 @@ A number of features are available through the media player entity: ## Limitations -Currently, some features of the Mozart platform such as: +Currently, some features of the Mozart platform are not available through the [public API](https://github.com/bang-olufsen/mozart-open-api). Some may become available at a later point, but until then the [Bang & Olufsen App](https://www.bang-olufsen.com/en/dk/story/apps) can be used to configure these settings and features: - Creating timers and alarms - Retrieving detailed alarm and timer information @@ -85,8 +85,6 @@ And more advanced app-centric features such as: - Adjusting specific sound settings - Pairing remotes -These features are not available through the API. Some may become available at a later point, but until then the [Bang & Olufsen App](https://www.bang-olufsen.com/en/dk/story/apps) can be used to configure these settings and features. - ## Actions ### play_media actions From d42325de45312e91bff61f2fc826e7dc13b57577 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2024 15:33:41 +0100 Subject: [PATCH 16/48] build(deps-dev): bump rbs from 3.7.0 to 3.8.0 (#36549) Bumps [rbs](https://github.com/ruby/rbs) from 3.7.0 to 3.8.0. - [Release notes](https://github.com/ruby/rbs/releases) - [Changelog](https://github.com/ruby/rbs/blob/master/CHANGELOG.md) - [Commits](https://github.com/ruby/rbs/compare/v3.7.0...v3.8.0) --- updated-dependencies: - dependency-name: rbs 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 0ba3e84f8b0..8ad6c5c4734 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -108,7 +108,7 @@ GEM rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) - rbs (3.7.0) + rbs (3.8.0) logger regexp_parser (2.9.3) rexml (3.4.0) From 86f690b25446248e2615ef3a4fec392021e45b70 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2024 15:33:49 +0100 Subject: [PATCH 17/48] build(deps-dev): bump bigdecimal from 3.1.8 to 3.1.9 (#36548) Bumps [bigdecimal](https://github.com/ruby/bigdecimal) from 3.1.8 to 3.1.9. - [Release notes](https://github.com/ruby/bigdecimal/releases) - [Changelog](https://github.com/ruby/bigdecimal/blob/master/CHANGES.md) - [Commits](https://github.com/ruby/bigdecimal/compare/v3.1.8...v3.1.9) --- updated-dependencies: - dependency-name: bigdecimal 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 8ad6c5c4734..772499187e3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -5,7 +5,7 @@ GEM public_suffix (>= 2.0.2, < 7.0) ast (2.4.2) base64 (0.2.0) - bigdecimal (3.1.8) + bigdecimal (3.1.9) chunky_png (1.4.0) colorator (1.1.0) commonmarker (0.23.11) From 333ee573ca7b85cf195780656c151ee341b6692a Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Wed, 25 Dec 2024 06:34:29 -0800 Subject: [PATCH 18/48] Update lock.template.markdown (#36546) --- source/_integrations/lock.template.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/lock.template.markdown b/source/_integrations/lock.template.markdown index 8674d4b52f3..ddfeaf7f367 100644 --- a/source/_integrations/lock.template.markdown +++ b/source/_integrations/lock.template.markdown @@ -74,7 +74,7 @@ lock: required: false type: template default: None - lock: + lock: description: Defines an action to run when the lock is locked. required: true type: action From ce671a1572b4983e90151fb2e1f448a062d8cd2d Mon Sep 17 00:00:00 2001 From: Tom Date: Wed, 25 Dec 2024 15:36:25 +0100 Subject: [PATCH 19/48] Add troubleshooting and known limitations for Plugwise (#36504) * Add troubleshooting and known limitations * Remove quotes for non-code * CRAI nitpicks * Add suggestions --- source/_integrations/plugwise.markdown | 71 ++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/source/_integrations/plugwise.markdown b/source/_integrations/plugwise.markdown index b72b652da89..b43b9e63bb9 100644 --- a/source/_integrations/plugwise.markdown +++ b/source/_integrations/plugwise.markdown @@ -266,3 +266,74 @@ Stretch (power switches): - v3.x - v2.x + +## Troubleshooting + +### Accessing the local device + +If you need to configure the gateway directly, without using the Plugwise App, you can find the link to your device by: + +1. Go to {% my integrations title="**Settings** > **Devices & services**" %}, and select your integration. +2. If you have more than one Plugwise gateway, select the one to configure. +3. Select the gateway device, this should be called 'Adam', 'Stretch' or contain 'Smile' in its name. +4. On the integration entry, choose to open the configuration URL left of the {% icon "mdi:dots-vertical" %} icon. +5. A new window/tab will open, enter 'smile' (or 'stretch') as the username and the ID, from the sticker on the back, as the password. +6. Consult the manual or click the 'search' button on the [Plugwise Support](https://plugwise.com/support/) page for interactive help. + +### Adjusting the update interval + +Please note that the [default intervals](#data-updates) are considered best practice and according to how Plugwise normally updates their data. Updating too frequently may induce considerable load on your gateway(s) resulting in unexpected results or missing data. + +{% include common-tasks/define_custom_polling.md %} + +### Diagnostic data + +If you need to create an issue to report a bug or want to inspect diagnostic data, use the below method to retrieve diagnostics: + +1. Go to {% my integrations title="**Settings** > **Devices & services**" %}, and select your integration. +2. If you have more than one Plugwise gateway, select the gateway that is experiencing issues. +3. Select the gateway device, this should be called 'Adam', 'Stretch' or contain 'Smile' in its name. +4. On the integration entry, select the {% icon "mdi:dots-vertical" %}. + - Then, select **Download diagnostics** and a JSON file will be downloaded. +5. You can inspect the downloaded file or, when requested, upload it to your issue report. + +### Rebooting your gateway + +For each gateway, there will be a reboot button available in your integration. + +1. Go to {% my integrations title="**Settings** > **Devices & services**" %}, and select your integration. +2. If you have more than one Plugwise Smile, select the gateway that is experiencing issues. +3. Select the gateway device, this should be called 'Adam', 'Stretch' or contain 'Smile' in its name. +4. On the integration entry, look for the 'Reboot' button to press in the **Configuration** section. + +## Known limitations + +### Schedule configuration and pre-requisites + +Creation, modification or deleting of climate schedules is not supported through this integration. We recommend using the Plugwise App or visit the local device to configure schedules. See [accessing the local device](#accessing-the-local-device) above on how to access the local device from Home Assistant. + +To display your schedule as a valid `select` option for this integration, ensure that the schedule has a minimal of two schedule points. + +### Anna connected to Adam + +If you are using your Anna as part of your Adam zone control system, it becomes a zone thermostat, and cannot be configured as a smart thermostat. The integration will not discover your Anna or allow manual configuration. + +### Anna with Elga + +The cooling mode can only be toggled via a **physical switch** on the device (not through a toggle in the Plugwise App or using Home Assistant). + +The change in cooling mode should be detected by Home Assistant. If not, please try to **reload** the Plugwise integration as indicated below and report your findings. + +1. Create an issue including your [diagnostic data](#diagnostic-data). +2. Go to {% my integrations title="**Settings** > **Devices & services**" %}, and select your integration. +3. On the "**Hubs**" page, use the {% icon "mdi:dots-vertical" %} icon next to your Anna and choose "**Reload**". + +### Vacation preset + +The `vacation` preset is only available on an Anna. Adam has a vacation-mode (called Action in the Plugwise App) that disables the active schedule and sets the vacation-preset for all zones. + +Also, there's a pause-mode that disables the active schedule and sets the away-preset for all zones. + +### Idling climate actions + +You can only stop climate actions on an Adam, see [turn on / turn off](#turn-on--turn-off). An alternative could be to adjust your [preset mode](#set-preset-mode) to `no_frost` to stop any heating actions. From 26bd89cd0223a07247b794b2a7bb5428fff2062c Mon Sep 17 00:00:00 2001 From: Didgeridrew <19187320+Didgeridrew@users.noreply.github.com> Date: Wed, 25 Dec 2024 09:39:59 -0500 Subject: [PATCH 20/48] Update template.markdown Legacy Binary Sensor (#36542) Example in Legacy binary sensor section was missing quote marks. --- source/_integrations/template.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/template.markdown b/source/_integrations/template.markdown index a4fed8e1ece..67be19f7cb5 100644 --- a/source/_integrations/template.markdown +++ b/source/_integrations/template.markdown @@ -939,7 +939,7 @@ binary_sensor: sensors: sun_up: friendly_name: "Sun is up" - value_template: {{ state_attr('sun.sun', 'elevation') > 0 }} + value_template: "{{ state_attr('sun.sun', 'elevation') > 0 }}" ``` {% endraw %} From 072e53d10a42d373e51a0fb56e0e0f3479235e8a Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Wed, 25 Dec 2024 15:47:15 +0100 Subject: [PATCH 21/48] Remove entity IDs from Transmission documentation (#36525) --- source/_integrations/transmission.markdown | 28 ++++++++++++---------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/source/_integrations/transmission.markdown b/source/_integrations/transmission.markdown index 55b97be7c90..a0c1d50c941 100644 --- a/source/_integrations/transmission.markdown +++ b/source/_integrations/transmission.markdown @@ -26,23 +26,25 @@ Your Transmission client must first be configured to allow remote access. In you {% include integrations/config_flow.md %} -## Integration entities +## Supported functionality The Transmission integration will add the following sensors and switches. -**Sensors**: -- `sensor.transmission_current_status`: The status of your Transmission daemon. -- `sensor.transmission_download_speed`: The current download speed [MB/s]. -- `sensor.transmission_upload_speed`: The current upload speed [MB/s]. -- `sensor.transmission_active_torrents`: The current number of active torrents. -- `sensor.transmission_paused_torrents`: The current number of paused torrents. -- `sensor.transmission_total_torrents`: The total number of torrents present in the client. -- `sensor.transmission_started_torrents`: The current number of started torrents (downloading). -- `sensor.transmission_completed_torrents`: The current number of completed torrents (seeding). +### Sensors -**Switches**: -- `switch.transmission_switch`: A switch to start/stop all torrents. -- `switch.transmission_turtle_mode`: A switch to enable turtle mode (a.k.a. alternative speed limits). +- The status of your Transmission daemon. +- The current download speed [MB/s]. +- The current upload speed [MB/s]. +- The current number of active torrents. +- The current number of paused torrents. +- The total number of torrents present in the client. +- The current number of started torrents (downloading). +- The current number of completed torrents (seeding). + +### Switches + +- A switch to start/stop all torrents. +- A switch to enable turtle mode (a.k.a. alternative speed limits). ## Event automation From d004da3a87ffdb18174954ec94898da44fcd46e0 Mon Sep 17 00:00:00 2001 From: ildar170975 <71872483+ildar170975@users.noreply.github.com> Date: Thu, 26 Dec 2024 17:05:30 +0300 Subject: [PATCH 22/48] Update scrape.markdown (#36556) --- source/_integrations/scrape.markdown | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/source/_integrations/scrape.markdown b/source/_integrations/scrape.markdown index d8a38008830..bf9a9e8ae55 100644 --- a/source/_integrations/scrape.markdown +++ b/source/_integrations/scrape.markdown @@ -39,7 +39,7 @@ scrape: - resource: https://www.home-assistant.io sensor: - name: "Current version" - select: ".current-version h1" + select: ".release-date" ``` {% configuration %} @@ -178,8 +178,7 @@ scrape: - resource: https://www.home-assistant.io sensor: - name: Release - select: ".current-version h1" - value_template: '{{ value.split(":")[1] }}' + select: ".release-date" ``` {% endraw %} From d1d7f5d88c6c7726362a710f7308e0cad509f861 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Dec 2024 16:48:18 +0100 Subject: [PATCH 23/48] build(deps): bump nokogiri from 1.17.2 to 1.18.0 (#36559) --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 7020f561721..fdd60337ed4 100644 --- a/Gemfile +++ b/Gemfile @@ -24,7 +24,7 @@ group :jekyll_plugins do end gem 'sinatra', '4.1.1' -gem 'nokogiri', '1.17.2' +gem 'nokogiri', '1.18.0' # 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 772499187e3..76cd604bd0a 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.17.2-arm64-darwin) + nokogiri (1.18.0-arm64-darwin) racc (~> 1.4) - nokogiri (1.17.2-x86_64-linux) + nokogiri (1.18.0-x86_64-linux-gnu) racc (~> 1.4) parallel (1.26.3) parser (3.3.6.0) @@ -173,7 +173,7 @@ DEPENDENCIES jekyll-paginate (= 1.1.0) jekyll-sitemap (= 1.4.0) jekyll-toc (= 0.19.0) - nokogiri (= 1.17.2) + nokogiri (= 1.18.0) rackup (= 2.2.1) rake (= 13.2.1) rubocop (= 1.69.2) From e37bd7da81d6b04723bc1f84729af5c2ef56faa9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Dec 2024 16:49:01 +0100 Subject: [PATCH 24/48] build(deps-dev): bump regexp_parser from 2.9.3 to 2.10.0 (#36558) --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 76cd604bd0a..8a313ed91ad 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -110,7 +110,7 @@ GEM ffi (~> 1.0) rbs (3.8.0) logger - regexp_parser (2.9.3) + regexp_parser (2.10.0) rexml (3.4.0) rouge (4.5.1) rubocop (1.69.2) From 9f2dc4d0352ef8d55ed67a4f86ec74f7c029eeda Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Dec 2024 07:53:20 +0100 Subject: [PATCH 25/48] build(deps-dev): bump rbs from 3.8.0 to 3.8.1 (#36566) --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 8a313ed91ad..7e45a5425fa 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -108,7 +108,7 @@ GEM rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) - rbs (3.8.0) + rbs (3.8.1) logger regexp_parser (2.10.0) rexml (3.4.0) From 4efc9868cf76d06942b54552954aa439f0cee763 Mon Sep 17 00:00:00 2001 From: Martin Date: Fri, 27 Dec 2024 13:18:32 +0100 Subject: [PATCH 26/48] Update workday.markdown (#36568) Point to the correct repository and not to a forked one. --- source/_integrations/workday.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/workday.markdown b/source/_integrations/workday.markdown index 067f3ac54b4..6827d51c485 100644 --- a/source/_integrations/workday.markdown +++ b/source/_integrations/workday.markdown @@ -26,7 +26,7 @@ This can be used to make daily automations that act differently on workdays than ## Setup -Check the [country list](https://github.com/dr-prodigy/python-holidays#available-countries) for available provinces (and other subdivisions, like states and territories) for each country. +Check the [country list](https://github.com/vacanza/holidays#available-countries) for available provinces (and other subdivisions, like states and territories) for each country. {% include integrations/config_flow.md %} From d530f30dada5d307f9df2262d2f3068443cc73a3 Mon Sep 17 00:00:00 2001 From: inthehoose <54743761+inthehoose@users.noreply.github.com> Date: Fri, 27 Dec 2024 19:31:39 +0000 Subject: [PATCH 27/48] Update london_underground.markdown (#36575) Added new London Overground names --- source/_integrations/london_underground.markdown | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/source/_integrations/london_underground.markdown b/source/_integrations/london_underground.markdown index f91ff1123d2..78a5bea5b37 100644 --- a/source/_integrations/london_underground.markdown +++ b/source/_integrations/london_underground.markdown @@ -35,12 +35,17 @@ sensor: - Elizabeth line - Hammersmith & City - Jubilee - - London Overground - Metropolitan - Northern - Piccadilly - Victoria - Waterloo & City + - Liberty + - Lioness + - Mildmay + - Suffragette + - Weaver + - Windrush ``` {% configuration %} From dff95bd40b17cebc38c68b87bce562c8b1cc9a6b Mon Sep 17 00:00:00 2001 From: Elliana May Date: Sun, 29 Dec 2024 15:45:47 +0800 Subject: [PATCH 28/48] docs: fix link to mosquitto addon (#36591) --- source/_integrations/mqtt.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/mqtt.markdown b/source/_integrations/mqtt.markdown index d4934d0088a..c03222ba98f 100644 --- a/source/_integrations/mqtt.markdown +++ b/source/_integrations/mqtt.markdown @@ -133,7 +133,7 @@ Note: This action does not remove the [MQTT broker](#setting-up-a-broker) or its Your first step to get MQTT and Home Assistant working is to choose a broker. The easiest option is to install the official Mosquitto Broker add-on. You can choose to set up and configure this add-on automatically when you set up the MQTT integration. Home Assistant will automatically generate and assign a safe username and password, and no further attention is required. This also works if you have already set up this add-on yourself in advance. -You can set up additional logins for your MQTT devices and services using the [Mosquitto add-on configuration](https://my.home-assistant.io/create-link/?redirect=supervisor_addon&addon=core_mosquitto). +You can set up additional logins for your MQTT devices and services using the [Mosquitto add-on configuration](https://my.home-assistant.io/redirect/supervisor_addon/?addon=core_mosquitto). {% important %} When MQTT is set up with the official Mosquitto MQTT broker add-on, the broker's credentials are generated and kept secret. If the official Mosquitto MQTT broker needs to be re-installed, make sure you save a copy of the add-on user options, like the additional logins. After re-installing the add-on, the MQTT integration will automatically update the new password for the re-installed broker. It will then reconnect automatically. From 107f0c959438df39ff64c1665ab67e8d9fc893bb Mon Sep 17 00:00:00 2001 From: J Hwang Date: Sat, 28 Dec 2024 23:48:13 -0800 Subject: [PATCH 29/48] Fix broken PiMusicBox link (#36585) The previous link now points to a spam domain. PiMusicBox has been discontinued and the Github project archived. Per the project page: ** This project is no longer maintained ** There will be no more releases and probably no more support from myself. The Pi 4 and Zero W 2 do not work with the last release and I don't know of any workarounds. Potential alternative software suggestions are available here. The software will continue to be available for now but note it is very outdated, doesn't support the latest Pi hardware and is totally unsupported. I encourage people to find alternatives. Thanks to everyone that has helped with Pi Musicbox. --- source/_integrations/mpd.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/mpd.markdown b/source/_integrations/mpd.markdown index fb6aa21850b..fa556397494 100644 --- a/source/_integrations/mpd.markdown +++ b/source/_integrations/mpd.markdown @@ -40,4 +40,4 @@ relaxdeck: volume_level: 0.60 ``` -This platform works with [Music Player Daemon](https://www.musicpd.org/) and [mopidy](https://www.mopidy.com/) with [Mopidy-MPD](https://mopidy.com/ext/mpd/) as used by [Pi MusicBox](https://www.pimusicbox.com/). While all of these rely on the common MPD protocol, not all implementations support all features, especially with regard to album artwork, embedded artwork and volume control. The platform will fall back gracefully if support isn't detected. +This platform works with [Music Player Daemon](https://www.musicpd.org/) and [mopidy](https://www.mopidy.com/) with [Mopidy-MPD](https://mopidy.com/ext/mpd/) as used by [Pi MusicBox](https://pimusicbox.github.io/). While all of these rely on the common MPD protocol, not all implementations support all features, especially with regard to album artwork, embedded artwork and volume control. The platform will fall back gracefully if support isn't detected. From c19e55c0a36de79c58f4338d2e335c0b3548c216 Mon Sep 17 00:00:00 2001 From: Austin Mroczek Date: Sun, 29 Dec 2024 00:05:10 -0800 Subject: [PATCH 30/48] Improve TotalConnect docs (#36557) * correction for Require Code * add removal instructions * update actions * simplify action description * move core notes to prerequisites * move automation example after entity descriptions * use consistent entity names * consolidate limitations * Revert "consolidate limitations" This reverts commit aed84750ea7e45045659ab113d723b2464c0dc7a. * consolidate limitations * improve service unavailable * add Data Updates section * add Unknown to troubleshooting * add supported devices * add use cases * more limitations --- source/_integrations/totalconnect.markdown | 129 ++++++++++++++++----- 1 file changed, 101 insertions(+), 28 deletions(-) diff --git a/source/_integrations/totalconnect.markdown b/source/_integrations/totalconnect.markdown index 275910d0942..0ee19234a80 100644 --- a/source/_integrations/totalconnect.markdown +++ b/source/_integrations/totalconnect.markdown @@ -21,19 +21,100 @@ ha_integration_type: integration The `totalconnect` integration provides connectivity with Resideo Total Connect 2.0-enabled alarm systems. +The integration allows automations based on the state of the alarm system. For example: when the alarm is armed, turn on the outside light. + +The integration can also arm or disarm the alarm panel. For example: when I arrive home, disarm the alarm panel + +## Supported devices + +This integration supports alarm panels with "communicator modules" that are compatible with the Total Connect 2.0 service. An active account is required via a third party alarm monitoring company. Panels may be branded as Resideo, Honeywell, Ademco or other third party alarm companies. + +Device models known to work include: + +- ProSeries (ProA7, ProA7Plus) +- Lyric (AIO, Gateway) +- Lynx Touch (L5100, L5200, L5210, L7000) +- Lynx Plus (L3000) +- VISTA (15P, 20P, 21iP) + +## Unsupported devices + +The following devices are not supported: + +- Older Lynx models (not Touch or Plus) +- Other panels without a Total Connect compatible communicator module + ## Prerequisites Log in to the [Total Connect website](https://totalconnect2.com) and create a "standard" Total Connect user account specifically for use with Home Assistant. It should not have full administrative privileges. Give the user access to your Location, along with a user code, usually a 4 digit number. +{% details "Notes for Home Assistant Core Installations" %} + +If you have issues running this integration, you may require `libxml2-dev` and `libxmlsec1-dev` packages. To install these on Raspbian, run the command: + +```bash +sudo apt install libxml2-dev libxmlsec1-dev +``` + +{% enddetails %} + {% include integrations/config_flow.md %} ## Configuration Options **Auto Bypass Low Battery:** if enabled, TotalConnect zones will immediately be bypassed when they report low battery. This option helps because zones tend to report low battery in the middle of the night. The downside of this option is that when the alarm system is armed, the bypassed zone will not be monitored. -**Require Code:** if enabled, you must enter the user code to disarm the alarm. +**Require Code:** if enabled, you must enter the user code to arm or disarm the alarm. + +## Alarm control panel + +The integration provides an alarm control panel for each Total Connect location. It uses the name of your location from Total Connect. For example, if your location name in Total Connect is "Home", Home Assistant will use `alarm_control_panel.home`. + +The `triggered` state also provides a state attribute called `triggered_source` giving more detail on what triggered the alarm: + +- `Police/Medical` is when sensors detected a burglar and/or the Police or Medical button was pressed +- `Fire/Smoke` is when fire or smoke is detected, and/or the Fire button was pressed +- `Carbon Monoxide` is when carbon monoxide is detected + +## Binary sensor + +The integration provides a binary sensor for each Total Connect zone. To see faulted zones in Home Assistant, your Total Connect account must have "Sensor Activities" enabled. Your alarm monitoring company may charge an extra fee to enable this. If available, these can be found in the Total Connect 2 web portal at **Notifications** -> **Sensor Activities**. Alternately, they can be found in the Total Connect mobile app at **More** -> **Settings** -> **Notifications** -> **Sensor Activities**. Enable each zone you want to monitor. Unmonitored zones will display as `Closed` in Home Assistant. + +Home Assistant device class `door` is assigned to Total Connect entry/exit, perimeter, and motion zones; along with most alarm panel buttons. The sensor will appear as `True` if the zone is opened (either fault or triggered in Total Connect) and `False` if closed. Device class `smoke` is assigned to Total Connect smoke detectors and alarm panel buttons set to a "Fire No Verification" response type. The sensor will appear as `True` if smoke is detected or the respective button is pressed. Device class `gas` is assigned to Total Connect carbon monoxide detectors. The sensor will appear as `True` if carbon monoxide is detected. + +## Buttons + +The integration provides a bypass button for each zone that can be bypassed. The **Bypass All** button for the alarm panel will bypass all faulted or troubled zones. The **Clear Bypass** button for the alarm panel will clear all bypassed zones. + +## Actions + +The alarm control panel supports the following basic actions: `alarm_arm_away`, `alarm_arm_home`, `alarm_arm_night`, and `alarm_disarm`. + +### Action: Arm home instant + +The `totalconnect.arm_home_instant` action puts the alarm panel in "arm home" with zero entry delay, triggering the alarm instantly if an entry/exit zone is faulted. This is equivalent to "arm stay instant" in most alarm panels. + +| Data attribute | Optional | Description | +|------------------------|----------|------------------------------------------------------| +| `entity_id` | No | The ID of the alarm panel to arm. | + +### Action: Arm away instant + +The `totalconnect.arm_away_instant` action puts the alarm panel in "arm away" with zero entry delay, triggering the alarm instantly if an entry/exit zone is faulted. This is equivalent to "arm away instant" in most alarm panels. + +| Data attribute | Optional | Description | +|------------------------|----------|------------------------------------------------------| +| `entity_id` | No | The ID of the alarm panel to arm. | + +## Diagnostic Sensors + +The following diagnostic sensors are available: + +- Low Battery for Zones and Alarm Panels will be `On` if the battery is low. +- Tamper for Zones and Alarm Panels will be `On` if in a tampered state. +- Power for Alarm Panels will be `On` if main power is connected or `Off` if running on the backup battery. ## Automation example @@ -42,7 +123,7 @@ automation: - alias: "Alarm: Disarmed Daytime" triggers: - trigger: state - entity_id: alarm_control_panel.total_connect + entity_id: alarm_control_panel.home to: "disarmed" conditions: - condition: sun @@ -55,7 +136,7 @@ automation: - alias: "Alarm: Armed Away" triggers: - trigger: state - entity_id: alarm_control_panel.total_connect + entity_id: alarm_control_panel.home to: "armed_away" actions: - action: scene.turn_on @@ -70,45 +151,37 @@ automation: actions: - action: totalconnect.arm_home_instant target: - entity_id: alarm_control_panel.total_connect + entity_id: alarm_control_panel.home ``` -{% details "Notes for Home Assistant Core Installations" %} +## Removing the integration -If you have issues running this integration, you may require `libxml2-dev` and `libxmlsec1-dev` packages. To install these on Raspbian, run the command: +This integration follows standard integration removal. No extra steps are required. -```bash -sudo apt install libxml2-dev libxmlsec1-dev -``` +{% include integrations/remove_device_service.md %} -{% enddetails %} +After deleting the integration, go to Total Connect and remove the user account you created for Home Assistant. -## Alarm control panel +## Data Updates -The integration provides an alarm control panel for each Total Connect location. It uses the name of your location from Total Connect. For example, if your location name in Total Connect is "Home", Home Assistant will use `alarm_control_panel.home`. +Your alarm panel contacts the Total Connect 2.0 server to provide status updates. This is a "polling integration" that contacts the Total Connect 2.0 server every 30 seconds to retrieve the status of your alarm panel and sensors. Home Assistant cannot communicate locally with the alarm panel. -The alarm control panel supports the following actions: `alarm_arm_away`, `alarm_arm_home`, `alarm_arm_night`, and `alarm_disarm`. The integration also provides unique actions for `totalconnect.arm_home_instant` and `totalconnect.arm_away_instant` which arms the system with zero entry delay, triggering the alarm instantly if an entry/exit zone is faulted. +## Limitations -The `triggered` state also provides a state attribute called `triggered_source` giving more detail on what triggered the alarm: +The polling window is 30 seconds. If your door opens and then closes again within 30 seconds, it may not be visible in Home Assistant. Automations based on the short term status of doors and windows are not recommended. -- `Police/Medical` is when sensors detected a burglar and/or the Police or Medical button was pressed -- `Fire/Smoke` is when fire or smoke is detected, and/or the Fire button was pressed -- `Carbon Monoxide` is when carbon monoxide is detected +The Total Connect API has limited zone type information. Many zones are simply described as "perimeter" and thus appear as a `door` in Home Assistant. You may have to manually adjust some entities. -## Binary sensor +Some alarm panels integrate Z-Wave, cameras, smart locks or garage door openers, and those add-on devices can be controlled by the Total Connect app. This integration does not yet support awareness of or control of these add-on devices. -The integration provides a binary sensor for each Total Connect zone. To see faulted zones in Home Assistant, your Total Connect account must have "Sensor Activities" enabled. Your alarm monitoring company may charge an extra fee to enable this. If available, these can be found in the Total Connect 2 web portal at **Notifications** -> **Sensor Activities**. Alternately, they can be found in the Total Connect mobile app at **More** -> **Settings** -> **Notifications** -> **Sensor Activities**. Enable each zone you want to monitor. Unmonitored zones will display as `Closed` in Home Assistant. +This integration cannot "trigger" the alarm panel or cause the alarm to sound. -The Total Connect API has limited zone type information. Home Assistant device class `door` is assigned to Total Connect entry/exit, perimeter, and motion zones; along with most alarm panel buttons. The sensor will appear as `True` if the zone is opened (either fault or triggered in Total Connect) and `False` if closed. Device class `smoke` is assigned to Total Connect smoke detectors and alarm panel buttons set to a "Fire No Verification" response type. The sensor will appear as `True` if smoke is detected or the respective button is pressed. Device class `gas` is assigned to Total Connect carbon monoxide detectors. The sensor will appear as `True` if carbon monoxide is detected. +## Troubleshooting -## Buttons +### Error Connecting or Service Unavailable -The integration provides a bypass button for each zone that can be bypassed. The **Bypass All** button for the alarm panel will bypass all faulted or troubled zones. The **Clear Bypass** button for the alarm panel will clear all bypassed zones. +The integration depends on the Total Connect 2.0 servers and your internet connection. Verify your internet is working and check https://status.resideo.com/ for server outages. -## Diagnostic Sensors +### Unknown ResultCode, ArmingState, ZoneType or ZoneStatus -The following diagnostic sensors are available: - -- Low Battery for Zones and Alarm Panels will be `On` if the battery is low. -- Tamper for Zones and Alarm Panels will be `On` if in a tampered state. -- Power for Alarm Panels will be `On` if main power is connected or `Off` if running on the backup battery. +The Total Connect API does not fully document all modes of every alarm panel so the integration was developed based on testing with the developers' own hardware. New or different hardware may result in unknown ResultCode, ArmingState, ZoneType, ZoneStatus or similar messages in the Home Assistant logs. If encountered, please [submit an issue](https://github.com/craigjmidwinter/total-connect-client/issues) for `total-connect-client` which enables this integration. From 00ef5754e17cd99f72e3636da9669e90a9b55c0d Mon Sep 17 00:00:00 2001 From: Tom Date: Sun, 29 Dec 2024 09:28:13 +0100 Subject: [PATCH 31/48] Address supported functionality section for Plugwise (#36515) * Initial scaffolding for supported entities * Generalise cooling description * Revert deletion * Revert deletion * Fix nitpicks * CRAI nitpicks * Add suggestions * Reworded * Improve binary * Improve binary --- source/_integrations/plugwise.markdown | 83 ++++++++++++++++++++++++-- 1 file changed, 79 insertions(+), 4 deletions(-) diff --git a/source/_integrations/plugwise.markdown b/source/_integrations/plugwise.markdown index b43b9e63bb9..095884855c1 100644 --- a/source/_integrations/plugwise.markdown +++ b/source/_integrations/plugwise.markdown @@ -65,13 +65,88 @@ For a thermostat, the active schedule can be deactivated or reactivated via the Auto means the schedule is active, and Heat means it's not active. The active thermostat schedule can be changed via the connected thermostat select entity. Please note that only schedules with two or more schedule points will be shown as select options. -## Entities +## Supported functionality -This integration will show all Plugwise devices (like hardware devices, multi-thermostat climate-zones, and virtual switchgroups) present in your Plugwise configuration. In addition, you will see a Gateway device representing your central Plugwise gateway (i.e., the Smile Anna, Smile P1, Adam or Stretch). +This integration displays all Plugwise devices in your configuration, including hardware devices, multi-thermostat climate zones, and virtual switch groups. Additionally, a device representing your Plugwise gateway (e.g., Adam, Smile-T, or P1) will be visible. -For example, if you have an Adam setup with a Lisa named 'Living' and a Tom named 'Bathroom', these will show up as individual devices. The heating/cooling device connected to your Smile will be shown as 'OpenTherm' or 'OnOff', depending on how the Smile communicates with the device. If you have Plugs (as in, pluggable switches connecting to an Adam) those will be shown as devices as well. +For example, if you have an Adam setup with a Lisa named 'Living' and a Tom named 'Bathroom', these will show up as individual devices. The heating/cooling device connected to your gateway will be shown as 'OpenTherm' or 'OnOff', depending on how the gateway communicates with the device. If you have Plugs (as in, pluggable switches connecting to an Adam) or Aqara Smart Plugs, those will be shown as devices as well. -Under each device there will be entities shown like binary_sensors, sensors, etc. depending on the capabilities of the device: for instance centralized measurements such as 'power' for a P1, 'outdoor_temperature' on Anna or Adam will be assigned to your gateway device. Heating/cooling device measurements such as 'boiler_temperature' will be assigned to the OpenTherm/OnOff device. +Each device will list entities such as `binary sensors`, `sensors`, etc., depending on its capabilities: for instance, centralized measurements such as `power` for a P1, `outdoor_temperature` on Anna or Adam will be assigned to your gateway device. Heating/cooling device measurements such as `boiler_temperature` will be assigned to the OpenTherm/OnOff device. + +### Climate entities + +#### Binary sensors + +Depending on your setup, one or more binary sensors will provide the state of your connected elements. Examples include: + +- **Cooling** & **Heating** + - **Description**: Indicates if your system is actively cooling or heating. +- **DHW State** + - **Description**: Indicates active heating of domestic hot water. +- **Flame State** + - **Description**: If gas is being consumed by your heater, i.e., firing for space or DHW-heating. + +#### Numbers + +Modifying specific number-based settings allows you to fine-tune your setup. + +- **Maximum boiler temperature setpoint** + - **Description**: Adjust the maximum temperature for secondary heater. +- **Domestic hot water setpoint** + - **Description**: Adjust the temperature for your domestic hot water. +- **Temperature offset** + - **Description**: Fine-tune the perceived temperature. + +#### Sensors + +A generous number of sensors is provided for your climate setup. Examples include: + +- **Setpoint** + - **Description**: The setpoint for the current zone (Adam) or generic (Anna). +- **Indoor temperature** + - **Description**: For Anna, Lisa or Jip this will show the temperature measured at the specific thermostat. +- **Outdoor temperature** + - **Description**: The temperature your climate gateway retrieves online. +- **Outdoor air temperature** + - **Description**: The temperature reported by the sensor present in the outdoor unit of your HVAC system, such as a heat pump. + +#### Selects + +- **Thermostat schedule** + - **Description**: Select between available schedules, generic (Anna) or for the current zone (Adam). + - **Remark**: Please check the [further configuration](#further-configuration) for requirements on configuring schedules. + +#### Switches + +- **Cooling** + - **Description**: Toggle if cooling should be enabled. +- **DHW Comfort Mode** + - **Description**: Toggle comfort mode for domestic hot water. + +### Power and gas entities + +#### Sensors + +A generous number of sensors is provided. Examples include: + +- **Electricity consumed point** + - **Description**: Electricity (in Watt) consumed currently by a phase (P1) or a plug. + - **Gateways**: Adam, P1 or Stretch. +- **Gas Consumed Interval** + - **Description**: The gas consumed since the last interval. + - **Gateways**: P1. +- **P1 Net Electricity Point** + - **Description**: Your netto electricity use at this time, can be negative when producing energy, i.e. though solar panels. + - **Gateways**: P1. +- **P1 Electricity Produced off-peak cumulative** + - **Description**: The total produced electricity during off-peak. + - **Gateways**: P1. + +#### Switches + +- **Relay** + - **Description**: Switch a plug on or off + - **Gateways**: Adam, P1 or Stretch. ## Data updates From a4e1a1cfff5ef54519eb538aa75a3325098408c5 Mon Sep 17 00:00:00 2001 From: Joost Lekkerkerker Date: Sun, 29 Dec 2024 09:34:18 +0100 Subject: [PATCH 32/48] Update tradfri.markdown (#36528) --- source/_integrations/tradfri.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/tradfri.markdown b/source/_integrations/tradfri.markdown index cd51168b901..55802cdff94 100644 --- a/source/_integrations/tradfri.markdown +++ b/source/_integrations/tradfri.markdown @@ -23,7 +23,7 @@ ha_platforms: ha_integration_type: integration --- -The IKEA TRÃ…DFRI integration allows you to connect your IKEA TrÃ¥dfri Gateway to Home Assistant. The gateway can control compatible Zigbee-based lights (certified Zigbee Light Link products) connected to it. Home Assistant will automatically discover the gateway's presence on your local network if `discovery:` is present in your {% term "`configuration.yaml`" %} file. +The IKEA TRÃ…DFRI integration allows you to connect your IKEA TrÃ¥dfri Gateway to Home Assistant. The gateway can control compatible Zigbee-based lights (certified Zigbee Light Link products) connected to it. {% include integrations/config_flow.md %} From 76eed772e8474494b7bc2c72ef5c3e47951a67db Mon Sep 17 00:00:00 2001 From: Tom Date: Sun, 29 Dec 2024 14:00:46 +0100 Subject: [PATCH 33/48] Improve initial section and supported devices for Plugwise (#36500) * Incremental restart * Fix (future and) current link endpoints * CRAI nitpicks * Known limitations for next PR * Rework from 36333 data updates * Textlint Zigbee --- source/_integrations/plugwise.markdown | 100 +++++++++++++++---------- 1 file changed, 60 insertions(+), 40 deletions(-) diff --git a/source/_integrations/plugwise.markdown b/source/_integrations/plugwise.markdown index 095884855c1..1dbc71b3f0c 100644 --- a/source/_integrations/plugwise.markdown +++ b/source/_integrations/plugwise.markdown @@ -1,6 +1,6 @@ --- title: Plugwise -description: Plugwise Smile platform integration. +description: Plugwise Gateway platform integration. ha_category: - Binary sensor - Button @@ -30,40 +30,42 @@ ha_platforms: ha_integration_type: hub --- -This enables [Plugwise](https://www.plugwise.com) integrations with a central Smile gateway to be integrated. This integration talks locally to your **Smile** interface, and you will need its password and IP address. -The platform supports [Anna](https://www.plugwise.com/en_US/products/anna), [Adam (zonecontrol)](https://www.plugwise.com/en_US/zonecontrol), [P1](https://www.plugwise.com/en_US/products/smile-p1) Smile products and the Stretch products (not in sale). See below list for more details. +[Plugwise](https://www.plugwise.com) provides smart home devices that allow you to monitor and control your climate, energy (including gas) consumption, and energy production. The energy information can be used for the [energy dashboard](/home-energy-management). -Platforms available - depending on your Smile and setup include: - - - `climate` (for the stand-alone Anna, for Adam, a climate entity is shown for each zone containing devices like an Anna or another type of wired-thermostat, Jip or Lisa combined with one or more Tom/Floor devices) - - `binary_sensor` (for showing the status of e.g. domestic hot water heating or secondary heater) - - `button` (for the Adam and the non-legacy Anna and P1 gateways) - - `number` (for changing a boiler setpoint, a temperature offset) - - `sensor` (for all relevant products including the Smile P1) - - `select` (for changing a thermostat schedule, a regulation mode (Adam only)) - - `switch` (for Plugs connected to Adam, or Circles and Stealths connected to a Stretch) +This integration supports one or multiple Plugwise Gateways connected to your network. You can connect to these gateways using your browser, the Plugwise App, or Home Assistant. There are 4 [supported](#supported-devices) types of gateways: +- Full zonecontrol using the [Adam](https://www.plugwise.com/en_US/zonecontrol) using [additional devices](#adam) such as zone thermostats, smart valves and smart-plugs. +- A stand-alone smart thermostat called [Anna](https://www.plugwise.com/en_US/products/anna). +- For power and gas-usage monitoring there is a device simply called the [P1](https://www.plugwise.com/en_US/products/smile-p1). +- Although no longer sold, there also is support for Stretch, a gateway to create network connectivity for their older power products. ## Pre-requisites -The Plugwise Smile(s) in your network will be automatically discovered and shown on the integrations dashboard. All you need is the Smile ID as its password, which is an 8-character string printed on the sticker on the bottom of your Smile. Repeat this for each individual Smile. +Plugwise gateways on your network are automatically discovered and displayed on the integrations dashboard. Each gateway requires its unique 8-character ID, found on a sticker at the bottom, as its password. Repeat this process for each gateway. {% include integrations/config_flow.md %} {% configuration_basic %} Host: - description: "The hostname or IP address of your Smile. For example: `192.168.1.25`. You can find it in your router or in the Plugwise app using the **Settings** icon (☰) -> **System** -> **Network**. If you are looking for a different device in the Plugwise App, on the main screen first select **Gateways** -> the Smile of your choice, and then follow the previous instruction. Normally, the Smile(s) are automatically discovered, and you don't have to provide the hostname or IP address." + description: "The hostname or IP address of your gateway. For example: `192.168.1.25`. You can find it in your router or in the Plugwise app using the **Settings** icon (☰) -> **System** -> **Network**. In the Plugwise App, to locate a specific device, select **Gateways** on the main screen, choose your desired gateway, and then follow the previous instructions. Normally, the gateway(s) are automatically discovered, and you don't have to provide the hostname or IP address." Username: - description: "Username to log in to the Smile. This should be just `smile` - or `stretch` for a Stretch." + description: "Username to log in to the gateway. This should be 'smile' for most devices, or 'stretch' for a Stretch." Password: - description: "This is the password (i.e. Smile ID) printed on the sticker on the back of your Smile (i.e. Adam, Smile-T, or P1) and should be 8 characters long." + description: "Each gateway requires its unique 8-character ID, found on a sticker at the bottom, as its password." {% endconfiguration_basic %} -### Further configuration +### Schedule Management -For a thermostat, the active schedule can be deactivated or reactivated via the climate card. Please note, that when no schedule is active, one must first be activated in the Plugwise App. Once that has been done, the Plugwise Integration can manage future operations. +1. **Initial Setup**: First, activate a schedule using the Plugwise App or browser. +2. **Control via Home Assistant**: + - Use the climate card to activate/deactivate schedules. + - 'Auto' mode indicates the schedule is active. + - 'Heat', 'Cool' or 'Heat_cool' modes signify the schedule is inactive. +3. **Changing Schedules**: Use the thermostat [select](#change-climate-schedule) entity. -Auto means the schedule is active, and Heat means it's not active. The active thermostat schedule can be changed via the connected thermostat select entity. Please note that only schedules with two or more schedule points will be shown as select options. +{% note %} +Only schedules with two or more schedule points will appear as options. +{% endnote %} ## Supported functionality @@ -150,11 +152,13 @@ A generous number of sensors is provided. Examples include: ## Data updates -The interval which the integration fetches data from the Smile depends on the device: +The interval at which the integration fetches data from the gateway depends on the device-type. -- Power entities, such as the P1, will be refreshed every 10 seconds. -- Climate entities will be refreshed every 60 seconds. -- Stretch entities will be refreshed every 60 seconds. +|Device-type|Interval| +--- | --- +| Climate entities |60 seconds| +| Energy and gas entities |10 seconds| +| Stretch entities |60 seconds| ## Removing the integration @@ -311,33 +315,49 @@ script: preset_mode: asleep ``` -### Supported devices +## Supported devices -The current implementation of the Python module (Plugwise-Smile) includes: +### Adam -Adam (zone_control) with On/Off, OpenTherm, and Loria/Thermastage heating and cooling support: +A complete zone control system also known as [Adam HA](https://www.plugwise.com/en_US/zonecontrol), supporting: - - v3.x - - v2.3 +- On/Off, OpenTherm heating and cooling support. +- Running firmwares v3.x or v2.3. +- Additional devices: + - Zone thermostats such as Lisa or Anna (see warning below on Anna), + - A temperature sensor, Jip, + - Valve controllers called Floor or Tom, + - An under-floor heating controller Koen (note: a Koen always comes with a Plug, which is the active part), + - Smart switches, either Plug or Aqara Smart Plug. - - Devices supported are Anna, Lisa, Jip, Floor, Tom, Plug, Aqara Smart Plug, and Koen (a Koen always comes with a Plug, the active part) +{% note %} +You can also use the Adam SA (Stand-alone, no Zigbee stick present) to make your regular OpenTherm thermostat smart. +{% endnote %} -Anna (thermostat) with OnOff, OpenTherm heating, and Elga and Loria/Thermastage with heating and cooling support: +### Anna - - v4.x - - v3.x - - v1.x +A [smart thermostat](https://www.plugwise.com/en_US/products/anna), supporting: -On the Elga, the cooling-mode can only be turned on, or off, via a switch present on the device, not via a toggle in the Plugwise App. -Please make sure to reload the Plugwise integration after the cooling-mode-switch is turned off after being on, or the other way around. This will ensure that the Plugwise integration is being adapted to the change in function of the Elga. +- On/Off, OpenTherm heating and cooling support. +- Running firmware v4.x, v3.x or v1.x. -Smile P1 (DSMR): +### P1 (DSMR) - - v4.x - - v3.x - - v2.x +A [P1](https://www.plugwise.com/en_US/products/smile-p1) smart meter monitor for the single- or multi-phase grid power connection to your home including gas usage monitoring. Running firmware v4.x, v3.x or v2.x. -Stretch (power switches): +### Stretch (end-of-sale) + +For controlling and monitoring legacy power switches, such as the Circles or Stealths, with v3.x or v2.x Stretch firmware. + +### Unsupported devices + +#### Anna P1 + +A smart thermostat [combined](https://www.plugwise.com/en_US/products/anna-p1) with an energy monitor can transform the way you manage energy. If your solar setup generates surplus energy and you're charged for it, this combination ensures that excess solar power is redirected efficiently. Powering your heat pump for instance to make the most of renewable energy. Do you have a setup like this? We’d love to hear your experience! + +#### Stick + +Plugwise formerly sold power-based products comprised of a USB stick, as the controller, and smart plugs (amongst a few other items). This integration does not support the USB-stick. Reuse of the these products, such as Circles and Stealths using a Stretch or an Adam is supported. Work for USB support is in development by the community, but not ready to become a formal Home Assistant integration just yet. - v3.x - v2.x From fb8e6d28b497fee08a86c5babf8bf63a6e128918 Mon Sep 17 00:00:00 2001 From: Joost Lekkerkerker Date: Mon, 30 Dec 2024 00:16:30 +0100 Subject: [PATCH 34/48] Fix valve names (#36606) --- source/_integrations/valve.markdown | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/_integrations/valve.markdown b/source/_integrations/valve.markdown index 4b38e165503..6b47dca70ef 100644 --- a/source/_integrations/valve.markdown +++ b/source/_integrations/valve.markdown @@ -46,8 +46,8 @@ The following device classes are supported for valves: ### Valve control actions -All valves respond to `valve.open`, `valve.close`, and `valve.toggle`. -Valves that allow setting a specific position may also be controlled with `valve.set_position` and `valve.stop`. +All valves respond to `valve.open_valve`, `valve.close_valve`, and `valve.toggle`. +Valves that allow setting a specific position may also be controlled with `valve.set_valve_position` and `valve.stop_valve`. | Data attribute | Optional | Description | | ---------------------- | -------- | ----------- | @@ -61,12 +61,12 @@ automation: - trigger: time at: "07:15:00" actions: - - action: valve.close + - action: valve.close_valve target: entity_id: valve.demo ``` -### Action `valve.set_position` +### Action `valve.set_valve_position` Set the position of one or multiple valves if they support setting a specific position. @@ -83,7 +83,7 @@ automation: - trigger: time at: "07:15:00" actions: - - action: valve.set_position + - action: valve.set_valve_position target: entity_id: valve.demo data: From 6d1c07e31251e402e61d425b14871a25bd139d5c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Dec 2024 09:21:12 +0100 Subject: [PATCH 35/48] build(deps): bump nokogiri from 1.18.0 to 1.18.1 (#36609) Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.18.0 to 1.18.1. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.18.0...v1.18.1) --- updated-dependencies: - dependency-name: nokogiri dependency-type: direct:production 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 fdd60337ed4..ba8a39f15fb 100644 --- a/Gemfile +++ b/Gemfile @@ -24,7 +24,7 @@ group :jekyll_plugins do end gem 'sinatra', '4.1.1' -gem 'nokogiri', '1.18.0' +gem 'nokogiri', '1.18.1' # 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 7e45a5425fa..7438c444dcd 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.0-arm64-darwin) + nokogiri (1.18.1-arm64-darwin) racc (~> 1.4) - nokogiri (1.18.0-x86_64-linux-gnu) + nokogiri (1.18.1-x86_64-linux-gnu) racc (~> 1.4) parallel (1.26.3) parser (3.3.6.0) @@ -173,7 +173,7 @@ DEPENDENCIES jekyll-paginate (= 1.1.0) jekyll-sitemap (= 1.4.0) jekyll-toc (= 0.19.0) - nokogiri (= 1.18.0) + nokogiri (= 1.18.1) rackup (= 2.2.1) rake (= 13.2.1) rubocop (= 1.69.2) From 62180799749b1aa74039d208ed5becf9b88e0b44 Mon Sep 17 00:00:00 2001 From: Said Tahsin Dane Date: Mon, 30 Dec 2024 09:23:55 +0100 Subject: [PATCH 36/48] Fix small copy paste error (#36601) --- source/_integrations/shell_command.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/shell_command.markdown b/source/_integrations/shell_command.markdown index bc720ca3e7c..c19c8da114c 100644 --- a/source/_integrations/shell_command.markdown +++ b/source/_integrations/shell_command.markdown @@ -109,7 +109,7 @@ The following example shows how the shell command response may be used in automa ```yaml # Create a ToDo notification based on file contents automation: - - alias: "run_set_ac" + - alias: "run_get_file_contents" triggers: - ... actions: From 72e7507b9203f968a6762600c4f140c4416b01e0 Mon Sep 17 00:00:00 2001 From: qfoxb <42038239+qfoxb@users.noreply.github.com> Date: Tue, 31 Dec 2024 15:27:58 -0600 Subject: [PATCH 37/48] Tested DN15S-1BW Via MLWSB-1BW, fix link (#36630) --- source/_integrations/decora_wifi.markdown | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/_integrations/decora_wifi.markdown b/source/_integrations/decora_wifi.markdown index ed78193941a..44e45d11811 100644 --- a/source/_integrations/decora_wifi.markdown +++ b/source/_integrations/decora_wifi.markdown @@ -15,14 +15,15 @@ related: ha_quality_scale: legacy --- -Support for [Leviton Decora Wi-Fi](https://www.leviton.com/products/residential/automation-smart-home/decora-smart-all/decora-smart-with-wifi-technology) dimmers/switches via the MyLeviton API. +Support for [Leviton Decora Wi-Fi](https://leviton.com/products/residential/smart-home/smart-switches) dimmers/switches via the MyLeviton API. 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) +- [DW15S-1BZ](https://www.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) To enable these lights, add the following lines to your {% term "`configuration.yaml`" %} file. {% include integrations/restart_ha_after_config_inclusion.md %} From 4fbd69e34069b79034e20d5f01c041ebd4230e23 Mon Sep 17 00:00:00 2001 From: Kyle Hendricks Date: Tue, 31 Dec 2024 16:33:42 -0500 Subject: [PATCH 38/48] Fix typo in Google Sheets documentation (#36628) --- source/_integrations/google_sheets.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/google_sheets.markdown b/source/_integrations/google_sheets.markdown index 26ab362f9ac..46bc8ef141a 100644 --- a/source/_integrations/google_sheets.markdown +++ b/source/_integrations/google_sheets.markdown @@ -17,7 +17,7 @@ api2: Google Sheets API api2_link: https://console.cloud.google.com/apis/enableflow?apiid=sheets.googleapis.com --- -The Google Sheets integration allows you to connect your [Google Drive](https://drive.google.com) to Home Assistant. The integration adds an actiion to allow you to append rows to a Sheets document. The idea is that you can store data on there for further processing. When you set up a config entry, your drive will have a new sheet called Home Assistant. You can then rename this to whatever you like. +The Google Sheets integration allows you to connect your [Google Drive](https://drive.google.com) to Home Assistant. The integration adds an action to allow you to append rows to a Sheets document. The idea is that you can store data on there for further processing. When you set up a config entry, your drive will have a new sheet called Home Assistant. You can then rename this to whatever you like. **Note**: The integration currently only has access to that one document that is created during setup. From 8909b581cd5000afeebbdac93bf1d18f7fbfa3dc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Dec 2024 22:47:13 +0100 Subject: [PATCH 39/48] build(deps-dev): bump ffi from 1.17.0 to 1.17.1 (#36622) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 7438c444dcd..25a0a6265da 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -26,8 +26,8 @@ GEM eventmachine (>= 0.12.9) http_parser.rb (~> 0) eventmachine (1.2.7) - ffi (1.17.0-arm64-darwin) - ffi (1.17.0-x86_64-linux-gnu) + ffi (1.17.1-arm64-darwin) + ffi (1.17.1-x86_64-linux-gnu) forwardable-extended (2.6.0) google-protobuf (4.29.2-arm64-darwin) bigdecimal From 3c03b6057b01632305bb1195b22218c04fb17625 Mon Sep 17 00:00:00 2001 From: Anurag Devanapally <6226493+andeart@users.noreply.github.com> Date: Tue, 31 Dec 2024 14:30:00 -0800 Subject: [PATCH 40/48] Add troubleshooting for Roomba integration (#36631) --- source/_integrations/roomba.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/_integrations/roomba.markdown b/source/_integrations/roomba.markdown index 6c5f4db1601..d56981f0dcb 100644 --- a/source/_integrations/roomba.markdown +++ b/source/_integrations/roomba.markdown @@ -88,3 +88,9 @@ Use this credentials in dorita980 lib :) ``` Copy the password (everything between `=>` and `<=`, not including leading and trailing whitespace) into the Home Assistant password dialog. + +## Troubleshooting + +- **Integration wizard shows "Failed to connect" after submitting the password**: Before attempting a factory reset (which can be a cumbersome process), attempt submitting the password in the integration wizard while the Roomba is actively running (i.e. cleaning). Avoid opening the app to start a manual job to help with this. Instead, push the physical clean button on the device directly to start the manual job. This appears to resolve the issue on some models because they answer queries only while actively running. + + If this still does not resolve the issue, factory reset the model. From 429ac05365d493a36bcdd9705c46cfcf2be0c508 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Jan 2025 08:26:06 +0100 Subject: [PATCH 41/48] build(deps-dev): bump sorbet-runtime from 0.5.11708 to 0.5.11710 (#36646) --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 25a0a6265da..bdd553ad584 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -150,7 +150,7 @@ GEM rack-protection (= 4.1.1) rack-session (>= 2.0.0, < 3) tilt (~> 2.0) - sorbet-runtime (0.5.11708) + sorbet-runtime (0.5.11710) stringex (2.8.6) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) From 9f3e9917bc0d04da7e0f3c5b6c00039f25ea61b8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Jan 2025 08:28:01 +0100 Subject: [PATCH 42/48] build(deps-dev): bump textlint from 14.4.0 to 14.4.2 (#36644) --- package-lock.json | 506 ++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 244 insertions(+), 264 deletions(-) diff --git a/package-lock.json b/package-lock.json index f3f4f98e859..7e0edf98522 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "remark-lint-prohibited-strings": "^4.0.0", "remark-lint-unordered-list-marker-style": "^4.0.0", "remark-stringify": "^11.0.0", - "textlint": "^14.4.0", + "textlint": "^14.4.2", "textlint-filter-rule-comments": "^1.2.2", "textlint-rule-common-misspellings": "^1.0.1", "textlint-rule-terminology": "^5.0.13" @@ -295,6 +295,15 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/@keyv/serialize": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.0.2.tgz", + "integrity": "sha512-+E/LyaAeuABniD/RvUezWVXKpeuvwLEA9//nE9952zBaOdBd2mQ3pPoM8cUe2X6IcMByfuSLzmYqnYshG60+HQ==", + "dev": true, + "dependencies": { + "buffer": "^6.0.3" + } + }, "node_modules/@npmcli/config": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/@npmcli/config/-/config-6.3.0.tgz", @@ -416,68 +425,68 @@ "dev": true }, "node_modules/@textlint/ast-tester": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.4.0.tgz", - "integrity": "sha512-pCKEUDaZVvvj/uZOTTUgU1tTkNsK+ufNs4Xx5BsBAqy+E0aAJJ47c8h2WIoL/MJniK6ZLctsDIwaZ4z9rUvrsQ==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.4.2.tgz", + "integrity": "sha512-w1MlGa9DsJgp2W+ifNZ57vIWDoRVRExy0rXek7/voxBmSpTo76zHq74ggwjOrmoZpX8ADkvDc0tUWWWyiUVskQ==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^14.4.0", - "debug": "^4.3.4" + "@textlint/ast-node-types": "^14.4.2", + "debug": "^4.4.0" } }, "node_modules/@textlint/ast-tester/node_modules/@textlint/ast-node-types": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz", - "integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.2.tgz", + "integrity": "sha512-e8/drNznaZHS/qGDC83k6Ht1wDWNHzGQ0RHcXD+72YMFercEFvp6WVfW5XbCbxGbSITEO5NBCOCTyeccS9lxEA==", "dev": true }, "node_modules/@textlint/ast-traverse": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.4.0.tgz", - "integrity": "sha512-P6UrqKlXd9Lm0kJ1O8vyQU0/btXULiUHhE5nLZMnTNfgZYG3VasQ9BUyDHJn19O4PhUrIzZJusMi1XFcb3Y46Q==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.4.2.tgz", + "integrity": "sha512-HQp1iatBiLn9Qg8wqN3WxYWoiHJnkcv+30MdVPe5d0CmnBBXXRqFO1eSUHUlYarGNc3LyE0GFEkS72D7lefyNg==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^14.4.0" + "@textlint/ast-node-types": "^14.4.2" } }, "node_modules/@textlint/ast-traverse/node_modules/@textlint/ast-node-types": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz", - "integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.2.tgz", + "integrity": "sha512-e8/drNznaZHS/qGDC83k6Ht1wDWNHzGQ0RHcXD+72YMFercEFvp6WVfW5XbCbxGbSITEO5NBCOCTyeccS9lxEA==", "dev": true }, "node_modules/@textlint/config-loader": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-14.4.0.tgz", - "integrity": "sha512-TCYVhQ+wP/Gs7P5BDAfyRpLJ5tohicTSwQapd/xPjByXFtGx8xlsbLQHTWcodFFpty1O57KRPRsRDhvuTAA2bQ==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-14.4.2.tgz", + "integrity": "sha512-qaR38dkGURC5XED5wR8OnJtPrK9Or76Do1P11rvRGgVu0Tn3n6UYQclbh8em8xnWWMuvJUzbTUSg2XE1h1uu3A==", "dev": true, "dependencies": { - "@textlint/kernel": "^14.4.0", - "@textlint/module-interop": "^14.4.0", - "@textlint/resolver": "^14.4.0", - "@textlint/types": "^14.4.0", - "@textlint/utils": "^14.4.0", - "debug": "^4.3.4", + "@textlint/kernel": "^14.4.2", + "@textlint/module-interop": "^14.4.2", + "@textlint/resolver": "^14.4.2", + "@textlint/types": "^14.4.2", + "@textlint/utils": "^14.4.2", + "debug": "^4.4.0", "rc-config-loader": "^4.1.3" } }, "node_modules/@textlint/feature-flag": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.4.0.tgz", - "integrity": "sha512-aSphE9jw4QTjiCOe1tbtZ2NZpMRbYoUTi2E62KQ/mcVnwGC+Jk671wNSoUJzR/YNaLo63cQ7OKhHrBEb55t+Iw==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.4.2.tgz", + "integrity": "sha512-jeK7FuaYVr+gqgvjZazYHLCA+0oJybXa26kgF7P0qJ4yWq9qoENnjZtHF1VCi40euIS60z+/VJ8SlQj3LfnaoQ==", "dev": true }, "node_modules/@textlint/fixer-formatter": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-14.4.0.tgz", - "integrity": "sha512-DijDPVZgHkHKAEsYVXFZaP0TJGLDtirok/hgi1N1N3MW5ZtQpIHOW8DgKaJcmDZvPQjkTxzBaUp8rzBxHG8MaQ==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-14.4.2.tgz", + "integrity": "sha512-zmpM3FXEFAQy6F35nGnsFUV7jIfcrJNBHuu/Vh5TgfvCw9n2h7+KwEzx34bEce4vBhmKTqebHKSzM+2PlZG3NA==", "dev": true, "dependencies": { - "@textlint/module-interop": "^14.4.0", - "@textlint/resolver": "^14.4.0", - "@textlint/types": "^14.4.0", + "@textlint/module-interop": "^14.4.2", + "@textlint/resolver": "^14.4.2", + "@textlint/types": "^14.4.2", "chalk": "^4.1.2", - "debug": "^4.3.4", + "debug": "^4.4.0", "diff": "^5.2.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", @@ -485,59 +494,59 @@ } }, "node_modules/@textlint/kernel": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.4.0.tgz", - "integrity": "sha512-zH19vQ0ns4n8kPr+csjPnV5yPip6gKs08GvDJBQlX3AEbRQkaSw4H5kBCE+R0D9qDkuqt7xe8Z8Tdm7E7aUvGw==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.4.2.tgz", + "integrity": "sha512-nwUpdOl/whw8Cq9ELYRatmxEUEGApzKRAFJQpdIB/Ex0gKG1S/ctzSYbqSBUZ/Xctnn93yBDgOngDFdgoHbfWg==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^14.4.0", - "@textlint/ast-tester": "^14.4.0", - "@textlint/ast-traverse": "^14.4.0", - "@textlint/feature-flag": "^14.4.0", - "@textlint/source-code-fixer": "^14.4.0", - "@textlint/types": "^14.4.0", - "@textlint/utils": "^14.4.0", - "debug": "^4.3.4", + "@textlint/ast-node-types": "^14.4.2", + "@textlint/ast-tester": "^14.4.2", + "@textlint/ast-traverse": "^14.4.2", + "@textlint/feature-flag": "^14.4.2", + "@textlint/source-code-fixer": "^14.4.2", + "@textlint/types": "^14.4.2", + "@textlint/utils": "^14.4.2", + "debug": "^4.4.0", "fast-equals": "^4.0.3", "structured-source": "^4.0.0" } }, "node_modules/@textlint/kernel/node_modules/@textlint/ast-node-types": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz", - "integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.2.tgz", + "integrity": "sha512-e8/drNznaZHS/qGDC83k6Ht1wDWNHzGQ0RHcXD+72YMFercEFvp6WVfW5XbCbxGbSITEO5NBCOCTyeccS9lxEA==", "dev": true }, "node_modules/@textlint/linter-formatter": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.4.0.tgz", - "integrity": "sha512-rnFwSSXDdsQHGVaRoJJYocVSYn4ZEPUFj78JYDZcR+TRYVDzRJEblFhwsiXl/gHD3L5g2RnBcLbxwZIW+xwtIA==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.4.2.tgz", + "integrity": "sha512-gBd+DDFzymFCjv5vcoH23IbQujjib//lH5lvHz61ImtXzVI6SBBL0jnRjER52IFYRE0tll7VlMURvxWiAVlOzw==", "dev": true, "dependencies": { "@azu/format-text": "^1.0.2", "@azu/style-format": "^1.0.1", - "@textlint/module-interop": "^14.4.0", - "@textlint/resolver": "^14.4.0", - "@textlint/types": "^14.4.0", + "@textlint/module-interop": "^14.4.2", + "@textlint/resolver": "^14.4.2", + "@textlint/types": "^14.4.2", "chalk": "^4.1.2", - "debug": "^4.3.4", + "debug": "^4.4.0", "js-yaml": "^3.14.1", "lodash": "^4.17.21", "pluralize": "^2.0.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", - "table": "^6.8.1", + "table": "^6.9.0", "text-table": "^0.2.0" } }, "node_modules/@textlint/markdown-to-ast": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.4.0.tgz", - "integrity": "sha512-y6UxfRZ00w8XQ1jfKhR0jcQd7qbYaQgo3aERWbJR0Gxxl0T+G+TKBS12pdnUFOTshgSTEgqlvrE+Zt3lTl0e1A==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.4.2.tgz", + "integrity": "sha512-hj2xR9hz5/Tu7Hlrn6VORJgdAfUhAd5j6cBkEVpnKAU4LaERkNyVCgK/da2JHK2w84YHmaDjER4D6zUUkllwag==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^14.4.0", - "debug": "^4.3.4", + "@textlint/ast-node-types": "^14.4.2", + "debug": "^4.4.0", "mdast-util-gfm-autolink-literal": "^0.1.3", "neotraverse": "^0.6.15", "remark-footnotes": "^3.0.0", @@ -548,9 +557,9 @@ } }, "node_modules/@textlint/markdown-to-ast/node_modules/@textlint/ast-node-types": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz", - "integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.2.tgz", + "integrity": "sha512-e8/drNznaZHS/qGDC83k6Ht1wDWNHzGQ0RHcXD+72YMFercEFvp6WVfW5XbCbxGbSITEO5NBCOCTyeccS9lxEA==", "dev": true }, "node_modules/@textlint/markdown-to-ast/node_modules/bail": { @@ -780,79 +789,79 @@ } }, "node_modules/@textlint/module-interop": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.4.0.tgz", - "integrity": "sha512-QdtNDJc+XqDIbP9bwt7DryqE+vFbbIB28462VFWtXcHCJJoFTlmCJ1133SXLe14IOT9P04T9LMNhgv4d2v31gg==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.4.2.tgz", + "integrity": "sha512-PQqUgLcTnCTJ8qpYxLP6p98VzTP/Ju8QIDwTWYRpH00KHdmH9cR1/9O+l6YaWsJSGDtSL2zkMKIQLezpvBZ4cw==", "dev": true }, "node_modules/@textlint/resolver": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-14.4.0.tgz", - "integrity": "sha512-4jNO6Lbyiqtf22205XPpSYG4BNCZrvpmLzO2JUpYMe5C5g0z4l06Yqei3gJWYjdBLlL+fIxDcdW0hyIvvSFpUg==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-14.4.2.tgz", + "integrity": "sha512-P/tdGDpNvxyNGHtHGZJmvwina5bfE92OqiKk1rRJk/B6oIiDolJSPwtVBEJyAeG6N5vtsjqfVnVHnsWnS9/tgw==", "dev": true }, "node_modules/@textlint/source-code-fixer": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.4.0.tgz", - "integrity": "sha512-S2QBZ3pUQQeH01kgfKa1Tmusz0A2/sm3QkW1Uhag9x5v5OKYC4W3070eliY+p0I88nxmqy72M/j+78sDutUcuw==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.4.2.tgz", + "integrity": "sha512-8AFoRL0uQPiu7hlszM1jlido+PdL3/3Ddp8sz1XxOpFgnjuTKnlRLYjziaL8X4JCpXQjUy4Q9am8NI6M1Y18lw==", "dev": true, "dependencies": { - "@textlint/types": "^14.4.0", - "debug": "^4.3.4" + "@textlint/types": "^14.4.2", + "debug": "^4.4.0" } }, "node_modules/@textlint/text-to-ast": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.4.0.tgz", - "integrity": "sha512-MA3z7cksYpjXRPIFFcbB6CM5UbNFD53GJ823qo74ImU2MRlIrs9dcR9yQ76YxbYZ9OazPzUNGg5AS9tbp3Exbg==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.4.2.tgz", + "integrity": "sha512-fLyNHMczXZOP/jkKqBbjntszJR0ytsdQOPg9E8fnnbcX6eBMw3q924+M/vkYno/9ArSnUMPbdfhKBc/lWTXvcQ==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^14.4.0" + "@textlint/ast-node-types": "^14.4.2" } }, "node_modules/@textlint/text-to-ast/node_modules/@textlint/ast-node-types": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz", - "integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.2.tgz", + "integrity": "sha512-e8/drNznaZHS/qGDC83k6Ht1wDWNHzGQ0RHcXD+72YMFercEFvp6WVfW5XbCbxGbSITEO5NBCOCTyeccS9lxEA==", "dev": true }, "node_modules/@textlint/textlint-plugin-markdown": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.4.0.tgz", - "integrity": "sha512-J6RoZSC7MOr9WYqyG4s1BZxExiHfS6fMmiQuWGJB133vDDrY+wmiaFm/C6Li59YPdPivddxSDo7v8z2zyayW1A==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.4.2.tgz", + "integrity": "sha512-qtUta0iHEn843Hzhq7VnYPRp5rsYLnaZC5fOGOMh8DIpUlnuNXI1ANs9TkL5LsgexyYyMuPtFbvwr7S4JNu6ig==", "dev": true, "dependencies": { - "@textlint/markdown-to-ast": "^14.4.0" + "@textlint/markdown-to-ast": "^14.4.2" } }, "node_modules/@textlint/textlint-plugin-text": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.4.0.tgz", - "integrity": "sha512-ut3+MhOh9taPUKLaTT4nyil3MLnAbo60BYGWIz6cPrv3YMyvN/eCw4jW4VscvV1WTik19lzmDCBfSpfnmz/PiA==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.4.2.tgz", + "integrity": "sha512-cg7J6qTgAsV7ms2fP2KpEBIaI+3GQAbQtjNTF4Zu5d8Kn07wNqFqZIpTnsKUC/b64Fn/ujo+HYse76nSU+5EZg==", "dev": true, "dependencies": { - "@textlint/text-to-ast": "^14.4.0" + "@textlint/text-to-ast": "^14.4.2" } }, "node_modules/@textlint/types": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.4.0.tgz", - "integrity": "sha512-ZxZkiFxaXfjoaa/gzbGyUWR0mSMLChDaQrYJ0sPToCQ0QXUG3w5sIT2hCGZyBfNRc8/g0eH+KbDejD014oBPBQ==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.4.2.tgz", + "integrity": "sha512-s2UbCeYY8TQNdSusPs0n+g57g6fwx8Vz6nDZLD7vIXMEW10zIwkQnQf9IpxDwvKnstBWYTJ24Kx9nzddpBS9oQ==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^14.4.0" + "@textlint/ast-node-types": "^14.4.2" } }, "node_modules/@textlint/types/node_modules/@textlint/ast-node-types": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz", - "integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.2.tgz", + "integrity": "sha512-e8/drNznaZHS/qGDC83k6Ht1wDWNHzGQ0RHcXD+72YMFercEFvp6WVfW5XbCbxGbSITEO5NBCOCTyeccS9lxEA==", "dev": true }, "node_modules/@textlint/utils": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-14.4.0.tgz", - "integrity": "sha512-/5QSdYa042z0SX+10+UPzHlMT2nWuRBkouf90/P60nycpFmWn0waIbVoARDlekzmaqB4BitbP7NGjjPmEju4bA==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-14.4.2.tgz", + "integrity": "sha512-bhns1Cws+4dERz6KGFVLLGf0vFK6r5LiKKeg7N3Hnh0QNbzy7TYO+HTfZsgcqBvZSJeAeowzKyDQ8nSsflPbJw==", "dev": true }, "node_modules/@types/concat-stream": { @@ -1044,6 +1053,26 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -1059,16 +1088,6 @@ "integrity": "sha512-rJKn5ooC9u8q13IMCrW0RSp31pxBCHE3y9V/tp3TdWSLf8Em3p6Di4NBpfzbJge9YjjFEsD0RtFEjtvHL5VyEA==", "dev": true }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/braces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", @@ -1081,12 +1100,46 @@ "node": ">=8" } }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, + "node_modules/cacheable": { + "version": "1.8.7", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-1.8.7.tgz", + "integrity": "sha512-AbfG7dAuYNjYxFUtL1lAqmlWdxczCJ47w7cFjhGcnGnUdwSo6VgmSojfoW3tUI12HUkgTJ5kqj78yyq6TsFtlg==", + "dev": true, + "dependencies": { + "hookified": "^1.6.0", + "keyv": "^5.2.3" + } + }, "node_modules/ccount": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", @@ -1242,12 +1295,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, "node_modules/concat-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", @@ -1287,12 +1334,12 @@ } }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "dev": true, "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -1443,15 +1490,12 @@ } }, "node_modules/file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.0.5.tgz", + "integrity": "sha512-umpQsJrBNsdMDgreSryMEXvJh66XeLtZUwA8Gj7rHGearGufUFv6rB/bcXRFsiGWw/VeSUgUofF4Rf2UKEOrTA==", "dev": true, "dependencies": { - "flat-cache": "^2.0.1" - }, - "engines": { - "node": ">=4" + "flat-cache": "^6.1.5" } }, "node_modules/fill-range": { @@ -1479,23 +1523,20 @@ } }, "node_modules/flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.5.tgz", + "integrity": "sha512-QR+2kN38f8nMfiIQ1LHYjuDEmZNZVjxuxY+HufbS3BW0EX01Q5OnH7iduOYRutmgiXb797HAKcXUeXrvRjjgSQ==", "dev": true, "dependencies": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "engines": { - "node": ">=4" + "cacheable": "^1.8.7", + "flatted": "^3.3.2", + "hookified": "^1.6.0" } }, "node_modules/flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", "dev": true }, "node_modules/foreground-child": { @@ -1523,12 +1564,6 @@ "node": ">=0.4.x" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -1558,26 +1593,6 @@ "node": ">=0.12.0" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -1617,12 +1632,38 @@ "node": ">=8" } }, + "node_modules/hookified": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.6.0.tgz", + "integrity": "sha512-se7cpwTA+iA/eY548Bu03JJqBiEZAqU2jnyKdj5B5qurtBg64CZGHTgqCv4Yh7NWu6FGI09W61MCq+NoPj9GXA==", + "dev": true + }, "node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/ignore": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", @@ -1642,16 +1683,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -1886,6 +1917,15 @@ "node": ">=6" } }, + "node_modules/keyv": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.2.3.tgz", + "integrity": "sha512-AGKecUfzrowabUv0bH1RIR5Vf7w+l4S3xtQAypKaUpTdIR1EbrAcTxHCrpo9Q+IWeUlFE2palRtgIQcgm+PQJw==", + "dev": true, + "dependencies": { + "@keyv/serialize": "^1.0.2" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -3588,18 +3628,6 @@ } ] }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", @@ -3637,9 +3665,9 @@ } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, "node_modules/neotraverse": { @@ -3696,15 +3724,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, "node_modules/optionator": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", @@ -3810,15 +3829,6 @@ "node": ">=4" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -5730,18 +5740,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -6014,9 +6012,9 @@ } }, "node_modules/table": { - "version": "6.8.2", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", - "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", + "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", "dev": true, "dependencies": { "ajv": "^8.0.1", @@ -6036,26 +6034,26 @@ "dev": true }, "node_modules/textlint": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/textlint/-/textlint-14.4.0.tgz", - "integrity": "sha512-OutNGN573fI48bRdikgz+PAjCN/P4DRK9dLGxkNkqBlWmwbxLpvBxw1qspZEFVVLoNH94ra65NDfCwMvCosvdA==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/textlint/-/textlint-14.4.2.tgz", + "integrity": "sha512-4bHQY0ndqMBrZyLKqkca3dq8d1psBd1Nb6CznPjEZSFQV5WMAs7l8qZTgFsCwbkhSpbDSAxSTvBF/WZlHT71WA==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^14.4.0", - "@textlint/ast-traverse": "^14.4.0", - "@textlint/config-loader": "^14.4.0", - "@textlint/feature-flag": "^14.4.0", - "@textlint/fixer-formatter": "^14.4.0", - "@textlint/kernel": "^14.4.0", - "@textlint/linter-formatter": "^14.4.0", - "@textlint/module-interop": "^14.4.0", - "@textlint/resolver": "^14.4.0", - "@textlint/textlint-plugin-markdown": "^14.4.0", - "@textlint/textlint-plugin-text": "^14.4.0", - "@textlint/types": "^14.4.0", - "@textlint/utils": "^14.4.0", - "debug": "^4.3.4", - "file-entry-cache": "^5.0.1", + "@textlint/ast-node-types": "^14.4.2", + "@textlint/ast-traverse": "^14.4.2", + "@textlint/config-loader": "^14.4.2", + "@textlint/feature-flag": "^14.4.2", + "@textlint/fixer-formatter": "^14.4.2", + "@textlint/kernel": "^14.4.2", + "@textlint/linter-formatter": "^14.4.2", + "@textlint/module-interop": "^14.4.2", + "@textlint/resolver": "^14.4.2", + "@textlint/textlint-plugin-markdown": "^14.4.2", + "@textlint/textlint-plugin-text": "^14.4.2", + "@textlint/types": "^14.4.2", + "@textlint/utils": "^14.4.2", + "debug": "^4.4.0", + "file-entry-cache": "^10.0.5", "get-stdin": "^5.0.1", "glob": "^10.4.5", "md5": "^2.3.0", @@ -6178,9 +6176,9 @@ } }, "node_modules/textlint/node_modules/@textlint/ast-node-types": { - "version": "14.4.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz", - "integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==", + "version": "14.4.2", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.2.tgz", + "integrity": "sha512-e8/drNznaZHS/qGDC83k6Ht1wDWNHzGQ0RHcXD+72YMFercEFvp6WVfW5XbCbxGbSITEO5NBCOCTyeccS9lxEA==", "dev": true }, "node_modules/textlint/node_modules/brace-expansion": { @@ -7307,24 +7305,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "dependencies": { - "mkdirp": "^0.5.1" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", diff --git a/package.json b/package.json index f9746eb2853..a887d804b3b 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "remark-lint-prohibited-strings": "^4.0.0", "remark-lint-unordered-list-marker-style": "^4.0.0", "remark-stringify": "^11.0.0", - "textlint": "^14.4.0", + "textlint": "^14.4.2", "textlint-filter-rule-comments": "^1.2.2", "textlint-rule-common-misspellings": "^1.0.1", "textlint-rule-terminology": "^5.0.13" From d6ae94689c27ac5d7ad3d9599db523e3afba205c Mon Sep 17 00:00:00 2001 From: Kyle Cooke Date: Thu, 2 Jan 2025 08:45:35 +0000 Subject: [PATCH 43/48] Update sky_remote.markdown (#36642) --- source/_integrations/sky_remote.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/sky_remote.markdown b/source/_integrations/sky_remote.markdown index 322e9a7ec90..18b9ba28269 100644 --- a/source/_integrations/sky_remote.markdown +++ b/source/_integrations/sky_remote.markdown @@ -22,7 +22,7 @@ The **Sky Remote** {% term integration %} lets you control a [Sky](https://www.s ## Supported models -This integration is intended to control all Sky satellite receiver boxes with a LAN port. It will not control Sky stream pucks. +This integration is intended to control Sky+ HD and Sky Q satellite receiver boxes with a LAN port. It will not control Sky stream pucks. {% include integrations/config_flow.md %} From be35805d386006b657488bdcf916d4e0f862fc9a Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Thu, 2 Jan 2025 11:43:59 +0100 Subject: [PATCH 44/48] Voice PE: fix typo in audio codec. should be AIC3204 (#36649) --- source/voice-pe/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/voice-pe/index.html b/source/voice-pe/index.html index 749b360b897..31a1eb1c6db 100644 --- a/source/voice-pe/index.html +++ b/source/voice-pe/index.html @@ -942,7 +942,7 @@ frontpage_image: /images/frontpage/voice-pe-frontpage.jpg
  • 3.5 mm (⅛”) stereo headphone jack
  • Digital to analog converter (DAC):
    - TI AIC3202
    + TI AIC3204
    48 kHz sampling rate
From 969475a02f13e718ecf6efbff80cbb0d1bee8706 Mon Sep 17 00:00:00 2001 From: Andrew Jackson Date: Thu, 2 Jan 2025 12:40:44 +0000 Subject: [PATCH 45/48] Update Mastodon permissions (#36650) Co-authored-by: Franck Nijhof --- source/_integrations/mastodon.markdown | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/_integrations/mastodon.markdown b/source/_integrations/mastodon.markdown index 2d69ed5232f..108b8969de4 100644 --- a/source/_integrations/mastodon.markdown +++ b/source/_integrations/mastodon.markdown @@ -22,7 +22,10 @@ The `mastodon` platform uses [Mastodon](https://joinmastodon.org/) to deliver no ### Setup Go to **Preferences** in the Mastodon web interface, then to **Development** and create a new application. -If you want to grant only required accesses, uncheck all checkboxes then check only **read:accounts** and **write:statuses**. + +Check the following scopes **read:accounts**, **write:statuses** and **write:media**. + +Select **Submit** to create the application and generate the key, secret, and token required for the integration. {% include integrations/config_flow.md %} From b3e010869f3cc7804e167dd51a80e0bc7a5ed415 Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Thu, 2 Jan 2025 18:35:07 +0100 Subject: [PATCH 46/48] Wipe data disk: update steps for CM4 and CM5 (#36655) --- source/_includes/common-tasks/commandline.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_includes/common-tasks/commandline.md b/source/_includes/common-tasks/commandline.md index 0c9980962b1..9062bfa491a 100644 --- a/source/_includes/common-tasks/commandline.md +++ b/source/_includes/common-tasks/commandline.md @@ -109,7 +109,7 @@ The command `ha os datadisk wipe` marks the data partition (either internal on t The `ha os datadisk wipe` command can only be run from the local terminal. Connect a display and keyboard and use the terminal. -Note, if you have a Home Assistant Yellow, there is a red hardware button to wipe the data disk. Follow the procedure on [resetting the device](https://yellow.home-assistant.io/guides/factory-reset/). +Note, if you have a Home Assistant Yellow with a Raspberry Pi Compute Module 5, these steps above apply. If you have a Home Assistant Yellow with a Raspberry Pi Compute Module 4, there is a red hardware button to wipe the data disk. Follow the procedure on [resetting the device](https://yellow.home-assistant.io/guides/factory-reset/). #### Listing all users from the command line From a01dddffe3be5bbe41050c86f7f6bce14d51b524 Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Thu, 2 Jan 2025 21:00:44 +0100 Subject: [PATCH 47/48] Add link to steps on wiping data disk on Green (#36658) --- source/_includes/common-tasks/commandline.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/_includes/common-tasks/commandline.md b/source/_includes/common-tasks/commandline.md index 9062bfa491a..2357531894c 100644 --- a/source/_includes/common-tasks/commandline.md +++ b/source/_includes/common-tasks/commandline.md @@ -109,7 +109,10 @@ The command `ha os datadisk wipe` marks the data partition (either internal on t The `ha os datadisk wipe` command can only be run from the local terminal. Connect a display and keyboard and use the terminal. -Note, if you have a Home Assistant Yellow with a Raspberry Pi Compute Module 5, these steps above apply. If you have a Home Assistant Yellow with a Raspberry Pi Compute Module 4, there is a red hardware button to wipe the data disk. Follow the procedure on [resetting the device](https://yellow.home-assistant.io/guides/factory-reset/). +Note, if you have a Home Assistant Yellow with a Raspberry Pi Compute Module 5, use the command line steps described above. + +- If you have a Home Assistant Yellow with a Raspberry Pi Compute Module 4, there is a red hardware button to wipe the data disk. Follow the procedure on [resetting the Home Assistant Yellow](https://yellow.home-assistant.io/guides/factory-reset/). +- If you have a Home Assistant Green, there is a black hardware button to wipe the data disk. Follow the procedure on [resetting the Home Assistant Green](https://green.home-assistant.io/guides/reset/). #### Listing all users from the command line From 42607fd1077411eafb4e44a0189c4c8e29938f19 Mon Sep 17 00:00:00 2001 From: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> Date: Fri, 3 Jan 2025 10:50:18 +0100 Subject: [PATCH 48/48] wipe data disk: fix title, improve structure (#36673) --- source/_includes/common-tasks/commandline.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/_includes/common-tasks/commandline.md b/source/_includes/common-tasks/commandline.md index 2357531894c..7e14468d21d 100644 --- a/source/_includes/common-tasks/commandline.md +++ b/source/_includes/common-tasks/commandline.md @@ -101,7 +101,7 @@ Use "ha [command] --help" for more information about a command. You can also access the {% term "Home Assistant Operating System" %} via a directly connected keyboard and monitor, the console. -#### Wiping the data disk wipe from the command line +#### Wiping the data disk from the command line In {% term "Home Assistant Operating System" %}, the `ha os datadisk wipe` command wipes the data disk. The command deletes all user data as well as Home Assistant Core, Supervisor, and any installed add-ons. @@ -109,7 +109,9 @@ The command `ha os datadisk wipe` marks the data partition (either internal on t The `ha os datadisk wipe` command can only be run from the local terminal. Connect a display and keyboard and use the terminal. -Note, if you have a Home Assistant Yellow with a Raspberry Pi Compute Module 5, use the command line steps described above. +Note, some systems have a reset button you can use to clear the data disk, instead of using the command line: + +- If you have a Home Assistant Yellow with a Raspberry Pi Compute Module 5, use the command line steps described above. - If you have a Home Assistant Yellow with a Raspberry Pi Compute Module 4, there is a red hardware button to wipe the data disk. Follow the procedure on [resetting the Home Assistant Yellow](https://yellow.home-assistant.io/guides/factory-reset/). - If you have a Home Assistant Green, there is a black hardware button to wipe the data disk. Follow the procedure on [resetting the Home Assistant Green](https://green.home-assistant.io/guides/reset/).