Skip to content
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

Add µs to duration device class for sensor and number components #37919

Closed
wants to merge 53 commits into from

Conversation

victorclaessen
Copy link

@victorclaessen victorclaessen commented Mar 11, 2025

Proposed change

I added µs as allowed unit in the duration device class for the sensor and number components.

Type of change

  • Spelling, grammar or other readability improvements (current branch).
  • Adjusted missing or incorrect information in the current documentation (current branch).
  • Added documentation for a new integration I'm adding to Home Assistant (next branch).
  • Added documentation for a new feature I'm adding to Home Assistant (next branch).
  • Removed stale or deprecated documentation.

Additional information

Checklist

  • This PR uses the correct branch, based on one of the following:
    • I made a change to the existing documentation and used the current branch.
    • I made a change that is related to an upcoming version of Home Assistant and used the next branch.
  • The documentation follows the Home Assistant documentation standards.

Summary by CodeRabbit

  • New Features

    • Expanded language support for voice control and enhanced automation blueprints.
    • Added new integration actions, including additional controls for Habitica, advanced spin speed options for Home Connect, OneDrive file uploads, and a vehicle selector in Ohme.
  • Documentation

    • Improved dashboard customization guides and streamlined installation instructions.
    • Revised integration guides with clearer troubleshooting, updated checklists, and enriched examples for templates and automations.
  • Updates

    • Refined sensor precision and cosmetic adjustments, with updated release patch details for a smoother user experience.

c0ffeeca7 and others added 30 commits March 6, 2025 13:25
* Update windows.markdown

I noticed that there is a typo in the Windows installation instructions. Specifically, Step 3 of "Start Up Your Virtual Machine" ends with "(replace X.X.X.X with your ’s IP address).", when it should read "(replace X.X.X.X with your Windows server’s IP address)." 

Added {% assign board = "Windows server" %} to fix this typo that was generated on source/_includes/installation/operating_system.md.

* Start up VM: replace board variable by 'virtual machine' as VM is not a board

---------

Co-authored-by: c0ffeeca7 <[email protected]>
…me-assistant#37839)

* Add important not on MQTT broker settings when using Supla Cloud

* typo
…37844)

* Sort languages by locale code

* Removes 'no-NO'

* Sort languages by language name

* Remove no-NO again (after sorting)
* Document how MQTT reports entity state updates

* Update source/_integrations/mqtt.markdown

Co-authored-by: J. Nick Koston <[email protected]>

* Update source/_integrations/mqtt.markdown

Co-authored-by: J. Nick Koston <[email protected]>

---------

Co-authored-by: J. Nick Koston <[email protected]>
* Fix trigger example with hidden template

* Remove auto-TOC thing
I've used the information from:
https://github.com/eslavnov/pylips/blob/master/docs/Home.md

to update the endpoints for the api version check.
…e-assistant#37894)

Bumps [sorbet-runtime](https://github.com/sorbet/sorbet) from 0.5.11906 to 0.5.11911.
- [Release notes](https://github.com/sorbet/sorbet/releases)
- [Commits](https://github.com/sorbet/sorbet/commits)

---
updated-dependencies:
- dependency-name: sorbet-runtime
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Use a Proper Heading Instead of Emphasized Text
Instead of using bold text for the section title
Made it generic, removed the Android, non-Android referneces
fixed misspelling, removed trailing white spaces
* Update climate automation

* Fix textlint

* Update code block

---------

Co-authored-by: yunseon.park <[email protected]>
There's a built-in bluetooth but that wouldn't work.
A extra module is required.
…ant#37889)

* Update python_script.markdown

Added limitation.

* Tweak

---------

Co-authored-by: Franck Nijhof <[email protected]>
* Map card: update screenshot to reflect current SW

* Update map card to show cluster
@home-assistant home-assistant bot added has-parent This PR has a parent PR in a other repo next This PR goes into the next branch labels Mar 11, 2025
Copy link

netlify bot commented Mar 11, 2025

Deploy Preview for home-assistant-docs ready!

Name Link
🔨 Latest commit fd43e43
🔍 Latest deploy log https://app.netlify.com/sites/home-assistant-docs/deploys/67d0a1d4da92f5000858f81b
😎 Deploy Preview https://deploy-preview-37919--home-assistant-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

Copy link
Contributor

coderabbitai bot commented Mar 11, 2025

📝 Walkthrough

Walkthrough

This update introduces widespread documentation improvements across dashboard interfaces, release notes, and numerous integration pages. Changes include new sections and enhanced instructions (e.g., “Customizing features” for dashboard cards, YAML blueprint examples for automation), modified configuration parameters and hyperlinks, expanded language and platform support, and additional troubleshooting guidance. Minor formatting corrections and clarifications have also been applied to configuration files and helper scripts throughout the documentation.

Changes

File(s) Change Summary
source/dashboards/features.markdown, source/_dashboards/tile.markdown, source/dashboards/cards.markdown, source/dashboards/sections.markdown, source/_includes/dashboard/edit_dashboard.md, source/dashboards/header-footer.markdown, source/dashboards/map.markdown Added new sections (e.g., "Customizing features") and restructured card customization instructions; removed tile “Reordering features” section; updated link text and image formats (PNG → WebP).
source/_posts/2025-03-05-release-20253.markdown, source/changelogs/core-2025.3.markdown, source/_posts/2025-03-10-matter-certification.markdown Introduced patch release 2025.3.2 with updated release dates, detailed updates/fixes, and modified blog title.
source/_integrations/* (e.g., supla, mqtt, enphase_envoy, cover.mqtt, humidifier.mqtt, valve.mqtt, template.markdown, philips_js, home_connect, lg_thinq, yalexs_ble, environment_canada, python_script, webdav, voice_control, anthropic, balboa, demo, frankever, gios, govee_light_local, habitica, heos, homee, igloohome, inkbird, iron_os, jewish_calendar, linak, linkedgo, modbus, nam, ness_alarm, ogemray, ohme, onedrive, pglab, pyload, roborock, wallbox, weheat, etc.) Overhauled integration documentation: added new configuration options, actions (e.g., for Habitica and onedrive.upload), parameters (such as “Thinking budget” for Anthropics), and platform support (e.g., “select” in Homee/Wallbox); updated hyperlinks, troubleshooting steps, and device lists; refined descriptions for clarity.
_config.yml, source/_data/products.yml, plugins/filters.rb, source/_includes/custom/buy-dialog.html, source/_includes/installation/operating_system.md Updated patch and release dates, corrected distributor name casing, fixed whitespace/indentation/formatting, and clarified installation instructions.
source/_docs/automation/trigger.markdown, source/_docs/blueprint/selectors.markdown, source/_docs/configuration/templating.markdown Added a YAML blueprint example for time triggers, introduced a new optional model_id field in selectors, and included new templating functions (e.g., floor_entities, hashing, shuffling, and type determination).
source/voice_control/index.markdown Revised voice control documentation with an expanded list of supported languages.

Sequence Diagram(s)

sequenceDiagram
    participant U as User
    participant B as Blueprint
    participant T as Trigger Engine
    participant A as Automation Action

    U->>B: Provide alarm and hour inputs
    B->>T: Configure trigger using sensor reference and time input
    T-->>B: Trigger condition met at specified time
    B->>A: Execute automation actions
Loading
sequenceDiagram
    participant U as User
    participant S as LG ThinQ Script
    participant D as HVAC Device

    U->>S: Initiate LG ThinQ climate automation
    S->>D: Send turn_on command
    S->>D: Send set_hvac_mode command
    S->>D: Send set_temperature command
    D-->>S: Acknowledge commands
Loading
✨ Finishing Touches
  • 📝 Generate Docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai or @coderabbitai title anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@jbouwh
Copy link
Contributor

jbouwh commented Mar 11, 2025

@victorclaessen You pulled in a lot of unrelated commits. Please start a fresh branch from next.

Copy link
Contributor

@coderabbitai coderabbitai bot left a 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

🔭 Outside diff range comments (1)
source/_docs/blueprint/selectors.markdown (1)

617-650: 🛠️ Refactor suggestion

Duration Selector Documentation Update – Microsecond Support Missing
The Duration selector currently documents an option to enable milliseconds (via enable_millisecond), yet the PR objective mentions adding microsecond (µs) support for sensor and number components. If the underlying functionality has been extended to support microseconds, please update the documentation accordingly. For example, consider adding an option similar to:

 {% configuration attribute %}
 enable_day:
   description: When `true`, the duration selector will allow selecting days.
   type: boolean
   default: false
   required: false
-enable_millisecond:
-  description: When `true`, the duration selector will allow selecting milliseconds.
-  type: boolean
-  default: false
-  required: false  
+enable_millisecond:
+  description: When `true`, the duration selector will allow selecting milliseconds.
+  type: boolean
+  default: false
+  required: false
+enable_microsecond:
+  description: When `true`, the duration selector will allow selecting microseconds.
+  type: boolean
+  default: false
+  required: false  
 {% endconfiguration %}

This diff would clarify the new µs option for users.

🧰 Tools
🪛 LanguageTool

[grammar] ~619-~619: The verb form ‘select’ does not appear to fit in this context.
Context: ... battery ``` ## Duration selector The duration select allow the user to select a time duratio...

(SINGULAR_NOUN_VERB_AGREEMENT)

🧹 Nitpick comments (34)
source/_integrations/pyload.markdown (2)

42-42: Refine the URL configuration instruction

The updated bullet point now instructs users to provide the full URL—including protocol, hostname/IP, port (with the default noted), and any relevant path prefix. This consolidation simplifies the setup compared to having separate host and port entries. Please ensure that the description precisely matches the backend requirements so that users supply the URL in the correct format.


55-56: Enhance URL parameter documentation clarity

Replacing the separate "Host" and "Port" parameters with a single "URL" field is a good move towards clearer documentation. The description is detailed and includes an example, which should help users format their configuration correctly. Consider verifying if any extra details (e.g., trailing slash requirements) need to be mentioned, to avoid potential misconfigurations.

source/_integrations/webdav.markdown (2)

39-40: Improve Clarity and Formatting for Nextcloud URL Instructions

The updated Nextcloud entry now provides additional guidance by noting that the URL can also be located in the Nextcloud interface. Consider the following improvements:

  • Remove trailing spaces: Ensure there are no trailing spaces at the end of line 39 to comply with markdownlint (MD009).
  • Rephrase for clarity: Instead of “alternatively this can be found in the interface of your Nextcloud instance. To do this, open the file overview and click on ‘Settings’ in the left-hand column,” you might consider rephrasing it to something like:
    “Alternatively, locate the URL in your Nextcloud interface by opening the file overview and selecting ‘Settings’ in the left-hand column.”
🧰 Tools
🪛 LanguageTool

[style] ~40-~40: Consider a more expressive alternative.
Context: ...rface of your Nextcloud instance. To do this, open the file overview and click ...

(DO_ACHIEVE)

🪛 markdownlint-cli2 (0.17.2)

39-39: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


53-62: Enhance the "Known issues / limitations" Section

The new section provides valuable guidance on WebDAV-specific limitations and potential backup issues. A few minor improvements could further enhance the documentation:

  • Rephrase for precision: On line 56, change “please check the server configuration or with your WebDAV service provider” to “please check your server configuration or consult your WebDAV service provider” to improve clarity.
  • Refine language: On line 62, consider replacing “proved to be unstable” with a more concise expression such as “is unstable”.
  • Heading consistency: Optionally, revise the section header from “Known issues / limitations” to “Known Issues and Limitations” to improve consistency with typical documentation style.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~57-~57: Possible missing article found.
Context: ... or with your WebDAV service provider. Following WebDAV services are known to have issue...

(AI_HYDRA_LEO_MISSING_THE)


[style] ~62-~62: Consider replacing ‘prove to be’ with a shorter or less frequently used alternative.
Context: ...perties. - pCloud WebDAV implementation proved to be unstable and is not recommended for bac...

(PROVE_TO_BE_WORDY)

🪛 markdownlint-cli2 (0.17.2)

62-62: Files should end with a single newline character
null

(MD047, single-trailing-newline)

source/_integrations/linkedgo.markdown (1)

49-49: Reminder: Verify inclusion of supported brand details.
The inclusion directive for {% include integrations/supported_brand.md %} is appropriate. Ensure that the referenced file exists and contains up-to-date branding information.

source/_integrations/demo.markdown (1)

54-88: Confirm: "Available demo platforms" section listing.
The "Available demo platforms" section now lists [Valve](/integrations/valve/) (valve). Please ensure that the ordering and formatting are consistent with other entries in this section.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~54-~54: This verb may not be in the correct tense. Consider changing the tense to fit the context better.
Context: ...%} allows you to use integrations which are providing a demo of their implementation. The dem...

(AI_EN_LECTOR_REPLACEMENT_VERB_TENSE)

source/_integrations/balboa.markdown (1)

32-37: Note: Supported devices list update.
The device listing now features "Event (Last known fault, if any)". Confirm that this new device type is implemented in the integration and that the documentation accurately reflects its functionality.

source/_integrations/frankever.markdown (1)

49-49: Reminder: Confirm supported brand inclusion.
The inclusion of {% include integrations/supported_brand.md %} is in line with the standard practice for new integrations. Please ensure that the included content is current.

source/_integrations/pglab.markdown (1)

54-59: Note: Supported features section reflects new device capabilities.
The Supported features section now states that PG LAB Electronics relays, sensors, and switches are supported and explicitly notes that PG LAB Sensors will be added as Home Assistant sensor entities. Please verify that this text accurately communicates the integration’s upcoming functionality.

_config.yml (1)

1-5: Clarification on µs Support in Documentation
The PR objectives mention adding µs support to the duration device class for sensor and number components; however, none of the changes in this file (or the other provided docs files) explicitly reference this new functionality. Please confirm whether additional documentation updates for this feature will be provided in this PR or in a subsequent update.

source/_dashboards/sections.markdown (1)

42-46: Enhanced Guidance for Sections View Curation
The inclusion of step 6 clearly outlines the next actions—adding sections and cards, rearranging them, and editing the dashboard header—after creating a sections view. This enhanced guidance improves clarity for users.

source/_integrations/thread.markdown (1)

86-86: Enhanced clarification with a minor stylistic suggestion.
The updated text now clearly distinguishes that Home Assistant can configure and control only OpenThread border routers built with the REST API. To ensure compound adjectives are consistent with established style guidelines, consider hyphenating “open source” as “open‐source” when it precedes a noun (e.g. “open‐source implementation”).

🧰 Tools
🪛 LanguageTool

[uncategorized] ~86-~86: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...uilt with the REST API available in the open source implementation. The OpenThread Border R...

(EN_COMPOUND_ADJECTIVE_INTERNAL)

source/_integrations/python_script.markdown (1)

30-33: Adjust markdown list formatting in the note block.
The unordered bullet list under the note appears to have extra indentation and lacks surrounding blank lines, triggering markdownlint issues (MD007 and MD032). Align the bullet points flush with the note container and ensure a blank line exists before and after the list. For example:

-{% note %}
- - It is not possible to use Python imports with this integration. If you want to do more advanced scripts, you can take a look at [AppDaemon](https://appdaemon.readthedocs.io/en/latest/) or [pyscript](https://github.com/custom-components/pyscript)
- - It is not possible to include your script as a button on the dashboard. A workaround is to create a [helper button](/integrations/input_button/) and create automation to run your script when the button state changes.
-{% endnote %}
+{% note %}
+ - It is not possible to use Python imports with this integration. If you want to do more advanced scripts, you can take a look at [AppDaemon](https://appdaemon.readthedocs.io/en/latest/) or [pyscript](https://github.com/custom-components/pyscript).
+ - It is not possible to include your script as a button on the dashboard. A workaround is to create a [helper button](/integrations/input_button/) and set up an automation to run your script when the button state changes.
+{% endnote %}

This adjustment will satisfy markdown style guidelines while keeping the documentation clear.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

31-31: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


31-31: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


32-32: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)

source/_posts/2025-03-05-release-20253.markdown (1)

412-450: Comprehensive Patch Releases Section: The detailed "Patch releases" section—highlighting the specific patch "2025.3.1 - March 7" along with its extensive list of fixes—is well-documented and informative.

Note: Some static analysis warnings indicate duplicate link reference definitions. It may be beneficial to review and remove any unused or redundant references for a cleaner markdown file.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~429-~429: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ....0 ([@jpbede] - [#139938]) - Add config entry level diagnostics to SmartThings ([@joostlek]...

(EN_COMPOUND_ADJECTIVE_INTERNAL)

source/_integrations/roborock.markdown (1)

61-62: Minor Wording Suggestion: In the binary sensor description for "Charging", consider changing "States if the vacuum is currently charging or not" to "States whether the vacuum is currently charging" for improved clarity and formality.

🧰 Tools
🪛 LanguageTool

[style] ~61-~61: In contexts where ‘if’ is followed by ‘or’, using ‘whether’ may be more appropriate (and formal).
Context: .... ### Binary sensor Charging - States if the vacuum is currently charging or not...

(IF_WHETHER)

source/_integrations/gios.markdown (1)

21-27: Configuration Block Addition and Language Nudge

The new {% configuration_basic %} block clearly introduces fields for "Measuring station" and "Name," which improves the structure of the configuration.
Additionally, in the "Name" field description, consider inserting a comma after “For example” for enhanced readability. For instance, change it from:

-  description: "Service name in Home Assistant, by default, this is the name of your Home Assistant instance. For example `Home`."
+  description: "Service name in Home Assistant, by default, this is the name of your Home Assistant instance. For example, `Home`."
🧰 Tools
🪛 LanguageTool

[typographical] ~26-~26: After the expression ‘for example’ a comma is usually used.
Context: ...me of your Home Assistant instance. For example Home." {% endconfiguration_basic %}

(COMMA_FOR_EXAMPLE)

source/dashboards/features.markdown (1)

25-33: New "Customizing features" Section Completeness

The newly introduced "Customizing features" section provides a clear, step-by-step guide for editing card features. To boost clarity further, consider simplifying the phrasing on line 27 by removing the word "additional" (e.g., “To add a feature to your card, select Add feature”), as this adjustment streamlines the instruction without losing meaning.

🧰 Tools
🪛 LanguageTool

[style] ~28-~28: This phrase might be redundant. Consider either removing or replacing the adjective ‘additional’.
Context: ...nd open the Features section. 2. To add an additional feature to your card, select Add feature. ...

(ADD_AN_ADDITIONAL)

source/dashboards/cards.markdown (1)

88-92: Consistent Customization Guidance in Device Page Instructions

The customization instructions provided for cards added from the device page mirror the structure used in other sections, thereby promoting consistency throughout the documentation. It may be beneficial to double-check that all hyperlinks (e.g., those pointing to header/footer and feature customization sections) are up-to-date.

source/_integrations/jewish_calendar.markdown (1)

87-94: Clarify Holiday Sensor Attributes and Markdown Emphasis

The revised description now correctly states that the holiday sensor includes only the two attributes type and id, simplifying the model. However, the markdownlint hints indicate an expectation to use underscores for emphasis rather than asterisks; consider switching to underscores (e.g. _type_ and _id_) for consistency with style guidelines.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

87-87: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)


87-87: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)


87-87: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)


87-87: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)


89-89: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)


89-89: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)

source/_docs/automation/trigger.markdown (1)

800-826: New Blueprint for Time Trigger with Limited Templates

The new blueprint snippet is well structured and demonstrates how to use limited templates to configure time triggers with dual inputs (alarm and hour). Wrapping the YAML in {% raw %} tags ensures proper rendering. Consider adding a brief introductory comment above the snippet to explain the purpose of each input for users who may be unfamiliar with blueprint selectors.

source/_integrations/philips_js.markdown (1)

39-42: Markdown Formatting: Trailing Spaces

Static analysis indicates trailing spaces on lines 39, 41, and 42. Please remove these extraneous spaces to adhere to markdownlint guidelines.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

39-39: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


41-41: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


42-42: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)

source/_integrations/enphase_envoy.markdown (1)

750-765: Thorough Coverage of Debug Logs and Diagnostics

The inclusion of sample debug log entries and the sequence of data request/reply examples assist advanced users in troubleshooting integration issues. While the level of detail is valuable, consider reviewing whether any sections could be slightly streamlined for improved readability without losing critical diagnostic information.

source/_integrations/lg_thinq.markdown (1)

287-294: Clarify Automation for Climate Control
The “Air conditioner, climate” section now provides a comprehensive YAML script to handle sequential service calls with conditional wait templates. One minor nitpick: in the comment at line ~290 where the script says,

> - Currently the Climate's set_hvac_mode, set_temperature service is not working properly...

consider inserting a comma after “Currently” for improved clarity.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~290-~290: A comma may be missing after the conjunctive/linking adverb ‘Currently’.
Context: ... #### 1) Air conditioner, climate > - Currently the Climate's set_hvac_mode, set_temper...

(SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)

source/_integrations/govee_light_local.markdown (1)

25-35: Expanded Supported Devices List
The additions of device IDs such as H6008, H6022, H6042, H605D, H612B, H6167, H61B3, H61C2, H6609, and H8072 enhance the list of supported Govee devices. The list is extensive and appears well integrated.
Consider verifying that the ordering (and any potential duplication) is consistent with your overall style guidelines for supported devices, although this is a nitpick rather than a critical issue.

Also applies to: 60-60, 70-70, 93-93, 98-98, 108-109, 153-155

source/voice_control/index.markdown (1)

69-149: Enhanced Supported Languages Dropdown
The updated list of supported languages in the voice control home page is comprehensive and clearly presented. The new options add breadth to language support.
One nitpick: a number of static analysis warnings point out the presence of hard tabs (MD010). Although such warnings do not affect rendered output, replacing hard tabs with spaces would better conform to markdownlint guidelines and improve consistency across documents.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

69-69: Hard tabs
Column: 1

(MD010, no-hard-tabs)


70-70: Hard tabs
Column: 1

(MD010, no-hard-tabs)


71-71: Hard tabs
Column: 1

(MD010, no-hard-tabs)


72-72: Hard tabs
Column: 1

(MD010, no-hard-tabs)


73-73: Hard tabs
Column: 1

(MD010, no-hard-tabs)


74-74: Hard tabs
Column: 1

(MD010, no-hard-tabs)


75-75: Hard tabs
Column: 1

(MD010, no-hard-tabs)


76-76: Hard tabs
Column: 1

(MD010, no-hard-tabs)


77-77: Hard tabs
Column: 1

(MD010, no-hard-tabs)


78-78: Hard tabs
Column: 1

(MD010, no-hard-tabs)


79-79: Hard tabs
Column: 1

(MD010, no-hard-tabs)


80-80: Hard tabs
Column: 1

(MD010, no-hard-tabs)


81-81: Hard tabs
Column: 1

(MD010, no-hard-tabs)


82-82: Hard tabs
Column: 1

(MD010, no-hard-tabs)


83-83: Hard tabs
Column: 1

(MD010, no-hard-tabs)


84-84: Hard tabs
Column: 1

(MD010, no-hard-tabs)


85-85: Hard tabs
Column: 1

(MD010, no-hard-tabs)


86-86: Hard tabs
Column: 1

(MD010, no-hard-tabs)


87-87: Hard tabs
Column: 1

(MD010, no-hard-tabs)


88-88: Hard tabs
Column: 1

(MD010, no-hard-tabs)


89-89: Hard tabs
Column: 1

(MD010, no-hard-tabs)


90-90: Hard tabs
Column: 1

(MD010, no-hard-tabs)


91-91: Hard tabs
Column: 1

(MD010, no-hard-tabs)


92-92: Hard tabs
Column: 1

(MD010, no-hard-tabs)


93-93: Hard tabs
Column: 1

(MD010, no-hard-tabs)


94-94: Hard tabs
Column: 1

(MD010, no-hard-tabs)


95-95: Hard tabs
Column: 1

(MD010, no-hard-tabs)


96-96: Hard tabs
Column: 1

(MD010, no-hard-tabs)


97-97: Hard tabs
Column: 1

(MD010, no-hard-tabs)


98-98: Hard tabs
Column: 1

(MD010, no-hard-tabs)


99-99: Hard tabs
Column: 1

(MD010, no-hard-tabs)


100-100: Hard tabs
Column: 1

(MD010, no-hard-tabs)


101-101: Hard tabs
Column: 1

(MD010, no-hard-tabs)


102-102: Hard tabs
Column: 1

(MD010, no-hard-tabs)


103-103: Hard tabs
Column: 1

(MD010, no-hard-tabs)


104-104: Hard tabs
Column: 1

(MD010, no-hard-tabs)


105-105: Hard tabs
Column: 1

(MD010, no-hard-tabs)


106-106: Hard tabs
Column: 1

(MD010, no-hard-tabs)


107-107: Hard tabs
Column: 1

(MD010, no-hard-tabs)


108-108: Hard tabs
Column: 1

(MD010, no-hard-tabs)


109-109: Hard tabs
Column: 1

(MD010, no-hard-tabs)


110-110: Hard tabs
Column: 1

(MD010, no-hard-tabs)


111-111: Hard tabs
Column: 1

(MD010, no-hard-tabs)


112-112: Hard tabs
Column: 1

(MD010, no-hard-tabs)


113-113: Hard tabs
Column: 1

(MD010, no-hard-tabs)


114-114: Hard tabs
Column: 1

(MD010, no-hard-tabs)


115-115: Hard tabs
Column: 1

(MD010, no-hard-tabs)


116-116: Hard tabs
Column: 1

(MD010, no-hard-tabs)


117-117: Hard tabs
Column: 1

(MD010, no-hard-tabs)


118-118: Hard tabs
Column: 1

(MD010, no-hard-tabs)


119-119: Hard tabs
Column: 1

(MD010, no-hard-tabs)


120-120: Hard tabs
Column: 1

(MD010, no-hard-tabs)


121-121: Hard tabs
Column: 1

(MD010, no-hard-tabs)


122-122: Hard tabs
Column: 1

(MD010, no-hard-tabs)


123-123: Hard tabs
Column: 1

(MD010, no-hard-tabs)


124-124: Hard tabs
Column: 1

(MD010, no-hard-tabs)


125-125: Hard tabs
Column: 1

(MD010, no-hard-tabs)


126-126: Hard tabs
Column: 1

(MD010, no-hard-tabs)


127-127: Hard tabs
Column: 1

(MD010, no-hard-tabs)


128-128: Hard tabs
Column: 1

(MD010, no-hard-tabs)


129-129: Hard tabs
Column: 1

(MD010, no-hard-tabs)


130-130: Hard tabs
Column: 1

(MD010, no-hard-tabs)


131-131: Hard tabs
Column: 1

(MD010, no-hard-tabs)


132-132: Hard tabs
Column: 1

(MD010, no-hard-tabs)


133-133: Hard tabs
Column: 1

(MD010, no-hard-tabs)


134-134: Hard tabs
Column: 1

(MD010, no-hard-tabs)


135-135: Hard tabs
Column: 1

(MD010, no-hard-tabs)


136-136: Hard tabs
Column: 1

(MD010, no-hard-tabs)


137-137: Hard tabs
Column: 1

(MD010, no-hard-tabs)


138-138: Hard tabs
Column: 1

(MD010, no-hard-tabs)


139-139: Hard tabs
Column: 1

(MD010, no-hard-tabs)


140-140: Hard tabs
Column: 1

(MD010, no-hard-tabs)


141-141: Hard tabs
Column: 1

(MD010, no-hard-tabs)


142-142: Hard tabs
Column: 1

(MD010, no-hard-tabs)


143-143: Hard tabs
Column: 1

(MD010, no-hard-tabs)


144-144: Hard tabs
Column: 1

(MD010, no-hard-tabs)


145-145: Hard tabs
Column: 1

(MD010, no-hard-tabs)


146-146: Hard tabs
Column: 1

(MD010, no-hard-tabs)


147-147: Hard tabs
Column: 1

(MD010, no-hard-tabs)


148-148: Hard tabs
Column: 1

(MD010, no-hard-tabs)


149-149: Hard tabs
Column: 1

(MD010, no-hard-tabs)

source/_docs/configuration/templating.markdown (1)

1213-1234: New Shuffling Filter and Function Documentation
The "Shuffling" section is a great addition with both random and reproducible examples using a seed. The examples are very illustrative.

Minor wording: consider revising the sentence “The template engine contains a filter and function to shuffle a list” to “The template engine contains a filter and a function to shuffle a list” for optimal grammatical flow.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~1215-~1215: You might be missing the article “a” here.
Context: ...e template engine contains a filter and function to shuffle a list. Shuffling can happe...

(AI_EN_LECTOR_MISSING_DETERMINER_A)

source/_integrations/modbus.markdown (1)

655-705: Addition of HVAC Action Register Configuration
This new block introduces the hvac_action_register configuration, which allows users to map register values to several HVAC actions (e.g., off, cooling, defrosting, drying, fan, heating, idle, preheating). The keys, their types, and whether they are required are documented in a structured manner.

A couple of suggestions:

  • Ensure that any corresponding backend logic supports these new configuration options seamlessly.
  • Consider revising some of the description texts to avoid potential typographical ambiguities flagged by static analysis. For example, instead of

    "Value corresponding to HVAC Off action."
    you might rephrase it as
    "HVAC Off action value."
    This minor refinement would address the colon-introduction issue pointed out by markdownlint.

🧰 Tools
🪛 LanguageTool

[typographical] ~674-~674: Do not use a colon (:) before a series that is introduced by a preposition (‘off’). Remove the colon or add a noun or a noun phrase after the preposition.
Context: ... map keys: action_off: description: "Value corre...

(RP_COLON)

source/_integrations/mqtt.markdown (1)

1419-1419: Formatting: Remove Trailing Spaces
There are trailing spaces detected on this line. Please remove these extra spaces to comply with Markdown style guidelines.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

1419-1419: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)

source/changelogs/core-2025.3.markdown (3)

1171-1171: Deduplication of Climate Modes
The change “Deduplicate climate modes in SmartThings” is briefly stated. It might help to elaborate (in internal docs or related PR discussion) on which duplicates were removed and why; this will aid future maintainers in understanding the rationale.


1175-1175: Add Diagnostics for SmartThings
Introducing config entry level diagnostics to SmartThings is a useful enhancement. Ensure that additional logging and error‐reporting are integrated into the diagnostic output, and that corresponding tests are updated.


1176-1176: Setting Content Length in WebDAV Uploads
The fix “Set content length when uploading files to WebDAV” is important to prevent truncation or over‑reading. Please verify that the content‐length calculation is robust for various file sizes.

source/_integrations/environment_canada.markdown (1)

114-116: "Feels Like" Sensor Description Clarity:
The new “Feels Like” section is a valuable addition. Consider revising “takes into account” to a shorter alternative (e.g., “calculates” or “computes”) to improve brevity.

🧰 Tools
🪛 LanguageTool

[style] ~116-~116: ‘takes into account’ might be wordy. Consider a shorter alternative.
Context: ...uration. ### Feels Like A sensor that takes into account the humidex or wind chill for what the ...

(EN_WORDINESS_PREMIUM_TAKES_INTO_ACCOUNT)

source/_integrations/habitica.markdown (2)

313-331: New Action habitica.update_habit Documentation:
This section comprehensively outlines the parameters for updating a habit. It might be beneficial to include examples or note default behaviors for attributes like up_down, priority, and frequency for extra clarity.


332-346: New Action habitica.create_habit Documentation:
The creation action is documented clearly. Consider mentioning default values (for example, for priority or frequency) right in the table to further aid the user.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6cb9d78 and 0179c1f.

⛔ Files ignored due to path filters (13)
  • source/images/dashboards/features/tile-card-feature-position.png is excluded by !**/*.png
  • Gemfile.lock is excluded by !**/*.lock
  • Gemfile.lock is excluded by !**/*.lock
  • source/images/dashboards/map_card.png is excluded by !**/*.png
  • source/images/dashboards/map_card_config.png is excluded by !**/*.png
  • source/images/blog/2025-03-matter-certification/art.jpg is excluded by !**/*.jpg
  • source/images/blog/2025-03-matter-certification/ha-matter.png is excluded by !**/*.png
  • source/images/blog/2025-03-matter-certification/lab.jpg is excluded by !**/*.jpg
  • source/images/blog/2025-03-matter-certification/ohf-matter.png is excluded by !**/*.png
  • Gemfile.lock is excluded by !**/*.lock
  • Gemfile.lock is excluded by !**/*.lock
  • Gemfile.lock is excluded by !**/*.lock
  • Gemfile.lock is excluded by !**/*.lock
📒 Files selected for processing (89)
  • source/dashboards/features.markdown (1 hunks)
  • source/_dashboards/tile.markdown (1 hunks)
  • source/_includes/dashboard/edit_dashboard.md (1 hunks)
  • source/dashboards/cards.markdown (2 hunks)
  • source/_dashboards/sections.markdown (1 hunks)
  • source/_posts/2025-03-05-release-20253.markdown (1 hunks)
  • source/_includes/installation/operating_system.md (1 hunks)
  • source/_integrations/supla.markdown (1 hunks)
  • source/dashboards/header-footer.markdown (1 hunks)
  • source/voice_control/index.markdown (2 hunks)
  • _config.yml (1 hunks)
  • source/_posts/2025-03-05-release-20253.markdown (2 hunks)
  • source/changelogs/core-2025.3.markdown (1 hunks)
  • source/_integrations/mqtt.markdown (1 hunks)
  • source/_integrations/enphase_envoy.markdown (5 hunks)
  • source/_integrations/cover.mqtt.markdown (1 hunks)
  • source/_integrations/humidifier.mqtt.markdown (1 hunks)
  • source/_integrations/valve.mqtt.markdown (1 hunks)
  • source/_integrations/template.markdown (3 hunks)
  • source/_docs/automation/trigger.markdown (2 hunks)
  • source/_integrations/webdav.markdown (2 hunks)
  • source/_integrations/home_connect.markdown (1 hunks)
  • source/_integrations/philips_js.markdown (1 hunks)
  • source/_integrations/philips_js.markdown (1 hunks)
  • source/_integrations/philips_js.markdown (1 hunks)
  • source/_integrations/philips_js.markdown (1 hunks)
  • source/_integrations/philips_js.markdown (1 hunks)
  • source/_integrations/lg_thinq.markdown (2 hunks)
  • source/_integrations/yalexs_ble.markdown (1 hunks)
  • source/_integrations/environment_canada.markdown (4 hunks)
  • source/_integrations/python_script.markdown (1 hunks)
  • source/_dashboards/map.markdown (1 hunks)
  • source/_data/products.yml (8 hunks)
  • source/_data/products.yml (8 hunks)
  • plugins/filters.rb (1 hunks)
  • source/_includes/custom/buy-dialog.html (1 hunks)
  • source/_data/products.yml (1 hunks)
  • plugins/filters.rb (1 hunks)
  • source/_data/products.yml (1 hunks)
  • source/_includes/custom/buy-dialog.html (1 hunks)
  • source/_integrations/otbr.markdown (0 hunks)
  • plugins/filters.rb (1 hunks)
  • source/_includes/custom/buy-dialog.html (1 hunks)
  • source/_integrations/thread.markdown (1 hunks)
  • source/_posts/2025-03-10-matter-certification.markdown (1 hunks)
  • source/_posts/2025-03-10-matter-certification.markdown (1 hunks)
  • source/_integrations/philips_js.markdown (1 hunks)
  • source/_integrations/philips_js.markdown (1 hunks)
  • source/_integrations/philips_js.markdown (1 hunks)
  • source/_integrations/philips_js.markdown (0 hunks)
  • source/_integrations/philips_js.markdown (1 hunks)
  • source/_integrations/philips_js.markdown (1 hunks)
  • source/_integrations/philips_js.markdown (1 hunks)
  • _config.yml (1 hunks)
  • source/_posts/2025-03-05-release-20253.markdown (2 hunks)
  • source/changelogs/core-2025.3.markdown (1 hunks)
  • source/_integrations/sensor.markdown (1 hunks)
  • source/_integrations/number.markdown (1 hunks)
  • source/_integrations/sensor.markdown (1 hunks)
  • source/_docs/blueprint/selectors.markdown (5 hunks)
  • source/_docs/configuration/templating.markdown (4 hunks)
  • source/_integrations/advantage_air.markdown (1 hunks)
  • source/_integrations/anthropic.markdown (1 hunks)
  • source/_integrations/balboa.markdown (2 hunks)
  • source/_integrations/demo.markdown (2 hunks)
  • source/_integrations/frankever.markdown (1 hunks)
  • source/_integrations/gios.markdown (1 hunks)
  • source/_integrations/govee_light_local.markdown (6 hunks)
  • source/_integrations/habitica.markdown (1 hunks)
  • source/_integrations/heos.markdown (1 hunks)
  • source/_integrations/homee.markdown (2 hunks)
  • source/_integrations/igloohome.markdown (2 hunks)
  • source/_integrations/inkbird.markdown (1 hunks)
  • source/_integrations/iron_os.markdown (3 hunks)
  • source/_integrations/jewish_calendar.markdown (1 hunks)
  • source/_integrations/linak.markdown (1 hunks)
  • source/_integrations/linkedgo.markdown (1 hunks)
  • source/_integrations/modbus.markdown (2 hunks)
  • source/_integrations/mqtt.markdown (2 hunks)
  • source/_integrations/nam.markdown (1 hunks)
  • source/_integrations/ness_alarm.markdown (1 hunks)
  • source/_integrations/ogemray.markdown (1 hunks)
  • source/_integrations/ohme.markdown (1 hunks)
  • source/_integrations/onedrive.markdown (2 hunks)
  • source/_integrations/pglab.markdown (3 hunks)
  • source/_integrations/pyload.markdown (2 hunks)
  • source/_integrations/roborock.markdown (3 hunks)
  • source/_integrations/wallbox.markdown (2 hunks)
  • source/_integrations/weheat.markdown (1 hunks)
💤 Files with no reviewable changes (1)
  • source/_integrations/otbr.markdown
🧰 Additional context used
📓 Path-based instructions (6)
`*/**(html|markdown|md)`: - For instructional content in doc...

*/**(html|markdown|md): - For instructional content in documentation, use a direct and authoritative tone. Avoid expressions of politeness such as 'may' or 'please', and ensure the goal of the instruction is fronted.

  • Apply the Microsoft Style Guide to ensure documentation maintains clarity and conciseness.
  • In step-by-step instructions, front the location phrase in the instructional sentence.
  • In step-by-step instructions, front the 'goal' in the instructional sentence.
  • In step-by-step instructions, if in doubt what to front, front the 'goal' before the location phrase in the instructional sentence.
  • do not hyphenate terms like 'top-right' or 'bottom-left' with 'corner'
  • plugins/filters.rb
`*/**(html|markdown|md)`: - Use bold to mark UI strings. - I...

*/**(html|markdown|md): - Use bold to mark UI strings.

  • If "" are used to mark UI strings, replace them by bold.
  • plugins/filters.rb
`*/**(html|markdown|md)`: - Be brief in your replies and don...

*/**(html|markdown|md): - Be brief in your replies and don't add fluff like "thank you for..." and "Please let me know if"

  • plugins/filters.rb
`*/**(html|markdown|md)`: - Use sentence-style capitalizatio...

*/**(html|markdown|md): - Use sentence-style capitalization also in headings.

  • plugins/filters.rb
`*/**(html|markdown|md)`: do not comment on HTML used for ic...

*/**(html|markdown|md): do not comment on HTML used for icons

  • plugins/filters.rb
`*/**(html|markdown|md)`: Avoid flagging inline HTML for emb...

*/**(html|markdown|md): Avoid flagging inline HTML for embedding videos in future reviews for this repository.

  • plugins/filters.rb
🪛 markdownlint-cli2 (0.17.2)
source/_integrations/philips_js.markdown

42-42: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


27-27: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


27-27: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


39-39: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


41-41: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


42-42: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


39-39: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


39-39: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


41-41: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


42-42: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)

source/_integrations/python_script.markdown

31-31: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


31-31: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


32-32: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)

source/_integrations/jewish_calendar.markdown

87-87: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)


87-87: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)


87-87: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)


87-87: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)


89-89: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)


89-89: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)

source/_integrations/webdav.markdown

39-39: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


62-62: Files should end with a single newline character
null

(MD047, single-trailing-newline)

source/_posts/2025-03-05-release-20253.markdown

542-542: Link and image reference definitions should be needed
Duplicate link or image reference definition: "#139859"

(MD053, link-image-reference-definitions)


545-545: Link and image reference definitions should be needed
Unused link or image reference definition: "#140061"

(MD053, link-image-reference-definitions)


581-581: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@Bre77"

(MD053, link-image-reference-definitions)


582-582: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@Diegorro98"

(MD053, link-image-reference-definitions)


583-583: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@Lash-L"

(MD053, link-image-reference-definitions)


584-584: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@PeteRager"

(MD053, link-image-reference-definitions)


591-591: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@frenck"

(MD053, link-image-reference-definitions)


592-592: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@jbouwh"

(MD053, link-image-reference-definitions)


593-593: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@joostlek"

(MD053, link-image-reference-definitions)


594-594: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@jpbede"

(MD053, link-image-reference-definitions)


601-601: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@zxdavb"

(MD053, link-image-reference-definitions)


453-453: Link and image reference definitions should be needed
Unused link or image reference definition: "#139859"

(MD053, link-image-reference-definitions)


484-484: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@Diegorro98"

(MD053, link-image-reference-definitions)


487-487: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@Lash-L"

(MD053, link-image-reference-definitions)


488-488: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@MartinHjelmare"

(MD053, link-image-reference-definitions)


489-489: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@bdraco"

(MD053, link-image-reference-definitions)


490-490: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@bramkragten"

(MD053, link-image-reference-definitions)


494-494: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@joostlek"

(MD053, link-image-reference-definitions)


495-495: Link and image reference definitions should be needed
Duplicate link or image reference definition: "@jpbede"

(MD053, link-image-reference-definitions)

source/voice_control/index.markdown

69-69: Hard tabs
Column: 1

(MD010, no-hard-tabs)


70-70: Hard tabs
Column: 1

(MD010, no-hard-tabs)


71-71: Hard tabs
Column: 1

(MD010, no-hard-tabs)


72-72: Hard tabs
Column: 1

(MD010, no-hard-tabs)


73-73: Hard tabs
Column: 1

(MD010, no-hard-tabs)


74-74: Hard tabs
Column: 1

(MD010, no-hard-tabs)


75-75: Hard tabs
Column: 1

(MD010, no-hard-tabs)


76-76: Hard tabs
Column: 1

(MD010, no-hard-tabs)


77-77: Hard tabs
Column: 1

(MD010, no-hard-tabs)


78-78: Hard tabs
Column: 1

(MD010, no-hard-tabs)


79-79: Hard tabs
Column: 1

(MD010, no-hard-tabs)


80-80: Hard tabs
Column: 1

(MD010, no-hard-tabs)


81-81: Hard tabs
Column: 1

(MD010, no-hard-tabs)


82-82: Hard tabs
Column: 1

(MD010, no-hard-tabs)


83-83: Hard tabs
Column: 1

(MD010, no-hard-tabs)


84-84: Hard tabs
Column: 1

(MD010, no-hard-tabs)


85-85: Hard tabs
Column: 1

(MD010, no-hard-tabs)


86-86: Hard tabs
Column: 1

(MD010, no-hard-tabs)


87-87: Hard tabs
Column: 1

(MD010, no-hard-tabs)


88-88: Hard tabs
Column: 1

(MD010, no-hard-tabs)


89-89: Hard tabs
Column: 1

(MD010, no-hard-tabs)


90-90: Hard tabs
Column: 1

(MD010, no-hard-tabs)


91-91: Hard tabs
Column: 1

(MD010, no-hard-tabs)


92-92: Hard tabs
Column: 1

(MD010, no-hard-tabs)


93-93: Hard tabs
Column: 1

(MD010, no-hard-tabs)


94-94: Hard tabs
Column: 1

(MD010, no-hard-tabs)


95-95: Hard tabs
Column: 1

(MD010, no-hard-tabs)


96-96: Hard tabs
Column: 1

(MD010, no-hard-tabs)


97-97: Hard tabs
Column: 1

(MD010, no-hard-tabs)


98-98: Hard tabs
Column: 1

(MD010, no-hard-tabs)


99-99: Hard tabs
Column: 1

(MD010, no-hard-tabs)


100-100: Hard tabs
Column: 1

(MD010, no-hard-tabs)


101-101: Hard tabs
Column: 1

(MD010, no-hard-tabs)


102-102: Hard tabs
Column: 1

(MD010, no-hard-tabs)


103-103: Hard tabs
Column: 1

(MD010, no-hard-tabs)


104-104: Hard tabs
Column: 1

(MD010, no-hard-tabs)


105-105: Hard tabs
Column: 1

(MD010, no-hard-tabs)


106-106: Hard tabs
Column: 1

(MD010, no-hard-tabs)


107-107: Hard tabs
Column: 1

(MD010, no-hard-tabs)


108-108: Hard tabs
Column: 1

(MD010, no-hard-tabs)


109-109: Hard tabs
Column: 1

(MD010, no-hard-tabs)


110-110: Hard tabs
Column: 1

(MD010, no-hard-tabs)


111-111: Hard tabs
Column: 1

(MD010, no-hard-tabs)


112-112: Hard tabs
Column: 1

(MD010, no-hard-tabs)


113-113: Hard tabs
Column: 1

(MD010, no-hard-tabs)


114-114: Hard tabs
Column: 1

(MD010, no-hard-tabs)


115-115: Hard tabs
Column: 1

(MD010, no-hard-tabs)


116-116: Hard tabs
Column: 1

(MD010, no-hard-tabs)


117-117: Hard tabs
Column: 1

(MD010, no-hard-tabs)


118-118: Hard tabs
Column: 1

(MD010, no-hard-tabs)


119-119: Hard tabs
Column: 1

(MD010, no-hard-tabs)


120-120: Hard tabs
Column: 1

(MD010, no-hard-tabs)


121-121: Hard tabs
Column: 1

(MD010, no-hard-tabs)


122-122: Hard tabs
Column: 1

(MD010, no-hard-tabs)


123-123: Hard tabs
Column: 1

(MD010, no-hard-tabs)


124-124: Hard tabs
Column: 1

(MD010, no-hard-tabs)


125-125: Hard tabs
Column: 1

(MD010, no-hard-tabs)


126-126: Hard tabs
Column: 1

(MD010, no-hard-tabs)


127-127: Hard tabs
Column: 1

(MD010, no-hard-tabs)


128-128: Hard tabs
Column: 1

(MD010, no-hard-tabs)


129-129: Hard tabs
Column: 1

(MD010, no-hard-tabs)


130-130: Hard tabs
Column: 1

(MD010, no-hard-tabs)


131-131: Hard tabs
Column: 1

(MD010, no-hard-tabs)


132-132: Hard tabs
Column: 1

(MD010, no-hard-tabs)


133-133: Hard tabs
Column: 1

(MD010, no-hard-tabs)


134-134: Hard tabs
Column: 1

(MD010, no-hard-tabs)


135-135: Hard tabs
Column: 1

(MD010, no-hard-tabs)


136-136: Hard tabs
Column: 1

(MD010, no-hard-tabs)


137-137: Hard tabs
Column: 1

(MD010, no-hard-tabs)


138-138: Hard tabs
Column: 1

(MD010, no-hard-tabs)


139-139: Hard tabs
Column: 1

(MD010, no-hard-tabs)


140-140: Hard tabs
Column: 1

(MD010, no-hard-tabs)


141-141: Hard tabs
Column: 1

(MD010, no-hard-tabs)


142-142: Hard tabs
Column: 1

(MD010, no-hard-tabs)


143-143: Hard tabs
Column: 1

(MD010, no-hard-tabs)


144-144: Hard tabs
Column: 1

(MD010, no-hard-tabs)


145-145: Hard tabs
Column: 1

(MD010, no-hard-tabs)


146-146: Hard tabs
Column: 1

(MD010, no-hard-tabs)


147-147: Hard tabs
Column: 1

(MD010, no-hard-tabs)


148-148: Hard tabs
Column: 1

(MD010, no-hard-tabs)


413-413: Hard tabs
Column: 1

(MD010, no-hard-tabs)


414-414: Hard tabs
Column: 1

(MD010, no-hard-tabs)


415-415: Hard tabs
Column: 1

(MD010, no-hard-tabs)


416-416: Hard tabs
Column: 1

(MD010, no-hard-tabs)


417-417: Hard tabs
Column: 1

(MD010, no-hard-tabs)


418-418: Hard tabs
Column: 1

(MD010, no-hard-tabs)


419-419: Hard tabs
Column: 1

(MD010, no-hard-tabs)


420-420: Hard tabs
Column: 1

(MD010, no-hard-tabs)


421-421: Hard tabs
Column: 1

(MD010, no-hard-tabs)


422-422: Hard tabs
Column: 1

(MD010, no-hard-tabs)


423-423: Hard tabs
Column: 1

(MD010, no-hard-tabs)


424-424: Hard tabs
Column: 1

(MD010, no-hard-tabs)


425-425: Hard tabs
Column: 1

(MD010, no-hard-tabs)


426-426: Hard tabs
Column: 1

(MD010, no-hard-tabs)


427-427: Hard tabs
Column: 1

(MD010, no-hard-tabs)


428-428: Hard tabs
Column: 1

(MD010, no-hard-tabs)


429-429: Hard tabs
Column: 1

(MD010, no-hard-tabs)


430-430: Hard tabs
Column: 1

(MD010, no-hard-tabs)


431-431: Hard tabs
Column: 1

(MD010, no-hard-tabs)


432-432: Hard tabs
Column: 1

(MD010, no-hard-tabs)


433-433: Hard tabs
Column: 1

(MD010, no-hard-tabs)


434-434: Hard tabs
Column: 1

(MD010, no-hard-tabs)


435-435: Hard tabs
Column: 1

(MD010, no-hard-tabs)


436-436: Hard tabs
Column: 1

(MD010, no-hard-tabs)


437-437: Hard tabs
Column: 1

(MD010, no-hard-tabs)


438-438: Hard tabs
Column: 1

(MD010, no-hard-tabs)


439-439: Hard tabs
Column: 1

(MD010, no-hard-tabs)


440-440: Hard tabs
Column: 1

(MD010, no-hard-tabs)


441-441: Hard tabs
Column: 1

(MD010, no-hard-tabs)


442-442: Hard tabs
Column: 1

(MD010, no-hard-tabs)


443-443: Hard tabs
Column: 1

(MD010, no-hard-tabs)


444-444: Hard tabs
Column: 1

(MD010, no-hard-tabs)


445-445: Hard tabs
Column: 1

(MD010, no-hard-tabs)


446-446: Hard tabs
Column: 1

(MD010, no-hard-tabs)


447-447: Hard tabs
Column: 1

(MD010, no-hard-tabs)


448-448: Hard tabs
Column: 1

(MD010, no-hard-tabs)


449-449: Hard tabs
Column: 1

(MD010, no-hard-tabs)


450-450: Hard tabs
Column: 1

(MD010, no-hard-tabs)


451-451: Hard tabs
Column: 1

(MD010, no-hard-tabs)


452-452: Hard tabs
Column: 1

(MD010, no-hard-tabs)


453-453: Hard tabs
Column: 1

(MD010, no-hard-tabs)


454-454: Hard tabs
Column: 1

(MD010, no-hard-tabs)


455-455: Hard tabs
Column: 1

(MD010, no-hard-tabs)


456-456: Hard tabs
Column: 1

(MD010, no-hard-tabs)


457-457: Hard tabs
Column: 1

(MD010, no-hard-tabs)


458-458: Hard tabs
Column: 1

(MD010, no-hard-tabs)


459-459: Hard tabs
Column: 1

(MD010, no-hard-tabs)


460-460: Hard tabs
Column: 1

(MD010, no-hard-tabs)


461-461: Hard tabs
Column: 1

(MD010, no-hard-tabs)


462-462: Hard tabs
Column: 1

(MD010, no-hard-tabs)


463-463: Hard tabs
Column: 1

(MD010, no-hard-tabs)


464-464: Hard tabs
Column: 1

(MD010, no-hard-tabs)


465-465: Hard tabs
Column: 1

(MD010, no-hard-tabs)


466-466: Hard tabs
Column: 1

(MD010, no-hard-tabs)


467-467: Hard tabs
Column: 1

(MD010, no-hard-tabs)


468-468: Hard tabs
Column: 1

(MD010, no-hard-tabs)


469-469: Hard tabs
Column: 1

(MD010, no-hard-tabs)


470-470: Hard tabs
Column: 1

(MD010, no-hard-tabs)


471-471: Hard tabs
Column: 1

(MD010, no-hard-tabs)


472-472: Hard tabs
Column: 1

(MD010, no-hard-tabs)


473-473: Hard tabs
Column: 1

(MD010, no-hard-tabs)


474-474: Hard tabs
Column: 1

(MD010, no-hard-tabs)


475-475: Hard tabs
Column: 1

(MD010, no-hard-tabs)


476-476: Hard tabs
Column: 1

(MD010, no-hard-tabs)


477-477: Hard tabs
Column: 1

(MD010, no-hard-tabs)


478-478: Hard tabs
Column: 1

(MD010, no-hard-tabs)


479-479: Hard tabs
Column: 1

(MD010, no-hard-tabs)


480-480: Hard tabs
Column: 1

(MD010, no-hard-tabs)


481-481: Hard tabs
Column: 1

(MD010, no-hard-tabs)


482-482: Hard tabs
Column: 1

(MD010, no-hard-tabs)


483-483: Hard tabs
Column: 1

(MD010, no-hard-tabs)


484-484: Hard tabs
Column: 1

(MD010, no-hard-tabs)


485-485: Hard tabs
Column: 1

(MD010, no-hard-tabs)


486-486: Hard tabs
Column: 1

(MD010, no-hard-tabs)


487-487: Hard tabs
Column: 1

(MD010, no-hard-tabs)


488-488: Hard tabs
Column: 1

(MD010, no-hard-tabs)


489-489: Hard tabs
Column: 1

(MD010, no-hard-tabs)


490-490: Hard tabs
Column: 1

(MD010, no-hard-tabs)


491-491: Hard tabs
Column: 1

(MD010, no-hard-tabs)


492-492: Hard tabs
Column: 1

(MD010, no-hard-tabs)

source/_integrations/mqtt.markdown

1419-1419: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)

🪛 LanguageTool
source/_posts/2025-03-10-matter-certification.markdown

[uncategorized] ~17-~17: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...tification. Certification is proof that open source projects can sit among, or even above, ...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[misspelling] ~19-~19: This word is normally spelled with a hyphen.
Context: ...y in the smart home. When a standard is well supported, consumers get access to a wide range o...

(EN_COMPOUNDS_WELL_SUPPORTED)


[uncategorized] ~21-~21: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...ut read on to see how it also helps any open source project looking to use Matter. <!--mor...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[uncategorized] ~51-~51: Possible missing comma found.
Context: ...ery time we update Home Assistant. This way we can keep the Matter-related backend ...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~67-~67: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ... pay for the required testing. Now this open source implementation exists and can be used b...

(EN_COMPOUND_ADJECTIVE_INTERNAL)

source/_integrations/thread.markdown

[uncategorized] ~86-~86: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...uilt with the REST API available in the open source implementation. The OpenThread Border R...

(EN_COMPOUND_ADJECTIVE_INTERNAL)

source/_integrations/mqtt.markdown

[grammar] ~197-~197: Please check whether ‘Both’ should be followed by a plural form.
Context: ...ate key must be uploaded together. Both client certificate and private key must be eit...

(AGREEMENT_SENT_START)

source/_integrations/roborock.markdown

[style] ~61-~61: In contexts where ‘if’ is followed by ‘or’, using ‘whether’ may be more appropriate (and formal).
Context: .... ### Binary sensor Charging - States if the vacuum is currently charging or not...

(IF_WHETHER)

source/dashboards/features.markdown

[style] ~28-~28: This phrase might be redundant. Consider either removing or replacing the adjective ‘additional’.
Context: ...nd open the Features section. 2. To add an additional feature to your card, select Add feature. ...

(ADD_AN_ADDITIONAL)

source/_integrations/gios.markdown

[typographical] ~26-~26: After the expression ‘for example’ a comma is usually used.
Context: ...me of your Home Assistant instance. For example Home." {% endconfiguration_basic %}

(COMMA_FOR_EXAMPLE)

source/_integrations/webdav.markdown

[style] ~40-~40: Consider a more expressive alternative.
Context: ...rface of your Nextcloud instance. To do this, open the file overview and click ...

(DO_ACHIEVE)


[uncategorized] ~57-~57: Possible missing article found.
Context: ... or with your WebDAV service provider. Following WebDAV services are known to have issue...

(AI_HYDRA_LEO_MISSING_THE)


[style] ~62-~62: Consider replacing ‘prove to be’ with a shorter or less frequently used alternative.
Context: ...perties. - pCloud WebDAV implementation proved to be unstable and is not recommended for bac...

(PROVE_TO_BE_WORDY)

source/_posts/2025-03-05-release-20253.markdown

[grammar] ~523-~523: It appears that a hyphen is missing in the noun “to-do” (= task) or did you mean the verb “to do”?
Context: ...nnect ([@Diegorro98] - [#140234]) - Fix todo tool broken with Gemini 2.0 models. ([@...

(TO_DO_HYPHEN)


[uncategorized] ~71-~71: Commas set off the year in a month-day-year date.
Context: ...eases](#patch-releases) - 2025.3.1 - March 7 - [2025.3.2 - Mar...

(MISSING_COMMA_BETWEEN_DAY_AND_YEAR)


[uncategorized] ~429-~429: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ....0 ([@jpbede] - [#139938]) - Add config entry level diagnostics to SmartThings ([@joostlek]...

(EN_COMPOUND_ADJECTIVE_INTERNAL)

source/_docs/configuration/templating.markdown

[style] ~476-~476: To form a complete sentence, be sure to include a subject.
Context: ...y IDs tied to a given floor ID or name. Can also be used as a filter. #### Floors ...

(MISSING_IT_THERE)


[uncategorized] ~1215-~1215: You might be missing the article “a” here.
Context: ...e template engine contains a filter and function to shuffle a list. Shuffling can happe...

(AI_EN_LECTOR_MISSING_DETERMINER_A)


[grammar] ~1592-~1592: If ‘type’ is a classification term, ‘a’ is not necessary. Use “type of”. (The phrases ‘kind of’ and ‘sort of’ are informal if they mean ‘to some extent’.)
Context: ...the returned value from a method or the type of a variable at times. For this, Home Assi...

(KIND_OF_A)

source/_integrations/modbus.markdown

[typographical] ~674-~674: Do not use a colon (:) before a series that is introduced by a preposition (‘off’). Remove the colon or add a noun or a noun phrase after the preposition.
Context: ... map keys: action_off: description: "Value corre...

(RP_COLON)

source/_integrations/environment_canada.markdown

[style] ~116-~116: ‘takes into account’ might be wordy. Consider a shorter alternative.
Context: ...uration. ### Feels Like A sensor that takes into account the humidex or wind chill for what the ...

(EN_WORDINESS_PREMIUM_TAKES_INTO_ACCOUNT)

source/_integrations/lg_thinq.markdown

[uncategorized] ~290-~290: A comma may be missing after the conjunctive/linking adverb ‘Currently’.
Context: ... #### 1) Air conditioner, climate > - Currently the Climate's set_hvac_mode, set_temper...

(SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)

🔇 Additional comments (100)
source/_integrations/ogemray.markdown (2)

1-47: YAML Metadata Formatting and Accuracy

The YAML front matter is well-structured and contains all the key details (title, description, categories, release version, code owners, supported platforms, etc.) essential for documenting the Ogemray integration. The metadata appears consistent with Home Assistant documentation standards. Ensure that the ha_release and other version-related fields are up to date with the intended release.


49-50: Include Directive Verification

The use of the include directive {% include integrations/supported_brand.md %} is appropriate for embedding the supported brand content into the integration documentation. Please verify that the referenced file exists at the correct path and contains the current branding information as per the Home Assistant guidelines.

source/_integrations/linkedgo.markdown (1)

1-47: Approval: Well-formed integration metadata.
The metadata block defines all required fields (title, description, categories, platforms, code owners, etc.) and appears consistent with Home Assistant documentation standards. Please double-check that the capitalization and naming conventions align with existing integrations.

source/_integrations/demo.markdown (1)

1-52: Approval: Demo metadata updated correctly.
The metadata now includes the new valve platform in the ha_platforms list, which matches the updated integration support. This change is consistent with the broader documentation updates.

source/_integrations/balboa.markdown (1)

13-17: Approval: Integration platforms updated with event support.
The ha_platforms now include the event platform, which aligns with the inclusion of "Event (Last known fault, if any)" in the supported devices list.

source/_integrations/frankever.markdown (1)

1-47: Approval: New integration metadata for FrankEver is complete.
The metadata block correctly outlines integration details (categories, platforms, code owners, etc.). Verify that the new valve platform and other platform entries match the integration’s capabilities.

source/_integrations/pglab.markdown (2)

4-7: Approval: Metadata update to include Sensor category.
The changes in the ha_category block now include "Sensor" alongside "Switch". This update reflects the expanded device support accurately.


13-15: Approval: Updated ha_platforms with sensor support.
The addition of sensor to the ha_platforms list is straightforward and matches the expected enhancement for PG LAB Electronics.

source/_integrations/homee.markdown (2)

17-17: Integration Platforms Update: Adding "select"

The addition of the "select" platform in the ha_platforms list helps expand the Homee integration's functionality. The placement in the list looks appropriate and consistent with how similar platforms are listed.


34-34: Supported Device Types Update: Including "select"

The inclusion of "select" in the supported device types section ensures that the documentation reflects the integration’s new capability consistently.

source/_integrations/wallbox.markdown (2)

12-12: Platform Expansion: "select" Added to ha_platforms

Adding "select" to the ha_platforms list in this integration is a clear and positive update that aligns with similar changes elsewhere.


58-61: New Section "Select" for Solar Charging Control

The new "Select" section effectively documents the ability to control Solar Charging options. The explanation (choosing between Eco Mode, Full Solar, or disabling Solar Charging) is clear and provides valuable guidance to users.

source/_integrations/nam.markdown (1)

24-24: New Sensor Addition: BH1750
The addition of the BH1750 sensor to the supported sensors list helps expand the integration’s functionality. Please verify that this sensor’s configuration and any associated parameters (if any) are also updated elsewhere in the documentation if needed.

source/_integrations/ness_alarm.markdown (1)

127-127: Updated Aux Output Range
The updated description for the output_id in the "Action aux" section, now stating a valid range from 1–8, clearly communicates the expanded hardware capability. Ensure that this documentation change aligns with the underlying integration support in case users rely on this range for configuration.

source/_integrations/yalexs_ble.markdown (1)

51-51: Clarification for Limited Support Device
The modified line for the MD-04I device now clarifies that Yale Conexis L1 requires the Yale Access module while Yale Conexis L2 does not mention this requirement. This added detail improves user understanding of hardware prerequisites.

source/_integrations/heos.markdown (2)

42-44: Enhanced Note on Failover and Reconnection
The updated note now explains that a single instance of the integration automatically adds all devices in the HEOS system and will reconnect or fail over to other hosts if necessary. This clearer explanation improves the documentation’s guidance on network resilience.


48-48: Improved Host Configuration Description
The revised description for the "Host" configuration option now emphasizes that the host must be connected via wire and continuously powered on, which provides more precise guidance for optimal performance.

source/_integrations/linak.markdown (1)

9-9: Corrected Integration Name
The change from "IKEA Idasen Desk" to "IKEA Idåsen Desk" ensures the brand and product name are accurately represented, supporting consistency across documentation.

source/_includes/dashboard/edit_dashboard.md (1)

13-13: Improved Instruction Clarity for Card Customization

The updated text now clearly indicates that users can not only add a card, but also customize its actions and features. This enhanced wording improves user guidance and aligns well with the broader documentation improvements.

source/_integrations/number.markdown (1)

54-54: Added Microsecond Support for Duration Device Class

The change correctly adds microseconds (µs) as an additional valid unit for durations. This update enhances precision and is consistent with similar changes applied throughout the documentation.

source/_integrations/sensor.markdown (1)

64-64: Expanded Duration Measurement Units with µs

By including µs in the list of supported duration units, the documentation now reflects improved granularity for time measurements. This change is consistent with the update made in the number integration documentation.

source/_integrations/valve.mqtt.markdown (1)

158-159: Direct Hyperlink Improvement for Device Class Documentation

Updating the hyperlink from a general integration reference to the specific /integrations/valve/#device_class section improves navigability. Users can now access detailed information about the device class more directly.

source/_integrations/home_connect.markdown (1)

686-686: New Washer Spin Speed Option Added: 900 rpm

The addition of the "900 rpm" option (laundry_care_washer_enum_type_spin_speed_r_p_m900) expands the available spin speed settings. This change enhances configurability for washer programs. Please verify that the underlying integration logic supports this new option.

source/_dashboards/map.markdown (1)

22-22: WebP Image Update for Map Card
The image source has been updated from PNG to WebP, which should improve loading times and reduce bandwidth usage. Please verify that the /images/dashboards/map_card.webp file exists and is properly optimized.

source/dashboards/header-footer.markdown (1)

25-25: Updated Dashboard Card Label to Singular Form
The link label has been changed from "Statistics" to "Statistic." Please ensure that this singular form is consistent with the content on the linked page (i.e. /dashboards/statistic/) and aligns with the intended user experience.

source/_integrations/cover.mqtt.markdown (1)

134-137: Enhanced Device Class Documentation Link
The description for device_class now links directly to /integrations/cover/#device_class, which improves clarity by pointing to the relevant section. Please double-check that the target anchor is correct and up to date.

source/_includes/installation/operating_system.md (1)

465-465: Improved VM Access Instructions
The instructions now clearly state that after booting, Home Assistant should be accessible via homeassistant.local:8123—with an alternative option to use the virtual machine’s IP address if needed. This provides clearer guidance for users on networks with stricter configurations.

source/_integrations/advantage_air.markdown (1)

71-71: Expanded Switch Entity Description
The integration description now includes a toggle for MySleep$aver (if supported by the hardware), in addition to the existing MyFan/ezFan and fresh air mode toggles. This update expands functionality and should be verified against supported hardware configurations.

_config.yml (1)

109-113: Version and Release Update Verification
The update of current_patch_version from 0 to 1 and date_released from 2025-03-05 to 2025-03-07 is properly reflected. Ensure that these changes are consistent with the overall release notes and that any new functionality (e.g. µs support) is clearly covered elsewhere in the documentation if needed.

source/_integrations/supla.markdown (1)

29-33: Emphasized MQTT Protocol Requirement
The added important note clearly instructs users to change the default MQTT protocol setting to version 3.1 when using the Supla Cloud MQTT broker. This additional guidance is well formatted and aligned with documentation standards.

source/_integrations/ohme.markdown (1)

76-79: New 'Vehicle' Select Entity Addition
The introduction of the "Vehicle" select entity is clear and fits well within the existing list of entities. It provides a useful option for selecting the vehicle to charge and aligns with the integration’s intent. Confirm that the backend implementation supports this new entity as documented.

source/_integrations/weheat.markdown (1)

70-72: Updated Polling Interval Information
The revised description detailing the polling intervals—120 seconds per heat pump (scaling to 240 seconds for two) and 1800 seconds for energy data—is clear and improves user understanding of the integration’s behavior.

source/_posts/2025-03-10-matter-certification.markdown (1)

3-3: Updated title reflects the new messaging.
The title now reads Home Assistant officially Matters. Confirm that this phrasing aligns with your marketing strategy and maintains consistency with related materials.

source/_includes/custom/buy-dialog.html (1)

32-32: Cosmetic Liquid tag formatting update.
The addition of a space before the closing %} in the assignment statement improves readability without altering functionality.

plugins/filters.rb (1)

128-131: Indentation correction in case_insensitive_sort method.
The re-indentation aligns this helper method with the rest of the module for consistent styling. No logic changes were introduced.

source/_dashboards/tile.markdown (1)

19-19: Formatting Improvement: The removal of the trailing space in the sentence "The circular background behind an icon indicates that there is a tap action." enhances the consistency of the text.

source/_integrations/onedrive.markdown (2)

21-21: Enhanced Integration Overview: The updated description now clarifies that OneDrive can be used not only for Home Assistant backups but also for uploading generic files. This additional functionality is clearly communicated.


88-105: New Actions Section Addition: Introducing the "## Actions" section for the onedrive.upload action—with its detailed data attributes and example—improves the documentation’s clarity. Please verify that the action details align with the current API specifications.

source/_integrations/inkbird.markdown (1)

29-30: New Device Entries Added: The inclusion of the INKBIRD Bluetooth Hygrometer Thermometer ITH-13-B and ITH-21-B expands the list of supported devices. Ensure that the product names and URLs accurately reflect the latest models.

source/_posts/2025-03-05-release-20253.markdown (1)

70-72: Navigation Update: The navigation list now includes a "Patch releases" section with a sub-item for "2025.3.1 - March 7". This addition improves navigability of the release notes. Consider verifying that the date formatting meets the style guidelines.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~71-~71: Commas set off the year in a month-day-year date.
Context: ...eases](#patch-releases) - 2025.3.1 - March 7 - [2025.3.2 - Mar...

(MISSING_COMMA_BETWEEN_DAY_AND_YEAR)

source/_integrations/roborock.markdown (2)

38-38: Clarification on Communication: The updated phrasing now clearly states that, aside from map data and routines, communication between the integration and the device is handled locally even though a continuous cloud connection is required. This clarification aids user understanding.


136-136: New Routine Note: The additional note explaining that some vacuums allow routines to be set up in the app—with corresponding button entities for triggering them—is a useful enhancement. Ensure that this note remains consistent with similar sections in other integration documents.

source/_integrations/humidifier.mqtt.markdown (1)

147-152: Device Class Description Update Verification

The updated description for the device_class field now includes a hyperlink to the relevant documentation. This enhances clarity for users and maintains consistency in linking to more information.

source/_integrations/anthropic.markdown (1)

70-73: Enhanced Parameter Descriptions

The updated description for the Temperature parameter now clearly indicates that it is ignored when extended thinking is enabled, and the newly added "Thinking budget" parameter is explained in a detailed and instructive manner. This clarity will help users configure the integration appropriately.

source/dashboards/cards.markdown (1)

58-64: Restructured Card Customization Instructions

The updated "Customize your card" section now clearly breaks down the available customization options (card actions, header/footer, and feature customization). This restructuring improves the overall readability and makes the instructions more actionable for users.

source/_integrations/igloohome.markdown (1)

18-22: Updated igloohome Integration Description

The added description—complete with a direct link to the igloodeveloper API—and the clear feature list distinguishing bridge from non-bridge owner scenarios improve user guidance substantially.

source/_integrations/philips_js.markdown (1)

28-44: Refined Prerequisites Section

The restructuring of the prerequisites and the “Check if this integration can be used” section has improved clarity and provides users with a better step‐by‐step guide for verifying compatibility with their Philips TV.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

39-39: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


41-41: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


42-42: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)

source/_integrations/enphase_envoy.markdown (2)

42-48: Enhanced Prerequisites and Initial Scan Details

The revised prerequisites now clearly state that the Envoy must be on your local network with IPV4 connectivity—and the reference to troubleshooting “periodic network connection issues” is much clearer. This update, along with specifying the firmware version requirements, sets a solid foundation for correct configuration.


730-734: Clear Troubleshooting for CT Active Flags

The detailed explanation provided for the CT active flag count (i.e. that it should normally be zero and non-zero indicates potential issues) is very helpful for users diagnosing installation or wiring problems. Great work on clarifying these diagnostics.

source/_integrations/lg_thinq.markdown (1)

295-407: Well-Documented Notification Automation
The added “Notification, error event” automation script is clear and provides step-by-step guidance on how to toggle the switch when an air purifier’s notification is triggered. The use of a raw block and clear YAML formatting enhances reader understanding.

source/_integrations/iron_os.markdown (2)

105-107: New Configuration Options for IronOS
The new configuration parameters for Soldering tip type and Hall effect sleep timeout are clearly described with version requirements (v2.23 or higher). This update helps users know which features are available, and the explanation is consistent with Home Assistant documentation standards.


131-132: Update to Power Delivery 3.1 EPR Description
The revised entry for Power Delivery 3.1 EPR is clear and mentions the “safe” option requirement for IronOS v2.23 or higher. Ensure that linked documentation (e.g. for compatible USB-C power supplies) remains up to date.

source/_data/products.yml (1)

10-14: Uniform Distributor Name Capitalization
The changes updating distributor names—for example, from "ameriDroid" to "AmeriDroid", "eWeLink device store" to "EWeLink device store", "mediarath" to "Mediarath", and "m.nu" to "M.nu"—improve consistency and clarity across the file. These modifications align well with overall documentation standards.

Also applies to: 73-77, 98-107

source/voice_control/index.markdown (1)

411-520: Refined updateLanguageSupports Function
The updated language support mapping in the updateLanguageSupports function now includes many new entries with clear support values. This update helps ensure that end users see correct device support state for their locale.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

412-412: Hard tabs
Column: 1

(MD010, no-hard-tabs)


413-413: Hard tabs
Column: 1

(MD010, no-hard-tabs)


414-414: Hard tabs
Column: 1

(MD010, no-hard-tabs)


415-415: Hard tabs
Column: 1

(MD010, no-hard-tabs)


416-416: Hard tabs
Column: 1

(MD010, no-hard-tabs)


417-417: Hard tabs
Column: 1

(MD010, no-hard-tabs)


418-418: Hard tabs
Column: 1

(MD010, no-hard-tabs)


419-419: Hard tabs
Column: 1

(MD010, no-hard-tabs)


420-420: Hard tabs
Column: 1

(MD010, no-hard-tabs)


421-421: Hard tabs
Column: 1

(MD010, no-hard-tabs)


422-422: Hard tabs
Column: 1

(MD010, no-hard-tabs)


423-423: Hard tabs
Column: 1

(MD010, no-hard-tabs)


424-424: Hard tabs
Column: 1

(MD010, no-hard-tabs)


425-425: Hard tabs
Column: 1

(MD010, no-hard-tabs)


426-426: Hard tabs
Column: 1

(MD010, no-hard-tabs)


427-427: Hard tabs
Column: 1

(MD010, no-hard-tabs)


428-428: Hard tabs
Column: 1

(MD010, no-hard-tabs)


429-429: Hard tabs
Column: 1

(MD010, no-hard-tabs)


430-430: Hard tabs
Column: 1

(MD010, no-hard-tabs)


431-431: Hard tabs
Column: 1

(MD010, no-hard-tabs)


432-432: Hard tabs
Column: 1

(MD010, no-hard-tabs)


433-433: Hard tabs
Column: 1

(MD010, no-hard-tabs)


434-434: Hard tabs
Column: 1

(MD010, no-hard-tabs)


435-435: Hard tabs
Column: 1

(MD010, no-hard-tabs)


436-436: Hard tabs
Column: 1

(MD010, no-hard-tabs)


437-437: Hard tabs
Column: 1

(MD010, no-hard-tabs)


438-438: Hard tabs
Column: 1

(MD010, no-hard-tabs)


439-439: Hard tabs
Column: 1

(MD010, no-hard-tabs)


440-440: Hard tabs
Column: 1

(MD010, no-hard-tabs)


441-441: Hard tabs
Column: 1

(MD010, no-hard-tabs)


442-442: Hard tabs
Column: 1

(MD010, no-hard-tabs)


443-443: Hard tabs
Column: 1

(MD010, no-hard-tabs)


444-444: Hard tabs
Column: 1

(MD010, no-hard-tabs)


445-445: Hard tabs
Column: 1

(MD010, no-hard-tabs)


446-446: Hard tabs
Column: 1

(MD010, no-hard-tabs)


447-447: Hard tabs
Column: 1

(MD010, no-hard-tabs)


448-448: Hard tabs
Column: 1

(MD010, no-hard-tabs)


449-449: Hard tabs
Column: 1

(MD010, no-hard-tabs)


450-450: Hard tabs
Column: 1

(MD010, no-hard-tabs)


451-451: Hard tabs
Column: 1

(MD010, no-hard-tabs)


452-452: Hard tabs
Column: 1

(MD010, no-hard-tabs)


453-453: Hard tabs
Column: 1

(MD010, no-hard-tabs)


454-454: Hard tabs
Column: 1

(MD010, no-hard-tabs)


455-455: Hard tabs
Column: 1

(MD010, no-hard-tabs)


456-456: Hard tabs
Column: 1

(MD010, no-hard-tabs)


457-457: Hard tabs
Column: 1

(MD010, no-hard-tabs)


458-458: Hard tabs
Column: 1

(MD010, no-hard-tabs)


459-459: Hard tabs
Column: 1

(MD010, no-hard-tabs)


460-460: Hard tabs
Column: 1

(MD010, no-hard-tabs)


461-461: Hard tabs
Column: 1

(MD010, no-hard-tabs)


462-462: Hard tabs
Column: 1

(MD010, no-hard-tabs)


463-463: Hard tabs
Column: 1

(MD010, no-hard-tabs)


464-464: Hard tabs
Column: 1

(MD010, no-hard-tabs)


465-465: Hard tabs
Column: 1

(MD010, no-hard-tabs)


466-466: Hard tabs
Column: 1

(MD010, no-hard-tabs)


467-467: Hard tabs
Column: 1

(MD010, no-hard-tabs)


468-468: Hard tabs
Column: 1

(MD010, no-hard-tabs)


469-469: Hard tabs
Column: 1

(MD010, no-hard-tabs)


470-470: Hard tabs
Column: 1

(MD010, no-hard-tabs)


471-471: Hard tabs
Column: 1

(MD010, no-hard-tabs)


472-472: Hard tabs
Column: 1

(MD010, no-hard-tabs)


473-473: Hard tabs
Column: 1

(MD010, no-hard-tabs)


474-474: Hard tabs
Column: 1

(MD010, no-hard-tabs)


475-475: Hard tabs
Column: 1

(MD010, no-hard-tabs)


476-476: Hard tabs
Column: 1

(MD010, no-hard-tabs)


477-477: Hard tabs
Column: 1

(MD010, no-hard-tabs)


478-478: Hard tabs
Column: 1

(MD010, no-hard-tabs)


479-479: Hard tabs
Column: 1

(MD010, no-hard-tabs)


480-480: Hard tabs
Column: 1

(MD010, no-hard-tabs)


481-481: Hard tabs
Column: 1

(MD010, no-hard-tabs)


482-482: Hard tabs
Column: 1

(MD010, no-hard-tabs)


483-483: Hard tabs
Column: 1

(MD010, no-hard-tabs)


484-484: Hard tabs
Column: 1

(MD010, no-hard-tabs)


485-485: Hard tabs
Column: 1

(MD010, no-hard-tabs)


486-486: Hard tabs
Column: 1

(MD010, no-hard-tabs)


487-487: Hard tabs
Column: 1

(MD010, no-hard-tabs)


488-488: Hard tabs
Column: 1

(MD010, no-hard-tabs)


489-489: Hard tabs
Column: 1

(MD010, no-hard-tabs)


490-490: Hard tabs
Column: 1

(MD010, no-hard-tabs)


491-491: Hard tabs
Column: 1

(MD010, no-hard-tabs)


492-492: Hard tabs
Column: 1

(MD010, no-hard-tabs)


493-493: Hard tabs
Column: 1

(MD010, no-hard-tabs)


494-494: Hard tabs
Column: 1

(MD010, no-hard-tabs)


496-496: Hard tabs
Column: 1

(MD010, no-hard-tabs)


497-497: Hard tabs
Column: 1

(MD010, no-hard-tabs)


499-499: Hard tabs
Column: 1

(MD010, no-hard-tabs)


500-500: Hard tabs
Column: 1

(MD010, no-hard-tabs)


501-501: Hard tabs
Column: 1

(MD010, no-hard-tabs)


502-502: Hard tabs
Column: 1

(MD010, no-hard-tabs)


503-503: Hard tabs
Column: 1

(MD010, no-hard-tabs)


503-503: Reversed link syntax
("-")[0]

(MD011, no-reversed-links)


503-503: Reversed link syntax
("-")[0]

(MD011, no-reversed-links)


504-504: Hard tabs
Column: 1

(MD010, no-hard-tabs)


505-505: Hard tabs
Column: 1

(MD010, no-hard-tabs)


506-506: Hard tabs
Column: 1

(MD010, no-hard-tabs)


507-507: Hard tabs
Column: 1

(MD010, no-hard-tabs)


508-508: Hard tabs
Column: 1

(MD010, no-hard-tabs)


509-509: Hard tabs
Column: 1

(MD010, no-hard-tabs)


511-511: Hard tabs
Column: 1

(MD010, no-hard-tabs)


512-512: Hard tabs
Column: 1

(MD010, no-hard-tabs)


514-514: Hard tabs
Column: 1

(MD010, no-hard-tabs)


516-516: Hard tabs
Column: 1

(MD010, no-hard-tabs)


517-517: Hard tabs
Column: 1

(MD010, no-hard-tabs)


518-518: Hard tabs
Column: 1

(MD010, no-hard-tabs)


519-519: Hard tabs
Column: 1

(MD010, no-hard-tabs)

source/_integrations/template.markdown (3)

76-76: Updated Heading for State-Based Templates
The new heading now includes "weathers" alongside other entities, which improves clarity and completeness. Please verify that this change aligns with the overall integration documentation and upstream schema.


98-98: Updated Heading for Trigger-Based Templates
The revised heading now excludes buttons and adds "weathers." This appears intentional for reflecting supported entity types. Double-check that any cross-references (or examples later in the document) are updated accordingly.


109-110: Clarification on Button Limitations
The note stating "Buttons do not support using trigger or action options." is now clearly highlighted. This explicit clarification should help users avoid configuration pitfalls.

source/_docs/blueprint/selectors.markdown (4)

153-158: Addition of model_id in Area Selector Configuration
The new model_id field in the area selector helps further refine the areas based on the devices’ model IDs. The description is clear and the type is correctly set to string. Please confirm that this new option is supported by backend validation.


570-574: Addition of model_id in Device Selector Configuration
The inclusion of the model_id field for filtering devices is a beneficial enhancement, allowing users to narrow down device lists more precisely. Ensure that any related examples or usage instructions are updated if needed.


800-811: Addition of model_id in Floor Selector Configuration
The new model_id parameter in the floor selector’s device options is a welcome addition. It increases filtering granularity and consistency across selectors.


1362-1365: Addition of model_id in Target Selector Configuration
Adding the model_id field in the target selector configuration provides enhanced filtering for device targets. The description and type are well defined.

source/_docs/configuration/templating.markdown (2)

1177-1200: New Hashing Section Enhancements
The added "Hashing" section provides clear examples for the md5, sha1, sha256, and sha512 functions/filters. The examples are concise and practical. You might consider adding a brief note on potential Unicode pitfalls (if any) when hashing strings to further assist users.


1590-1626: New Determining Types Section
The "Determining types" section with the typeof() function/filter is clearly structured with a comprehensive set of examples. This will be very useful for debugging and template development.

🧰 Tools
🪛 LanguageTool

[grammar] ~1592-~1592: If ‘type’ is a classification term, ‘a’ is not necessary. Use “type of”. (The phrases ‘kind of’ and ‘sort of’ are informal if they mean ‘to some extent’.)
Context: ...the returned value from a method or the type of a variable at times. For this, Home Assi...

(KIND_OF_A)

source/_integrations/modbus.markdown (1)

530-531: Update: Enhanced Climate Platform Description
The description for the Modbus climate platform now mentions support for HVAC action in addition to temperature control. This expanded description improves clarity regarding the platform’s capabilities.

source/_integrations/mqtt.markdown (1)

1411-1423: New Section: Entity State Updates
The added “Entity state updates” section provides clear guidance on how MQTT subscribers handle state payloads—including the practical implications for the last_reported attribute. This detailed explanation will help users understand why a retained payload may not reflect the current state and why updates may be delayed without the force_update option.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

1419-1419: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)

source/changelogs/core-2025.3.markdown (27)

1165-1165: Release Header Updated
The new section header “Release 2025.3.1 - March 7” is clear and follows the established format. Please verify that the release date and version number are correct and consistent with internal documentation.


1167-1167: SmartThings AC – Demand Load Control Check
The bullet “Check support for demand load control in SmartThings AC” is concise. Please ensure that the underlying implementation (referenced in [#139616]) has sufficient tests and documentation, so users understand how this check influences device behavior.


1168-1168: Squeezebox UoM Fix
“Fix Unit of Measurement for Squeezebox duration sensor entity on LMS service” is self‑explanatory. Verify that the corrected unit (e.g. seconds, minutes, etc.) now precisely matches the expected measurement in the LMS context.


1169-1169: Schema Allowed Keys Trimming
“Trim the Schema allowed keys to match the Public Gemini API docs” appears to improve API consistency. Confirm that the trimmed keys exactly match the published API documentation, and add a note if any backwards‐compatibility concerns should be addressed.


1170-1170: Dependency Bump – thermobeacon-ble
Bumping thermobeacon-ble to 0.8.1 is straightforward. Please double‑check that no breaking changes are introduced by this version upgrade.


1172-1172: Validation of Unit of Measurement
Adding a check for whether the unit of measurement is valid before creating the entity is a good defensive practice. Just confirm that this additional validation is covered by tests that simulate invalid inputs.


1173-1173: Dependency Bump – pysmartthings
Bumping pysmartthings to 2.6.1 looks routine. Confirm that all integration tests pass with the new version.


1174-1174: Dependency Bump – aiowebdav2
Upgrading aiowebdav2 to 0.4.0 should be verified against any file‑upload flows to ensure there is no disruption.


1177-1177: Dependency Bump – python-snoo
Bumping python-snoo to 0.6.1 is noted. Confirm that any API changes between versions have been accommodated.


1178-1178: SmartThings Fan Fix
“Fix SmartThings fan” is brief. It would be helpful to confirm that the fan’s behavior (e.g. speed levels or on/off cycling) now behaves as expected after this fix and that device-specific regression tests are in place.


1179-1179: Frontend Version Update
Updating the frontend to version 20250306.0 is standard practice. Please ensure that this new build has been deployed and passes all UI tests.


1180-1180: Dust Sensor UoM Fix in SmartThings
Fixing the unit of measurement for the SmartThings dust sensor is clear. Verify that the displayed unit now accurately reflects the sensor’s data.


1181-1181: Dependency Bump – nexia
Bumping nexia to 2.2.2 appears routine. As always, ensure that no breaking changes have been introduced in this update.


1182-1182: Dependency Bump – aiowebdav2 (second update)
This additional bump to aiowebdav2 to 0.4.1 should be checked for consistency with the previous bump (line 1174) to ensure that documentation reflects the final version used.


1183-1183: Config Entries for Google Generative AI
“Correctly retrieve only loaded Google Generative AI config_entries” addresses a specific issue. Please validate that no stale or unintended config entries are now being processed and that unit tests cover this filtering.


1184-1184: Evohome Debug Logging Regression
Fixing the regression in evohome debug logging is important for troubleshooting; ensure that enhanced logging does not adversely affect performance.


1185-1185: Home Connect Sensor State Check
“Check operation state on Home Connect program sensor update” sounds critical. Please verify with integration tests that sensor state transitions now reflect the actual appliance state accurately.


1186-1186: Dependency Bump – aiohomeconnect
Bumping aiohomeconnect to 0.16.3 is straightforward; as usual, confirm compatibility with the Home Connect integration.


1187-1187: Powerwall Fix for Tessie/Tesla Fleet
“Fix powerwall 0% in Tessie and Tesla Fleet” addresses an important misreporting issue. Please ensure that the fix has been validated with both simulations and, if possible, real device data.


1188-1188: Shift State Default in Teslemetry and Tessie
Adjusting the default for shift state in Teslemetry and Tessie should now present the correct initial value. Confirm that tests cover cases where no explicit state is provided.


1189-1189: HomematicIP HCU1 Description Addition
The added description for HomematicIP HCU1 in the homematicip_cloud setup flow will improve clarity for end users. Make sure that the wording is consistent with similar configuration items.


1190-1190: Evohome Handling of Null Schedules
Fixing evohome to gracefully handle null schedules prevents potential crashes. Please double-check that this change has unit test coverage for schedules that are missing or set to null.


1192-1192: SmartThings Thermostat Climate Check Fix
The change to fix the thermostat climate check in SmartThings looks necessary. Recommend reviewing the logic thoroughly in integration tests to ensure climate states are now correct.


1193-1193: Dependency Bump – pysmartthings (again)
Upgrading pysmartthings to 2.7.0 should be verified by running the SmartThings integration test suite.


1194-1194: Filtering Valid Power Consumption Reports
“Only keep valid powerConsumptionReports in SmartThings” sounds like a robust data validation improvement. Ensure that invalid or corrupt reports are filtered out without affecting valid data.


1195-1195: Dependency Bump – py-synologydsm-api
Bumping py-synologydsm-api to 2.7.1 is standard. Please ensure that the new version’s API matches expectations in the integration tests.


1196-1196: Restoration of SmartThings Button Event
Restoring the SmartThings button event should re‑enable any lost functionality from previous changes. It’s important to validate that the event is now firing as expected on the target devices.

source/_integrations/environment_canada.markdown (4)

39-39: Consolidated Forecast Entities Description:
The revised line now combines current conditions, daily forecast, and hourly forecast into a single clear statement. This consolidation improves clarity and reduces redundancy.


110-113: Enhanced Template Sensor Instructions:
The updated instructions clearly direct users to replace NAME with the appropriate weather entity, making the configuration snippet more adaptable.


138-139: Introduction of Additional Forecast Data Section:
The new section header clearly indicates that additional forecast data will be provided. This helps users quickly locate and understand extended forecast options.


140-166: Forecast Data YAML Snippet:
The YAML snippet is well-structured and demonstrates how to set up the forecast sensor with state and attributes. Just ensure that users are clearly informed about the usage of the NAME placeholder.

source/_integrations/habitica.markdown (4)

300-312: New Action habitica.create_reward Documentation:
The documentation for creating a reward is detailed and includes a clear attribute table. Ensure that the distinction between mandatory and optional parameters is consistent with the integration’s behavior.


347-370: New Action habitica.update_todo Documentation:
The update for to-do items is neatly detailed, especially with the inclusion of checklist operations. Please verify that these parameters accurately reflect Habitica’s API requirements.


371-386: New Action habitica.create_todo Documentation:
The documentation for creating a to-do is thorough and clear. The attribute table is consistent with the rest of the integration documentation, ensuring ease of use for the end user.


1-30: Overall Documentation Consistency:
The file maintains a high standard of formatting and consistency throughout all sections. The new actions are well-documented, and the markdown structure makes the content easy to follow.

- Fix shift state default in Teslemetry and Tessie ([@Bre77] - [#140018])
- Add description for HomematicIP HCU1 in homematicip_cloud setup config flow ([@hahn-th] - [#140025])
- Fix evohome to gracefully handle null schedules ([@zxdavb] - [#140036])
- Fix SmartThings disabling working capabilities ([@joostlek] - [#140039])
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

SmartThings Capability Re-enablement
“Fix SmartThings disabling working capabilities” is a critical usability improvement. Testing should confirm that all supported capabilities are correctly enabled after this fix.

@victorclaessen
Copy link
Author

How did I do that? hmm. will try to fix

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
has-parent This PR has a parent PR in a other repo next This PR goes into the next branch
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.