From dcf3f1672c41d194802a8685fc4a75124a0aa58e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=85ke=20Strandberg?= Date: Fri, 29 Nov 2024 14:42:24 +0100 Subject: [PATCH 01/31] Rewrite myuplink docs for new quality scale (#36017) * Rewrite myuplink for new quality scale * Apply review comments * Update source/_integrations/myuplink.markdown Co-authored-by: Klaas Schoute * Corrected data update interval * Delete Gemfile.lock * Revert "Delete Gemfile.lock" This reverts commit 6e2b08d4bc78f69a1594f400460318562c14576f. * Revert "Corrected data update interval" This reverts commit 7f0199bc9b1e7a0ce4444406b75821459e8f15f2. * Correct data update interval * tiny tweak --------- Co-authored-by: Klaas Schoute Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> --- source/_integrations/myuplink.markdown | 35 ++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/source/_integrations/myuplink.markdown b/source/_integrations/myuplink.markdown index 2a9264eb45c..0574590b393 100644 --- a/source/_integrations/myuplink.markdown +++ b/source/_integrations/myuplink.markdown @@ -26,18 +26,22 @@ ha_platforms: ha_integration_type: integration --- -The myUplink integration lets you get information about the devices supporting myUplink using the [official cloud API](https://dev.myuplink.com). +The **myUplink** {% term integration %} lets you get information about and control heat-pump devices supporting myUplink using the [official cloud API](https://dev.myuplink.com). -Depending on the type of devices in your system, one or more entities are added to Home Assistant. Currently, there is support for reading sensor states. There is also support for switch, select and number entities if suitable data points are discovered in the system. Note that you may need a valid subscription with MyUplink to control your equipment with switch, select, and number entities. +The integration will connect to your account and download all available data from the API. The downloaded information will be used to create devices and entities in Home Assistant. There can be from a few entities up to many hundreds depending on the type of equipment. The integration will make the best effort to map the data-points in the API to sensors, switches, number, and select entities. + +{% note %} +You may need a valid subscription with myUplink to control your equipment with switch, select, and number entities. +{% endnote %} ## Prerequisites 1. Visit [https://myuplink.com/register](https://myuplink.com/register) and sign up for a user account. 2. Go to [**Applications**](https://dev.myuplink.com/apps), and register a new App: -- **Application ID**: Home Assistant (or whatever name makes sense to you) -- **OAuth Flow**: Authorization Code Grant Flow -- **Redirect URI**: `https://my.home-assistant.io/redirect/oauth` +- **Application Name**: Home Assistant (or whatever name makes sense to you) +- **Description**: A brief description of how you'll use this application (e.g., "Home Assistant integration for controlling my heat pump") +- **Callback URL**: `https://my.home-assistant.io/redirect/oauth` {% details "I have manually disabled My Home Assistant" %} @@ -55,3 +59,24 @@ Internal examples: `http://192.168.0.2:8123/auth/external/callback`, `http://hom {% include integrations/config_flow.md %} The integration configuration will require the **Client ID** and **Client Secret** created above. See [Application Credentials](/integrations/application_credentials) for more details. + +## Data updates + +The integration will poll the API for data every 60 seconds. This polling interval is designed to work within the rate limits of myUplink APIs while providing timely updates. + +## Known limitations + +- The integration makes the best effort to map data-points from the API to relevant entities in Home Assistant. However, some sensors may not appear for certain heat-pump models, or in other cases, numerous irrelevant entities might be created. Please create an issue on GitHub and include a diagnostic download file from your installation if you believe that the mapping can be improved. +- Entity names are available in English and cannot be automatically translated by Home Assistant. The reason is that the names are defined by the API and can be changed by updates of the API or the firmware in the appliance. However, most entity names are self-explanatory, e.g., "Room temperature (BT50)". + +## Troubleshooting + +{% details "Can't log in to myUplink API" %} +Make sure that you have entered the application credentials correctly. A common problem is that leading or trailing spaces are included in the entered credential strings. You may have to delete the application credentials from Home Assistant and install the integration again to get everything right. +{% enddetails %} + +## Removing the integration + +After removing the integration, go to the myUplink [developer site](https://dev.myuplink.com/apps) and remove the credentials unless you will use them again. + +{% include integrations/remove_device_service.md %} From 556ad9db1c5e1f506e7c80ba00c79621426a35c3 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Sat, 30 Nov 2024 20:58:19 +0100 Subject: [PATCH 02/31] Month of "What the heck?!" 2024 (#36074) --- ...-12-01-the-month-of-what-the-heck.markdown | 211 ++++++++++++++++++ .../social.jpg | Bin 0 -> 161494 bytes 2 files changed, 211 insertions(+) create mode 100644 source/_posts/2024-12-01-the-month-of-what-the-heck.markdown create mode 100644 source/images/blog/2024-12-01-the-month-of-what-the-heck/social.jpg diff --git a/source/_posts/2024-12-01-the-month-of-what-the-heck.markdown b/source/_posts/2024-12-01-the-month-of-what-the-heck.markdown new file mode 100644 index 00000000000..d35abc24123 --- /dev/null +++ b/source/_posts/2024-12-01-the-month-of-what-the-heck.markdown @@ -0,0 +1,211 @@ +--- +title: The month of 'What the Heck?!' 2024 +description: "Ever felt that 'What the heck Home Assistant?!' moment? This month, we would like to learn about your 'what the heck?!' moments..." +date: 2024-11-30 00:00:00 +date_formatted: "December 1, 2024" +author: Franck Nijhof +author_twitter: frenck +categories: Announcements +og_image: /images/blog/2024-12-01-the-month-of-what-the-heck/social.jpg +--- + + + +**TL;DR**: For all of December 🎄, we are opening up to share any issue, idea, +suggestion, or annoyance you have with Home Assistant +[on our community forums]! + +[on our community forums]: https://community.home-assistant.io/c/month-of-what-the-heck/61 + +## Welcome to the month of “What the heck?!”: Third edition + +**It’s back!** 🎉 We are thrilled to announce the **third** edition of the month +of “What the heck?!” (WTH for short). Every [two] [years], we take the time to +pause, listen, and dive deep into the little things that maybe you go +*“What the heck?!”* about Home Assistant. + +We’ve been [growing really hard for years now] with over a million +Home Assistant-powered smart homes out there, and, as of this year, we are also +[the \#1 open source project on GitHub]! + +A lot has happened since [the last edition two years ago]. Lots of effort went +into making a [voice-controlled Home Assistant] a reality. We have implemented +[new dashboards and cards] (with drag-and-drop!), +[added organization capabilities] with labels and categories, and so [much] +[more]! But did everything turn out the way it should? Did we miss things? +Or, worse, did something start to annoy you? + +That is what this month is about! This year, we are kicking it off in the month +of **December** as a nice closing activity for this year, and we can’t wait to +hear from 👉 **YOU** 👈! + +[added organization capabilities]: /blog/2024/04/03/release-20244/#three-new-ways-to-organize +[growing really hard for years now]: https://analytics.home-assistant.io/ +[more]: /blog/2023/11/01/release-202311/#there-is-a-lot-to-do +[much]: /blog/2024/06/05/release-20246/#dipping-our-toes-in-the-world-of-ai-using-llms +[new dashboards and cards]: /blog/2024/11/06/release-202411/#sections-dashboard-no-longer-experimental +[the \#1 open source project on GitHub]: /blog/2024/11/18/event-wrapup-github-universe-24/#we-are-number-1 +[the last edition two years ago]: /blog/2022/09/30/the-month-of-what-the-heck/ +[two]: /blog/2020/08/18/the-month-of-what-the-heck/ +[voice-controlled Home Assistant]: /blog/2022/12/20/year-of-voice/ +[years]: /blog/2022/09/30/the-month-of-what-the-heck/ + +### Lowering the barrier for sharing WTH?! moments + +We realize reporting bugs on our [GitHub] might be a steep hill and, for some, +maybe even a bit scary. You need a GitHub account to report an issue following +issue templates and forms, and the report itself needs to be written in a way +that a developer can work with. Above all, we use our issue tracker to track +actual issues and bugs, not small feature requests or annoyances. + +While this is a common and reasonable process to collect, track, and process +bugs, our issue tracking-process might not be the ideal way to learn about your +*“What the heck?!”* moments, small tweaks, and improvements that can make us +all enjoy Home Assistant even more. + +Today, we have opened up a [Community Forum category] as a safe, lower-barrier +place to talk about your Home Assistant “What the heck?!” moments. +More importantly: discuss and vote on topics your fellow home automators have +brought up. + +[Community Forum category]: https://community.home-assistant.io/c/month-of-what-the-heck/61 +[GitHub]: https://github.com/home-assistant/core/issues/new/choose + +## What are we looking for? + +Just as with previous editions, I sent out a related question on my socials +earlier this week: + +> 🎅 𝘚𝘢𝘯𝘵𝘢 𝘮𝘪𝘨𝘩𝘵 𝘣𝘦 𝘭𝘪𝘴𝘵𝘦𝘯𝘪𝘯𝘨… If you could ask for one small Home Assistant +> improvement this holiday season, what would it be? + +The answers to this question pretty much capture the goal behind this month: +Finding those nice quality-of-life features and little annoyances, highlighting +inconsistencies, suggestions for things that could be streamlined more, and even +big-ticket items. All of those things would make Home Assistant even more +awesome for everyone. + +I’ve received many responses on these social media posts on [X], [Mastodon], +and [Bluesky]. Most of the responses there are **exactly** what we are looking +for this month. I’ve picked a few from these platforms to show you what I mean: + +- “*Makes exposing entities to HomeKit the same as to Alexa & Google*” ([Peter Hardy-vanDoorn]) +- *"Polygon zones would be so very helpful instead of just the base circle"* ([KrispKiwi]) +- “*Edit a scene without activating it. I can only edit my sleep scene after everyone goes to sleep or in YAML.”* ([codebuild21]) +- *"The possibility of catching errors in automations and being able to take actions when they occur 🙂"* ([Sergio Mayoral]) +- *"Not Fancy! Better backup management, especially pruning options!"* ([Alex Alami]) +- *"Persist my prefered dashboard across my different devices/browsers."* ([Carlos Sánchez López]) +- *"Home Assistant voice hardware!"* ([Paulus Schoutsen]) 😆 + +These are all great topics for the month of “What the heck?!”, I hope they inspire you for more topics to share 💖. + +[Alex Alami]: https://bsky.app/profile/aaposutry.bsky.social/post/3lby3xqhzzk2w +[Bluesky]: https://bsky.app/profile/did:plc:ofidofdlypuxb2dlfdmbh3a3/post/3lbx2w2kh5a2p +[Carlos Sánchez López]: https://bsky.app/profile/chayotejarocho.space/post/3lbx7yorfms2c +[codebuild21]: https://bsky.app/profile/codebuild21.bsky.social/post/3lbx72g4l6s2n +[KrispKiwi]: https://x.com/KrispKiwi/status/1861825026825265406 +[Mastodon]: https://fosstodon.org/@frenck/113556074335097996 +[Paulus Schoutsen]: https://bsky.app/profile/paulusschoutsen.nl/post/3lbx32dabes2s +[Peter Hardy-vanDoorn]: https://x.com/peterjvandoorn/status/1861898354038292579 +[Sergio Mayoral]: https://x.com/sermayoral/status/1862109088139583917 +[X]: https://x.com/Frenck/status/1861823068735181154 + +## Roadmap + +As you might be aware, we also create and publish a bigger, high level, roadmap +for the greater direction of Home Assistant. A few weeks back, [Madelena] +and [JLo] shared the [2024 Year-end update of our roadmap]. + +This year’s month of “What the heck?!” is thus different in this regard, as in +previous editions we didn’t have any roadmap in place. For this year’s WTH, +the product team will also be watching for items that will help shape and +prioritize our roadmap for the near future. + +As a matter of fact, many items on this year’s roadmap that we’ve worked on +have their origins or have been shaped by topics from the previous WTH from +2022. For example, the [ability to organize automations] and the ability to +[drag-and-drop cards on your dashboards]. + +[2024 Year-end update of our roadmap]: https://www.home-assistant.io/blog/2024/11/15/roadmap-2024h2/ +[ability to organize automations]: https://community.home-assistant.io/t/why-are-all-automations-in-one-big-list/467153?u=frenck +[drag-and-drop cards on your dashboards]: https://community.home-assistant.io/t/wth-cant-we-drag-drop-in-the-dashboard/467205?u=frenck +[JLo]: https://github.com/jlpouffier +[Madelena]: https://github.com/madelena + +## Why December? + +In the previous editions, we had this month in October; this year, we decided to +move it to December. We figured, the holiday season is perfect for this event. 🎄 + +Many of us have a bit more time on our hands during the holidays, whether that’s +tinkering with automations, exploring our new dashboards, contributing to our +project, or simply enjoying engaging our active and vibrant community. + +## Start sharing your WTH! + +👆That title says it all really. Start sharing **your** “What the heck?!” +moment, browse through all the WTH moments others brought up, and vote for the +ones you feel the same about. + +We are excited about this month and looking forward to everything brought up! + +**[Join us on the forums!]**, or read the **[FAQ](#faq)** below. + +[Join us on the forums!]: https://community.home-assistant.io/c/month-of-what-the-heck/61 + +

+Image of a person expressing a what the heck moment +So, when does Home Assistant trigger this moment for you? +

+ +## FAQ + +- **_“Great! I have multiple things! Should I put all my stuff in a single + topic?!”_** + + **No**, please create **multiple**, **smaller** topics. There is no limitation + on how many forum topics one can create for WTH. Each topic can be voted on, + picked up, and maybe even resolved. Also, having multiple things stacked in + a single forum topic makes resolving, discussing, and voting on them hard. + +
+ +- **_“Is everything reported going to be fixed/addressed?”_** + + Sorry, but the answer here is **no**; there is no guarantee that it will + happen. The goal is to lower the barrier reporting things for one month. + Code contributors will definitely join the effort and address a few of the + listed things. Still, in the end, the number of submissions in WTH is, + in general, simply too much to address. However, we have picked up a lot of + items over the years (including bigger topics); it helps us shape our roadmap. + +
+ +- **_"I really want this new integration or add-on to be implemented, so I can + use my devices. Is this the right place for it?”_** + + **No**, this event is **not** for requesting new add-ons or device/services + integrations. Please use the "[Feature Requests]" forum category instead. + +
+ +- **_“My WTH topic is one of the top-voted ones, so it is going to be + fixed/addressed, right?”_** + + This is **not** a contest. Voting will help with visibility and give a sense + of the suggestion's impact. However, it might be difficult or too big to + implement. A topic with lots of votes is more likely to be noticed by a + contributor, but it is not guaranteed to be picked up. + + Topics with a lot of engagement, of course, help us shape our future roadmap. + +
+ +- **_“I’ve found a bug and am comfortable with GitHub. Where should I report my + issue now?”_** + + If you are comfortable using GitHub, please, by all means, + [file an issue report on GitHub] instead. + +[Feature Requests]: https://community.home-assistant.io/c/feature-requests/13 +[file an issue report on GitHub]: https://github.com/home-assistant/core/issues/new/choose \ No newline at end of file diff --git a/source/images/blog/2024-12-01-the-month-of-what-the-heck/social.jpg b/source/images/blog/2024-12-01-the-month-of-what-the-heck/social.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fb376a1a4cda6a20bc44641b9f626ee3b98adadf GIT binary patch literal 161494 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%0A)4q~%6KnFU< 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 Date: Sat, 30 Nov 2024 21:05:46 +0100 Subject: [PATCH 03/31] Fix blog post date --- source/_posts/2024-12-01-the-month-of-what-the-heck.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2024-12-01-the-month-of-what-the-heck.markdown b/source/_posts/2024-12-01-the-month-of-what-the-heck.markdown index d35abc24123..46d98646ebc 100644 --- a/source/_posts/2024-12-01-the-month-of-what-the-heck.markdown +++ b/source/_posts/2024-12-01-the-month-of-what-the-heck.markdown @@ -2,7 +2,7 @@ title: The month of 'What the Heck?!' 2024 description: "Ever felt that 'What the heck Home Assistant?!' moment? This month, we would like to learn about your 'what the heck?!' moments..." date: 2024-11-30 00:00:00 -date_formatted: "December 1, 2024" +date_formatted: "november 31, 2024" author: Franck Nijhof author_twitter: frenck categories: Announcements From 1ce94329dc030ef93eb6b004c44de3efee8999c5 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Sat, 30 Nov 2024 21:09:18 +0100 Subject: [PATCH 04/31] Fix blog post date --- source/_posts/2024-12-01-the-month-of-what-the-heck.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2024-12-01-the-month-of-what-the-heck.markdown b/source/_posts/2024-12-01-the-month-of-what-the-heck.markdown index 46d98646ebc..5af635212d0 100644 --- a/source/_posts/2024-12-01-the-month-of-what-the-heck.markdown +++ b/source/_posts/2024-12-01-the-month-of-what-the-heck.markdown @@ -2,7 +2,7 @@ title: The month of 'What the Heck?!' 2024 description: "Ever felt that 'What the heck Home Assistant?!' moment? This month, we would like to learn about your 'what the heck?!' moments..." date: 2024-11-30 00:00:00 -date_formatted: "november 31, 2024" +date_formatted: "November 31, 2024" author: Franck Nijhof author_twitter: frenck categories: Announcements From 2f5c8cf9012d50ccb213121d308120869fa53180 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Sat, 30 Nov 2024 21:23:39 +0100 Subject: [PATCH 05/31] Fix blog post date --- source/_posts/2024-12-01-the-month-of-what-the-heck.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_posts/2024-12-01-the-month-of-what-the-heck.markdown b/source/_posts/2024-12-01-the-month-of-what-the-heck.markdown index 5af635212d0..82ffb2a17f9 100644 --- a/source/_posts/2024-12-01-the-month-of-what-the-heck.markdown +++ b/source/_posts/2024-12-01-the-month-of-what-the-heck.markdown @@ -2,7 +2,7 @@ title: The month of 'What the Heck?!' 2024 description: "Ever felt that 'What the heck Home Assistant?!' moment? This month, we would like to learn about your 'what the heck?!' moments..." date: 2024-11-30 00:00:00 -date_formatted: "November 31, 2024" +date_formatted: "November 30, 2024" author: Franck Nijhof author_twitter: frenck categories: Announcements From 08f6d12b2c07162c4f059b9ac2106c0a72340ad7 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Sat, 30 Nov 2024 15:46:27 -0500 Subject: [PATCH 06/31] Add anchor to no-new-integrations --- source/_posts/2024-12-01-the-month-of-what-the-heck.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_posts/2024-12-01-the-month-of-what-the-heck.markdown b/source/_posts/2024-12-01-the-month-of-what-the-heck.markdown index 82ffb2a17f9..e1f432e743c 100644 --- a/source/_posts/2024-12-01-the-month-of-what-the-heck.markdown +++ b/source/_posts/2024-12-01-the-month-of-what-the-heck.markdown @@ -179,7 +179,7 @@ So, when does Home Assistant trigger this moment for you? in general, simply too much to address. However, we have picked up a lot of items over the years (including bigger topics); it helps us shape our roadmap. -
+
- **_"I really want this new integration or add-on to be implemented, so I can use my devices. Is this the right place for it?”_** @@ -208,4 +208,4 @@ So, when does Home Assistant trigger this moment for you? [file an issue report on GitHub] instead. [Feature Requests]: https://community.home-assistant.io/c/feature-requests/13 -[file an issue report on GitHub]: https://github.com/home-assistant/core/issues/new/choose \ No newline at end of file +[file an issue report on GitHub]: https://github.com/home-assistant/core/issues/new/choose From 4864d5323bc6f0aae604dbd7de71b0512ebaf089 Mon Sep 17 00:00:00 2001 From: sewa0815 Date: Sun, 1 Dec 2024 12:23:16 +0100 Subject: [PATCH 07/31] fix wording (#36075) --- source/_integrations/script.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/script.markdown b/source/_integrations/script.markdown index 33234489052..0990e2d37c1 100644 --- a/source/_integrations/script.markdown +++ b/source/_integrations/script.markdown @@ -77,7 +77,7 @@ fields: description: The name of this script parameter field. type: string description: - description: A description of this of this script parameter. + description: A description of this script parameter. type: string advanced: description: Marks this field as an advanced parameter. This causes it only to be shown in the UI, when the user has advanced mode enabled. From e0496b840aa0d33c4ca61e158903f485f6023f8e Mon Sep 17 00:00:00 2001 From: "Jaap P." Date: Sun, 1 Dec 2024 21:45:51 +0100 Subject: [PATCH 08/31] Update unifiprotect.markdown (#36081) Co-authored-by: Franck Nijhof --- source/_integrations/unifiprotect.markdown | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/source/_integrations/unifiprotect.markdown b/source/_integrations/unifiprotect.markdown index 84e987f2f07..c7c5fcb64a9 100644 --- a/source/_integrations/unifiprotect.markdown +++ b/source/_integrations/unifiprotect.markdown @@ -70,13 +70,13 @@ It is recommended you use the Administrator or a user with full read/write acces but it is not required. The entities that are created will automatically adjust based on the permissions of the user you use has. -1. Login to your _Local Portal_ on your UniFi OS device, and click on _Users_. **Note**: This **must** be done from - the UniFi OS by accessing it directly by IP address (i.e. _Local Portal_), not via `unifi.ui.com` or within the - UniFi Protect app. -2. Go to **Admins** from the left hand side menu or [IP address]/admins/users e.g. 192.168.1.1/admins/users. -3. Click on **Add New Admin**. -4. Select **Full Management** for the role. Uncheck **Allow Remote Access** and fill out the fields for your user. -5. Click **Add** in the bottom right. +1. Login to your _Local Portal_ on your UniFi OS device, and click on _Users_. +**Note**: This **must** be done from the UniFi OS by accessing it directly by IP address (e.g. _192.168.1.1_), not via `unifi.ui.com` or within the UniFi Protect app. +2. Go to **Admins & Users** from the left hand side menu and select the **Admins** tab or go to [IP address]/admins/ (e.g. _192.168.1.1/admins/_). +3. Click on **+** in the top right corner and select **Add Admin**. +4. Select **Restrict to local access only** and enter a new _username_ and _password_. +5. Select **Full Management** for the _Protect_ role. +6. Click **Add** in the bottom right. ![UniFi OS User Creation](/images/integrations/unifiprotect/user.png) From 9452ab654cc9fce7bce861dd0b55cef768ccbdbb Mon Sep 17 00:00:00 2001 From: Aviad Levy Date: Sun, 1 Dec 2024 22:47:39 +0200 Subject: [PATCH 09/31] Elaborate on choosing random effect (#36060) --- source/_integrations/wled.markdown | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/source/_integrations/wled.markdown b/source/_integrations/wled.markdown index 79636853b65..24f7464ef4d 100644 --- a/source/_integrations/wled.markdown +++ b/source/_integrations/wled.markdown @@ -155,6 +155,22 @@ data: {% endraw %} +It is recommended to select an effect that matches the capabilities of your WLED device (e.g., 1D, 2D, or Sound Reactive). You can refer to the [WLED effect list](https://kno.wled.ge/features/effects/) to explore available options. Once you identify compatible effects, you can randomize them based on their IDs. + +Below is an example of how to select a random effect with an ID between 1 and 117, excluding retired effects: + +{% raw %} + +```yaml +action: light.turn_on +target: + entity_id: light.wled +data: + effect: "{{ state_attr('light.wled', 'effect_list')[1:118] | reject('equalto', 'RSVD') | list | random }}" +``` + +{% endraw %} + ### Activating random palette Activating a random palette is very similar to the above random effect, From 54b5fc9726335644c8a89681a2baaf7d9db74445 Mon Sep 17 00:00:00 2001 From: TheGroundZero <2406013+TheGroundZero@users.noreply.github.com> Date: Sun, 1 Dec 2024 21:49:12 +0100 Subject: [PATCH 10/31] Move note so it better aligns with the example code it references (#36062) --- source/_docs/automation/trigger.markdown | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/_docs/automation/trigger.markdown b/source/_docs/automation/trigger.markdown index 58efcf35f8e..97c7f4b82c8 100644 --- a/source/_docs/automation/trigger.markdown +++ b/source/_docs/automation/trigger.markdown @@ -241,6 +241,11 @@ automation: {% endraw %} +{% note %} +Listing above and below together means the numeric_state has to be between the two values. +In the example above, the trigger would fire a single time if a numeric_state goes into the 17.1-24.9 range (above 17 and below 25). It will only fire again, once it has left the defined range and enters it again. +{% endnote %} + When the `attribute` option is specified the trigger is compared to the given `attribute` instead of the state of the entity. {% raw %} @@ -288,11 +293,6 @@ automation: {% endraw %} -{% note %} -Listing above and below together means the numeric_state has to be between the two values. -In the example above, the trigger would fire a single time if a numeric_state goes into the 17.1-24.9 range (above 17 and below 25). It will only fire again, once it has left the defined range and enters it again. -{% endnote %} - Number helpers (`input_number` entities), `number`, `sensor`, and `zone` entities that contain a numeric value, can be used in the `above` and `below` thresholds. However, the comparison will only be made when the entity specified in the trigger is updated. This would look like: From c6ad995beef1366d9001ca6ae18f3dd9a2a0a570 Mon Sep 17 00:00:00 2001 From: Cameron Chamberlain Date: Mon, 2 Dec 2024 07:50:27 +1100 Subject: [PATCH 11/31] typo fix in data disk docs (#36057) --- source/_includes/common-tasks/data_disk.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_includes/common-tasks/data_disk.md b/source/_includes/common-tasks/data_disk.md index ab6ddbcc311..0909abd5200 100644 --- a/source/_includes/common-tasks/data_disk.md +++ b/source/_includes/common-tasks/data_disk.md @@ -11,7 +11,7 @@ All data on the target disk will be overwritten! {% endcaution %} {% important %} -The storage ca pacity of the external data disk must be larger than the storage capacity of the existing (boot) disk. +The storage capacity of the external data disk must be larger than the storage capacity of the existing (boot) disk. {% endimportant %} {% important %} From c6421e3cc0788656fc252cda33c1aa08792b0744 Mon Sep 17 00:00:00 2001 From: "Teemu R." Date: Sun, 1 Dec 2024 21:52:38 +0100 Subject: [PATCH 12/31] Add tplink removal steps (#36053) --- source/_integrations/tplink.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/_integrations/tplink.markdown b/source/_integrations/tplink.markdown index 8c15c98072f..7c389203e94 100644 --- a/source/_integrations/tplink.markdown +++ b/source/_integrations/tplink.markdown @@ -183,3 +183,9 @@ data: spread: 1 direction: 1 ``` + +## Removing the integration + +This integration follows standard integration removal. No extra steps are required. + +{% include integrations/remove_device_service.md %} From e84a537794ff5d0f566e135b0bd90b48d1087933 Mon Sep 17 00:00:00 2001 From: Josef Zweck <24647999+zweckj@users.noreply.github.com> Date: Sun, 1 Dec 2024 21:54:06 +0100 Subject: [PATCH 13/31] Update lamarzocco documentation with connection methods per entity (#35985) --- source/_integrations/lamarzocco.markdown | 92 ++++++++++++------------ 1 file changed, 48 insertions(+), 44 deletions(-) diff --git a/source/_integrations/lamarzocco.markdown b/source/_integrations/lamarzocco.markdown index 39093a82a46..464cc5be27b 100644 --- a/source/_integrations/lamarzocco.markdown +++ b/source/_integrations/lamarzocco.markdown @@ -67,77 +67,81 @@ Use Bluetooth: # Available platforms & entities +{% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} = La Marzocco Cloud + = Bluetooth +{% icon "material-symbols:wifi" title="Local connection" %} = Local network + ## Buttons -| Button name | Description | Available for machines | -|-------------|-------------| ---------------------- | -| Start backflush | Starts the backflush process on your machine. You got 15 seconds to turn the paddle after activation. | all | +| Button name | Description | Available for machines | Controllable through | +|-------------|-------------| ---------------------- | -------------------- | +| **Start backflush** | Starts the backflush process on your machine. You got 15 seconds to turn the paddle after activation. | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | ## Numbers -| Number name | Description | Available for machines | Remarks | -|-------------|-------------| ---------------------- | ------- | -| Coffee target temperature | Temperature the coffee boiler is set to | GS3 AV, GS3 MP | - | -| Steam target temperature | Temperature the steam boiler is set to | GS3 AV, GS3 MP | - | -| Tea water duration | Dose hot water (in seconds) | GS3 AV, GS3 MP | - | -| Dose | Doseage (in ticks) for each key | GS3 AV | GS3 has this multiple times, one for each physical key (1-4), and the entities are disabled by default | -| Prebrew on time | Time prebrew wets the puck | Linea Micra, Linea Mini, GS3 AV | GS3 has this multiple times, one for each physical key (1-4), and the entities are disabled by default | -| Prebrew off time | Time prebrew waits before turning on the pump | Linea Micra, Linea Mini, GS3 AV | GS3 has this multiple times, one for each physical key (1-4), and the entities are disabled by default | -| Preinfusion time | Duration of preinfusion | Linea Micra, Linea Mini, GS3 AV | GS3 has this multiple times, one for each physical key (1-4), and the entities are disabled by default | -| Smart standby time | Time until the machine will automatically stand by (if enabled) | all | - | +| Number name | Description | Available for machines | Controllable through | Remarks | +|-------------|-------------| ---------------------- |--------------------- | ------- | +| **Coffee target temperature** | Temperature the coffee boiler is set to | `GS3 AV`, `GS3 MP` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | - | +| **Steam target temperature** | Temperature the steam boiler is set to | `GS3 AV`, `GS3 MP` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | - | +| **Tea water duration** | Dose hot water (in seconds) | `GS3 AV`, `GS3 MP` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | - | +| **Dose** | Doseage (in ticks) for each key | `GS3 AV` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | `GS3` has this multiple times, one for each physical key (1-4), and the entities are disabled by default | +| **Prebrew on time** | Time prebrew wets the puck | `Linea Micra`, `Linea Mini`, `GS3 AV` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | `GS3` has this multiple times, one for each physical key (1-4), and the entities are disabled by default | +| **Prebrew off time** | Time prebrew waits before turning on the pump | `Linea Micra`, `Linea Mini`, `GS3 AV` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | `GS3` has this multiple times, one for each physical key (1-4), and the entities are disabled by default | +| **Preinfusion time** | Duration of preinfusion | `Linea Micra`, `Linea Mini`, `GS3 AV` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | `GS3` has this multiple times, one for each physical key (1-4), and the entities are disabled by default | +| **Smart standby time** | Time until the machine will automatically stand by (if enabled) | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | - | ## Switches -| Switch name | Description | Available for machines | -|-------------|-------------| ---------------------- | -| Main | Allows to turn machines on-/off | all | -| Steam boiler | Allows to enable/disable the steam boiler | all | -| Smart standby enabled | Whether smart standby is on (machine will automatically stand by after given time) | all | +| Switch name | Description | Available for machines | Controllable through | +|-------------|-------------| ---------------------- | -------------------- | +| **Main** | Allows to turn machines on-/off | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | +| **Steam boiler** | Allows to enable/disable the steam boiler | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | +| **Smart standby enabled** | Whether smart standby is on (machine will automatically stand by after given time) | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | ## Binary sensors -| Binary sensor name | Description | Available for machines | Remarks | -|-------------|-------------| ---------------------- | ------- | -| Water tank empty | Indicates whether the water tank needs a refill. | all | - | -| Brewing active | Is on if you are in the process of making coffee. | all | Only available when the *Host* was set during component configuration. | -| Backflush enabled | Is on if you started the backflushing process. | all | - | +| Binary sensor name | Description | Available for machines | Retrievable from | Remarks | +|------------------- |-------------| ---------------------- | ----------------- | ------- | +| **Water tank empty** | Indicates whether the water tank needs a refill. | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} {% icon "material-symbols:wifi" title="Local connection" %} | - | +| **Brewing active** | Is on if you are in the process of making coffee. | `all` | {% icon "material-symbols:wifi" title="Local connection" %} | Only available when the `Host` was set during component configuration. | +| **Backflush enabled** | Is on if you started the backflushing process. | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} {% icon "material-symbols:wifi" title="Local connection" %} | - | ## Sensors -| Sensor name | Description | Available for machines | Remarks | -|-------------|-------------| ---------------------- | ------- | -| Current coffee temperature | Current temperature of the coffee boiler | all | When the machine reaches temperature, this will be approximately 3 degrees higher than the `Coffee target temperature`, due to different measurement points. | -| Current steam temperature| Current temperature of the steam boiler | Linea Micra, GS3 AV, GS3 MP | - | -| Total coffees made | Counter for total coffees made| all | - | -| Total flushes made | Counter for total flushes done | all | - | -| Shot timer | Time the current brew is running | all | Only available when the *Host* was set during component configuration. | +| Sensor name | Description | Available for machines | Retrievable from | Remarks | +|-------------|-------------| ---------------------- | ---------------- | ------- | +| **Current coffee temperature** | Current temperature of the coffee boiler | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} {% icon "material-symbols:wifi" title="Local connection" %} | When the machine reaches temperature, this will be approximately 3 degrees higher than the `Coffee target temperature`, due to different measurement points. | +| **Current steam temperature**| Current temperature of the steam boiler | `Linea Micra`, `GS3 AV`, `GS3 MP` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} {% icon "material-symbols:wifi" title="Local connection" %} | - | +| **Total coffees made** | Counter for total coffees made| `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | - | +| **Total flushes made** | Counter for total flushes done | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %}| - | +| **Shot timer** | Time the current brew is running | `all` | {% icon "material-symbols:wifi" title="Local connection" %} | Only available when the `Host` was set during component configuration. | ## Updates -| Update name | Description | Available for machines | -|-------------|-------------| ---------------------- | -| Gateway firmware | Firmware status of the gateway | all | -| Machine firmware | Firmware status of the machine | all | +| Update name | Description | Available for machines | Retrievable from | +|-------------|-------------| ---------------------- |---------------- | +| **Gateway firmware** | Firmware status of the gateway | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | +| **Machine firmware** | Firmware status of the machine | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | ## Selects -| Select name | Description | Options | Available for machines | -|-------------|-------------| ------------------------| ---------------------- | -| Prebrew/-infusion mode | Whether to use prebrew, preinfusion, or neither | Disabled, Prebrew, Preinfusion | Linea Micra, Linea Mini, GS3 AV | -| Steam level | The level your steam boiler should run at | 1,2,3 | Linea Micra | -| Smart standby mode | The smart standby mode, that decides from which events the timer to standby will run. | Last brewing, Power on | all | +| Select name | Description | Options | Available for machines | Controllable through | +|-------------|-------------| --------| ---------------------- | -------------------- | +| **Prebrew/-infusion mode** | Whether to use prebrew, preinfusion, or neither | `Disabled`, `Prebrew`, `Preinfusion` | `Linea Micra`, `Linea Mini`, `GS3 AV` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | +| **Steam level** | The level your steam boiler should run at | `1`,`2`,`3` | `Linea Micra` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | +| **Smart standby mode** | The smart standby mode, that decides from which events the timer to standby will run. | `Last brewing`, `Power on` | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | ## Supported devices Currently, only devices from the **"Home"** range are supported: -- Linea Mini -- Linea Mini R -- Linea Micra -- GS3 AV -- GS3 MP +- `Linea Mini` +- `Linea Mini R` +- `Linea Micra` +- `GS3 AV` +- `GS3 MP` ## Possible use-cases From b234a967bd577dfdaeea107dfba625c20523f49b Mon Sep 17 00:00:00 2001 From: Guido Schmitz Date: Sun, 1 Dec 2024 21:59:27 +0100 Subject: [PATCH 14/31] Add use cases to devolo Home Network (#36044) Co-authored-by: Franck Nijhof --- source/_integrations/devolo_home_network.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/_integrations/devolo_home_network.markdown b/source/_integrations/devolo_home_network.markdown index 30e26d925d6..028ec4e0960 100755 --- a/source/_integrations/devolo_home_network.markdown +++ b/source/_integrations/devolo_home_network.markdown @@ -30,7 +30,7 @@ ha_zeroconf: true ha_integration_type: device --- -The **devolo Home Network** {% term integration %} integration allows you to monitor and control your [devolo](https://www.devolo.global) PLC network. +The **devolo Home Network** {% term integration %} allows you to monitor and control your [devolo](https://www.devolo.global) PLC network. Depending on the device you add to Home Assistant, different use cases are possible. Roughly you can categorize the devices into Wi-Fi and non-Wi-Fi devices. Non-Wi-Fi devices are more or less limited in monitoring your PLC network. The Wi-Fi devices, however, can help with presence detection and remote control of your guest Wi-Fi. For details, please continue reading about the [entities](#entities) and look at the [supported devices](#supported-devolo-devices). {% include integrations/config_flow.md %} @@ -39,9 +39,9 @@ IP address: description: "IP address of your devolo Home Network device. This can be found in the devolo Home Network App on the device dashboard." {% endconfiguration_basic %} -## Device types +## Entities -Currently the following device types within Home Assistant are supported. +Currently, the following entities within Home Assistant are supported. ### Binary sensors From 630f144e891d876610d08a5b0f69042951b57502 Mon Sep 17 00:00:00 2001 From: Klaas Schoute Date: Mon, 2 Dec 2024 07:55:08 +0100 Subject: [PATCH 15/31] Rephrase removal section for multiple integrations (#36093) --- source/_integrations/autarco.markdown | 4 ++-- source/_integrations/bang_olufsen.markdown | 4 ++-- source/_integrations/cambridge_audio.markdown | 4 ++-- source/_integrations/devolo_home_network.markdown | 4 ++-- source/_integrations/fully_kiosk.markdown | 4 ++-- source/_integrations/garages_amsterdam.markdown | 2 +- source/_integrations/lamarzocco.markdown | 4 ++-- source/_integrations/mastodon.markdown | 2 +- source/_integrations/mealie.markdown | 2 +- source/_integrations/onewire.markdown | 4 ++-- source/_integrations/p1_monitor.markdown | 4 ++-- source/_integrations/renault.markdown | 4 ++-- source/_integrations/sfr_box.markdown | 4 ++-- source/_integrations/swiss_public_transport.markdown | 4 ++-- source/_integrations/tedee.markdown | 4 ++-- 15 files changed, 27 insertions(+), 27 deletions(-) diff --git a/source/_integrations/autarco.markdown b/source/_integrations/autarco.markdown index 0afac9543c5..4236de63216 100644 --- a/source/_integrations/autarco.markdown +++ b/source/_integrations/autarco.markdown @@ -66,8 +66,8 @@ If you have a battery connected to your system, you can monitor the battery stat - Charged energy this month (kWh) - Charged energy total (kWh) -## Remove integration +## Removing the integration -This integration follows standard integration removal, no extra steps are required. +This integration follows standard integration removal. No extra steps are required. {% include integrations/remove_device_service.md %} diff --git a/source/_integrations/bang_olufsen.markdown b/source/_integrations/bang_olufsen.markdown index 889bcfd8d14..099948bddd0 100644 --- a/source/_integrations/bang_olufsen.markdown +++ b/source/_integrations/bang_olufsen.markdown @@ -264,8 +264,8 @@ Additionally a Deezer user ID can be found at , and this needs to be converted to `album:ALBUM_ID`. The same applies to playlists, which have the format `playlist:PLAYLIST_ID`. Individual tracks can be found by sharing the track and selecting the `Copy track link` method, which should yield a link of the format , this can be played by extracting the track id `TRACK_ID`. -## Remove integration +## Removing the integration -This integration follows standard integration removal, no extra steps are required. +This integration follows standard integration removal. No extra steps are required. {% include integrations/remove_device_service.md %} diff --git a/source/_integrations/cambridge_audio.markdown b/source/_integrations/cambridge_audio.markdown index 67114c02251..26a991535f4 100644 --- a/source/_integrations/cambridge_audio.markdown +++ b/source/_integrations/cambridge_audio.markdown @@ -55,9 +55,9 @@ Host: Cambridge Audio devices push data directly to Home Assistant, enabling immediate updates for device state changes, media information, and playback status. -## Remove integration +## Removing the integration -This integration follows standard integration removal, no extra steps are required. +This integration follows standard integration removal. No extra steps are required. {% include integrations/remove_device_service.md %} diff --git a/source/_integrations/devolo_home_network.markdown b/source/_integrations/devolo_home_network.markdown index 028ec4e0960..b0d5f3b78f0 100755 --- a/source/_integrations/devolo_home_network.markdown +++ b/source/_integrations/devolo_home_network.markdown @@ -132,8 +132,8 @@ This integration only supports using the API the devolo Home Network App uses. T The devolo Gigabridge is the only device that comes with a default password. However, it seems that in factory default the password works for the device website but not for the API. If you give the device a new password via the website, it is applied to both and the integration starts working. Even using the same password again works. -## Removal +## Removing the integration -This integration follows standard integration removal, no extra steps are required. +This integration follows standard integration removal. No extra steps are required. {% include integrations/remove_device_service.md %} diff --git a/source/_integrations/fully_kiosk.markdown b/source/_integrations/fully_kiosk.markdown index 306a8fbcaca..a6b43d4fd89 100644 --- a/source/_integrations/fully_kiosk.markdown +++ b/source/_integrations/fully_kiosk.markdown @@ -158,8 +158,8 @@ target: device_id: a674c90eca95eca91f6020415de07713 ``` -## Remove integration +## Removing the integration -This integration follows standard integration removal, no extra steps are required. +This integration follows standard integration removal. No extra steps are required. {% include integrations/remove_device_service.md %} diff --git a/source/_integrations/garages_amsterdam.markdown b/source/_integrations/garages_amsterdam.markdown index 5cc9d4970ad..f2bf5a60294 100644 --- a/source/_integrations/garages_amsterdam.markdown +++ b/source/_integrations/garages_amsterdam.markdown @@ -46,7 +46,7 @@ Some parking garages don't have long-term parking spaces, in which case the 2 sp Each parking garage also has a binary sensor, which indicates whether there are problems in the data provision from the API. When it indicates `ok` everything is fine. If the state changes to `problem`, the upstream data might not be up to date or reliable and will remain in this state until new data is coming in. -## Remove integration +## Removing the integration You can remove each parking garage instance by following the default removal process. diff --git a/source/_integrations/lamarzocco.markdown b/source/_integrations/lamarzocco.markdown index 464cc5be27b..6f295c38b6a 100644 --- a/source/_integrations/lamarzocco.markdown +++ b/source/_integrations/lamarzocco.markdown @@ -190,9 +190,9 @@ mode: single - Only La Marzocco native app accounts are supported, social logins (Google, Apple & WeChat) are not supported - Currently it is only possible to view the schedules configured in the La Marzocco Home app, but not to edit the schedules from Home Assistant. You can, of course, build Home Assistant native automations to reflect the same functionality in Home Assistant. -## Remove integration +## Removing the integration -This integration follows standard integration removal, no extra steps are required. +This integration follows standard integration removal. No extra steps are required. {% include integrations/remove_device_service.md %} diff --git a/source/_integrations/mastodon.markdown b/source/_integrations/mastodon.markdown index 25e6aa615bb..2d69ed5232f 100644 --- a/source/_integrations/mastodon.markdown +++ b/source/_integrations/mastodon.markdown @@ -115,7 +115,7 @@ For more on how to use notifications in your automations, please see the [gettin The integration only allows reading the status of the authenticated account and posting to that account. It does not provide functionality to get the stream, favorite, bookmark, or boost posts of that account. -## Remove integration +## Removing the integration This integration follows standard integration removal, once the integration is removed you can remove the application registration (assuming it was only used by this integration) from your Mastodon account by going to **Preferences** in the Mastodon web interface, then to **Development** and deleting the application you created for Home Assistant. diff --git a/source/_integrations/mealie.markdown b/source/_integrations/mealie.markdown index e98daa8f88c..a945f5a41fe 100644 --- a/source/_integrations/mealie.markdown +++ b/source/_integrations/mealie.markdown @@ -164,7 +164,7 @@ template: {% enddetails %} -## Remove integration +## Removing the integration This integration follows standard integration removal, once the integration is removed you can remove the API token (assuming it was only used by this integration) by going to your Account in the Mealie web interface, then to **Manage Your API Tokens** and deleting the token you created for Home Assistant. diff --git a/source/_integrations/onewire.markdown b/source/_integrations/onewire.markdown index 59a94e19b87..37c0a01af89 100644 --- a/source/_integrations/onewire.markdown +++ b/source/_integrations/onewire.markdown @@ -134,8 +134,8 @@ UPDATE states SET entity_id='sensor._humidity' WHERE entity_id LIKE Remember to replace `` with the actual name of the sensor, as seen in the `SELECT` query. -## Remove integration +## Removing the integration -This integration follows standard integration removal, no extra steps are required. +This integration follows standard integration removal. No extra steps are required. {% include integrations/remove_device_service.md %} diff --git a/source/_integrations/p1_monitor.markdown b/source/_integrations/p1_monitor.markdown index 0a919f355e4..614bde19911 100644 --- a/source/_integrations/p1_monitor.markdown +++ b/source/_integrations/p1_monitor.markdown @@ -80,8 +80,8 @@ You can use the rates set in P1 Monitor for your calculations in Home Assistant. - Energy Consumption Price Low/High - Energy Production Price Low/High -## Remove integration +## Removing the integration -This integration follows standard integration removal, no extra steps are required. +This integration follows standard integration removal. No extra steps are required. {% include integrations/remove_device_service.md %} diff --git a/source/_integrations/renault.markdown b/source/_integrations/renault.markdown index ef88a243516..7cc7fd0e2d0 100644 --- a/source/_integrations/renault.markdown +++ b/source/_integrations/renault.markdown @@ -133,8 +133,8 @@ Notes: duration: 15 ``` -## Remove integration +## Removing the integration -This integration follows standard integration removal, no extra steps are required. +This integration follows standard integration removal. No extra steps are required. {% include integrations/remove_device_service.md %} diff --git a/source/_integrations/sfr_box.markdown b/source/_integrations/sfr_box.markdown index 2d4a948fc50..fffe3f5d198 100644 --- a/source/_integrations/sfr_box.markdown +++ b/source/_integrations/sfr_box.markdown @@ -33,8 +33,8 @@ The integration uses the REST API, which is known to be available on models `NB4 However, `NCC` models do not appear to expose this REST API, and are therefore unsupported by the integration. -## Remove integration +## Removing the integration -This integration follows standard integration removal, no extra steps are required. +This integration follows standard integration removal. No extra steps are required. {% include integrations/remove_device_service.md %} diff --git a/source/_integrations/swiss_public_transport.markdown b/source/_integrations/swiss_public_transport.markdown index b174cb8492c..b27495ab4ef 100644 --- a/source/_integrations/swiss_public_transport.markdown +++ b/source/_integrations/swiss_public_transport.markdown @@ -53,8 +53,8 @@ Fetch the connections for a specific instance. {% include common-tasks/define_custom_polling.md %} -## Remove integration +## Removing the integration -This integration follows standard integration removal, no extra steps are required. +This integration follows standard integration removal. No extra steps are required. {% include integrations/remove_device_service.md %} diff --git a/source/_integrations/tedee.markdown b/source/_integrations/tedee.markdown index 3b88f58cc55..3597d886986 100644 --- a/source/_integrations/tedee.markdown +++ b/source/_integrations/tedee.markdown @@ -110,9 +110,9 @@ This integration only supports functionality that is available locally. This mea - Updates - Key pads -## Remove integration +## Removing the integration -This integration follows standard integration removal, no extra steps are required. +This integration follows standard integration removal. No extra steps are required. {% include integrations/remove_device_service.md %} From 0816149de7ad562236c4f2b01993de161c01b212 Mon Sep 17 00:00:00 2001 From: Klaas Schoute Date: Mon, 2 Dec 2024 07:57:11 +0100 Subject: [PATCH 16/31] Fix indentation in configuration across multiple integrations (#36090) * Fix indentation in configuration across multiple integrations * Forgot to commit this one --- source/_integrations/anthropic.markdown | 8 +----- source/_integrations/cast.markdown | 4 +-- source/_integrations/fyta.markdown | 4 +-- ...google_generative_ai_conversation.markdown | 12 +-------- source/_integrations/habitica.markdown | 10 ++++---- source/_integrations/homewizard.markdown | 2 +- .../husqvarna_automower.markdown | 6 ++--- source/_integrations/idasen_desk.markdown | 2 -- source/_integrations/imap.markdown | 1 - source/_integrations/integration.markdown | 3 +-- source/_integrations/ista_ecotrend.markdown | 6 ++--- source/_integrations/min_max.markdown | 1 + source/_integrations/netgear.markdown | 2 ++ source/_integrations/nuki.markdown | 16 ++++++------ source/_integrations/ollama.markdown | 7 +----- .../openai_conversation.markdown | 9 +------ source/_integrations/pegel_online.markdown | 8 +++--- source/_integrations/rainbird.markdown | 5 ++-- source/_integrations/renault.markdown | 8 +++--- source/_integrations/solarlog.markdown | 8 +++--- .../swiss_public_transport.markdown | 6 ++--- source/_integrations/switch_as_x.markdown | 1 + source/_integrations/threshold.markdown | 1 + source/_integrations/tod.markdown | 1 + source/_integrations/traccar_server.markdown | 2 -- source/_integrations/trend.markdown | 1 + source/_integrations/version.markdown | 25 ++++++++----------- source/_integrations/xiaomi_miio.markdown | 2 -- 28 files changed, 63 insertions(+), 98 deletions(-) diff --git a/source/_integrations/anthropic.markdown b/source/_integrations/anthropic.markdown index ec06105b0c6..de15e626a9b 100644 --- a/source/_integrations/anthropic.markdown +++ b/source/_integrations/anthropic.markdown @@ -49,29 +49,23 @@ The Anthropic API key is used to authenticate requests to the Anthropic API. To {% include integrations/config_flow.md %} {% include integrations/option_flow.md %} + {% configuration_basic %} Instructions: description: Instructions for the AI on how it should respond to your requests. It is written using [Home Assistant Templating](/docs/configuration/templating/). - Control Home Assistant: description: If the model is allowed to interact with Home Assistant. It can only control or provide information about entities that are [exposed](/voice_control/voice_remote_expose_devices/) to it. - Recommended settings: description: If enabled, the recommended model and settings are chosen. - {% endconfiguration_basic %} If you choose not to use the recommended settings, you can configure the following options: {% configuration_basic %} - Model: description: The model that will complete your prompt. See [models](https://docs.anthropic.com/en/docs/about-claude/models#model-names) for additional details and options. - Maximum Tokens to Return in Response: description: The maximum number of tokens to generate before stopping. Note that our models may stop _before_ reaching this maximum. This parameter only specifies the absolute maximum number of tokens to generate. Different models have different maximum values for this parameter. See [models](https://docs.anthropic.com/en/docs/models-overview) for details. - Temperature: description: Amount of randomness injected into the response. Use `temperature` closer to `0.0` for analytical / multiple choice, and closer to `1.0` for creative and generative tasks. Note that even with `temperature` of `0.0`, the results will not be fully deterministic. - {% endconfiguration_basic %} diff --git a/source/_integrations/cast.markdown b/source/_integrations/cast.markdown index 466ea28004e..447b11597d9 100644 --- a/source/_integrations/cast.markdown +++ b/source/_integrations/cast.markdown @@ -21,14 +21,14 @@ ha_integration_type: integration Support for mDNS discovery in your local network is mandatory for automatic discovery. Make sure that your router has this feature enabled. If mDNS does not work in your network, the IP addresses of the Cast devices can be manually entered in the configuration as mentioned below. {% include integrations/option_flow.md %} + {% configuration_basic %} Known hosts: description: "A comma-separated list of hostnames or IP-addresses of cast devices, use if mDNS discovery is not working" Allowed UUIDs: description: A comma-separated list of UUIDs of Cast devices to add to Home Assistant. **Use only if you don't want to add all available devices.** The device won't be added until discovered through either mDNS or if it's included in the list of known hosts. In order to find the UUID for your device use a mDNS browser or advanced users can use the following Python command (adjust friendly names as required) - `python3 -c "import pychromecast; print(pychromecast.get_listed_chromecasts(friendly_names=['Living Room TV', 'Bedroom TV', 'Office Chromecast']))"`. This option is only visible if advanced mode is enabled in your user profile. Ignore CEC: - description: A comma-separated list of Chromecasts that should ignore CEC data for determining the - active input. [See the upstream documentation for more information](https://github.com/home-assistant-libs/pychromecast#ignoring-cec-data). This option is only visible if advanced mode is enabled in your user profile. + description: A comma-separated list of Chromecasts that should ignore CEC data for determining the active input. [See the upstream documentation for more information](https://github.com/home-assistant-libs/pychromecast#ignoring-cec-data). This option is only visible if advanced mode is enabled in your user profile. {% endconfiguration_basic %} ## Home Assistant Cast diff --git a/source/_integrations/fyta.markdown b/source/_integrations/fyta.markdown index daca58a61d9..e04feb4946c 100644 --- a/source/_integrations/fyta.markdown +++ b/source/_integrations/fyta.markdown @@ -32,9 +32,9 @@ To setup the integration you need the following information: {% configuration_basic %} Email: - description: "The email address used to access the FYTA account." + description: "The email address used to access the FYTA account." Password: - description: "The password used to access the FYTA account." + description: "The password used to access the FYTA account." {% endconfiguration_basic %} ## Configuration options diff --git a/source/_integrations/google_generative_ai_conversation.markdown b/source/_integrations/google_generative_ai_conversation.markdown index 1a16625436b..386373001ef 100644 --- a/source/_integrations/google_generative_ai_conversation.markdown +++ b/source/_integrations/google_generative_ai_conversation.markdown @@ -45,41 +45,31 @@ On the same page, you can see your plan: *free of charge* if the associated Goog Comparison of the plans is available [at this pricing page](https://ai.google.dev/pricing). The major differences include: the free of charge plan is rate limited, free prompts/responses are used for product improvement, and the free plan is not available in all [regions](https://ai.google.dev/gemini-api/docs/available-regions). {% include integrations/option_flow.md %} -{% configuration_basic %} +{% configuration_basic %} Instructions: description: Instructions for the AI on how it should respond to your requests. It is written using [Home Assistant Templating](/docs/configuration/templating/). - Control Home Assistant: description: If the model is allowed to interact with Home Assistant. It can only control or provide information about entities that are [exposed](/voice_control/voice_remote_expose_devices/) to it. - Recommended settings: description: If enabled, the recommended model and settings are chosen. - {% endconfiguration_basic %} If you choose to not use the recommended settings, you can configure the following options: {% configuration_basic %} - Model: description: Model used to generate response. - Temperature: description: Creativity allowed in the responses. Higher values produce a more random and varied response. A temperature of zero will be deterministic. - Top P: description: Probability threshold for top-p sampling. - Top K: description: Number of top-scored tokens to consider during generation. - Maximum Tokens to Return in Response: description: The maximum number of words or "tokens" that the AI model should generate. - Safety settings: description: Thresholds for different [harmful categories](https://ai.google.dev/gemini-api/docs/safety-settings). - {% endconfiguration_basic %} ## Talking to Super Mario diff --git a/source/_integrations/habitica.markdown b/source/_integrations/habitica.markdown index 808d9ce9e3f..c56f3bf373a 100644 --- a/source/_integrations/habitica.markdown +++ b/source/_integrations/habitica.markdown @@ -55,9 +55,9 @@ The Habitica integration lets you automate task management, such as creating to- {% configuration_basic %} "Email or username": - description: "Email or username (case-sensitive) to connect Home Assistant to your Habitica account" + description: "Email or username (case-sensitive) to connect Home Assistant to your Habitica account" Password: - description: "Password for the account to connect Home Assistant to Habitica" + description: "Password for the account to connect Home Assistant to Habitica" {% endconfiguration_basic %} ### Advanced configuration @@ -66,11 +66,11 @@ If you choose "**Login to other instances**" you will be presented the following {% configuration_basic %} "User ID": - description: "User ID of your Habitica account (*see [prerequisites](#prerequisites-for-habitica-integration)*)" + description: "User ID of your Habitica account (*see [prerequisites](#prerequisites-for-habitica-integration)*)" API Token: - description: "API Token of the Habitica account (*see [prerequisites](#prerequisites-for-habitica-integration)*)" + description: "API Token of the Habitica account (*see [prerequisites](#prerequisites-for-habitica-integration)*)" URL: - description: "URL of the Habitica installation to connect to. Defaults to `https://habitica.com` (*see [prerequisites](#prerequisites-for-habitica-integration)*)" + description: "URL of the Habitica installation to connect to. Defaults to `https://habitica.com` (*see [prerequisites](#prerequisites-for-habitica-integration)*)" Verify SSL certificate: description: Enable SSL certificate verification for secure connections. Disable only if connecting to a Habitica instance using a self-signed certificate {% endconfiguration_basic %} diff --git a/source/_integrations/homewizard.markdown b/source/_integrations/homewizard.markdown index 3684e9088bd..4b352f1467b 100644 --- a/source/_integrations/homewizard.markdown +++ b/source/_integrations/homewizard.markdown @@ -44,7 +44,7 @@ You have to enable the local API to allow Home Assistant to communicate with you {% configuration_basic %} IP address: - description: "The IP address of your device. You can find it in your router." + description: "The IP address of your device. You can find it in your router." {% endconfiguration_basic %} ## Sensors diff --git a/source/_integrations/husqvarna_automower.markdown b/source/_integrations/husqvarna_automower.markdown index 01bf7e7ff38..e3734694f06 100644 --- a/source/_integrations/husqvarna_automower.markdown +++ b/source/_integrations/husqvarna_automower.markdown @@ -78,11 +78,11 @@ Internal examples: `http://192.168.0.2:8123/auth/external/callback`, `http://hom {% configuration_basic %} Name: - description: "Enter the name for the provided credentials. You can choose your favorite name." + description: "Enter the name for the provided credentials. You can choose your favorite name." OAuth Client ID: - description: "Enter the Application key from your Husqvarna developer application." + description: "Enter the Application key from your Husqvarna developer application." OAuth Client Secret: - description: "Enter the Application secret from your Husqvarna developer application." + description: "Enter the Application secret from your Husqvarna developer application." {% endconfiguration_basic %} ## Troubleshooting diff --git a/source/_integrations/idasen_desk.markdown b/source/_integrations/idasen_desk.markdown index 1df4b341e0f..bfe0eeddfdb 100644 --- a/source/_integrations/idasen_desk.markdown +++ b/source/_integrations/idasen_desk.markdown @@ -45,8 +45,6 @@ This integration provides two buttons to connect and disconnect to/from the desk ## Sensors {% configuration_basic %} - Height: description: The current height of the desk, in meters. - {% endconfiguration_basic %} diff --git a/source/_integrations/imap.markdown b/source/_integrations/imap.markdown index 513b32f376d..41352d3be0c 100644 --- a/source/_integrations/imap.markdown +++ b/source/_integrations/imap.markdown @@ -130,7 +130,6 @@ initial: description: Returns `True` if this is the initial event for the last message received. When a message within the search scope is removed and the last message received has not been changed, then an `imap_content` event is generated and the `initial` property is set to `False`. Note that if no `Message-ID` header was set on the triggering email, the `initial` property will always be set to `True`. uid: description: Latest `uid` of the message. - {% endconfiguration_basic %} The `event_type` for the custom event should be set to `imap_content`. The configuration below shows how you can use the event data in a template `sensor`. diff --git a/source/_integrations/integration.markdown b/source/_integrations/integration.markdown index 1c40f629d0a..d097abdaa4c 100644 --- a/source/_integrations/integration.markdown +++ b/source/_integrations/integration.markdown @@ -40,8 +40,7 @@ Metric prefix: Integration time: description: SI unit of time to integrate over. Max sub-interval: - description: Applies time-based integration if the source did not change for this duration. This implies that at least every `max sub-interval`, the integral is updated. If you don't want time-based updates, enter 0. - + description: Applies time-based integration if the source did not change for this duration. This implies that at least every `max sub-interval`, the integral is updated. If you don't want time-based updates, enter `0`. {% endconfiguration_basic %} diff --git a/source/_integrations/ista_ecotrend.markdown b/source/_integrations/ista_ecotrend.markdown index 3bf3065aed8..f980b667e26 100644 --- a/source/_integrations/ista_ecotrend.markdown +++ b/source/_integrations/ista_ecotrend.markdown @@ -43,10 +43,10 @@ The integration currently supports only the German EcoTrend service. {% include integrations/config_flow.md %} {% configuration_basic %} -"Email": - description: "Enter the email address associated with your ista EcoTrend account to connect it to Home Assistant." +Email: + description: "Enter the email address associated with your ista EcoTrend account to connect it to Home Assistant." Password: - description: "Enter the password for your ista EcoTrend account to enable the connection with Home Assistant." + description: "Enter the password for your ista EcoTrend account to enable the connection with Home Assistant." {% endconfiguration_basic %} ## Sensors diff --git a/source/_integrations/min_max.markdown b/source/_integrations/min_max.markdown index 43a830e968b..08a35b72ddf 100644 --- a/source/_integrations/min_max.markdown +++ b/source/_integrations/min_max.markdown @@ -24,6 +24,7 @@ The sensor provided by this integration will always show you the lowest/highest/ If the source sensor provides an unknown state, it will be ignored in the calculation except for sum where it will set the state to unknown. If the unit of measurement of the sensors differs, the Min/Max sensor will go to an error state where the value is `UNKNOWN` and unit of measurement is `ERR`. {% include integrations/config_flow.md %} + {% configuration_basic %} Name: description: The name the sensor should have. You can change it again later. diff --git a/source/_integrations/netgear.markdown b/source/_integrations/netgear.markdown index d494f47f273..0393458b150 100644 --- a/source/_integrations/netgear.markdown +++ b/source/_integrations/netgear.markdown @@ -29,12 +29,14 @@ Attached devices are only tracked on NETGEAR devices set to the router mode, oth {% include integrations/config_flow.md %} {% include integrations/option_flow.md %} + {% configuration_basic %} Consider_home: description: "The consider home time is the number of seconds to wait till marking someone as not home after not being seen. This parameter is most useful for households with Apple iOS devices that go into sleep mode while still at home to conserve battery life. iPhones will occasionally drop off the network and then re-appear. This option helps prevent false alarms in presence detection." {% endconfiguration_basic %} ## Router entities + The NETGEAR router will have the following entities. Note that not all routers support all features, if a router does not support a feature, the corresponding entity will have the unavailable status even when the entity is disabled. diff --git a/source/_integrations/nuki.markdown b/source/_integrations/nuki.markdown index 6fe076ddda8..9c3169df3a7 100644 --- a/source/_integrations/nuki.markdown +++ b/source/_integrations/nuki.markdown @@ -29,14 +29,14 @@ For faster updates, the callback function of the Nuki bridge can be used. This r {% include integrations/config_flow.md %} {% configuration_basic %} - Host: - description: Hostname or IP address of your Nuki bridge, e.g., `192.168.1.25`. - Port: - description: Port of the Nuki bridge HTTP API, default is `8080`. - Token: - description: Token to authenticate against the Nuki bridge HTTP API. - Use an encrypted token for authentication: - description: Use an encrypted token for API calls to the bridge. This should only be deactivated if you experience issues with the API (authentication, etc). The default is `True`. +Host: + description: Hostname or IP address of your Nuki bridge, e.g., `192.168.1.25`. +Port: + description: Port of the Nuki bridge HTTP API, default is `8080`. +Token: + description: Token to authenticate against the Nuki bridge HTTP API. +Use an encrypted token for authentication: + description: Use an encrypted token for API calls to the bridge. This should only be deactivated if you experience issues with the API (authentication, etc). The default is `True`. {% endconfiguration_basic %} ## Actions diff --git a/source/_integrations/ollama.markdown b/source/_integrations/ollama.markdown index ca226ba54fe..d2ad23caf3b 100644 --- a/source/_integrations/ollama.markdown +++ b/source/_integrations/ollama.markdown @@ -32,27 +32,22 @@ This integration requires an external Ollama server, which is available for macO {% include integrations/config_flow.md %} {% include integrations/option_flow.md %} + {% configuration_basic %} URL: description: The URL of the external Ollama server, such as `http://localhost:11434`. - Model: description: Name of the [Ollama model](https://ollama.com/library) to use, such as `mistral` or `llama2:13b`. Models will be automatically downloaded during setup. - Instructions: description: Instructions for the AI on how it should respond to your requests. It is written using [Home Assistant Templating](/docs/configuration/templating/). - Control Home Assistant: description: If the model is allowed to interact with Home Assistant. It can only control or provide information about entities that are [exposed](/voice_control/voice_remote_expose_devices/) to it. This feature is considered experimental and see [Controlling Home Assistant](#controlling-home-assistant) below for details on model limitations. - Context window size: description: "The context window size is the number of tokens the model can take as input. Home Assistant defaults to 8k, which is larger than the default value in Ollama Server (2k), and you may adjust it based on the maximum context size of the specific model used. A larger value will better support larger homes with more entities, and smaller values may lower Ollama server RAM usage." Max history messages: description: Maximum number of messages to keep for each conversation (0 = no limit). Limiting this value will cause older messages in a conversation to be dropped. - Keep alive: description: Duration in seconds for the Ollama host to keep the model in memory after receiving a message (-1 = no limit, 0 = no retention). Default value is -1. - {% endconfiguration_basic %} ## Controlling Home Assistant diff --git a/source/_integrations/openai_conversation.markdown b/source/_integrations/openai_conversation.markdown index 870f232c947..977e8458891 100644 --- a/source/_integrations/openai_conversation.markdown +++ b/source/_integrations/openai_conversation.markdown @@ -43,34 +43,27 @@ The OpenAI key is used to authenticate requests to the OpenAI API. To generate a - Visit the [API Keys page](https://platform.openai.com/account/api-keys) to retrieve the API key you'll use to configure the integration. {% include integrations/option_flow.md %} + {% configuration_basic %} Instructions: description: Instructions for the AI on how it should respond to your requests. It is written using [Home Assistant Templating](/docs/configuration/templating/). - Control Home Assistant: description: If the model is allowed to interact with Home Assistant. It can only control or provide information about entities that are [exposed](/voice_control/voice_remote_expose_devices/) to it. - Recommended settings: description: If enabled, the recommended model and settings are chosen. - {% endconfiguration_basic %} If you choose to not use the recommended settings, you can configure the following options: {% 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". - 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: description: A value that determines the level of creativity and risk-taking the model should use when generating text. A higher temperature means the model is more likely to generate unexpected results, while a lower temperature results in more deterministic results. See the [OpenAI Completion Documentation](https://platform.openai.com/docs/guides/completion/introduction) for more information. - Top P: description: An alternative to temperature, top_p determines the proportion of the most likely word choices the model should consider when generating text. A higher top_p means the model will only consider the most likely words, while a lower top_p means a wider range of words, including less likely ones, will be considered. For more information, see the [OpenAI Completion API Reference](https://platform.openai.com/docs/api-reference/completions/create#completions/create-top_p). - {% endconfiguration_basic %} ## Talking to Super Mario over the phone diff --git a/source/_integrations/pegel_online.markdown b/source/_integrations/pegel_online.markdown index 112c4cf0791..9eba1c356d8 100644 --- a/source/_integrations/pegel_online.markdown +++ b/source/_integrations/pegel_online.markdown @@ -30,18 +30,18 @@ Select the area, where you want to search for available water measuring stations {% configuration_basic %} Latitude: - description: "The latitude of the center of the search area (_automatically filled by the location picker_)." + description: "The latitude of the center of the search area (_automatically filled by the location picker_)." Longitude: - description: "The longitude of the center of the search area (_automatically filled by the location picker_)." + description: "The longitude of the center of the search area (_automatically filled by the location picker_)." Radius: - description: "Search radius (_in km_)" + description: "Search radius (_in km_)" {% endconfiguration_basic %} ### Step 2 - Station selection {% configuration_basic %} Station: - description: "Select the measurement station you want to add." + description: "Select the measurement station you want to add." {% endconfiguration_basic %} ## Sensors diff --git a/source/_integrations/rainbird.markdown b/source/_integrations/rainbird.markdown index cd059a09bfd..80c893ab763 100644 --- a/source/_integrations/rainbird.markdown +++ b/source/_integrations/rainbird.markdown @@ -48,10 +48,9 @@ irrigations schedules on a calendar. {% configuration_basic %} Host: - description: "The IP address of your Rain Bird device. You can find the IP address under the - device in the Rain Bird app under **Controller Settings** -> **Network Info**." + description: "The IP address of your Rain Bird device. You can find the IP address under the device in the Rain Bird app under **Controller Settings** -> **Network Info**." Password: - description: "The password used to authenticate the Rain Bird device." + description: "The password used to authenticate the Rain Bird device." {% endconfiguration_basic %} ## Configuration options diff --git a/source/_integrations/renault.markdown b/source/_integrations/renault.markdown index 7cc7fd0e2d0..38fe25bdeb9 100644 --- a/source/_integrations/renault.markdown +++ b/source/_integrations/renault.markdown @@ -38,13 +38,13 @@ This integration provides the following platforms: {% configuration_basic %} Locale: - description: "The country code (e.g., 'fr_FR', 'en_GB') used to connect to the Renault servers. This should match your MyRenault account's locale setting." + description: "The country code (e.g., `fr_FR`, `en_GB`) used to connect to the Renault servers. This should match your MyRenault account's locale setting." Username: - description: "The username used to connect to the Renault servers." + description: "The username used to connect to the Renault servers." Password: - description: "The password used to connect to the Renault servers." + description: "The password used to connect to the Renault servers." Kamereon account id: - description: "The Kamereon account ID that your vehicles are assigned to. If there is only one account available it will be automatically selected." + description: "The Kamereon account ID that your vehicles are assigned to. If there is only one account available it will be automatically selected." {% endconfiguration_basic %} All vehicles linked to the account should then get added as devices, with sensors added as linked entity. diff --git a/source/_integrations/solarlog.markdown b/source/_integrations/solarlog.markdown index 075813c32aa..d8253c522be 100644 --- a/source/_integrations/solarlog.markdown +++ b/source/_integrations/solarlog.markdown @@ -42,13 +42,13 @@ To setup the integration you need the following information: {% configuration_basic %} Name: - description: "The name for your Solar-Log device in Home Assistant. This will also be uses as prefix for the entity names." + description: "The name for your Solar-Log device in Home Assistant. This will also be uses as prefix for the entity names." Host: - description: "The URL or IP address of your Solar-Log." + description: "The URL or IP address of your Solar-Log." User password available: - description: "Check the box, if you have the password for the Solar-Log user to securely access [all data](#additional-data)." + description: "Check the box, if you have the password for the Solar-Log user to securely access [all data](#additional-data)." Password: - description: "Password for the Solar-Log user. Will only be asked for in a second step, if in the first step the checkbox has been selected." + description: "Password for the Solar-Log user. Will only be asked for in a second step, if in the first step the checkbox has been selected." {% endconfiguration_basic %} ## Configuration options diff --git a/source/_integrations/swiss_public_transport.markdown b/source/_integrations/swiss_public_transport.markdown index b27495ab4ef..cc76f08ff13 100644 --- a/source/_integrations/swiss_public_transport.markdown +++ b/source/_integrations/swiss_public_transport.markdown @@ -21,11 +21,11 @@ The [Swiss public transport API](https://transport.opendata.ch/) only allows 100 {% configuration_basic %} Start station: - description: "The departure station for the start of the connection (e.g., 'Zürich HB')" + description: "The departure station for the start of the connection (e.g., `Zürich HB`)" End station: - description: "The arrival station for the end of the connection (e.g., 'Geneva')" + description: "The arrival station for the end of the connection (e.g., `Geneva`)" Via stations: - description: "List of up to 5 via stations (e.g., 'Bern, Lausanne')" + description: "List of up to 5 via stations (e.g., `Bern`, `Lausanne`)" {% endconfiguration_basic %} Use the [Stationboard](https://transport.opendata.ch/examples/stationboard.html) to find exact station names. diff --git a/source/_integrations/switch_as_x.markdown b/source/_integrations/switch_as_x.markdown index cb8a0e6cd8f..269ff53526f 100644 --- a/source/_integrations/switch_as_x.markdown +++ b/source/_integrations/switch_as_x.markdown @@ -39,6 +39,7 @@ Using the **Change device type of a switch** helper integration, you can convert entity types that best matches your use case. {% include integrations/config_flow.md name="Switch as X" %} + {% configuration_basic %} Switch entity: description: The switch entity you want to convert into something else. diff --git a/source/_integrations/threshold.markdown b/source/_integrations/threshold.markdown index 28d12c9a9b0..7eaa7364b1f 100644 --- a/source/_integrations/threshold.markdown +++ b/source/_integrations/threshold.markdown @@ -20,6 +20,7 @@ The threshold integration observes the state of another sensor. If the value is If the sensor is configured with no hysteresis and the sensor value is equal to the threshold, the sensor is turned off since it is not upper or lower with respect to the threshold. {% include integrations/config_flow.md %} + {% configuration_basic %} Name: description: The name the sensor should have. You can change it again later. diff --git a/source/_integrations/tod.markdown b/source/_integrations/tod.markdown index 57e458ef019..29ea8a9cb03 100644 --- a/source/_integrations/tod.markdown +++ b/source/_integrations/tod.markdown @@ -17,6 +17,7 @@ ha_integration_type: helper The Times of the Day integration provides a binary sensor that gets its values by checking if the current time is within defined time ranges. {% include integrations/config_flow.md %} + {% configuration_basic %} Name: description: The name the binary sensor should have. This can be changed later. diff --git a/source/_integrations/traccar_server.markdown b/source/_integrations/traccar_server.markdown index 83c70210b64..a1428ef7cd1 100644 --- a/source/_integrations/traccar_server.markdown +++ b/source/_integrations/traccar_server.markdown @@ -40,7 +40,6 @@ Examples: All events will also have the following data: {% configuration_basic %} - Device ID: description: (`device_traccar_id`) This will be the device ID that the event is related to. Device name: @@ -51,7 +50,6 @@ Server time: description: (`serverTime`) This will be the time the event was received by the Traccar Server. Attributes: description: (`attributes`) This will be a dictionary of attributes related to the event. - {% endconfiguration_basic %} {% details "Example" %} diff --git a/source/_integrations/trend.markdown b/source/_integrations/trend.markdown index dca6ef56421..9a942f0c78b 100644 --- a/source/_integrations/trend.markdown +++ b/source/_integrations/trend.markdown @@ -24,6 +24,7 @@ Thus it can take some time to show an accurate state. It can be useful as part of automations, where you want to base an action on a trend. {% include integrations/config_flow.md %} + {% configuration_basic %} Name: description: The name the sensor should have. You can change it again later. diff --git a/source/_integrations/version.markdown b/source/_integrations/version.markdown index 2c150d61478..2a9b4782141 100644 --- a/source/_integrations/version.markdown +++ b/source/_integrations/version.markdown @@ -27,21 +27,16 @@ The **Version** {% term integration %} can display the current Home Assistant Co With this {% term integration %} you can select various sources to get a version from. {% configuration_basic %} - "Local installation": - description: This will get the version you are currently running. - - "Home Assistant Versions": - description: This will use the same source that are used by the Supervisor to check for updates based on the channel and image you choose. - - "Home Assistant Website": - description: This will check the website you are reading this on to find the latest version. - - "Docker Hub": - description: This will check the latest tag published to Docker Hub based on the channel and image you choose. - - "Python Package Index (PyPI)": - description: This will check PyPI for the latest published package. - +Local installation: + description: This will get the version you are currently running. +Home Assistant Versions: + description: This will use the same source that are used by the Supervisor to check for updates based on the channel and image you choose. +Home Assistant Website: + description: This will check the website you are reading this on to find the latest version. +Docker Hub: + description: This will check the latest tag published to Docker Hub based on the channel and image you choose. +Python Package Index (PyPI): + description: This will check PyPI for the latest published package. {% endconfiguration_basic %} ## Entities diff --git a/source/_integrations/xiaomi_miio.markdown b/source/_integrations/xiaomi_miio.markdown index 740023293eb..0126f3b30fa 100644 --- a/source/_integrations/xiaomi_miio.markdown +++ b/source/_integrations/xiaomi_miio.markdown @@ -1695,7 +1695,6 @@ Enter remote control mode, make one move, stop, and exit remote control mode. ### Sensors {% configuration_basic %} - DnD Start*: description: The timestamp when the next DnD (Do not disturb) period will start DnD End*: @@ -1732,7 +1731,6 @@ Water Box Attached**: description: If the watter box is attached Water Shortage\*\*: description: If the water box is low on water - {% endconfiguration_basic %} {% note %} From 1fee4de06d20c706e6ff0766319dd090964df565 Mon Sep 17 00:00:00 2001 From: Klaas Schoute Date: Mon, 2 Dec 2024 07:58:16 +0100 Subject: [PATCH 17/31] Fix url to voice troubleshooting (#36088) --- source/voice_control/index.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/voice_control/index.markdown b/source/voice_control/index.markdown index 14f21baba7b..972d688e7fe 100644 --- a/source/voice_control/index.markdown +++ b/source/voice_control/index.markdown @@ -25,7 +25,7 @@ As for the rest of Home Assistant core functionalities, Assist can be personaliz -Although adding voice to your smart home configuration is exciting, it will require you to check your existing setup of Home Assistant, especially if you made a lot of customization. But we have prepared a guide of steps and best practices to help you out, as well as our [Troubleshooting](/voice_source/troubleshooting/) guides. +Although adding voice to your smart home configuration is exciting, it will require you to check your existing setup of Home Assistant, especially if you made a lot of customization. But we have prepared a guide of steps and best practices to help you out, as well as our [Troubleshooting](/voice_control/troubleshooting/) guides. Ready? Now let's get started From f5b68e0029435efe9fddc0f6ba9ab9e8c86154d6 Mon Sep 17 00:00:00 2001 From: Klaas Schoute Date: Mon, 2 Dec 2024 07:59:15 +0100 Subject: [PATCH 18/31] Remove configuration keys from docs (#36089) --- source/_integrations/balboa.markdown | 5 +---- source/_integrations/bang_olufsen.markdown | 4 ---- source/_integrations/cambridge_audio.markdown | 4 +--- source/_integrations/denonavr.markdown | 6 ------ source/_integrations/fritzbox.markdown | 12 +++--------- source/_integrations/ifttt.markdown | 8 -------- source/_integrations/jellyfin.markdown | 1 - source/_integrations/lamarzocco.markdown | 6 ------ source/_integrations/laundrify.markdown | 4 +--- source/_integrations/motioneye.markdown | 10 ---------- source/_integrations/nmap_tracker.markdown | 9 --------- source/_integrations/octoprint.markdown | 19 ++----------------- source/_integrations/onkyo.markdown | 6 ------ source/_integrations/rabbitair.markdown | 8 ++------ source/_integrations/reolink.markdown | 14 +++++--------- source/_integrations/tedee.markdown | 4 ---- source/_integrations/venstar.markdown | 13 +------------ source/_integrations/zwave_me.markdown | 6 ------ 18 files changed, 16 insertions(+), 123 deletions(-) diff --git a/source/_integrations/balboa.markdown b/source/_integrations/balboa.markdown index 7543373ff1d..64778abf60e 100644 --- a/source/_integrations/balboa.markdown +++ b/source/_integrations/balboa.markdown @@ -44,16 +44,13 @@ Balboa Spa Client integration is not compatible with ControlMySpa™ cloud API u {% configuration_basic %} host: description: "Hostname or IP address of your Balboa Spa Wifi Device, e.g., `192.168.1.58`." - required: true - type: string {% endconfiguration_basic %} {% include integrations/option_flow.md %} + {% configuration_basic %} sync_time: description: Sync the Spa's internal clock with Home Assistant daily - type: boolean - default: false {% endconfiguration_basic %} ## Known limitations diff --git a/source/_integrations/bang_olufsen.markdown b/source/_integrations/bang_olufsen.markdown index 099948bddd0..584cdad1fb0 100644 --- a/source/_integrations/bang_olufsen.markdown +++ b/source/_integrations/bang_olufsen.markdown @@ -40,12 +40,8 @@ and any other [Mozart](https://support.bang-olufsen.com/hc/en-us/articles/247669 {% configuration_basic %} IP Address: description: The IP address of your device. Can be found by navigating to the device on the [Bang & Olufsen app](https://www.bang-olufsen.com/en/dk/story/apps) and selecting `Settings` → `About` → `IP address`. - required: true - type: string Device model: description: The model name of your Bang & Olufsen device. This is used to determine some capabilities of the device. If the device is not in the list yet, choose a product similar to yours. - required: true - type: string {% endconfiguration_basic %} ## Data updates diff --git a/source/_integrations/cambridge_audio.markdown b/source/_integrations/cambridge_audio.markdown index 26a991535f4..a52567c4825 100644 --- a/source/_integrations/cambridge_audio.markdown +++ b/source/_integrations/cambridge_audio.markdown @@ -46,9 +46,7 @@ use a different protocol and are not currently supported. {% configuration_basic %} Host: - description: The IP address of your device can be found by navigating to the device on the [StreamMagic app](https://www.cambridgeaudio.com/usa/en/products/streammagic) and selecting `Settings` → `IP address`. - required: true - type: string + description: The IP address of your device can be found by navigating to the device on the [StreamMagic app](https://www.cambridgeaudio.com/usa/en/products/streammagic) and selecting `Settings` → `IP address`. {% endconfiguration_basic %} ## Data updates diff --git a/source/_integrations/denonavr.markdown b/source/_integrations/denonavr.markdown index 4a11ba7d9fd..f3ed085c50c 100644 --- a/source/_integrations/denonavr.markdown +++ b/source/_integrations/denonavr.markdown @@ -134,14 +134,8 @@ zone3: description: Specifies if zone 3 should be activated. Zones are displayed as additional media players with the same functionality as the Main Zone of the device supports. Some receivers do not support a second zone. update_audyssey: description: Specifies if Audyssey settings should be updated. This can take up to 10 seconds for some receivers. - required: false - default: false - type: boolean use_telnet: description: Specifies if a telnet connection should be used to receive device status updates. Using telnet provides realtime updates (local push) for many values but each receiver is limited to a single connection. If you enable this setting, no other connection to your device can be made via telnet. This will be set to true for new installations of the integration but false for existing installs to prevent compatibility issues. - required: false - default: true - type: boolean {% endconfiguration_basic %} A few notes: diff --git a/source/_integrations/fritzbox.markdown b/source/_integrations/fritzbox.markdown index 89a13a01ca8..6dbee7dce1b 100644 --- a/source/_integrations/fritzbox.markdown +++ b/source/_integrations/fritzbox.markdown @@ -63,17 +63,11 @@ If you still want to use the predefined user, please note that as of FRITZ!OS 7. {% configuration_basic %} Host: - description: "The hostname or IP address of your FRITZ!Box router." - required: true - type: string + description: "The hostname or IP address of your FRITZ!Box router." Username: - description: "Name of the user to connect Home Assistant to your FRITZ!Box (_see [prerequisites](#prerequisites)_)" - required: true - type: string + description: "Name of the user to connect Home Assistant to your FRITZ!Box (_see [prerequisites](#prerequisites)_)" Password: - description: "Password for the user to connect Home Assistant to your FRITZ!Box (_see [prerequisites](#prerequisites)_)" - required: true - type: string + description: "Password for the user to connect Home Assistant to your FRITZ!Box (_see [prerequisites](#prerequisites)_)" {% endconfiguration_basic %} ## Data fetching and limitations diff --git a/source/_integrations/ifttt.markdown b/source/_integrations/ifttt.markdown index 065c535ca09..f4d1addc39e 100644 --- a/source/_integrations/ifttt.markdown +++ b/source/_integrations/ifttt.markdown @@ -87,20 +87,12 @@ You can use **Developer Tools** to test your [Webhooks](https://ifttt.com/maker_ {% configuration_basic %} event: description: The name of the event to send. - required: true - type: string value1: description: Generic field to send data via the event. - required: false - type: string value2: description: Generic field to send data via the event. - required: false - type: string value3: description: Generic field to send data via the event. - required: false - type: string {% endconfiguration_basic %} When your screen looks like this, select the **Perform action** button. diff --git a/source/_integrations/jellyfin.markdown b/source/_integrations/jellyfin.markdown index 0804c2b9cce..378ceed096a 100644 --- a/source/_integrations/jellyfin.markdown +++ b/source/_integrations/jellyfin.markdown @@ -64,5 +64,4 @@ Password: {% configuration_basic %} Audio Codec: description: Sets the audio encoding codec to a Jellyfin API supported codec (aac, mp3, vorbis, wma) - required: false {% endconfiguration_basic %} diff --git a/source/_integrations/lamarzocco.markdown b/source/_integrations/lamarzocco.markdown index 6f295c38b6a..1a914b71732 100644 --- a/source/_integrations/lamarzocco.markdown +++ b/source/_integrations/lamarzocco.markdown @@ -46,16 +46,10 @@ By default, this integration will query your machine every 30 seconds for an upd {% configuration_basic %} Username: description: "Your username you use to log into the La Marzocco app." - required: true - type: string Password: description: "Password you use to log into the La Marzocco app." - required: true - type: string Host: description: "IP address of your machine in your local network. If not set, no local connections will be used." - required: false - type: boolean {% endconfiguration_basic %} {% include integrations/option_flow.md %} diff --git a/source/_integrations/laundrify.markdown b/source/_integrations/laundrify.markdown index 593e412f9fb..338e6c3a182 100644 --- a/source/_integrations/laundrify.markdown +++ b/source/_integrations/laundrify.markdown @@ -40,8 +40,6 @@ Your code will expire within 60 minutes after activation. Make sure to configure {% include integrations/config_flow.md %} {% configuration_basic %} -code: +Code: description: "Auth Code that can be obtained in the laundrify App (see above), e.g., `123-456`." - required: true - type: string {% endconfiguration_basic %} diff --git a/source/_integrations/motioneye.markdown b/source/_integrations/motioneye.markdown index 512fb2cbc09..f3d00f908b7 100644 --- a/source/_integrations/motioneye.markdown +++ b/source/_integrations/motioneye.markdown @@ -27,24 +27,14 @@ and visualization of multiple types of cameras. {% configuration_basic %} url: description: The URL of the motionEye server itself -- **not** the URL for the camera stream(s) that it makes available. - required: true - type: string admin_username: description: The username of the motionEye administrative account, used for changing camera settings. - required: true - type: string admin_password: description: The password of the motionEye administrative account. - required: true - type: string surveillance_username: description: The username of the motionEye surveillance user, used to authenticate video streams. - required: true - type: string surveillance_password: description: The password of the motionEye surveillance account. - required: true - type: string {% endconfiguration_basic %} {% include integrations/option_flow.md %} diff --git a/source/_integrations/nmap_tracker.markdown b/source/_integrations/nmap_tracker.markdown index 249202270a9..82073194858 100644 --- a/source/_integrations/nmap_tracker.markdown +++ b/source/_integrations/nmap_tracker.markdown @@ -32,21 +32,12 @@ An example of how the Nmap scanner can be customized: {% configuration_basic %} Network addresses to scan: description: Network range to scan using [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). In the example above it will scan addresses from `192.168.1.1` to `192.168.1.254`. - required: true - type: string Minimum number of minutes between scans of active devices: description: Frequency of the scans. The lower the number, the quicker it will detect devices connected and disconnected usually at the cost of the devices battery life. The example above will scan every minute. - required: true - type: integer Network addresses to exclude from scanning: description: A comma-separated list of IP addresses not to scan. The above example will skip `192.168.1.8`. - required: false - type: string Raw configurable scan options for Nmap: description: Nmap command line parameters which can be used to configure how Nmap scans the network. For more details see [Nmap reference guide](https://nmap.org/book/man.html). - required: false - type: string - default: -F T4 --min-rate 10 --host-timeout 5s {% endconfiguration_basic %} See the [device tracker integration page](/integrations/device_tracker/) for instructions how to configure the people to be tracked. diff --git a/source/_integrations/octoprint.markdown b/source/_integrations/octoprint.markdown index abbe2801372..03893304c7c 100644 --- a/source/_integrations/octoprint.markdown +++ b/source/_integrations/octoprint.markdown @@ -29,35 +29,20 @@ ha_integration_type: integration {% configuration_basic %} username: description: Username for the server. - required: true - type: string host: - description: Address of the server, e.g., 192.168.1.32. - required: true - type: string + description: Address of the server, e.g., `192.168.1.32`. port: description: Port of the server. - required: false - type: string - default: 80 path: description: URL path of the server - required: false - type: string - default: / ssl: description: Whether to use SSL or not when communicating. - required: false - type: boolean - default: false verify ssl: description: Should the SSL certificate be validated. - required: false - type: boolean - default: false {% endconfiguration_basic %} ### API key + For the integration to work, please check that in Octoprint, the [Discovery Plugin](https://docs.octoprint.org/en/master/bundledplugins/discovery.html) is enabled and in the **Settings** -> **Printer Notifications** menu that **Enable popups** is checked. The Octoprint integration will attempt to register itself via the [Application Keys Plugin](https://docs.octoprint.org/en/master/bundledplugins/appkeys.html). After submitting the configuration UI in Home Assistant, log in to Octoprint as the user whose credentials you just entered in Home Assistant, and select **Allow** on the prompt. diff --git a/source/_integrations/onkyo.markdown b/source/_integrations/onkyo.markdown index 7356985af33..d38700f9472 100644 --- a/source/_integrations/onkyo.markdown +++ b/source/_integrations/onkyo.markdown @@ -25,13 +25,10 @@ Please be aware that you need to enable "Network Standby" for this integration t {% configuration_basic %} Host: description: Hostname or IP address of the device, for example:`192.168.1.2`. - type: string Volume Resolution: description: Number of steps it takes for the receiver to go from the lowest to the highest possible volume. Possible values are 50, 80, 100, 200. For older Onkyo receivers, this typically is 80; newer Onkyo receivers use 200. - type: integer Input sources: description: List of input sources supported by the receiver. - type: list {% endconfiguration_basic %} The above settings can also be adjusted later. To do this, click the three-dot menu on the integration entry and select **Reconfigure**. @@ -41,11 +38,8 @@ The above settings can also be adjusted later. To do this, click the three-dot m {% configuration_basic %} Max Volume: description: Maximum volume limit as a percentage. Often the maximum volume of the receiver is far too loud. Setting this will set Home Assistant's 100% volume to be this setting on the amp, i.e., if you set this to 50%, when you set Home Assistant to be 100%, then your receiver will be set to 50% of its maximum volume. - default: 100 - type: integer Input sources: description: Mappings of input sources to their names. - type: list {% endconfiguration_basic %} ### Zones diff --git a/source/_integrations/rabbitair.markdown b/source/_integrations/rabbitair.markdown index 3f449eabcbe..df444f3d367 100644 --- a/source/_integrations/rabbitair.markdown +++ b/source/_integrations/rabbitair.markdown @@ -49,11 +49,7 @@ In some cases the access token may not be available right away, then you will se {% configuration_basic %} host: - description: "Hostname or IP address of the device." - required: true - type: string + description: Hostname or IP address of the device. access_token: - description: "Access Token that can be obtained in the Rabbit Air app." - required: true - type: string + description: Access Token that can be obtained in the Rabbit Air app. {% endconfiguration_basic %} diff --git a/source/_integrations/reolink.markdown b/source/_integrations/reolink.markdown index aff92f3dd49..0e8c82d7555 100644 --- a/source/_integrations/reolink.markdown +++ b/source/_integrations/reolink.markdown @@ -43,22 +43,18 @@ A brand new Reolink camera needs to be connected to the network and initialized. - The password used for the Reolink device can only contain characters `a-z, A-Z, 0-9 or @$*~_-+=!?.,:;'()[]`. Other special characters will cause encoding issues in the video streams used by this integration and are, therefore, not allowed. When using an incompatible special character in the password, the integration will prompt you to change the password. {% include integrations/config_flow.md %} + {% configuration_basic %} Host: - description: "The hostname or IP address of your Reolink device. For example: '192.168.1.25'. You can find it in your router or in the Reolink app under **Settings** -> **Device** (top icon) -> **Networkinformation** -> **IP-address**. Normally, the Reolink device is automatically discovered, and you do not need to provide this." - required: false - type: string + description: "The hostname or IP address of your Reolink device. For example: '192.168.1.25'. You can find it in your router or in the Reolink app under **Settings** -> **Device** (top icon) -> **Networkinformation** -> **IP-address**. Normally, the Reolink device is automatically discovered, and you do not need to provide this." Username: - description: "Username to log in to the Reolink device itself. Not the Reolink cloud account." - required: true - type: string + description: "Username to log in to the Reolink device itself. Not the Reolink cloud account." Password: - description: "Password to log in to the Reolink device itself. Not the Reolink cloud account." - required: true - type: string + description: "Password to log in to the Reolink device itself. Not the Reolink cloud account." {% endconfiguration_basic %} {% include integrations/option_flow.md %} + {% configuration_basic %} Protocol: description: Switch between RTSP, RTMP, or FLV streaming protocol. RTSP supports 4K streams (h265 encoding) while RTMP and FLV do not. FLV is the least demanding on the camera. diff --git a/source/_integrations/tedee.markdown b/source/_integrations/tedee.markdown index 3597d886986..0c254a7385b 100644 --- a/source/_integrations/tedee.markdown +++ b/source/_integrations/tedee.markdown @@ -40,12 +40,8 @@ The integration will try to configure webhooks to receive near-real-time push up {% configuration_basic %} Host: description: "The IP address of your bridge. You can find it in your router or in the Tedee app under **Bridge Settings** -> **Local API**." - required: false - type: string Local Access Token: description: "The local access token for your bridge. You can find it in the Tedee app under **Bridge Settings** -> **Local API**." - required: false - type: string {% endconfiguration_basic %} ## Supported devices diff --git a/source/_integrations/venstar.markdown b/source/_integrations/venstar.markdown index f65443755f8..02b395010fc 100644 --- a/source/_integrations/venstar.markdown +++ b/source/_integrations/venstar.markdown @@ -79,24 +79,13 @@ If the local API is successfully enabled on the thermostat, you should see some {% configuration_basic %} host: - description: Address of your thermostat, e.g., 192.168.1.32. - required: true - type: string + description: Address of your thermostat, e.g., `192.168.1.32`. username: description: Username for the thermostat. - required: false - type: string password: description: Password for the thermostat. - required: false - type: string pin: description: Pin for Lockscreen (required if lock screen enabled) - required: false - type: string ssl: description: Whether to use SSL or not when communicating. - required: false - type: boolean - default: false {% endconfiguration_basic %} diff --git a/source/_integrations/zwave_me.markdown b/source/_integrations/zwave_me.markdown index ad4d306c0d6..79f88938ce0 100644 --- a/source/_integrations/zwave_me.markdown +++ b/source/_integrations/zwave_me.markdown @@ -43,16 +43,10 @@ This integration allows you to control a Z-Wave network via the [Z-Wave.Me Z-Way {% include integrations/config_flow.md %} {% configuration_basic %} - URL: description: The IP address with the port of the Z-Way server. The IP address can be prefixed with wss:// if HTTPS should be used instead of HTTP (when using find.z-wave.me remote access service or public IP with SSL). - required: true - type: string API Token: description: Z-Way API access token of the Z-Way server. To get the token go to the Z-Way user interface Smart Home UI > Menu > Settings > Users > Administrator > API token. - required: true - type: string - {% endconfiguration_basic %} When connecting via find.z-wave.me remote access service you need to use a token with a global scope (log-in to Z-Way via [find.z-wave.me](https://find.z-wave.me) for this). From dae9ef56e379acc215c80c398ab1764cfb6a3e41 Mon Sep 17 00:00:00 2001 From: Klaas Schoute Date: Mon, 2 Dec 2024 08:02:00 +0100 Subject: [PATCH 19/31] Convert to details block for troubleshootings (#36091) --- source/_integrations/keymitt_ble.markdown | 13 +++++++------ source/_integrations/switchbot.markdown | 13 +++++++------ 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/source/_integrations/keymitt_ble.markdown b/source/_integrations/keymitt_ble.markdown index eba82277308..eacc4a1682b 100644 --- a/source/_integrations/keymitt_ble.markdown +++ b/source/_integrations/keymitt_ble.markdown @@ -53,9 +53,10 @@ The integration will automatically discover devices once the [Bluetooth](/integr Due to the device going into deep sleep after extended periods of no activity, the response time can be up to a minute in extreme cases. On average it will be much quicker. -{% configuration_basic %} -"Failed to pair": - description: Make sure your devices are powered on, in range, and in pairing mode. Pressing the button on the MicroBot Push to take it out of deep sleep may also be beneficial. -"No unconfigured devices found": - description: Make sure your devices are powered on, in range, and in pairing mode. Pressing the button on the MicroBot Push to take it out of deep sleep may also be beneficial. -{% endconfiguration_basic %} +{% details "Failed to pair" %} +Make sure your devices are powered on, in range, and in pairing mode. Pressing the button on the MicroBot Push to take it out of deep sleep may also be beneficial. +{% enddetails %} + +{% details "No unconfigured devices found" %} +Make sure your devices are powered on, in range, and in pairing mode. Pressing the button on the MicroBot Push to take it out of deep sleep may also be beneficial. +{% enddetails %} diff --git a/source/_integrations/switchbot.markdown b/source/_integrations/switchbot.markdown index 60921459d41..9e6f2e2aa00 100644 --- a/source/_integrations/switchbot.markdown +++ b/source/_integrations/switchbot.markdown @@ -166,12 +166,13 @@ cover: The SwitchBot integration will automatically discover devices once the [Bluetooth](/integrations/bluetooth) integration is enabled and functional. -{% configuration_basic %} -"Config flow could not be loaded": - description: Possible custom integration conflict, using a different version of PySwitchbot; Try uninstalling the custom integration. -"No unconfigured devices found": - description: Make sure your devices are powered on and are in range. -{% endconfiguration_basic %} +{% details "Config flow could not be loaded" %} +Possible custom integration conflict, using a different version of PySwitchbot; Try uninstalling the custom integration. +{% enddetails %} + +{% details "No unconfigured devices found" %} +Make sure your devices are powered on and are in range. +{% enddetails %} ### Slow connection times From c16c8a889ca9b21c355fd2f3a33690deb4615323 Mon Sep 17 00:00:00 2001 From: Klaas Schoute Date: Mon, 2 Dec 2024 08:14:56 +0100 Subject: [PATCH 20/31] Add known limitation section to Autarco integration (#36092) Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com> --- source/_integrations/autarco.markdown | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/_integrations/autarco.markdown b/source/_integrations/autarco.markdown index 4236de63216..5514cc71f7d 100644 --- a/source/_integrations/autarco.markdown +++ b/source/_integrations/autarco.markdown @@ -66,6 +66,10 @@ If you have a battery connected to your system, you can monitor the battery stat - Charged energy this month (kWh) - Charged energy total (kWh) +## Known limitations + +The integration does not show data about your self-sufficiency or CO2 savings. + ## Removing the integration This integration follows standard integration removal. No extra steps are required. From 1e3c20583c6addda05b5e386a8423740ae25562c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Dec 2024 08:43:29 +0100 Subject: [PATCH 21/31] build(deps-dev): bump webrick from 1.9.0 to 1.9.1 (#36094) --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 9ea94ce523b..1b354bf4738 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -161,7 +161,7 @@ GEM tzinfo-data (1.2024.2) tzinfo (>= 1.0.0) unicode-display_width (2.6.0) - webrick (1.9.0) + webrick (1.9.1) PLATFORMS arm64-darwin-23 From 0d46fe529a0ca7c575a70ba913609cea52470831 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Dec 2024 08:47:55 +0100 Subject: [PATCH 22/31] build(deps-dev): bump textlint from 14.3.0 to 14.4.0 (#36096) --- package-lock.json | 224 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 113 insertions(+), 113 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9c831732bf4..f3f4f98e859 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.3.0", + "textlint": "^14.4.0", "textlint-filter-rule-comments": "^1.2.2", "textlint-rule-common-misspellings": "^1.0.1", "textlint-rule-terminology": "^5.0.13" @@ -416,66 +416,66 @@ "dev": true }, "node_modules/@textlint/ast-tester": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-14.3.0.tgz", - "integrity": "sha512-K1TbF1Kko1XAKCWuFY/TkZO521ZWv2DAHu4JYsqqY/PnqqySHZorjSG78EfYBhkVq1E3ktprlAJmp8GNmpoYWQ==", + "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==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^14.3.0", + "@textlint/ast-node-types": "^14.4.0", "debug": "^4.3.4" } }, "node_modules/@textlint/ast-tester/node_modules/@textlint/ast-node-types": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.3.0.tgz", - "integrity": "sha512-baDgKcA8MeO55I2+LNc9FTAJ/aUKlxN6DgM5B511tT9kDwECXRk+iYi/H+oaP25z5Zq3FqrL6n7mmyfFWDUWkQ==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz", + "integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==", "dev": true }, "node_modules/@textlint/ast-traverse": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.3.0.tgz", - "integrity": "sha512-1YA5M2T+KeIHC0br5FwhkTwuLEUxkf5K5QtXJmXSF0Mf06ZlLfZ44RMlKYD3ElmzG+TmpmFdKIs4FzFSJRtslw==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-14.4.0.tgz", + "integrity": "sha512-P6UrqKlXd9Lm0kJ1O8vyQU0/btXULiUHhE5nLZMnTNfgZYG3VasQ9BUyDHJn19O4PhUrIzZJusMi1XFcb3Y46Q==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^14.3.0" + "@textlint/ast-node-types": "^14.4.0" } }, "node_modules/@textlint/ast-traverse/node_modules/@textlint/ast-node-types": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.3.0.tgz", - "integrity": "sha512-baDgKcA8MeO55I2+LNc9FTAJ/aUKlxN6DgM5B511tT9kDwECXRk+iYi/H+oaP25z5Zq3FqrL6n7mmyfFWDUWkQ==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz", + "integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==", "dev": true }, "node_modules/@textlint/config-loader": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-14.3.0.tgz", - "integrity": "sha512-z7g3dArU7EhWHHy0lvMDQF+6TWDppvqkXh7J6YRTXnq00ftEC1MbHGfrsZNJF1av6rBJ8r8nquKyCoeYZBz7cw==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/config-loader/-/config-loader-14.4.0.tgz", + "integrity": "sha512-TCYVhQ+wP/Gs7P5BDAfyRpLJ5tohicTSwQapd/xPjByXFtGx8xlsbLQHTWcodFFpty1O57KRPRsRDhvuTAA2bQ==", "dev": true, "dependencies": { - "@textlint/kernel": "^14.3.0", - "@textlint/module-interop": "^14.3.0", - "@textlint/resolver": "^14.3.0", - "@textlint/types": "^14.3.0", - "@textlint/utils": "^14.3.0", + "@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", "rc-config-loader": "^4.1.3" } }, "node_modules/@textlint/feature-flag": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-14.3.0.tgz", - "integrity": "sha512-wWKbyHpmwxEEcyoBMd2u6GB5bw7vJ2a68HmBRknUABFL7vvp8JAzf4D/I2cLXgV06OoMbWE+hnV2CInayJiCpA==", + "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==", "dev": true }, "node_modules/@textlint/fixer-formatter": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-14.3.0.tgz", - "integrity": "sha512-xbSH4vb1wdjJngHxpfBu65Y+uTZdU/w0b7Hd6TJ7Q5FaZD1pftyUHGisLMN+xX3V56t28e+qAkSBTQ4Mq4UdYQ==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-14.4.0.tgz", + "integrity": "sha512-DijDPVZgHkHKAEsYVXFZaP0TJGLDtirok/hgi1N1N3MW5ZtQpIHOW8DgKaJcmDZvPQjkTxzBaUp8rzBxHG8MaQ==", "dev": true, "dependencies": { - "@textlint/module-interop": "^14.3.0", - "@textlint/resolver": "^14.3.0", - "@textlint/types": "^14.3.0", + "@textlint/module-interop": "^14.4.0", + "@textlint/resolver": "^14.4.0", + "@textlint/types": "^14.4.0", "chalk": "^4.1.2", "debug": "^4.3.4", "diff": "^5.2.0", @@ -485,40 +485,40 @@ } }, "node_modules/@textlint/kernel": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.3.0.tgz", - "integrity": "sha512-RLkIJjP+GtrLmjLtAYSCORKF55z5wtw2E9Vb4h3RSQLjzYopQ3s9N1LbUwLJDr8tz0AphtOb6t1efF3d+NIemw==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/kernel/-/kernel-14.4.0.tgz", + "integrity": "sha512-zH19vQ0ns4n8kPr+csjPnV5yPip6gKs08GvDJBQlX3AEbRQkaSw4H5kBCE+R0D9qDkuqt7xe8Z8Tdm7E7aUvGw==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^14.3.0", - "@textlint/ast-tester": "^14.3.0", - "@textlint/ast-traverse": "^14.3.0", - "@textlint/feature-flag": "^14.3.0", - "@textlint/source-code-fixer": "^14.3.0", - "@textlint/types": "^14.3.0", - "@textlint/utils": "^14.3.0", + "@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", "fast-equals": "^4.0.3", "structured-source": "^4.0.0" } }, "node_modules/@textlint/kernel/node_modules/@textlint/ast-node-types": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.3.0.tgz", - "integrity": "sha512-baDgKcA8MeO55I2+LNc9FTAJ/aUKlxN6DgM5B511tT9kDwECXRk+iYi/H+oaP25z5Zq3FqrL6n7mmyfFWDUWkQ==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz", + "integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==", "dev": true }, "node_modules/@textlint/linter-formatter": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.3.0.tgz", - "integrity": "sha512-9Rzq0y9Qi6L43To9GIUd1kh/7Pq202qU9nQ15atyK5BlvPFlzJnc98X/hCE1tN+uDriZnxu4v4Vs7+mHFT9VPw==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.4.0.tgz", + "integrity": "sha512-rnFwSSXDdsQHGVaRoJJYocVSYn4ZEPUFj78JYDZcR+TRYVDzRJEblFhwsiXl/gHD3L5g2RnBcLbxwZIW+xwtIA==", "dev": true, "dependencies": { "@azu/format-text": "^1.0.2", "@azu/style-format": "^1.0.1", - "@textlint/module-interop": "^14.3.0", - "@textlint/resolver": "^14.3.0", - "@textlint/types": "^14.3.0", + "@textlint/module-interop": "^14.4.0", + "@textlint/resolver": "^14.4.0", + "@textlint/types": "^14.4.0", "chalk": "^4.1.2", "debug": "^4.3.4", "js-yaml": "^3.14.1", @@ -531,12 +531,12 @@ } }, "node_modules/@textlint/markdown-to-ast": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-14.3.0.tgz", - "integrity": "sha512-z4UMKFh3r5KtylPt5OO6su7DScU+fMZ7Qv5LTrJNaOqcmOzFho64Y1I26BJv86f8BC+MUYP0kza5MZGaR2LYQA==", + "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==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^14.3.0", + "@textlint/ast-node-types": "^14.4.0", "debug": "^4.3.4", "mdast-util-gfm-autolink-literal": "^0.1.3", "neotraverse": "^0.6.15", @@ -548,9 +548,9 @@ } }, "node_modules/@textlint/markdown-to-ast/node_modules/@textlint/ast-node-types": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.3.0.tgz", - "integrity": "sha512-baDgKcA8MeO55I2+LNc9FTAJ/aUKlxN6DgM5B511tT9kDwECXRk+iYi/H+oaP25z5Zq3FqrL6n7mmyfFWDUWkQ==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz", + "integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==", "dev": true }, "node_modules/@textlint/markdown-to-ast/node_modules/bail": { @@ -780,79 +780,79 @@ } }, "node_modules/@textlint/module-interop": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.3.0.tgz", - "integrity": "sha512-Adxkx8GSFVPhCZiveTD/u66f5T3W6yIlPUsKi7ZLar7ahYI/D4P/XfA0RNhgMF3xM4uw+vNrer2LcY4KY7cUfw==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.4.0.tgz", + "integrity": "sha512-QdtNDJc+XqDIbP9bwt7DryqE+vFbbIB28462VFWtXcHCJJoFTlmCJ1133SXLe14IOT9P04T9LMNhgv4d2v31gg==", "dev": true }, "node_modules/@textlint/resolver": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-14.3.0.tgz", - "integrity": "sha512-v17n8eUJPNaE9SblemmEnAeIcGHBfn/hEMuZe0iSl3hLyJueDM7zP3GP54FoWyuTIMyQqPt21l6+48+BjJ9tfQ==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-14.4.0.tgz", + "integrity": "sha512-4jNO6Lbyiqtf22205XPpSYG4BNCZrvpmLzO2JUpYMe5C5g0z4l06Yqei3gJWYjdBLlL+fIxDcdW0hyIvvSFpUg==", "dev": true }, "node_modules/@textlint/source-code-fixer": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/@textlint/source-code-fixer/-/source-code-fixer-14.3.0.tgz", - "integrity": "sha512-KJJoiN1Ha9R6tJrg3KHnYkq0s86D53PUjYxxCYJxo9Q8yTcXx+aXPspvgW+qGD+qcQxjarqbLl6m8uRlbyrg3Q==", + "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==", "dev": true, "dependencies": { - "@textlint/types": "^14.3.0", + "@textlint/types": "^14.4.0", "debug": "^4.3.4" } }, "node_modules/@textlint/text-to-ast": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.3.0.tgz", - "integrity": "sha512-wCjJmpwlff/wPsGaECBbNn0hPfiCnbr4mPJKFE59M3aeISoH3zqITCx9RCVPBYbYHzqTWmHPNLYI7egVIbZgrA==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-14.4.0.tgz", + "integrity": "sha512-MA3z7cksYpjXRPIFFcbB6CM5UbNFD53GJ823qo74ImU2MRlIrs9dcR9yQ76YxbYZ9OazPzUNGg5AS9tbp3Exbg==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^14.3.0" + "@textlint/ast-node-types": "^14.4.0" } }, "node_modules/@textlint/text-to-ast/node_modules/@textlint/ast-node-types": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.3.0.tgz", - "integrity": "sha512-baDgKcA8MeO55I2+LNc9FTAJ/aUKlxN6DgM5B511tT9kDwECXRk+iYi/H+oaP25z5Zq3FqrL6n7mmyfFWDUWkQ==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz", + "integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==", "dev": true }, "node_modules/@textlint/textlint-plugin-markdown": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-14.3.0.tgz", - "integrity": "sha512-0lyYK/SUOgww+sxBtvjjsinHKMvFZUpLKvxCepymGlTyuOTYo7QmjmfhLc5G97PChOpUG41dpQoZt9miohQT1A==", + "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==", "dev": true, "dependencies": { - "@textlint/markdown-to-ast": "^14.3.0" + "@textlint/markdown-to-ast": "^14.4.0" } }, "node_modules/@textlint/textlint-plugin-text": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-14.3.0.tgz", - "integrity": "sha512-XpgyWTy2CqoKGuBrEsBJOVJqoXREAB6RFjPaa5bHvdvjwzU+EFqCNR9RXXs3Iov1ip/AaXDz/JeB4IYk6zj8GQ==", + "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==", "dev": true, "dependencies": { - "@textlint/text-to-ast": "^14.3.0" + "@textlint/text-to-ast": "^14.4.0" } }, "node_modules/@textlint/types": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.3.0.tgz", - "integrity": "sha512-zvPCQUpK1hOQA6Bg4XLYvKbOvFcQT65Nm25wsDdOGRgOvZbUzA+DJkiaH9Z8DAaJx83tTknIeLl4qwu97Hw1Ew==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.4.0.tgz", + "integrity": "sha512-ZxZkiFxaXfjoaa/gzbGyUWR0mSMLChDaQrYJ0sPToCQ0QXUG3w5sIT2hCGZyBfNRc8/g0eH+KbDejD014oBPBQ==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^14.3.0" + "@textlint/ast-node-types": "^14.4.0" } }, "node_modules/@textlint/types/node_modules/@textlint/ast-node-types": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.3.0.tgz", - "integrity": "sha512-baDgKcA8MeO55I2+LNc9FTAJ/aUKlxN6DgM5B511tT9kDwECXRk+iYi/H+oaP25z5Zq3FqrL6n7mmyfFWDUWkQ==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz", + "integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==", "dev": true }, "node_modules/@textlint/utils": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-14.3.0.tgz", - "integrity": "sha512-Q7bKiPobKCDXM5z+xByLZzSjcOBhvlDufQGHNgHR8EFie2/AFc68cN8RYCY0MmwCMBMuHuYaOzfIOpQpK9oTcQ==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/utils/-/utils-14.4.0.tgz", + "integrity": "sha512-/5QSdYa042z0SX+10+UPzHlMT2nWuRBkouf90/P60nycpFmWn0waIbVoARDlekzmaqB4BitbP7NGjjPmEju4bA==", "dev": true }, "node_modules/@types/concat-stream": { @@ -6036,24 +6036,24 @@ "dev": true }, "node_modules/textlint": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/textlint/-/textlint-14.3.0.tgz", - "integrity": "sha512-oarGVGz7KwRd08QOvNDSffzjEyfS5mnGp7ZAxr799QC0HDBp0VM358WGyxdaboDXav1RlkQ3TWkvOvHBBMXCXw==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/textlint/-/textlint-14.4.0.tgz", + "integrity": "sha512-OutNGN573fI48bRdikgz+PAjCN/P4DRK9dLGxkNkqBlWmwbxLpvBxw1qspZEFVVLoNH94ra65NDfCwMvCosvdA==", "dev": true, "dependencies": { - "@textlint/ast-node-types": "^14.3.0", - "@textlint/ast-traverse": "^14.3.0", - "@textlint/config-loader": "^14.3.0", - "@textlint/feature-flag": "^14.3.0", - "@textlint/fixer-formatter": "^14.3.0", - "@textlint/kernel": "^14.3.0", - "@textlint/linter-formatter": "^14.3.0", - "@textlint/module-interop": "^14.3.0", - "@textlint/resolver": "^14.3.0", - "@textlint/textlint-plugin-markdown": "^14.3.0", - "@textlint/textlint-plugin-text": "^14.3.0", - "@textlint/types": "^14.3.0", - "@textlint/utils": "^14.3.0", + "@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", "get-stdin": "^5.0.1", @@ -6178,9 +6178,9 @@ } }, "node_modules/textlint/node_modules/@textlint/ast-node-types": { - "version": "14.3.0", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.3.0.tgz", - "integrity": "sha512-baDgKcA8MeO55I2+LNc9FTAJ/aUKlxN6DgM5B511tT9kDwECXRk+iYi/H+oaP25z5Zq3FqrL6n7mmyfFWDUWkQ==", + "version": "14.4.0", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.4.0.tgz", + "integrity": "sha512-tEZbu6dMU8lysTpFrrW9WzN/hWnfGoanOX1WmdKZ7LgqUVDdsd9Q8RNLlQLOgl7ev1C7O3T4ruzl4rdYI5he1g==", "dev": true }, "node_modules/textlint/node_modules/brace-expansion": { diff --git a/package.json b/package.json index 24acdf23c50..f9746eb2853 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.3.0", + "textlint": "^14.4.0", "textlint-filter-rule-comments": "^1.2.2", "textlint-rule-common-misspellings": "^1.0.1", "textlint-rule-terminology": "^5.0.13" From e5be9f356fd75e53f9c1d54f7baf2d31cbcc27e7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Dec 2024 08:49:04 +0100 Subject: [PATCH 23/31] build(deps-dev): bump regexp_parser from 2.9.2 to 2.9.3 (#36095) --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 1b354bf4738..0a22db986af 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -110,7 +110,7 @@ GEM ffi (~> 1.0) rbs (3.6.1) logger - regexp_parser (2.9.2) + regexp_parser (2.9.3) rexml (3.3.9) rouge (4.5.1) rubocop (1.69.0) From 416843eb996302d25174a66d6f8ad2670431208d Mon Sep 17 00:00:00 2001 From: Josef Zweck <24647999+zweckj@users.noreply.github.com> Date: Mon, 2 Dec 2024 10:02:07 +0100 Subject: [PATCH 24/31] Update lamarzocco.markdown (#36098) --- source/_integrations/lamarzocco.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_integrations/lamarzocco.markdown b/source/_integrations/lamarzocco.markdown index 1a914b71732..c096299d6c7 100644 --- a/source/_integrations/lamarzocco.markdown +++ b/source/_integrations/lamarzocco.markdown @@ -76,7 +76,7 @@ Use Bluetooth: | Number name | Description | Available for machines | Controllable through | Remarks | |-------------|-------------| ---------------------- |--------------------- | ------- | -| **Coffee target temperature** | Temperature the coffee boiler is set to | `GS3 AV`, `GS3 MP` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | - | +| **Coffee target temperature** | Temperature the coffee boiler is set to | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | - | | **Steam target temperature** | Temperature the steam boiler is set to | `GS3 AV`, `GS3 MP` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | - | | **Tea water duration** | Dose hot water (in seconds) | `GS3 AV`, `GS3 MP` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | - | | **Dose** | Doseage (in ticks) for each key | `GS3 AV` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | `GS3` has this multiple times, one for each physical key (1-4), and the entities are disabled by default | From c2501adab9d7f2878512234deb3bfd585a485b3a Mon Sep 17 00:00:00 2001 From: Tom Date: Mon, 2 Dec 2024 14:46:25 +0100 Subject: [PATCH 25/31] Plugwise Add update and removal information (#36055) --- source/_integrations/plugwise.markdown | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/source/_integrations/plugwise.markdown b/source/_integrations/plugwise.markdown index 56eff11e16a..87f7944c70c 100644 --- a/source/_integrations/plugwise.markdown +++ b/source/_integrations/plugwise.markdown @@ -57,6 +57,22 @@ For example, if you have an Adam setup with a Lisa named 'Living' and a Tom name Centralized measurements such as 'power' for a P1, 'outdoor_temperature' on Anna or Adam will be assigned to your gateway entity. Heating/cooling device measurements such as 'boiler_temperature' will be assigned to the OpenTherm/OnOff entity. +## Data updates + +The interval which the integration fetches data from the Smile depends on the device: + +- 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. + +## Removing the integration + +This integration follows standard integration removal. No extra steps are required within Home Assistant or on your Plugwise devices. + +{% include integrations/remove_device_service.md %} + +This will also remove all connected Adam devices (such as Anna, Tom or Lisa) or connected Adam/Stretch plugs. + ## Configuration The Plugwise Smile(s) present in your network will be automatically detected via Zeroconf discovery and will be shown on the Integrations-page. To set up an integration, click the "CONFIGURATION" button on the discovered integration and you will be presented with a dialog requesting your Smile password. After you click submit, you will have the opportunity to select the area(s) where individual Smile appliances are located. The username `smile` is shown as a default, when configuring your Stretch change this to `stretch` accordingly. From 00eef482d84ce106df2676af13a485d6dde8e4d5 Mon Sep 17 00:00:00 2001 From: omettam Date: Mon, 2 Dec 2024 09:56:04 -0500 Subject: [PATCH 26/31] Update cisco_webex_teams.markdown (#36100) --- source/_integrations/cisco_webex_teams.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/_integrations/cisco_webex_teams.markdown b/source/_integrations/cisco_webex_teams.markdown index 08f8a50f808..b9a8f36da51 100644 --- a/source/_integrations/cisco_webex_teams.markdown +++ b/source/_integrations/cisco_webex_teams.markdown @@ -16,7 +16,7 @@ related: title: Configuration file --- -The `cisco_webex_teams` notification platform allows you to deliver rich notifications from Home Assistant to [Cisco Webex Teams](https://www.webex.com/team-collaboration.html) (formerly known as Cisco Spark or Cisco Webex Teams). +The `cisco_webex_teams` notification platform allows you to deliver rich notifications from Home Assistant to [Cisco Webex](https://www.webex.com/suite/messaging.html) (formerly known as Cisco Spark or Cisco Webex Teams). To use this notification platform you will need an app (bot) token. To obtain a token visit [Cisco Webex for Developers](https://developer.webex.com/). @@ -25,7 +25,7 @@ To use this notification platform you will need an app (bot) token. To obtain a You also need to specify the `room_id` that you wish to post messages into. The `room_id` can be found in one of two ways: 1. Logging in at [Cisco Webex for Developers](https://developer.webex.com/) and navigate to `Documentation`>`API Reference`>`Messages` and select List Messages, or -2. Log into the web client at [teams.webex.com](https://teams.webex.com/), +2. Log into the web client at [web.webex.com](https://web.webex.com/), - select the room (or create a new room), - then copying the room ID from the URL. 3. Within the Webex Client, press Control+Shift+K (Windows) or Command+Shift+K (macOS), which will automatically copy the space information to your clipboard, which you From 428ce019cd50721cab45efce2c22c7072708bacb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 13:35:01 +0100 Subject: [PATCH 27/31] build(deps-dev): bump sorbet-runtime from 0.5.11670 to 0.5.11672 (#36114) 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 0a22db986af..9483a06d227 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -151,7 +151,7 @@ GEM rack-protection (= 4.1.1) rack-session (>= 2.0.0, < 3) tilt (~> 2.0) - sorbet-runtime (0.5.11670) + sorbet-runtime (0.5.11672) stringex (2.8.6) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) From f8ea979dadcb353b34cc1f96ac59ffbcffadd130 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 13:35:16 +0100 Subject: [PATCH 28/31] build(deps): bump nokogiri from 1.16.7 to 1.16.8 (#36115) 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 e3070db77ee..9639bc53084 100644 --- a/Gemfile +++ b/Gemfile @@ -24,7 +24,7 @@ group :jekyll_plugins do end gem 'sinatra', '4.1.1' -gem 'nokogiri', '1.16.7' +gem 'nokogiri', '1.16.8' # 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 9483a06d227..157d1343003 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.16.7-arm64-darwin) + nokogiri (1.16.8-arm64-darwin) racc (~> 1.4) - nokogiri (1.16.7-x86_64-linux) + nokogiri (1.16.8-x86_64-linux) racc (~> 1.4) parallel (1.26.3) parser (3.3.6.0) @@ -174,7 +174,7 @@ DEPENDENCIES jekyll-paginate (= 1.1.0) jekyll-sitemap (= 1.4.0) jekyll-toc (= 0.19.0) - nokogiri (= 1.16.7) + nokogiri (= 1.16.8) rackup (= 2.2.1) rake (= 13.2.1) rubocop (= 1.69.0) From aac9076de0b7be601fbfd491253184c8f1f87f37 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 13:35:28 +0100 Subject: [PATCH 29/31] build(deps): bump logger from 1.6.1 to 1.6.2 (#36116) 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 157d1343003..55a4d7952ba 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -76,7 +76,7 @@ GEM listen (3.9.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - logger (1.6.1) + logger (1.6.2) mercenary (0.4.0) multi_json (1.15.0) mustermann (3.0.3) From 55606500a6e8c8376919644aefdcc487cfbea853 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Dec 2024 13:35:38 +0100 Subject: [PATCH 30/31] build(deps-dev): bump sass-embedded from 1.81.0 to 1.81.1 (#36117) 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 9639bc53084..7bf2caa0544 100644 --- a/Gemfile +++ b/Gemfile @@ -10,7 +10,7 @@ group :development do gem 'stringex', '2.8.6' # > 2.1.0 causes slowdowns https://github.com/sass/sassc-ruby/issues/189 gem 'sassc', '2.1.0' - gem 'sass-embedded', '1.81.0' + gem 'sass-embedded', '1.81.1' gem 'rubocop', '1.69.0' gem 'ruby-lsp', '0.22.1' gem 'rackup', '2.2.1' diff --git a/Gemfile.lock b/Gemfile.lock index 55a4d7952ba..50a52d01d32 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -134,9 +134,9 @@ GEM ruby2_keywords (0.0.5) safe_yaml (1.0.5) sass (3.4.25) - sass-embedded (1.81.0-arm64-darwin) + sass-embedded (1.81.1-arm64-darwin) google-protobuf (~> 4.28) - sass-embedded (1.81.0-x86_64-linux-gnu) + sass-embedded (1.81.1-x86_64-linux-gnu) google-protobuf (~> 4.28) sass-globbing (1.1.5) sass (>= 3.1) @@ -179,7 +179,7 @@ DEPENDENCIES rake (= 13.2.1) rubocop (= 1.69.0) ruby-lsp (= 0.22.1) - sass-embedded (= 1.81.0) + sass-embedded (= 1.81.1) sass-globbing (= 1.1.5) sassc (= 2.1.0) sinatra (= 4.1.1) From 4e1f62d90ac9a800535498f24058081975c1ba10 Mon Sep 17 00:00:00 2001 From: robji Date: Tue, 3 Dec 2024 04:36:54 -0800 Subject: [PATCH 31/31] Update samsungtv.markdown (#36112) --- source/_integrations/samsungtv.markdown | 1 + 1 file changed, 1 insertion(+) diff --git a/source/_integrations/samsungtv.markdown b/source/_integrations/samsungtv.markdown index 0603b7fe1f7..252f4129924 100644 --- a/source/_integrations/samsungtv.markdown +++ b/source/_integrations/samsungtv.markdown @@ -157,6 +157,7 @@ KEY_LEFT|NavigationLeft KEY_RIGHT|NavigationRight KEY_RETURN|NavigationReturn/Back KEY_ENTER|NavigationEnter +KEY_EXIT|NavigationExit ____________ **Media Keys**