-
-
Notifications
You must be signed in to change notification settings - Fork 7.7k
Documentation for new Seko PoolDose integration #39581
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: next
Are you sure you want to change the base?
Conversation
…e-assistant#39258) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…e-assistant#39278) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…t#39283) Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
…9302) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…istant#39321) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…39319) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: AlCalzone <dominic.griesel@nabucasa.com>
…e-assistant#39523) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Stephan Holl - con terra GmbH <s.holl@conterra.de>
…9467) Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>
Co-authored-by: c0ffeeca7 <38767475+c0ffeeca7@users.noreply.github.com>
Co-authored-by: c0ffeeca7 <k0ffeeka7@gmail.com>
…39571) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: AlCalzone <dominic.griesel@nabucasa.com> Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 5
🧹 Nitpick comments (59)
source/_docs/authentication/providers.markdown (1)
164-164
: Improve wording for clarity in supported services listing.The phrase "from plaintext databases over LDAP to RADIUS" is a bit awkward. Consider rewriting to list options clearly, for example:
- This provider can be used to integrate Home Assistant with arbitrary external authentication services, from plaintext databases over LDAP to RADIUS. + This provider can be used to integrate Home Assistant with arbitrary external authentication services, including plain-text databases, LDAP, or RADIUS.source/_integrations/knx.markdown (9)
557-561
: Nitpick: Add comma after boolean clause for clarity.Punctuation is inconsistent in the
remove
description—add a comma aftertrue
to match standard documentation style.-remove: - description: If `true` the group address will be removed. +remove: + description: If `true`, the group address will be removed.
573-578
: Nitpick: Add comma after boolean clause for clarity.Similarly update the
remove
field inknx.exposure_register
:-remove: - description: In addition to the configuration variables of [expose](#exposing-entity-states-entity-attributes-or-time-to-knx-bus) `remove` set to `true` can be used to remove exposures. +remove: + description: In addition to the configuration variables of [expose](#exposing-entity-states-entity-attributes-or-time-to-knx-bus), `remove` set to `true` can be used to remove exposures.
1281-1286
: Nitpick: Add comma after boolean clause for consistency.Update
respond_to_read
in Date platform:-respond_to_read: - description: If `true` the entity will respond to GroupValueRead telegrams... +respond_to_read: + description: If `true`, the entity will respond to GroupValueRead telegrams...
1348-1353
: Nitpick: Add comma after boolean clause for consistency.Update
respond_to_read
in DateTime platform:-respond_to_read: - description: If `true` the entity will respond to GroupValueRead telegrams... +respond_to_read: + description: If `true`, the entity will respond to GroupValueRead telegrams...
1752-1757
: Nitpick: Add comma after boolean clause for consistency.Update
respond_to_read
in Number platform:-respond_to_read: - description: If `true` the entity will respond to GroupValueRead telegrams... +respond_to_read: + description: If `true`, the entity will respond to GroupValueRead telegrams...
1885-1890
: Nitpick: Add comma after boolean clause for consistency.Update
respond_to_read
in Select platform:-respond_to_read: - description: If `true` the entity will respond to GroupValueRead telegrams... +respond_to_read: + description: If `true`, the entity will respond to GroupValueRead telegrams...
2220-2225
: Nitpick: Add comma after boolean clause for clarity.Update
respond_to_read
in Switch platform:-respond_to_read: - description: If `true` the entity will respond to GroupValueRead telegrams... +respond_to_read: + description: If `true`, the entity will respond to GroupValueRead telegrams...
2284-2289
: Nitpick: Add comma after boolean clause for clarity.Update
respond_to_read
in Text platform:-respond_to_read: - description: If `true` the entity will respond to GroupValueRead telegrams... +respond_to_read: + description: If `true`, the entity will respond to GroupValueRead telegrams...
2337-2341
: Nitpick: Add comma after boolean claus F438 e for consistency.Update
respond_to_read
in Time platform:-respond_to_read: - description: If `true` the entity will respond to GroupValueRead telegrams... +respond_to_read: + description: If `true`, the entity will respond to GroupValueRead telegrams...source/_integrations/motionmount.markdown (1)
50-52
: Refine preset polling description for clarity. The current sentence is repetitive and can be streamlined.- The only exception is the presets. Changes to the presets are {% term polling polled %}, by default every 60 seconds. + Presets are {% term polling polled %} by default every 60 seconds.source/_integrations/eafm.markdown (1)
17-17
: Remove trailing space
This line has a trailing space, violating MD009 (no-trailing-spaces).- The UK Environment Agency Flood Monitoring only provides data for England - Northern Ireland, Scotland and Wales have their own flood agencies. + The UK Environment Agency Flood Monitoring only provides data for England - Northern Ireland, Scotland and Wales have their own flood agencies.source/_integrations/locative.markdown (3)
11-11
: Hyphenate compound adjective
Use “open-source app” for correct compound adjective styling.- Locative is an open source app for [iOS](...) + Locative is an open-source app for [iOS](...)
17-17
: Simplify wording
“not able to” can be simplified to “cannot” for conciseness.- You are not able to specify a device name in Locative. + You cannot specify a device name in Locative.
19-21
: Add alt text for image
Images require alt text for accessibility (MD045).- <img src='/images/screenshots/locative.png'/> + <img src='/images/screenshots/locative.png' alt='Locative app geofence screenshot'/>source/_integrations/linkplay.markdown (3)
48-48
: Fix grammar in description
Clarify verb usage by changing “allow to save” to “allow saving”.- Companion apps, such as 4stream, allow to save music presets (for example, Spotify playlists). + Companion apps, such as 4stream, allow saving music presets (for example, Spotify playlists).
25-25
: Remove trailing spaces
Trailing spaces violate MD009; remove them across these lines.
Example:- ### Media Player + ### Media PlayerAlso applies to: 29-30, 36-36, 45-45, 48-48
53-54
: Enforce table pipe style
Table rows should have leading and trailing pipes (MD055).-| `entity_id` | no | The speakers to target. To target all LinkPlay devices, use `all`. +| `entity_id` | no | The speakers to target. To target all LinkPlay devices, use `all` | -| `preset_number` | no | The number of the preset to play. +| `preset_number` | no | The number of the preset to play. |.github/workflows/test.yml (1)
17-26
: Add strict shell options and improve filename handlingThe new step correctly aborts on
.md
files, but it can be hardened by:
- Enabling strict mode (
set -euo pipefail
) to catch unexpected errors.- Handling paths with spaces/newlines via
find … -print0
.- Emitting a success message when no matches are found.
Proposed diff:
- - name: Check for .md files and suggest renaming - run: | - echo "Checking for .md files in source/_integrations..." - MD_FILES=$(find source/_integrations -type f -name "*.md") - if [ -n "$MD_FILES" ]; then - echo "Found the following .md files:" - echo "$MD_FILES" - echo "⚠️ Please rename these files from .md to .markdown" - exit 1 - fi + - name: Check for .md files and suggest renaming + run: | + set -euo pipefail + echo "Checking for .md files in source/_integrations..." + find source/_integrations -type f -name "*.md" -print0 | { + if read -r -d '' file; then + echo "Found the following .md files:" + printf '%s\n' "$file" + echo "⚠️ Please rename these files from .md to .markdown" + exit 1 + fi + } + echo "No .md files found."source/_integrations/esphome.markdown (1)
258-262
: Relocate and standardize removal section
The "Removing the integration" section is now at the end with a sentence-case heading, improving structure.
Add a single trailing newline at EOF to satisfy MD047 (single-trailing-newline).source/_docs/blueprint/schema.markdown (5)
19-19
: Fix subject-verb agreement in schema description
The plural subject “Blueprint schemas” should take “support” rather than “supports.”-Blueprint schemas currently supports three types of schema depending on its domain: ... +Blueprint schemas currently support three types of schema depending on their domain: ...
23-24
: Adjust comma placement in metadata list
The list punctuation is inconsistent—move the comma before “and optionally.”-1. The blueprint's high-level metadata: name, domain and, optionally, any input required from the user. +1. The blueprint's high-level metadata: name, domain, and optionally any input required from the user.
54-54
: Clarify description sentence punctuation
Combine or separate the clauses for better flow. For example:-...this field is highly recommended. Describe what the blueprint does... +...this field is highly recommended: describe what the blueprint does...
60-60
: Consider linking thescript
domain for consistency
You’ve linkedautomation
andtemplate
—adding a link forscript
would maintain uniformity.
94-94
: Use “one or more” instead of “one or multiple”
“Multiple” implies more than one; “one or more” reads more clearly:-A blueprint can accept one or multiple inputs from the user... +A blueprint can accept one or more inputs from the user...source/_integrations/zwave_js.markdown (5)
85-85
: Clarify prerequisite ordering and links
The bullet for the Z-Wave JS server prerequisite is essential but should follow the controller prerequisite for logical flow. Consider adding an anchor link to “Setting up a Z-Wave JS server” for consistency with other docs.
98-101
: Ensure step formatting consistency
The sub-bullets under step 2 use mixed indentation and list markers. Align all sub-steps to use the same marker (-
) and indentation level to match Home Assistant documentation standards.
119-119
: Add context for security key prompt
This line mentions “depending on your Home Assistant version” but doesn’t specify which. Clarify which versions prompt for manual entry vs. auto-generation of keys to guide the user.
1140-1141
: Remove extraneous blank line
A change here appears to insert a blank line with no content. Confirm if this blank line is intentional; otherwise, consider removing it to avoid unnecessary whitespace.
1150-1161
: Consolidate removal steps for readability
Steps 2–4 could be nested under a single parent step or reflowed to reduce vertical length. Consider combining related actions (e.g., uninstall add-on and delete data) into sub-bullets.source/_integrations/tts.markdown (3)
108-108
: Use lowercase boolean literals for YAML consistency
YAML booleans are conventionallytrue
/false
. Consider updating the text to reflect that.- setting it to `True` to enable it (default), or `False` to disable it + setting it to `true` to enable it (default), or `false` to disable it
141-141
: Refine phrasing for REST API parameter support
This line can be made more concise and active.- Additional parameters `cache`, `language` and `options` are supported, as JSON attributes, as described for `speak` action. + Additional JSON parameters `cache`, `language`, and `options` are supported as described for the `tts.speak` action.
197-201
: Clarify troubleshooting example wording
Minor punctuation tweak will improve readability.- For example, some Google Cast devices skip initial audio part when the audio is sampled at 22050Hz, and to fix the problem it is required to set the `preferred_sample_rate` setting in the `options` option to `44100`. + For example, some Google Cast devices skip the initial audio segment at a 22050 Hz sample rate. To resolve this, set `preferred_sample_rate: 44100` in the `options` block.Gemfile (1)
6-6
: Suggest alphabetizing development gemsThe bumped gems in the
:development
group aren’t in alphabetical order, which makes scans harder when adding or updating dependencies. Please reorder entries in this section for consistency.Also applies to: 13-15
source/_posts/2024-12-04-release-202412.markdown (1)
274-275
: Missing article in Nord Pool descriptionConsider updating to “Pulls in the latest energy prices…” to improve readability.
source/_includes/common-tasks/update.md (1)
26-28
: Grammar: use “back up” as verbChange “If you want to backup the system first” to “If you want to back up the system first”.
source/common-tasks/os.markdown (5)
34-36
: Clarify add-on update scope
The note “Each of these components needs to be updated separately” is helpful but could be moved immediately under the list for better discoverability, ensuring users don’t miss it.
44-47
: Use “Back up” for the CLI verb
In “Prerequisites”, change “Backup your installation” to “Back up your installation” when used as a verb to align with style guidelines.
58-62
: Elevate Troubleshooting into its own subsection
The inline troubleshooting bullets are valuable but could be clearer if presented under a#### Troubleshooting
heading for better structure and scannability.
64-66
: Maintain consistent numbered lists
Steps 3–6 should follow the same indentation and formatting as steps 1–2. Consider grouping them into a single numbered list or clearly nesting them as sub-steps.
79-104
: Label Advanced content as optional
Consider renaming the collapsible section to{% details "Optional: Advanced …" %}
to signal that these boot-slot instructions are for advanced users only.source/_posts/2025-06-11-release-20256.markdown (4)
20-20
: Correct “half way” to “halfway”
In formal prose, “halfway” is one word.
166-166
: Remove colon before “including”
Avoid a colon before “including”; rewrite to “… improvements by [@joostlek], including support for …” for smoother flow.
148-151
: Consolidate duplicate link definitions
There are repeated link definitions for author handles (e.g.,@starkillerOG
,@chemelli74
,@astrandb
,@bieniu
,@zerzhang
). Merge them at the bottom to eliminate redundancy.Also applies to: 189-193
392-392
: Omit trailing punctuation in headings
Per Markdown style, remove the exclamation mark from the “Need help? Join the community!” heading.source/_integrations/govee_ble.markdown (1)
35-35
: Link to Bluetooth integration docs for active scans
The “(Active scans required)” note is helpful, but users may not know how to enable active scanning. Consider pointing to the Bluetooth integration’s active-scan instructions for clarity.Example diff:
- - [H5075 Bluetooth Hygrometer Thermometer](https://us.govee.com/collections/thermo-hydrometer/products/govee-bluetooth-hygrometer-thermometer-h5075) (Active scans required) + - [H5075 Bluetooth Hygrometer Thermometer](https://us.govee.com/collections/thermo-hydrometer/products/govee-bluetooth-hygrometer-thermometer-h5075) (Active scans required – see [Bluetooth integration docs](/integrations/bluetooth#active-scanning) for setup)source/_integrations/nextcloud.markdown (2)
45-62
: Refine wording: Use “Number of” for countable entitiesFor countable metrics (users, files, shares, storages, etc.), replace “Amount of” with “Number of” and ensure proper pluralization (e.g., change “Amount of user” → “Number of users”).
-| Amount of active users last 5 minutes | ✅ | +| Number of active users last 5 minutes | ✅ | ...
43-131
: Group sensors into logical categories for readabilityThe single long table could be hard to navigate. Consider breaking it into subsections (e.g. Active Users, Shares, Storage, Cache, PHP, System, OPCache) with subheadings or separate tables to improve clarity and maintainability.
source/_integrations/airgradient.markdown (5)
30-35
: Enhance use cases for completeness.The current bullets focus on monitoring and basic alerts. Consider adding scenarios for other metrics (e.g., TVOC, NOx) to illustrate full integration potential.
Example additions:
- Alert when TVOC exceeds safe levels.
- Notify when NOx readings spike unexpectedly.
36-41
: Link to device documentation.To improve discoverability, add direct hyperlinks to each listed AirGradient model pointing to its product page or official docs.
53-56
: Rephrase for conciseness.“complete overview” can be shortened to “complete list” for brevity:
- Below is a complete overview of the entities this integration provides. + Below is a complete list of entities provided by this integration.
116-120
: Merge split sentence for readability.The second sentence is broken across two lines; combine it:
- This integration does not provide additional actions. All actions available - for this integration are provided by their respective entities. + This integration does not provide additional actions. All actions available for this integration are provided by their respective entities.
121-126
: Avoid breaking “Home Assistant” across lines.Reflow so “Home Assistant automations” remains unbroken:
- The following examples show how to use the AirGradient integration in Home - Assistant automations. These examples are just a starting point,... + The following examples show how to use the AirGradient integration in Home Assistant automations. These examples are just a starting point,...source/_integrations/tesla_fleet.markdown (6)
119-119
: Use correct verb form
"Backup your keys" should be "Back up your keys" when used as a verb.
162-162
: Use correct verb form
"Backup both key files" should be "Back up both key files" for the verb usage.
172-172
: Consistency in terminology
Consider standardizing "multi-factor" vs. "multifactor" according to the style guide.
251-251
: Add missing comma
Insert a comma after “characters” in “If your Client Secret contains!
or$
characters, you may need to escape them depending on your terminal.”
303-303
: Remove duplicate verb
The phrase “The integration polls each vehicle each…” repeats “each.” Consider “polls each vehicle every 10 minutes.”
319-319
: Correct past participle
Change “setup correctly” to “set up correctly” in this context.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Cache: Disabled due to data retention organization setting
Knowledge Base: Disabled due to data retention organization setting
⛔ Files ignored due to path filters (10)
Gemfile.lock
is excluded by!**/*.lock
package-lock.json
is excluded by!**/package-lock.json
source/images/assist/esp32-atom_silence_detection_01.png
is excluded by!**/*.png
source/images/blog/2025-06/areas-dashboard.png
is excluded by!**/*.png
source/images/blog/2025-06/bluetooth-connection-graph.png
is excluded by!**/*.png
source/images/blog/2025-06/group-media-players-from-media-player-card.png
is excluded by!**/*.png
source/images/blog/2025-06/new-device-picker.png
is excluded by!**/*.png
source/images/blog/2025-06/reset-entity-id.png
is excluded by!**/*.png
source/images/blog/2025-06/sidebar-customization.png
is excluded by!**/*.png
source/images/blog/2025-06/social.png
is excluded by!**/*.png
📒 Files selected for processing (97)
.github/workflows/test.yml
(1 hunks)CODEOWNERS
(16 hunks)Gemfile
(1 hunks)_config.yml
(1 hunks)package.json
(1 hunks)source/_docs/authentication/providers.markdown
(1 hunks)source/_docs/blueprint/schema.markdown
(9 hunks)source/_docs/configuration/templating.markdown
(2 hunks)source/_docs/z-wave/controllers.markdown
(1 hunks)source/_includes/asides/component_navigation.html
(1 hunks)source/_includes/common-tasks/update.md
(3 hunks)source/_includes/custom/news.html
(1 hunks)source/_includes/installation/container.md
(1 hunks)source/_integrations/adax.markdown
(2 hunks)source/_integrations/airgradient.markdown
(4 hunks)source/_integrations/airthings.markdown
(1 hunks)source/_integrations/alexa_devices.markdown
(3 hunks)source/_integrations/balay.markdown
(1 hunks)source/_integrations/blue_current.markdown
(1 hunks)source/_integrations/bluesound.markdown
(1 hunks)source/_integrations/bosch_alarm.markdown
(1 hunks)source/_integrations/comelit.markdown
(1 hunks)source/_integrations/constructa.markdown
(1 hunks)source/_integrations/eafm.markdown
(1 hunks)source/_integrations/eheimdigital.markdown
(1 hunks)source/_integrations/esphome.markdown
(7 hunks)source/_integrations/eve.markdown
(1 hunks)source/_integrations/ezviz.markdown
(0 hunks)source/_integrations/gaggenau.markdown
(1 hunks)source/_integrations/govee_ble.markdown
(2 hunks)source/_integrations/growatt_server.markdown
(1 hunks)source/_integrations/home_connect.markdown
(2 hunks)source/_integrations/homee.markdown
(1 hunks)source/_integrations/immich.markdown
(1 hunks)source/_integrations/ipp.markdown
(1 hunks)source/_integrations/jewish_calendar.markdown
(1 hunks)source/_integrations/knocki.markdown
(1 hunks)source/_integrations/knx.markdown
(9 hunks)source/_integrations/lcn.markdown
(1 hunks)source/_integrations/linkplay.markdown
(1 hunks)source/_integrations/locative.markdown
(1 hunks)source/_integrations/matter.markdown
(1 hunks)source/_integrations/met_eireann.markdown
(1 hunks)source/_integrations/motionmount.markdown
(1 hunks)source/_integrations/mqtt.markdown
(4 hunks)source/_integrations/neff.markdown
(1 hunks)source/_integrations/nextcloud.markdown
(1 hunks)source/_integrations/octoprint.markdown
(2 hunks)source/_integrations/openweathermap.markdown
(1 hunks)source/_integrations/paperless_ngx.markdown
(1 hunks)source/_integrations/pitsos.markdown
(1 hunks)source/_integrations/pooldose.markdown
(1 hunks)source/_integrations/probe_plus.markdown
(1 hunks)source/_integrations/profilo.markdown
(1 hunks)source/_integrations/recorder.markdown
(1 hunks)source/_integrations/rehlko.markdown
(1 hunks)source/_integrations/remote_calendar.markdown
(1 hunks)source/_integrations/russound_rio.markdown
(1 hunks)source/_integrations/russound_rnet.markdown
(0 hunks)source/_integrations/scrape.markdown
(1 hunks)source/_integrations/shelly.markdown
(1 hunks)source/_integrations/shelly_zwave.markdown
(1 hunks)source/_integrations/siemens.markdown
(1 hunks)source/_integrations/spotify.markdown
(4 hunks)source/_integrations/sql.markdown
(1 hunks)source/_integrations/squeezebox.markdown
(1 hunks)source/_integrations/sun.markdown
(1 hunks)source/_integrations/switchbot.markdown
(3 hunks)source/_integrations/switchbot_cloud.markdown
(1 hunks)source/_integrations/tasmota.markdown
(1 hunks)source/_integrations/template.markdown
(16 hunks)source/_integrations/tesla_fleet.markdown
(2 hunks)source/_integrations/thermador.markdown
(1 hunks)source/_integrations/tts.markdown
(4 hunks)source/_integrations/voip.markdown
(1 hunks)source/_integrations/zimi.markdown
(2 hunks)source/_integrations/zwave_js.markdown
(7 hunks)source/_posts/2023-01-04-release-20231.markdown
(1 hunks)source/_posts/2023-01-26-year-of-the-voice-chapter-1.markdown
(1 hunks)source/_posts/2023-02-01-release-20232.markdown
(1 hunks)source/_posts/2023-04-27-year-of-the-voice-chapter-2.markdown
(1 hunks)source/_posts/2023-07-20-year-of-the-voice-chapter-3.markdown
(1 hunks)source/_posts/2023-10-12-year-of-the-voice-chapter-4-wakewords.markdown
(1 hunks)source/_posts/2024-12-04-release-202412.markdown
(5 hunks)source/_posts/2024-12-19-voice-chapter-8-assist-in-the-home.markdown
(1 hunks)source/_posts/2025-02-05-release-20252.markdown
(1 hunks)source/_posts/2025-06-11-release-20256.markdown
(1 hunks)source/changelogs/core-2025.6.markdown
(1 hunks)source/common-tasks/general.markdown
(1 hunks)source/common-tasks/os.markdown
(4 hunks)source/green/index.html
(1 hunks)source/installation/troubleshooting.markdown
(1 hunks)source/more-info/unsupported/lxc.markdown
(1 hunks)source/voice-pe/index.html
(2 hunks)source/voice-pe/styles.css
(4 hunks)source/voice_control/index.markdown
(2 hunks)source/voice_control/thirteen-usd-voice-remote.markdown
(3 hunks)
💤 Files with no reviewable changes (2)
- source/_integrations/ezviz.markdown
- source/_integrations/russound_rnet.markdown
✅ Files skipped from review due to trivial changes (63)
- source/_docs/z-wave/controllers.markdown
- source/_includes/installation/container.md
- source/_integrations/switchbot_cloud.markdown
- package.json
- source/_integrations/profilo.markdown
- source/_integrations/eheimdigital.markdown
- source/_integrations/growatt_server.markdown
- source/_integrations/siemens.markdown
- source/_posts/2024-12-19-voice-chapter-8-assist-in-the-home.markdown
- source/_integrations/remote_calendar.markdown
- source/_integrations/tasmota.markdown
- source/_integrations/constructa.markdown
- source/_integrations/homee.markdown
- source/_integrations/balay.markdown
- source/_posts/2023-07-20-year-of-the-voice-chapter-3.markdown
- source/_integrations/shelly.markdown
- source/_integrations/voip.markdown
- source/_integrations/comelit.markdown
- source/_integrations/neff.markdown
- source/_integrations/sun.markdown
- source/_posts/2023-10-12-year-of-the-voice-chapter-4-wakewords.markdown
- source/_posts/2023-01-26-year-of-the-voice-chapter-1.markdown
- _config.yml
- source/installation/troubleshooting.markdown
- source/_posts/2023-04-27-year-of-the-voice-chapter-2.markdown
- source/_integrations/openweathermap.markdown
- source/_integrations/bluesound.markdown
- source/green/index.html
- source/_integrations/probe_plus.markdown
- source/_integrations/ipp.markdown
- source/_integrations/bosch_alarm.markdown
- source/_integrations/mqtt.markdown
- source/_integrations/airthings.markdown
- source/voice_control/index.markdown
- source/_integrations/russound_rio.markdown
- source/voice-pe/index.html
- source/_integrations/met_eireann.markdown
- source/_integrations/thermador.markdown
- source/_integrations/eve.markdown
- source/_includes/asides/component_navigation.html
- source/_integrations/sql.markdown
- source/_integrations/jewish_calendar.markdown
- source/_integrations/gaggenau.markdown
- source/_integrations/knocki.markdown
- source/_integrations/rehlko.markdown
- source/_posts/2023-02-01-release-20232.markdown
- source/_integrations/switchbot.markdown
- source/_posts/2025-02-05-release-20252.markdown
- source/common-tasks/general.markdown
- source/_integrations/paperless_ngx.markdown
- source/_integrations/lcn.markdown
- source/_integrations/scrape.markdown
- source/_integrations/zimi.markdown
- source/more-info/unsupported/lxc.markdown
- source/_integrations/octoprint.markdown
- source/voice-pe/styles.css
- source/_integrations/immich.markdown
- source/_integrations/squeezebox.markdown
- source/_integrations/matter.markdown
- CODEOWNERS
- source/_integrations/pitsos.markdown
- source/_docs/configuration/templating.markdown
- source/_integrations/recorder.markdown
🚧 Files skipped from review as they are similar to previous changes (1)
- source/_integrations/pooldose.markdown
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
source/_includes/common-tasks/update.md
1-1: First line in a file should be a top-level heading
null
(MD041, first-line-heading, first-line-h1)
source/_integrations/airgradient.markdown
155-155: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
source/_posts/2025-06-11-release-20256.markdown
57-57: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
57-57: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
148-148: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@starkillerOG"
(MD053, link-image-reference-definitions)
193-193: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@chemelli74"
(MD053, link-image-reference-definitions)
242-242: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@astrandb"
(MD053, link-image-reference-definitions)
243-243: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@bieniu"
(MD053, link-image-reference-definitions)
244-244: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@zerzhang"
(MD053, link-image-reference-definitions)
245-245: Link and image reference definitions should be needed
Duplicate link or image reference definition: "miele"
(MD053, link-image-reference-definitions)
246-246: Link and image reference definitions should be needed
Duplicate link or image reference definition: "shelly"
(MD053, link-image-reference-definitions)
247-247: Link and image reference definitions should be needed
Duplicate link or image reference definition: "switchbot"
(MD053, link-image-reference-definitions)
291-291: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@mib1185"
(MD053, link-image-reference-definitions)
297-297: Link and image reference definitions should be needed
Unused link or image reference definition: "template entities"
(MD053, link-image-reference-definitions)
360-360: Link and image reference definitions should be needed
Unused link or image reference definition: "#145650"
(MD053, link-image-reference-definitions)
380-380: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@bdraco"
(MD053, link-image-reference-definitions)
382-382: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@chemelli74"
(MD053, link-image-reference-definitions)
384-384: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@frenck"
(MD053, link-image-reference-definitions)
391-391: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
392-392: Trailing punctuation in heading
Punctuation: '!'
(MD026, no-trailing-punctuation)
source/_integrations/tts.markdown
201-201: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
source/_integrations/tesla_fleet.markdown
59-59: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
149-149: Ordered list item prefix
Expected: 1; Actual: 5; Style: 1/2/3
(MD029, ol-prefix)
156-156: Ordered list item prefix
Expected: 2; Actual: 6; Style: 1/2/3
(MD029, ol-prefix)
162-162: Ordered list item prefix
Expected: 3; Actual: 7; Style: 1/2/3
(MD029, ol-prefix)
236-236: Multiple consecutive blank lines
Expected: 1; Actual: 2
(MD012, no-multiple-blanks)
262-262: Ordered list item prefix
Expected: 1; Actual: 5; Style: 1/2/3
(MD029, ol-prefix)
273-273: Ordered list item prefix
Expected: 2; Actual: 6; Style: 1/2/3
(MD029, ol-prefix)
source/_integrations/template.markdown
264-264: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
264-264: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
268-268: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
268-268: Emphasis style
Expected: underscore; Actual: asterisk
(MD049, emphasis-style)
source/changelogs/core-2025.6.markdown
717-717: Link and image reference definitions should be needed
Unused link or image reference definition: "#145650"
(MD053, link-image-reference-definitions)
1436-1436: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@Djelibeybi"
(MD053, link-image-reference-definitions)
1471-1471: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@allenporter"
(MD053, link-image-reference-definitions)
1477-1477: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@bdraco"
(MD053, link-image-reference-definitions)
1483-1483: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@cdce8p"
(MD053, link-image-reference-definitions)
1485-1485: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@chemelli74"
(MD053, link-image-reference-definitions)
1492-1492: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@epenet"
(MD053, link-image-reference-definitions)
1496-1496: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@frenck"
(MD053, link-image-reference-definitions)
1530-1530: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@silamon"
(MD053, link-image-reference-definitions)
1538-1538: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@tronikos"
(MD053, link-image-reference-definitions)
1539-1539: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@tsvi"
(MD053, link-image-reference-definitions)
source/_integrations/eafm.markdown
17-17: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
source/_integrations/esphome.markdown
262-262: Files should end with a single newline character
null
(MD047, single-trailing-newline)
source/_integrations/linkplay.markdown
25-25: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
29-29: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
30-30: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
36-36: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
45-45: Trailing spaces
Expected: 0 or
10000
2; Actual: 1
(MD009, no-trailing-spaces)
48-48: Trailing spaces
Expected: 0 or 2; Actual: 1
(MD009, no-trailing-spaces)
53-53: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe
(MD055, table-pipe-style)
54-54: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe
(MD055, table-pipe-style)
source/_integrations/locative.markdown
20-20: Images should have alternate text (alt text)
null
(MD045, no-alt-text)
🪛 LanguageTool
source/_includes/common-tasks/update.md
[grammar] ~27-~27: The word “backup” is a noun. The verb is spelled with a space.
Context: ...want to update. 5. If you want to backup the system first (recommended), enable ...
(NOUN_VERB_CONFUSION)
source/voice_control/thirteen-usd-voice-remote.markdown
[grammar] ~73-~73: Two determiners in a row. Choose either “the” or “a”.
Context: ...sp32-atom-flash-07.png) 6. This starts the a wizard to customize the your voice assi...
(DT_DT)
[grammar] ~73-~73: A determiner cannot be combined with a possessive pronoun. Did you mean simply “the” or “your”?
Context: .... This starts the a wizard to customize the your voice assistant. - Follow the wizard...
(A_MY)
source/common-tasks/os.markdown
[grammar] ~44-~44: The word ‘Backup’ is a noun. Do you mean the verb “Back up”?
Context: ...ard-compatible. #### Prerequisites - [Backup your installation](/common-tasks/genera...
(SENT_START_BACKUP)
[style] ~45-~45: This phrase is redundant. Consider using “outside”.
Context: ...sks/general/#defining-backup-locations) outside of the device where Home Assistant is inst...
(OUTSIDE_OF)
[uncategorized] ~59-~59: Consider adding a hyphen.
Context: ...ee that notification: - In the top right corner, select the three dots {% icon "...
(TOP_LEFT_CORNER)
source/_integrations/airgradient.markdown
[style] ~155-~155: As a shorter alternative for ‘able to’, consider using “can not”.
Context: ...lowing limitations: - The update entity is not able to install updates automatically. You will...
(BE_ABLE_TO)
source/_posts/2025-06-11-release-20256.markdown
[grammar] ~20-~20: The adjective or adverb “halfway” is spelled as one word.
Context: ...me Assistant 2025.6! 🎉 We are already half way through 2025, can you believe it? I per...
(WAY_COMPOUNDS)
[style] ~20-~20: This phrase is often redundant. Consider writing “I” unless you want to emphasize that you and not someone else will do something. Then, commas might be missing.
Context: ...f way through 2025, can you believe it? I personally can't, as it feels like we just started...
(I_MYSELF)
[uncategorized] ~24-~24: Possible missing comma found.
Context: ...ith quality-of-life improvements! Last release my favorite feature was the new entity ...
(AI_HYDRA_LEO_MISSING_COMMA)
[style] ~121-~121: ‘in control of’ might be wordy. Consider a shorter alternative.
Context: ...and video backup solution that puts you in control of your personal media. - **[Paperless-ngx...
(EN_WORDINESS_PREMIUM_IN_CONTROL_OF)
[grammar] ~144-~144: In formal contexts, “These” is sufficient.
Context: ... integrations to help with findability. These ones are new: - [Kaiser Nienhaus], prov...
(THESE_ONES)
[misspelling] ~164-~164: This word is normally spelled as one.
Context: ...lly] integration to use sub-devices for multi-channel devices. A notable change for complex...
(EN_COMPOUNDS_MULTI_CHANNEL)
[typographical] ~166-~166: Do not use a colon (:) before a series that is introduced by a preposition (‘including’). Remove the colon or add a noun or a noun phrase after the preposition.
Context: ...e round of improvements by [@joostlek], including: support for cooktops, hobs, water hea...
(RP_COLON)
[style] ~260-~260: Consider an alternative to strengthen your wording.
Context: ...ther noteworthy changes There are many more improvements in this release; here are some of the o...
(IMPROVEMENTS_REFINEMENTS)
[style] ~313-~313: Qualifiers like “somewhat” can weaken your message and make your writing sound uncertain. Consider removing it or choosing an alternative to sound more confident.
Context: ... they are in. However, this feature was somewhat limited, as it could only be used as ac...
(SOMEWHAT)
[uncategorized] ~323-~323: Possible missing comma found.
Context: ...ll your media players. Anyhow, amazing contribution Alex! 👏 [@AlexGustafsson]: https://gi...
(AI_HYDRA_LEO_MISSING_COMMA)
[style] ~355-~355: Consider using a different verb for a more formal wording.
Context: ... revert of update to remote calendar to fix issue where calendar does not update ([...
(FIX_RESOLVE)
[style] ~401-~401: Using many exclamation marks might seem excessive (in this case: 52 exclamation marks for a text that’s 20831 characters long)
Context: ...-assistant/core/issues), to get it fixed! Or, check our help page for gu...
(EN_EXCESSIVE_EXCLAMATION)
[style] ~410-~410: Consider shortening or rephrasing this to strengthen your wording.
Context: ...atible changes We do our best to avoid making changes to existing functionality that might unexp...
(MAKE_CHANGES)
source/_integrations/tts.markdown
[uncategorized] ~108-~108: This adjective is normally spelled with a hyphen (British English) or as one word (American English).
Context: ... (default), or False
to disable it. A long time cache will be located on the file syste...
(TIME_HYPHEN)
[uncategorized] ~118-~118: Loose punctuation mark.
Context: ...all optional, are: - preferred_format
: Set the audio format. When not supporte...
(UNLIKELY_OPENING_PUNCTUATION)
[uncategorized] ~119-~119: Loose punctuation mark.
Context: ... output files. - preferred_sample_rate
: Set the sample rate. When not supported...
(UNLIKELY_OPENING_PUNCTUATION)
[uncategorized] ~120-~120: Loose punctuation mark.
Context: ...mpeg tool. - preferred_sample_channels
: Set the number of audio channels. When ...
(UNLIKELY_OPENING_PUNCTUATION)
[uncategorized] ~121-~121: Loose punctuation mark.
Context: ... FFmpeg tool. - preferred_sample_bytes
: Set the audio bit sampling. When not su...
(UNLIKELY_OPENING_PUNCTUATION)
[uncategorized] ~123-~123: Possible missing comma found.
Context: ...ored). Example to produce an MP3 audio at 22050Hz: ```yaml action: tts.speak tar...
(AI_HYDRA_LEO_MISSING_COMMA)
[typographical] ~199-~199: It appears that a comma is missing.
Context: ... format is not fully supported. In such cases it is required to experiment with diffe...
(DURING_THAT_TIME_COMMA)
[uncategorized] ~201-~201: You might be missing the article “the” here.
Context: ... example, some Google Cast devices skip initial audio part when the audio is sampled at...
(AI_EN_LECTOR_MISSING_DETERMINER_THE)
[style] ~201-~201: Consider using a different verb for a more formal wording.
Context: ...the audio is sampled at 22050Hz, and to fix the problem it is required to set the `...
(FIX_RESOLVE)
source/_integrations/tesla_fleet.markdown
[grammar] ~119-~119: The word ‘Backup’ is a noun. Do you mean the verb “Back up”?
Context: ...ecific/com.tesla.3p.public-key.pem` 4. Backup your keys in a safe location for future...
(SENT_START_BACKUP)
[grammar] ~162-~162: The word ‘Backup’ is a noun. Do you mean the verb “Back up”?
Context: ...ey /config/tesla_fleet.key ``` 7. Backup both key files in a safe location for...
(SENT_START_BACKUP)
[misspelling] ~172-~172: This word is normally spelled as one.
Context: ...- Verify your email address - Enable multi-factor authentication (optional) 2. Create a ...
(EN_COMPOUNDS_MULTI_FACTOR)
[uncategorized] ~251-~251: Possible missing comma found.
Context: ... $
characters, you may need to escape them depending on your terminal. {% endno...
(AI_HYDRA_LEO_MISSING_COMMA)
[grammar] ~303-~303: You’ve repeated a verb. Did you mean to only write one of them?
Context: ...tes The {% term integration %} {% term polling polls %} each vehicle every 10 minutes while ...
(REPEATED_VERBS)
[grammar] ~319-~319: Make sure that the noun ‘setup’ is correct. Did you mean the past participle “set up”?
Context: ...is is required and the key has not been setup correctly. The {% term integration %} ...
(BE_VB_OR_NN)
[uncategorized] ~487-~487: Use a comma before ‘and’ if it connects two independent clauses (unless they are closely connected and short).
Context: ...lic key is accessible at the correct URL and you've completed all registration steps...
(COMMA_COMPOUND_SENTENCE)
source/_integrations/template.markdown
[uncategorized] ~151-~151: Possible missing comma found.
Context: ...rs to update the entities. Optional. If omitted will update based on referenced entitie...
(AI_HYDRA_LEO_MISSING_COMMA)
[uncategorized] ~159-~159: This expression is usually spelled with a hyphen.
Context: ...e configuration is loaded or reloaded. Trigger based template entities resolve variables bet...
(BASED_HYPHEN)
[misspelling] ~173-~173: This word is normally spelled with a hyphen.
Context: ... Note that the string comparison is not case sensitive; "TrUe"
and "yEs"
are allowed. ...
(EN_COMPOUNDS_CASE_SENSITIVE)
[uncategorized] ~190-~190: Possible missing comma found.
Context: ...with the unique ID of the configuration block if available. This allows changing the ...
(AI_HYDRA_LEO_MISSING_COMMA)
[style] ~277-~277: In American English, abbreviations like “etc.” require a period.
Context: ...nd (Open
/Closed
, Detected
/Clear
etc) depends on the sensor's device_class v...
(ETC_PERIOD)
[uncategorized] ~311-~311: Possible missing comma found.
Context: ...pen). If the template produces a None
value the current position will be set to `un...
(AI_HYDRA_LEO_MISSING_COMMA)
[uncategorized] ~323-~323: Possible missing comma found.
Context: ...late. If the template produces a None
value the state will be set to unknown
. ...
(AI_HYDRA_LEO_MISSING_COMMA)
[grammar] ~609-~609: Is an article like ‘a’ or ‘an’ missing?
Context: ... describes when the state of the sensor was last reset. Must render to a valid `dat...
(BE_NN)
source/_docs/blueprint/schema.markdown
[grammar] ~19-~19: It seems that the correct verb form here is “support”.
Context: ...int schema Blueprint schemas currently supports three types of schema depending on its ...
(AGREEMENT_SENT_START_2)
[uncategorized] ~54-~54: Possible missing comma found.
Context: ...ecommended. Describe what the blueprint does and describe the inputs the blueprint r...
(AI_HYDRA_LEO_MISSING_COMMA)
source/_integrations/esphome.markdown
[misspelling] ~120-~120: This word is normally spelled as one.
Context: ...Protocol**: ESPHome uses a lightweight, bi-directional protocol over TCP, optimized for microc...
(EN_COMPOUNDS_BI_DIRECTIONAL)
source/_integrations/linkplay.markdown
[grammar] ~48-~48: Did you mean “saving”? Or maybe you should add a pronoun? In active voice, ‘allow’ + ‘to’ takes an object, usually a pronoun.
Context: ... Companion apps, such as 4stream, allow to save music presets (for example, Spotify pla...
(ALLOW_TO)
source/_integrations/locative.markdown
[uncategorized] ~11-~11: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...ps://www.locative.app/). Locative is an open source app for [iOS](https://apps.apple.com/us...
(EN_COMPOUND_ADJECTIVE_INTERNAL)
[style] ~17-~17: As a shorter alternative for ‘able to’, consider using “can not”.
Context: ... that URL, updating Home Assistant. You are not able to specify a device name in Locative. Inst...
(BE_ABLE_TO)
[uncategorized] ~17-~17: This verb may not be in the correct tense. Consider changing the tense to fit the context better.
Context: ...have created on its first GET
. If you had been or are using Owntracks as well, yo...
(AI_EN_LECTOR_REPLACEMENT_VERB_TENSE)
source/_integrations/motionmount.markdown
[grammar] ~51-~51: You’ve repeated a verb. Did you mean to only write one of them?
Context: ...ets. Changes to the presets are {% term polling polled %}, by default every 60 seconds.
...
(REPEATED_VERBS)
source/_integrations/nextcloud.markdown
[uncategorized] ~48-~48: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ...mount of active users last hour | ✅ | | Amount of files | ✅ | | Amount of group shares...
(AMOUNTOF_TO_NUMBEROF)
[uncategorized] ~56-~56: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ...s | ✅ | | Amount of room shares | ✅ | | Amount of shares | ✅ | | Amount of shares rece...
(AMOUNTOF_TO_NUMBEROF)
[uncategorized] ~57-~57: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ...shares | ✅ | | Amount of shares | ✅ | | Amount of shares received | ✅ | | Amount of sh...
(AMOUNTOF_TO_NUMBEROF)
[uncategorized] ~58-~58: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ...✅ | | Amount of shares received | ✅ | | Amount of shares sent | ✅ | | Amount of storag...
(AMOUNTOF_TO_NUMBEROF)
[uncategorized] ~59-~59: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ...d | ✅ | | Amount of shares sent | ✅ | | Amount of storages | ✅ | | Amount of storages ...
(AMOUNTOF_TO_NUMBEROF)
[uncategorized] ~60-~60: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ...sent | ✅ | | Amount of storages | ✅ | | Amount of storages at home | ✅ | | Amount of u...
(AMOUNTOF_TO_NUMBEROF)
source/_integrations/spotify.markdown
[grammar] ~106-~106: You’ve repeated a verb. Did you mean to only write one of them?
Context: ...# Data updates The integration {% term polling polls %} at least every 30 seconds. If the tr...
(REPEATED_VERBS)
source/_posts/2023-01-04-release-20231.markdown
[style] ~86-~86: Try using a synonym here to strengthen your writing.
Context: ...ohf-voice.github.io/intents/). The page gives insight into the parts we need help wit...
(GIVE_PROVIDE)
source/_posts/2024-12-04-release-202412.markdown
[uncategorized] ~275-~275: You might be missing the article “the” here.
Context: ...*, added by [@gjohansson-ST] Pulls in latest energy prices from the Nord Pool energy...
(AI_EN_LECTOR_MISSING_DETERMINER_THE)
🪛 Gitleaks (8.26.0)
source/_integrations/tesla_fleet.markdown
265-267: Discovered a potential authorization token provided in a curl command header, which could compromise the curl accessed resource.
(curl-auth-header)
🪛 RuboCop (1.75.5)
Gemfile
[convention] 7-7: Gems should be sorted in an alphabetical order within their section of the Gemfile. Gem jekyll
should appear before rake
.
(Bundler/OrderedGems)
[convention] 8-8: Gems should be sorted in an alphabetical order within their section of the Gemfile. Gem compass
should appear before jekyll
.
(Bundler/OrderedGems)
[convention] 14-14: Gems should be sorted in an alphabetical order within their section of the Gemfile. Gem rubocop
should appear before sass-embedded
.
(Bundler/OrderedGems)
🪛 HTMLHint (1.5.0)
source/_includes/custom/news.html
[error] 45-45: Special characters must be escaped : [ > ].
(spec-char-escape)
⏰ Context from checks skipped due to timeout of 90000ms (3)
- GitHub Check: Redirect rules - home-assistant-docs
- GitHub Check: Header rules - home-assistant-docs
- GitHub Check: Pages changed - home-assistant-docs
🔇 Additional comments (74)
source/_integrations/alexa_devices.markdown (5)
7-7
: Add “Switch” toha_category
.Including
- Switch
aligns with the new entity type and matches the capitalization of other categories.
13-13
: Updateha_iot_class
to Cloud Polling.Since Alexa Devices relies on Amazon’s cloud API, switching from Local to Cloud Polling is correct.
17-17
: Includeswitch
inha_platforms
.Adding the
switch
platform enables the new “Do not disturb” entity.
36-36
: Clarify device list entry.Changing to Amazon Fire Tablet ensures consistency with other Amazon device names.
118-118
: Document the new Switch entity.Listing “Switch – Do not disturb” under supported functionality completes the platform additions.
source/_integrations/motionmount.markdown (1)
1-21
: Front matter formatting looks correct.
The YAML metadata (title, description, ha_* keys) is well-formed and follows Home Assistant documentation standards.source/_integrations/spotify.markdown (4)
32-32
: Ensure consistent spacing before headings.The blank line before the “### Create a Spotify application” heading improves readability and aligns with Markdown style guidelines.
48-48
: Nest images correctly under list items.Indenting this screenshot by four spaces ties it to step 3 and maintains list hierarchy for the visual aid.
52-54
: Standardize bullet indentation for sub-items.The added hyphen and indentation for the “Redirect URI” bullet now match nested-list conventions, making the instructions clearer.
106-106
: Use the terminology macro for polling.Switching to
{% term polling polls %}
ensures consistent use of the polling term across the documentation.source/_integrations/eafm.markdown (2)
1-1
: Standardize frontmatter delimiters
Frontmatter start now uses three hyphens to match Jekyll conventions and other docs.
11-11
: Standardize frontmatter delimiters
Frontmatter end now uses three hyphens for consistency.source/_integrations/locative.markdown (2)
1-1
: Standardize frontmatter delimiters
Frontmatter start updated to three hyphens to align with other integration docs.
9-9
: Standardize frontmatter delimiters
Frontmatter end updated to three hyphens for consistency.source/_integrations/linkplay.markdown (2)
1-1
: Standardize frontmatter delimiters
Frontmatter start updated to three hyphens, matching Jekyll standards and other docs.
17-17
: Standardize frontmatter delimiters
Frontmatter end updated to three hyphens for consistency.source/_integrations/esphome.markdown (7)
52-52
: Standardize term macro usage
Replaced raw "ESPHome integration" with bold product name and{% term integration %}
macro for consistency.
56-57
: Apply sentence case to headings
Updated the "Key features" heading and inserted a blank line before it to align with the style guide.
112-112
: Standardize term macro in supported devices
Used{% term integration %}
to refer to the integration and adjusted phrasing to sentence case.
118-118
: Use sentence-case for subheading
Changed "Additional technical details" to sentence case, consistent with other headings.
183-183
: Normalize logs subheading to sentence case
Updated "Viewing live logs" to sentence case, matching documentation conventions.
233-233
: Sentence-case heading for requirements
Adjusted "Requirements for name conflict resolution" to sentence case per style guide.
252-252
: Header sentence case for limitations
Changed "Known limitations" to sentence case and added preceding blank line for clarity.source/_docs/blueprint/schema.markdown (6)
29-30
: Looks good
Clear explanation of minimum required metadata and basic form.
40-40
: Looks good
Description of domain-dependent schema is accurate and concise.
96-96
: Looks good
Input type and selector guidance is clear and matches standards.
129-129
: Looks good
Explanation of the!input
tag usage is precise.
197-197
: Looks good
The example for input sections is clear and well-formatted.
235-237
: Looks good
The built-in blueprint example clearly demonstrates schema usage followed by domain schema.source/_integrations/zwave_js.markdown (2)
170-179
: Review migration section structure
The new “Migrating a Z-Wave network to a new controller” section is comprehensive. Please verify that heading levels and indentations align with adjacent sections, and that the prerequisites list follows the same bullet style.
1142-1149
: Validate removal section alignment
The “Removing Z-Wave JS from Home Assistant” header and initial steps look correct, but the sub-bullets under step 1 vary in formatting. Ensure they mirror the style used elsewhere (consistent dashes and indentation).source/_integrations/shelly_zwave.markdown (1)
20-20
: Intro paragraph simplification approved
The removed partner-program mention makes this intro crisp and focused on local Z-Wave functionality. Link syntax and punctuation are correct.source/_integrations/template.markdown (1)
1-1474
: Inconsistent target documentation
The changes in this file exclusively update the Template integration reference, whereas the PR objectives center on adding documentation for the new Seko PoolDose integration. Please confirm whether edits totemplate.markdown
are intended for this pull request or if the PoolDose documentation file should be reviewed instead.Likely an incorrect or invalid review comment.
source/_integrations/tts.markdown (6)
49-49
:tts.speak
action options look comprehensive
The new description of supported options (message
,language
,cache
,media_player_entity_id
,options
) accurately covers the feature set.
62-62
: Legacysay
action options documented correctly
The paragraph clearly lists the supported parameters and notes theservice_name
override.
110-110
: Preferred audio settings section header is appropriate
The new section clearly introduces configurable audio parameters.
111-116
: Paragraph on transcoding with FFmpeg is clear and accurate
Explaining how unsupported formats are handled via FFmpeg integration adds necessary context.
118-121
: List of preferred audio settings is well-structured
Each bullet concisely outlines the FFmpeg parameters available.
123-135
: Example usage for MP3 at 22050 Hz is helpful
The YAML snippet aligns with the preceding section and demonstrates real-world configuration.source/changelogs/core-2025.6.markdown (1)
1-5
: The front matter block is properly structured and follows project conventions.source/_posts/2023-01-04-release-20231.markdown (1)
85-87
: Updated intents documentation URLThe link has been updated to the new
ohf-voice.github.io
domain, matching other posts. Looks correct and consistent.source/_includes/custom/news.html (2)
33-60
: Correctly repositioned Recent Blog Posts sectionThe Recent Blog Posts block has been moved and formatted properly, maintaining filtering logic and limits. Markup and Liquid logic appear consistent.
61-66
: Add Community Day 2025 promoThe Community Day 2025 link has been moved into the Recent Blog section, with
target="_blank"
and updated URL and background. Alt text and styling look appropriate.source/_posts/2024-12-04-release-202412.markdown (3)
101-102
: Approve YAML edit instruction placementThe edited inline instruction for “Edit in YAML” now reads clearly in context.
232-234
: Approve special tiers additionThe new “non-scaled special tiers” heading and introduction are correctly inserted.
267-273
: New integrations list updatedNew integrations for Acaia, Music Assistant, NASweb, and Sky Remote have been added correctly. Descriptions and links look accurate.
Also applies to: 276-278
source/_includes/common-tasks/update.md (3)
1-6
: Add Prerequisites sectionThe new “#### Prerequisites” section clearly lists backup and release-note checks before updates. This improves clarity.
26-29
: Enhance UI update stepsInserted steps to enable the backup toggle and verify repair issues post-update. These additions align with new OS update workflows.
67-67
: Unified post-update validationMoving the repair-issue and log-check reminder outside the tab block ensures it applies to all installation methods.
source/voice_control/thirteen-usd-voice-remote.markdown (3)
81-82
: Update wake word exampleThe wake word example now correctly references the user-configured term. This aligns with the new wizard flow.
93-96
: Adjust silence detection navigationUpdated path to silence detection settings under Settings > Devices & services > ESPHome. Navigation steps are clear and accurate.
105-114
: Add instructions to remove Wi-Fi credentialsThe new removal section is clear and walks through using the web serial interface. Script tag and steps look correct.
source/_integrations/govee_ble.markdown (1)
52-52
: [web_search]Does the Govee H5129 Hygrometer Thermometer support Bluetooth or BLE connectivity?
source/_integrations/nextcloud.markdown (1)
133-135
: Well-defined update entity sectionThe new “## Update entity” section clearly states that an update entity will be created per entry. This aligns with Home Assistant’s documentation standards.
source/_integrations/airgradient.markdown (1)
133-149
: Code example looks accurate.YAML snippet and raw block usage follow Home Assistant conventions and require no changes.
source/_integrations/home_connect.markdown (2)
34-34
: Add DHCP discovery metadata
Enablingha_dhcp: true
aligns Home Connect with other integrations supporting DHCP discovery.
729-731
: Correct sensor section heading
Updated the details summary from "List of binary sensors" to "List of sensors" under the Sensor section for accuracy.source/_integrations/blue_current.markdown (1)
16-16
: Support button platform
Adding- button
toha_platforms
enables Blue Current to expose button entities (e.g., reset, reboot, stop session).source/_integrations/adax.markdown (4)
4-6
: Include Sensor category
Adding- Sensor
underha_category
reflects the new energy monitoring sensors.
9-11
: Add new codeowner
Including@lazytarget
brings additional maintenance coverage for the Adax integration.
15-17
: Enable sensor platform
Addedsensor
toha_platforms
to support cloud‐only energy monitoring sensors.
47-57
: Document energy monitoring
New section clearly describes cloud‐only energy sensors and theirtotal_increasing
state class compatibility with the Home Assistant energy dashboard.source/_integrations/tesla_fleet.markdown (12)
39-39
: Update integration description
The description now emphasizes control of Tesla vehicles and energy sites via the Fleet API.
43-47
: Clarify prerequisites list
Added clear instructions and nested bullets for hosting a public key via NGINX or external services.
50-52
: Approve setup note
The{% note %}
block accurately summarizes key preparatory steps.
53-55
: Approve warning block
The{% warning %}
correctly flags China region limitations.
57-57
: Insert Configuration heading
Introducing## Configuration
before setup steps enhances structure.
59-59
: Clarify setup introduction
The new intro line succinctly states the first setup tasks.
61-61
: Step heading added
### Step 1: Generate encryption keys
correctly initiates the key generation section.
477-477
: Context note—no action required
The description of polling behavior is clear and accurate.
481-481
: Approve removal include
The standard{% include integrations/remove_device_service.md %}
is present for device removal instructions.
483-483
: Clarify removal note
Noting that removing the integration doesn’t delete the Developer Application is accurate and helpful.
487-490
: Troubleshooting bullets updated
Content is clear; no changes needed in the troubleshooting section.
492-492
: Confirm credentials guidance
Guidance to delete credentials via the UI is accurate and straightforward.
Do this before using the device with another controller, or when you don't use the device anymore. It removes the device from the Z-Wave network stored on the controller. It also removes the device and all its entities from Home Assistant. You can not join a device to a new network if it is still paired with a controller. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Promote explanatory text to a note
The paragraph explaining why removal must occur before reusing a device reads like a note. Convert it to a {% note %}
block placed immediately before the numbered steps for better clarity.
🤖 Prompt for AI Agents
In source/_integrations/zwave_js.markdown around lines 161 to 162, the
explanatory paragraph about removing a device before reusing it should be
converted into a `{% note %}` block. Wrap the entire paragraph inside `{% note
%}` and `{% endnote %}` tags and place this note block immediately before the
numbered steps section to improve clarity and emphasis.
6. This starts the a wizard to customize the your voice assistant. | ||
- Follow the wizard steps to define the wake word and choose the voice. | ||
- When you are finished, select **Done**. | ||
7. Your ATOM Echo is connected to Home Assistant over Wi-Fi. You can now move it to any place in your home with a USB power supply. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix grammar in wizard introduction
The sentence has extra determiners and possessive confusion. Update to:
6. This starts a wizard to customize your voice assistant.
- Follow the wizard steps to define the wake word and choose the voice.
🧰 Tools
🪛 LanguageTool
[grammar] ~73-~73: Two determiners in a row. Choose either “the” or “a”.
Context: ...sp32-atom-flash-07.png) 6. This starts the a wizard to customize the your voice assi...
(DT_DT)
[grammar] ~73-~73: A determiner cannot be combined with a possessive pronoun. Did you mean simply “the” or “your”?
Context: .... This starts the a wizard to customize the your voice assistant. - Follow the wizard...
(A_MY)
🤖 Prompt for AI Agents
In source/voice_control/thirteen-usd-voice-remote.markdown around lines 73 to
76, fix the grammar in the wizard introduction by removing the extra determiner
"the" and correcting the possessive phrase. Change "This starts the a wizard to
customize the your voice assistant." to "This starts a wizard to customize your
voice assistant." and keep the following bullet point unchanged.
## Sensors | ||
|
||
For each entry, the integration will create the following {% term sensors %}: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing binary_sensor documentation
The intro notes that both sensors and binary sensors are provided, but the new table only covers regular sensors. Please add a corresponding list or table detailing the binary_sensor entities created by this integration.
🤖 Prompt for AI Agents
In source/_integrations/nextcloud.markdown around lines 39 to 41, the
documentation mentions both sensors and binary sensors but only lists regular
sensors. Add a new section or table that clearly details the binary_sensor
entities created by the integration, including their names and descriptions, to
provide complete documentation coverage.
### Updates | ||
|
||
The AirGradient integration provides an update entity that checks for firmware updates for your AirGradient device. | ||
To install the update, the device needs to be rebooted. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Normalize heading level for “Updates.”
This section is a top-level topic and should use ##
to match its peers (e.g., Data updates):
- ### Updates
+ ## Updates
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
### Updates | |
The AirGradient integration provides an update entity that checks for firmware updates for your AirGradient device. | |
To install the update, the device needs to be rebooted. | |
## Updates | |
The AirGradient integration provides an update entity that checks for firmware updates for your AirGradient device. | |
To install the update, the device needs to be rebooted. |
🤖 Prompt for AI Agents
In source/_integrations/airgradient.markdown around lines 103 to 107, the
heading "Updates" is currently using a lower-level heading marker. Change the
heading marker to use `##` instead of a lower level to normalize it as a
top-level section consistent with other peers like "Data updates."
## Known limitations | ||
|
||
The AirGradient integration currently has the following limitations: | ||
- The update entity is not able to install updates automatically. You will need to reboot the device manually after installing the update. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Fix list formatting and wording.
Insert a blank line before the bullet and replace “not able to” with “cannot”:
@@ -154,3 +154,5
The AirGradient integration currently has the following limitations:
+-
- The update entity is not able to install updates automatically. You will need to reboot the device manually after installing the update.
+ - The update entity cannot install updates automatically. You will need to reboot the device manually after installing the update.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indent 2851 ation. Thoroughly test & benchmark the code to ensure it meets the requirements.
## Known limitations | |
The AirGradient integration currently has the following limitations: | |
- The update entity is not able to install updates automatically. You will need to reboot the device manually after installing the update. | |
## Known limitations | |
The AirGradient integration currently has the following limitations: | |
- The update entity cannot install updates automatically. You will need to reboot the device manually after installing the update. |
🧰 Tools
🪛 LanguageTool
[style] ~155-~155: As a shorter alternative for ‘able to’, consider using “can not”.
Context: ...lowing limitations: - The update entity is not able to install updates automatically. You will...
(BE_ABLE_TO)
🪛 markdownlint-cli2 (0.17.2)
155-155: Lists should be surrounded by blank lines
null
(MD032, blanks-around-lists)
🤖 Prompt for AI Agents
In source/_integrations/airgradient.markdown around lines 152 to 156, fix the
list formatting by inserting a blank line before the bullet point. Also, improve
the wording by replacing "not able to" with "cannot" in the sentence describing
the update entity's limitation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🧹 Nitpick comments (3)
source/_includes/integrations/wwha.md (3)
1-1
: Disable markdownlint heading rule for include fileThis include template shouldn’t start with a top-level heading. Add a markdownlint directive to disable MD041 for this file.
+<!-- markdownlint-disable-file MD041 -->
1-2
: Provide fallback for missing URL
include.url
may be undefined, resulting in a broken link. Consider defaulting topage.url
:-{% capture url %}{{ include.url }}{% endcapture %} +{% capture url %}{{ include.url | default: page.url }}{% endcapture %}
4-18
: Simplify and harden list formattingBuilding
formatted_types
via a manual loop is verbose and doesn’t guard against empty arrays. You can streamline this with Liquid filters:{% if page.works_with %} {% assign formatted_list = page.works_with | map: "capitalize" %} {% assign formatted_types = formatted_list | join: ", " | replace_last: ",", " and" %} {% endif %}
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Cache: Disabled due to data retention organization setting
Knowledge Base: Disabled due to data retention organization setting
📒 Files selected for processing (2)
source/_includes/integrations/wwha.md
(1 hunks)source/_integrations/third_reality.markdown
(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- source/_integrations/third_reality.markdown
🧰 Additional context used
🪛 LanguageTool
source/_includes/integrations/wwha.md
[grammar] ~6-~6: Did you mean “Z-Wave” (= wireless protocol)?
Context: ..._with %} {% case type %} {% when "zwave" %}{% assign formatted_type = "Z-Wave" ...
(Z_WAVE)
[grammar] ~22-~22: Did you mean “Z-Wave” (= wireless protocol)?
Context: ...stant. {% if page.works_with contains "zwave" %} {{ name }} Z-Wave devices work lo...
(Z_WAVE)
[grammar] ~25-~25: Did you mean “Z-Wave” (= wireless protocol)?
Context: ...stantly in Home Assistant. {% my add_zwave_device badge domain=page.ha_domain %} ...
(Z_WAVE)
🪛 markdownlint-cli2 (0.17.2)
source/_includes/integrations/wwha.md
1-1: First line in a file should be a top-level heading
null
(MD041, first-line-heading, first-line-h1)
⏰ Context from checks skipped due to timeout of 90000ms (3)
- GitHub Check: Redirect rules - home-assistant-docs
- GitHub Check: Header rules - home-assistant-docs
- GitHub Check: Pages changed - home-assistant-docs
🔇 Additional comments (3)
source/_includes/integrations/wwha.md (3)
20-20
: Description snippet looks good.The introductory sentence correctly ties together
name
,url
, andformatted_types
.
22-29
: Z-Wave section is correctly implementedThe conditional check, explanatory text, badge tag, and link for Z-Wave are all consistent with standards.
40-46
: Matter section looks solid.The conditional, description, badge tag, and link for Matter follow the expected pattern.
{% if page.works_with contains "zigbee" %} | ||
{{ name }} Zigbee devices work locally and integrate seamlessly with the Zigbee integration in Home Assistant (Zigbee stick required). As all connectivity is happening locally, status updates and controlling your devices happen instantly in Home Assistant. | ||
|
||
{% my add_zigbee_device badge brand=page.ha_domain %} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Inconsistent badge attribute for Zigbee devices
The add_zigbee_device
tag uses brand=page.ha_domain
, whereas Z-Wave and Matter badges use domain=page.ha_domain
. This discrepancy may break rendering. Align them:
-{% my add_zigbee_device badge brand=page.ha_domain %}
+{% my add_zigbee_device badge domain=page.ha_domain %}
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
{% if page.works_with contains "zigbee" %} | |
{{ name }} Zigbee devices work locally and integrate seamlessly with the Zigbee integration in Home Assistant (Zigbee stick required). As all connectivity is happening locally, status updates and controlling your devices happen instantly in Home Assistant. | |
{% my add_zigbee_device badge brand=page.ha_domain %} | |
{% if page.works_with contains "zigbee" %} | |
{{ name }} Zigbee devices work locally and integrate seamlessly with the Zigbee integration in Home Assistant (Zigbee stick required). As all connectivity is happening locally, status updates and controlling your devices happen instantly in Home Assistant. | |
{% my add_zigbee_device badge domain=page.ha_domain %} |
🤖 Prompt for AI Agents
In source/_includes/integrations/wwha.md around lines 31 to 35, the
add_zigbee_device tag uses the attribute brand=page.ha_domain, which is
inconsistent with the domain=page.ha_domain attribute used for Z-Wave and Matter
badges. To fix this, change the attribute from brand=page.ha_domain to
domain=page.ha_domain in the add_zigbee_device tag to ensure consistent badge
rendering.
Proposed change
Documentation for a new integration for local polling of SEKO PoolDose devices. This integration enables cloudless monitoring and control of a PoolDose Dual/Double device for automatic dosing of Pools or Spas.
Brands also planned in PRs on the dedicated respo.
Type of change
current
branch).current
branch).next
branch).next
branch).Additional information
Checklist
current
branch.next
branch.Summary by CodeRabbit