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

Update HomeKit docs for air purifiers #38417

Open
wants to merge 1 commit into
base: next
Choose a base branch
from

Conversation

MaartenStaa
Copy link

@MaartenStaa MaartenStaa commented Apr 7, 2025

Proposed change

Updates HomeKit documentation for air purifiers, corresponding to the changes in home-assistant/core#142467.

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

    • Added support for air purifier configurations, enabling enhanced control with integrated sensor data (filter life, PM2.5, temperature, and filter change indications).
  • Documentation

    • Updated integration guides and tables to reflect the expanded functionality, showing that fan entities now include air purifier options for improved management.

@MaartenStaa MaartenStaa requested a review from bdraco as a code owner April 7, 2025 11:55
@home-assistant home-assistant bot added the current This PR goes into the current branch label Apr 7, 2025
Copy link

netlify bot commented Apr 7, 2025

Deploy Preview for home-assistant-docs ready!

Name Link
🔨 Latest commit f72e6ad
🔍 Latest deploy log https://app.netlify.com/sites/home-assistant-docs/deploys/67f3fe648a11e100091acd0c
😎 Deploy Preview https://deploy-preview-38417--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.

@home-assistant
Copy link

home-assistant bot commented Apr 7, 2025

It seems that this PR is targeted against an incorrect branch since it has a parent PR on one of our codebases. Documentation that needs to be updated for an upcoming release should target the next branch. Please change the target branch of this PR to next and rebase if needed.

@home-assistant home-assistant bot added has-parent This PR has a parent PR in a other repo in-progress This PR/Issue is currently being worked on needs-rebase The PR has been branched of the wrong base branch or targets an incorrect target branch labels Apr 7, 2025
Copy link
Contributor

coderabbitai bot commented Apr 7, 2025

📝 Walkthrough

Walkthrough

The changes update the HomeKit integration documentation by adding a new configuration entry, fan.air_purifier, for air purifier devices. This update introduces several new configuration parameters for linking sensors (filter change indication binary sensor, filter life level sensor, PM2.5 sensor, and temperature sensor) and revises the valid types for fan entities to include both fan and air_purifier. The supported integrations table has been updated accordingly.

Changes

File Change Summary
source/_integrations/homekit.markdown • Added fan.air_purifier configuration entry
• Introduced new parameters: linked_filter_change_indication_binary_sensor, linked_filter_life_level_sensor, linked_pm25_sensor, linked_temperature_sensor
• Updated type description and supported integrations table

📜 Recent review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 9010d71 and f72e6ad.

📒 Files selected for processing (1)
  • source/_integrations/homekit.markdown (5 hunks)
🔇 Additional comments (7)
source/_integrations/homekit.markdown (7)

61-63: New Example Entry for Air Purifier Configuration
The example entry for fan.air_purifier now shows the correct usage with type: air_purifier and appropriately links a filter life level sensor. This clearly demonstrates how users should configure this new device type within their entity_config.


169-172: Addition of Filter Change Indication Sensor Key
The new key linked_filter_change_indication_binary_sensor is introduced with a clear description that specifies its role in indicating when the air purifier filter needs to be changed. This addition aligns well with the new air purifier feature requirements.


173-176: Addition of Filter Life Level Sensor Key
The configuration for linked_filter_life_level_sensor is well documented here. It provides the necessary details for setting up a sensor to monitor the filter’s life level, supporting the intended functionality of the air purifier accessory.


181-184: Addition of PM2.5 Sensor Configuration
The new parameter linked_pm25_sensor is clearly explained, including its effect on automatically defaulting the accessory to an air purifier when set. This addition is consistent with the updated integration goals.


189-192: Addition of Temperature Sensor Configuration
Introducing the linked_temperature_sensor key provides users the ability to link a temperature sensor to the air purifier accessory. The description is concise and matches the new feature requirements.


217-218: Enhanced Description for Accessory Type
The update to the type key’s description now includes air_purifier as a valid option for fan entities. This is essential to communicate that fans can be represented either as a traditional fan or as an air purifier based on the configuration.


439-440: Updated Supported Integrations Table for Fans
The table now reflects that fan entities can be represented as either Fan or AirPurifier, along with their operational characteristics. This update helps clarify the integration’s capabilities and ensures that the documentation aligns with the new configuration options.


🪧 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 plan to trigger planning for file edits and PR creation.
  • @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.

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: 0

🧹 Nitpick comments (6)
source/_integrations/homekit.markdown (6)

61-63: New Air Purifier Entity in Sample Configuration.
The sample configuration now includes a fan.air_purifier entity with type: air_purifier and a linked filter life level sensor. Ensure that the example clearly communicates when and why users should use this air purifier configuration compared to the standard fan configuration.


169-176: Addition of Air Purifier Sensor Parameters in Entity Config.
The new keys linked_filter_change_indication_binary_sensor and linked_filter_life_level_sensor are now available under the entity configuration. Their descriptions look clear and useful; however, please verify that the same terminology is used consistently in other documentation and configuration examples.


180-183: Introduction of the PM2.5 Sensor Configuration.
The new linked_pm25_sensor key informs HomeKit to default a fan accessory as an air purifier when set. Ensure that this behavior (and its benefits) is clearly explained in the docs so users understand under what circumstances they should include this parameter.


192-196: New Temperature Sensor Parameter for Air Purifiers.
The linked_temperature_sensor key provides additional support for air purifier accessories. Confirm that its purpose and any potential limitations (if applicable) are well-documented in related sections or examples.


215-219: Updated type Description Reflecting Air Purifier Support.
The description for the type field now indicates that valid types for fan entities include both fan and air_purifier, which is a good clarification. It would be beneficial to verify that the examples and downstream usage reflect this update coherently.


438-439: Clarify Multiple Table Entries for Fan/Air Purifier Integrations.
There are two similar table rows for fan entities labeled as "Fan / AirPurifier." If these rows are intended to represent distinct configurations (e.g., one for basic on/off/direction/oscillation and another for speed-based controls), consider adding a note or sub-label to differentiate them clearly for the reader.

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 1458246 and e90c8e5.

📒 Files selected for processing (1)
  • source/_integrations/homekit.markdown (5 hunks)

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/_integrations/heos.markdown (1)

195-200: ⚠️ Potential issue

Typographical Error in YAML Example for Quick Select
There is an extra double quote in the key for media_content_id in the Quick Select example. Please change:

-  media_content_id": "1"
+  media_content_id: "1"

to ensure valid YAML syntax.

🧹 Nitpick comments (29)
source/_dashboards/clock.markdown (1)

11-12: Consider Refining Descriptive Text.
The phrase “a variety of formats and sizes” could be simplified to “various formats and sizes” for clarity and conciseness, per the style recommendation.

🧰 Tools
🪛 LanguageTool

[style] ~11-~11: The phrase “a variety of” may be wordy. To make your writing clearer, consider replacing it.
Context: ...he Clock card shows the current time in a variety of formats and sizes.

<im...

(A_VARIETY_OF)

source/_includes/custom/news.html (1)

5-11: New Promotional Link for SOTOH 2025
The new promotional block for the "State of the Open Home 2025" event is well implemented with a clear aria-label and appropriate inline styling. For improved maintainability, consider moving the inline styles to a CSS class if similar styling is used elsewhere.

source/_integrations/generic_thermostat.markdown (1)

85-89: Improved Description for cold_tolerance
The updated description for cold_tolerance now clearly specifies that the heater will be triggered when the sensor reads below the computed threshold (e.g., below 24.5 for a target of 25 with a 0.5 tolerance).
Consider rephrasing “prior to being switched on” to “before being switched on” to enhance clarity and conciseness, aligning with style recommendations.

🧰 Tools
🪛 LanguageTool

[style] ~86-~86: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...the target temperature that must change prior to being switched on. For example, if the ...

(EN_WORDINESS_PREMIUM_PRIOR_TO)

source/_integrations/qnap_qsw.markdown (1)

93-98: Addition of "Removing the integration" Section
The new section clearly explains that no extra steps are required to remove the integration and includes a reference to the standard removal guide. This aligns well with similar updates in other integration documentation.

source/_integrations/group.markdown (1)

490-490: Minor Grammatical Improvement: Article Correction
The sentence currently uses "a action" before "reload the configuration" in the description of available actions for old-style groups. It is recommended to change this to "an action" for grammatical correctness.
Below is a suggested diff:

-The following actions to modify groups and a action to reload the configuration without restarting Home Assistant itself.
+The following actions to modify groups and an action to reload the configuration without restarting Home Assistant itself.
🧰 Tools
🪛 LanguageTool

[misspelling] ~490-~490: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ... following actions to modify groups and a action to reload the configuration with...

(EN_A_VS_AN)

source/_integrations/jvc_projector.markdown (1)

36-43: Introduce Password Hashing Guidance for Security

The new section outlining the password hashing process for newer models (NZ800 and NZ900) is detailed and provides a clear step-by-step approach. Consider adding a brief note recommending the use of trusted, offline tools (or command-line instructions) for generating the SHA256 hash to mitigate potential security risks associated with online hash generators.

Gemfile (2)

13-15: Alphabetical Ordering of Development Gems
Static analysis indicates that gems in the development group should be alphabetically ordered. Currently, sass-embedded appears before rubocop. Consider reordering these lines as follows:

-  gem 'sass-embedded', '1.86.1'
-  gem 'rubocop', '1.75.1'
-  gem 'ruby-lsp', '0.23.13'
+  gem 'rubocop', '1.75.1'
+  gem 'ruby-lsp', '0.23.13'
+  gem 'sass-embedded', '1.86.1'

This will improve consistency and meet the RuboCop ordering rules.

🧰 Tools
🪛 RuboCop (1.73)

[convention] 14-14: Gems should be sorted in an alphabetical order within their section of the Gemfile. Gem rubocop should appear before sass-embedded.

(Bundler/OrderedGems)


26-27: Alphabetical Ordering Outside the Development Group
For the main gem list, the static analysis recommends that nokogiri should come before sinatra. Please swap their order as shown below:

- gem 'sinatra', '4.1.1'
- gem 'nokogiri', '1.18.7'
+ gem 'nokogiri', '1.18.7'
+ gem 'sinatra', '4.1.1'

This change will adhere to the alphabetical ordering convention.

🧰 Tools
🪛 RuboCop (1.73)

[convention] 27-27: Gems should be sorted in an alphabetical order within their section of the Gemfile. Gem nokogiri should appear before sinatra.

(Bundler/OrderedGems)

source/_integrations/nut.markdown (1)

90-91: Markdown List Formatting Observation
A static analysis hint noted a “possible missing comma” near the "Power cycle outlet NAME" entry. In Markdown bullet lists, commas are not required. Please verify that the rendered output meets your expectations.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~90-~90: Possible missing comma found.
Context: ...: - Power cycle outlet NAME: Power cycle the named outlet ### Switches This NU...

(AI_HYDRA_LEO_MISSING_COMMA)

source/_integrations/eve.markdown (1)

18-38: Introduction and Supported Devices Clarity
The introductory text and device support list are concise and informative. As an optional enhancement, consider adding brief descriptions for each supported device to provide additional context to users.

source/_integrations/konnected.markdown (1)

107-110: Clarify API URL Configuration Terminology
The updated descriptions now clearly differentiate between the default internal API URL and a custom URL provided via the “Custom API host URL (optional)” field. This change improves clarity on how and when a custom URL is applied. Please verify that this terminology is used consistently across all similar integration documentation.

source/_integrations/squeezebox.markdown (1)

145-149: Addition of Switches Section for Alarm Controls
Introducing the new Switches subsection with entries for Alarm and Alarms Enabled adds useful clarity for managing alarm functionality within the Squeezebox integration. Ensure that the formatting and terminology here are consistent with other integration documents.

source/_integrations/motionblinds_matter.markdown (4)

42-43: Consider Hyphenating "Mid-Motor".
In the device names on lines 42–43, consider changing “Mid Motor” to “Mid‑Motor” for consistency and clarity.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~42-~42: This word is normally spelled with a hyphen.
Context: ...roducts/venetian) - [CM-07 Motionblinds Mid Motor Battery/Wired 0.8Nm](https://motionblin...

(MID_HYPHEN)


[uncategorized] ~43-~43: This word is normally spelled with a hyphen.
Context: ...products/roman) - [CM-07V2 Motionblinds Mid Motor Battery/Wired 0.8Nm](https://motionblin...

(MID_HYPHEN)


63-64: Hyphenation Suggestion for "Mid-Motor".
Similarly, on lines 63–64 the term “Mid Motor” would benefit from being hyphenated as “Mid‑Motor” to align with conventional styling.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~63-~63: This word is normally spelled with a hyphen.
Context: ... - [CM-07-E-R Eve Motionblinds Venetian Mid Motor Battery/Wired 0.8Nm](https://motionblin...

(MID_HYPHEN)


[uncategorized] ~64-~64: This word is normally spelled with a hyphen.
Context: ... - [CM-07-E-V Eve Motionblinds Venetian Mid Motor Battery/Wired 0.8Nm](https://motionblin...

(MID_HYPHEN)


74-74: Apply Consistent Compound Adjective Style.
Consider updating “custom made blinds” on line 74 to “custom‑made blinds” to conform with standard compound adjective usage.

🧰 Tools
🪛 LanguageTool

[misspelling] ~74-~74: This word is normally spelled with a hyphen.
Context: ... To find where to buy these motors with custom made blinds, visit the [Motionblins store lo...

(EN_COMPOUNDS_CUSTOM_MADE)


76-76: Improve Readability with a Comma.
In the sentence on line 76, adding a comma after “technical information” will enhance readability.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~76-~76: Possible missing comma found.
Context: ...more about the motors and the technical information visit the [Motionblinds website](https:...

(AI_HYDRA_LEO_MISSING_COMMA)

source/_integrations/bosch_alarm.markdown (1)

63-69: Refine Language in the Troubleshooting Section.
On line 68, consider rephrasing “till remaining useful for developers to fix the issue” to a more formal variant such as “while ensuring sufficient detail for developers to address the issue.”

🧰 Tools
🪛 LanguageTool

[style] ~68-~68: Consider using a different verb for a more formal wording.
Context: ...till remaining useful for developers to fix the issue. ## Removing the integration...

(FIX_RESOLVE)

source/_integrations/rpi_power.markdown (1)

20-25: Informative Note Section

The added note effectively clarifies that the integration only monitors the Raspberry Pi on which Home Assistant is installed. To further improve clarity, consider starting the note with a brief introductory phrase (e.g. “Please note:”), although it is clear as is.

source/_integrations/nuki.markdown (3)

22-24: Enhanced Integration Description

The updated description clearly states that Nuki Smart Locks can be controlled via either a Nuki Bridge or a WiFi-enabled smart lock and mentions support for local integrations.

Note: Consider correcting “Build-in WiFi” to “Built-in WiFi” for consistency.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

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

(MD009, no-trailing-spaces)


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

(MD009, no-trailing-spaces)


27-28: Comprehensive Prerequisites Instructions

The prerequisites provide detailed instructions on connecting a Nuki bridge, enabling developer mode, and setting the API token. The guidance is clear; however, you might review the phrasing of “Turn on the HTTP API and check the details in the screen” for improved clarity.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~27-~27: The preposition “on” seems more likely in this position than the preposition “in”.
Context: ...n on the HTTP API and check the details in the screen. Please note that the API to...

(AI_EN_LECTOR_REPLACEMENT_PREPOSITION_IN_ON)


[typographical] ~27-~27: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...lease note that the API token should be 6-20 characters long, even though the app al...

(HYPHEN_TO_EN)


83-87: MQTT Support Details

The MQTT section succinctly explains which Nuki devices support MQTT and provides a useful link for further details.

Note: The link formatting appears off—remove the extraneous bracket so that it reads as:
[MQTT](https://support.nuki.io/hc/en-us/articles/12947926779409-MQTT-support).

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

473-473: Clarify Floor ID Function Description

The current description for floor_id(lookup_value) reads as a fragment. To form a complete sentence, consider revising it to:

"The function floor_id(lookup_value) returns the floor ID corresponding to a given floor name or alias, area name or alias, entity ID, or device ID. It can also be used as a filter."

🧰 Tools
🪛 LanguageTool

[style] ~473-~473: To form a complete sentence, be sure to include a subject.
Context: ... name or alias, entity ID or device ID. Can also be used as a filter. - `floor_name...

(MISSING_IT_THERE)


523-523: Clarify Area ID Function Description

Similarly, the description for area_id(lookup_value) would be clearer as a full sentence. For example:

"The function area_id(lookup_value) returns the area ID for a given area name or alias, entity ID, or device ID, and can also be used as a filter."

🧰 Tools
🪛 LanguageTool

[style] ~523-~523: To form a complete sentence, be sure to include a subject.
Context: ... name or alias, entity ID or device ID. Can also be used as a filter. - `area_name(...

(MISSING_IT_THERE)

source/_integrations/reolink.markdown (1)

771-777: Enhance Clarity and Correct Grammar in the "Battery drains fast" Section

  • On line 773, change “a active stream open” to “an active stream open” to correct the article usage.
  • On line 775, replace “When automations trigger very often, this can cause excessive battery use.” with “When automations trigger very often, they can cause excessive battery use.” to match the plural subject.
  • In line 775, consider using an en dash (“10–30 seconds”) instead of a hyphen in the range for improved typographical style.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~773-~773: You might be missing the article “a” here.
Context: ...there are several factors that can have significant impact on battery life: - Make sure th...

(AI_EN_LECTOR_MISSING_DETERMINER_A)


[misspelling] ~775-~775: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ...%}. The Preload camera stream will keep a active stream open, keeping the camera ...

(EN_A_VS_AN)


[typographical] ~777-~777: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...apshot will wake the battery camera for 10-30 seconds. When automations trigger very ...

(HYPHEN_TO_EN)


[uncategorized] ~777-~777: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...era for 10-30 seconds. When automations trigger very often, this can cause excessive ba...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)

source/_integrations/template.markdown (3)

189-189: Clarify Binary Sensor State Description.

The updated description now explicitly lists the truthy values (e.g., True, yes, on, enable, positive numbers) that produce an on state. However, please consider adding a period after “etc.” for consistency with our style guidelines.

🧰 Tools
🪛 LanguageTool

[style] ~189-~189: In American English, abbreviations like “etc.” require a period.
Context: ...nd (Open/Closed, Detected/Clear etc) depends on the sensor's device_class v...

(ETC_PERIOD)


304-308: Review the SSL Verification Description.

The verify_ssl parameter description now explains when SSL verification can be disabled (e.g., using an http-only URL or self-signed certificates). A minor grammatical review is recommended to ensure consistent punctuation and phrasing.

🧰 Tools
🪛 LanguageTool

[grammar] ~305-~305: Did you mean “too false to”?
Context: ...sable SSL certificate verification. Set to false to use an http-only URL, or you have a sel...

(TOO_ADJECTIVE_TO)


990-994: Legacy Binary Sensor Value Template Update.

The updated description for the value_template in the legacy binary sensor configuration is now clearer. Consider adding a period after “etc.” to align with our American English style guidelines.

🧰 Tools
🪛 LanguageTool

[style] ~991-~991: In American English, abbreviations like “etc.” require a period.
Context: ...nd (Open/Closed, Detected/Clear etc) depends on the sensor's device_class v...

(ETC_PERIOD)

source/_integrations/mcp_server.markdown (1)

135-155: Example Configuration for Cursor.

The example configuration for setting up Cursor is detailed and easy to follow. It might be helpful to add a brief troubleshooting note indicating common pitfalls (e.g., mismatched access tokens or incorrect mcp-proxy installation) for users who experience connectivity issues.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

141-141: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


155-155: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)

source/_integrations/homekit.markdown (1)

61-63: Introduce Air Purifier Entity Configuration.

The new fan.air_purifier entry clearly defines the accessory type as air_purifier and links it to a filter life level sensor. Please verify that the sensor’s entity ID (e.g., sensor.air_purifier_filter_life_level) adheres to our naming conventions and that this new configuration is referenced in relevant examples.

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between e90c8e5 and 9010d71.

⛔ Files ignored due to path filters (10)
  • Gemfile.lock is excluded by !**/*.lock
  • package-lock.json is excluded by !**/package-lock.json
  • source/images/blog/2025-03-motionblinds/art.jpg is excluded by !**/*.jpg
  • source/images/blog/2025-03-motionblinds/matter-hub.jpg is excluded by !**/*.jpg
  • source/images/blog/2025-03-motionblinds/powered-by-eve.png is excluded by !**/*.png
  • source/images/dashboards/clock_card_default.png is excluded by !**/*.png
  • source/images/dashboards/clock_card_large.png is excluded by !**/*.png
  • source/images/dashboards/clock_card_medium.png is excluded by !**/*.png
  • source/images/integrations/mcp_server/cursor-lights-control.png is excluded by !**/*.png
  • source/images/screenshots/nmbs-card-example.png is excluded by !**/*.png
📒 Files selected for processing (63)
  • CODEOWNERS (0 hunks)
  • Gemfile (2 hunks)
  • package.json (1 hunks)
  • source/_dashboards/clock.markdown (1 hunks)
  • source/_docs/automation/templating.markdown (1 hunks)
  • source/_docs/blueprint/schema.markdown (1 hunks)
  • source/_docs/configuration/state_object.markdown (1 hunks)
  • source/_docs/configuration/templating.markdown (4 hunks)
  • source/_docs/scripts/perform-actions.markdown (1 hunks)
  • source/_docs/z-wave/controllers.markdown (2 hunks)
  • source/_includes/custom/news.html (1 hunks)
  • source/_integrations/aemet.markdown (1 hunks)
  • source/_integrations/airthings.markdown (1 hunks)
  • source/_integrations/airzone.markdown (1 hunks)
  • source/_integrations/airzone_cloud.markdown (1 hunks)
  • source/_integrations/assist_satellite.markdown (2 hunks)
  • source/_integrations/balay.markdown (1 hunks)
  • source/_integrations/bosch_alarm.markdown (1 hunks)
  • source/_integrations/constructa.markdown (1 hunks)
  • source/_integrations/eheimdigital.markdown (3 hunks)
  • source/_integrations/eve.markdown (1 hunks)
  • source/_integrations/file.markdown (2 hunks)
  • source/_integrations/gaggenau.markdown (1 hunks)
  • source/_integrations/generic_thermostat.markdown (1 hunks)
  • source/_integrations/gree.markdown (1 hunks)
  • source/_integrations/group.markdown (1 hunks)
  • source/_integrations/heos.markdown (3 hunks)
  • source/_integrations/hikvision.markdown (1 hunks)
  • source/_integrations/homee.markdown (1 hunks)
  • source/_integrations/homekit.markdown (5 hunks)
  • source/_integrations/jvc_projector.markdown (1 hunks)
  • source/_integrations/konnected.markdown (1 hunks)
  • source/_integrations/lg_thinq.markdown (1 hunks)
  • source/_integrations/mcp.markdown (3 hunks)
  • source/_integrations/mcp_server.markdown (2 hunks)
  • source/_integrations/motionblinds_matter.markdown (2 hunks)
  • source/_integrations/music_assistant.markdown (2 hunks)
  • source/_integrations/neff.markdown (1 hunks)
  • source/_integrations/nmbs.markdown (0 hunks)
  • source/_integrations/nuki.markdown (2 hunks)
  • source/_integrations/nut.markdown (3 hunks)
  • source/_integrations/ohme.markdown (1 hunks)
  • source/_integrations/pitsos.markdown (1 hunks)
  • source/_integrations/profilo.markdown (1 hunks)
  • source/_integrations/prusalink.markdown (1 hunks)
  • source/_integrations/pterodactyl.markdown (2 hunks)
  • source/_integrations/qnap_qsw.markdown (1 hunks)
  • source/_integrations/reolink.markdown (1 hunks)
  • source/_integrations/rpi_power.markdown (1 hunks)
  • source/_integrations/siemens.markdown (1 hunks)
  • source/_integrations/snoo.markdown (1 hunks)
  • source/_integrations/squeezebox.markdown (1 hunks)
  • source/_integrations/sun.markdown (1 hunks)
  • source/_integrations/sunweg.markdown (0 hunks)
  • source/_integrations/template.markdown (6 hunks)
  • source/_integrations/thermador.markdown (1 hunks)
  • source/_integrations/vodafone_station.markdown (1 hunks)
  • source/_integrations/worxlandroid.markdown (1 hunks)
  • source/_posts/2025-03-27-motionblinds-joins-wwha.markdown (1 hunks)
  • source/_redirects (1 hunks)
  • source/integrations/index.html (1 hunks)
  • source/more-info/backup-emergency-kit.markdown (1 hunks)
  • source/voice_control/voice_remote_cloud_assistant.markdown (1 hunks)
💤 Files with no reviewable changes (3)
  • source/_integrations/nmbs.markdown
  • source/_integrations/sunweg.markdown
  • CODEOWNERS
✅ Files skipped from review due to trivial changes (9)
  • source/more-info/backup-emergency-kit.markdown
  • source/_docs/automation/templating.markdown
  • source/_integrations/vodafone_station.markdown
  • source/_integrations/gree.markdown
  • source/_docs/scripts/perform-actions.markdown
  • source/_docs/configuration/state_object.markdown
  • package.json
  • source/_integrations/hikvision.markdown
  • source/_integrations/neff.markdown
🧰 Additional context used
📓 Path-based instructions (6)
`*/**(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 t...

*/**(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'
  • source/_redirects
`*/**(html|markdown|md)`: - Use bold to mark UI strings. - If "" are used to mark UI strings, replace them by bold.

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

  • If "" are used to mark UI strings, replace them by bold.
  • source/_redirects
`*/**(html|markdown|md)`: - Be brief in your replies and don't add fluff like "thank you for..." and "Please let me know if"

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

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

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

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

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

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

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

  • source/_redirects
🪛 LanguageTool
source/_integrations/generic_thermostat.markdown

[style] ~86-~86: ‘prior to’ might be wordy. Consider a shorter alternative.
Context: ...the target temperature that must change prior to being switched on. For example, if the ...

(EN_WORDINESS_PREMIUM_PRIOR_TO)

source/_integrations/nut.markdown

[uncategorized] ~90-~90: Possible missing comma found.
Context: ...: - Power cycle outlet NAME: Power cycle the named outlet ### Switches This NU...

(AI_HYDRA_LEO_MISSING_COMMA)

source/_integrations/nuki.markdown

[uncategorized] ~27-~27: The preposition “on” seems more likely in this position than the preposition “in”.
Context: ...n on the HTTP API and check the details in the screen. Please note that the API to...

(AI_EN_LECTOR_REPLACEMENT_PREPOSITION_IN_ON)


[typographical] ~27-~27: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...lease note that the API token should be 6-20 characters long, even though the app al...

(HYPHEN_TO_EN)

source/_integrations/bosch_alarm.markdown

[style] ~68-~68: Consider using a different verb for a more formal wording.
Context: ...till remaining useful for developers to fix the issue. ## Removing the integration...

(FIX_RESOLVE)

source/_dashboards/clock.markdown

[style] ~11-~11: The phrase “a variety of” may be wordy. To make your writing clearer, consider replacing it.
Context: ...he Clock card shows the current time in a variety of formats and sizes.

<im...

(A_VARIETY_OF)

source/_integrations/template.markdown

[style] ~189-~189: In American English, abbreviations like “etc.” require a period.
Context: ...nd (Open/Closed, Detected/Clear etc) depends on the sensor's device_class v...

(ETC_PERIOD)


[grammar] ~305-~305: Did you mean “too false to”?
Context: ...sable SSL certificate verification. Set to false to use an http-only URL, or you have a sel...

(TOO_ADJECTIVE_TO)


[style] ~991-~991: In American English, abbreviations like “etc.” require a period.
Context: ...nd (Open/Closed, Detected/Clear etc) depends on the sensor's device_class v...

(ETC_PERIOD)

source/_integrations/group.markdown

[misspelling] ~490-~490: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ... following actions to modify groups and a action to reload the configuration with...

(EN_A_VS_AN)

source/_integrations/reolink.markdown

[uncategorized] ~773-~773: You might be missing the article “a” here.
Context: ...there are several factors that can have significant impact on battery life: - Make sure th...

(AI_EN_LECTOR_MISSING_DETERMINER_A)


[misspelling] ~775-~775: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ...%}. The Preload camera stream will keep a active stream open, keeping the camera ...

(EN_A_VS_AN)


[typographical] ~777-~777: If specifying a range, consider using an en dash instead of a hyphen.
Context: ...apshot will wake the battery camera for 10-30 seconds. When automations trigger very ...

(HYPHEN_TO_EN)


[uncategorized] ~777-~777: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...era for 10-30 seconds. When automations trigger very often, this can cause excessive ba...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)

source/_docs/configuration/templating.markdown

[style] ~473-~473: To form a complete sentence, be sure to include a subject.
Context: ... name or alias, entity ID or device ID. Can also be used as a filter. - `floor_name...

(MISSING_IT_THERE)


[style] ~523-~523: To form a complete sentence, be sure to include a subject.
Context: ... name or alias, entity ID or device ID. Can also be used as a filter. - `area_name(...

(MISSING_IT_THERE)

source/_integrations/motionblinds_matter.markdown

[uncategorized] ~42-~42: This word is normally spelled with a hyphen.
Context: ...roducts/venetian) - [CM-07 Motionblinds Mid Motor Battery/Wired 0.8Nm](https://motionblin...

(MID_HYPHEN)


[uncategorized] ~43-~43: This word is normally spelled with a hyphen.
Context: ...products/roman) - [CM-07V2 Motionblinds Mid Motor Battery/Wired 0.8Nm](https://motionblin...

(MID_HYPHEN)


[uncategorized] ~63-~63: This word is normally spelled with a hyphen.
Context: ... - [CM-07-E-R Eve Motionblinds Venetian Mid Motor Battery/Wired 0.8Nm](https://motionblin...

(MID_HYPHEN)


[uncategorized] ~64-~64: This word is normally spelled with a hyphen.
Context: ... - [CM-07-E-V Eve Motionblinds Venetian Mid Motor Battery/Wired 0.8Nm](https://motionblin...

(MID_HYPHEN)


[misspelling] ~74-~74: This word is normally spelled with a hyphen.
Context: ... To find where to buy these motors with custom made blinds, visit the [Motionblins store lo...

(EN_COMPOUNDS_CUSTOM_MADE)


[uncategorized] ~76-~76: Possible missing comma found.
Context: ...more about the motors and the technical information visit the [Motionblinds website](https:...

(AI_HYDRA_LEO_MISSING_COMMA)

source/_posts/2025-03-27-motionblinds-joins-wwha.markdown

[grammar] ~15-~15: In this context, ‘type’ should agree in number with the noun after ‘of’.
Context: ...nds.com/)! And if you're wondering what type of products they provide, the clue really is in the...

(TYPE_OF_PLURAL)


[grammar] ~33-~33: The noun should probably be in the singular form.
Context: ...ng to give a seamless experience. Every Works with Home Assistant product is tested b...

(EVERY_EACH_SINGULAR)


[formatting] ~47-~47: If the ‘because’ clause is essential to the meaning, do not use a comma before the clause.
Context: ...e big fans of open standards like Matter, because they bring great benefits when it comes...

(COMMA_BEFORE_BECAUSE)

🪛 markdownlint-cli2 (0.17.2)
source/_integrations/nuki.markdown

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

(MD009, no-trailing-spaces)


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

(MD009, no-trailing-spaces)


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

(MD009, no-trailing-spaces)


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

(MD009, no-trailing-spaces)

source/_integrations/mcp_server.markdown

141-141: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


155-155: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)

🪛 RuboCop (1.73)
Gemfile

[convention] 14-14: Gems should be sorted in an alphabetical order within their section of the Gemfile. Gem rubocop should appear before sass-embedded.

(Bundler/OrderedGems)


[convention] 27-27: Gems should be sorted in an alphabetical order within their section of the Gemfile. Gem nokogiri should appear before sinatra.

(Bundler/OrderedGems)

🔇 Additional comments (99)
source/_dashboards/clock.markdown (10)

1-10: Front Matter Metadata is Well-Structured.
The YAML front matter clearly defines the card type, title, sidebar label, and description, ensuring proper integration with the dashboards system.


13-16: Image Inclusion is Accessible.
The image tag includes appropriate alt text, which benefits accessibility. The HTML structure for presenting the image is well implemented.


18-18: Template Include Directive is Correct.
Using the {% include dashboard/edit_dashboard.md %} statement enhances modularity by reusing common documentation content.


20-20: Clear Note on UI-Based Configuration.
The statement “All options for this card can be configured via the user interface.” effectively informs users of available customization through the UI.


23-32: Card Settings Configuration is Well-Documented.
The configuration block clearly lists each card setting with descriptive text, ensuring users understand the purpose and default behaviors of each option.


34-41: Basic Example is Straightforward and Helpful.
The basic YAML example illustrating a default clock card is concise and correctly formatted, making it easy for users to follow.


42-47: Default Clock Card Example is Well-Presented.
The accompanying image block with descriptive alt text enhances the user’s understanding of the clock card without additional configuration.


49-57: Enhanced Clock Card Configuration Example is Clear.
The YAML snippet demonstrates extended configuration options, such as clock size, time format, and grid options, helping users visualize how to customize the card.


59-64: Tablet Dashboard Example is Effectively Illustrated.
The example along with its visual aid clearly shows how a larger clock card appears on tablet dashboards.


66-78: Desktop Dashboard Example is Well-Illustrated.
The YAML example combined with the image block effectively demonstrates the medium-sized clock card tailored for desktop use, aiding users in configuration decisions.

source/voice_control/voice_remote_cloud_assistant.markdown (1)

34-39: Enhanced Troubleshooting Section with Hyperlink
The added troubleshooting step now provides a direct link to the default configuration documentation, which helps users quickly reference the required configuration details. Ensure this style is consistent with any similar troubleshooting sections elsewhere in the docs.

source/_docs/z-wave/controllers.markdown (1)

62-64: Addition of the Z-Wave.Me UZB1 Stick Entry
The new entry for the Z-Wave.Me UZB1 stick fits well into the list of supported devices and appropriately references the Aeotec Z-Stick note. Verify that any documentation in the Aeotec note covers differences (if any) between the devices.

source/_integrations/snoo.markdown (1)

56-57: New "Config change" Event Added
The addition of the "Config change" event clarifies that configuration updates (such as changes to the motion limiter) are now tracked. Ensure that any related sections or examples that describe event payloads or handling include this update.

source/_integrations/airzone.markdown (1)

109-114: New Removal Instructions Added
The addition of the "Removing the integration" section maintains consistency with other integrations. The text is concise and instructs users that no further removal steps are needed, also embedding the external reference for additional details.

source/_docs/blueprint/schema.markdown (1)

133-138: Inclusion of the domain Field in Blueprint Examples
Adding domain: automation to the minimal blueprint example enhances the clarity of blueprint metadata. This is a useful update to ensure the blueprint’s categorization is explicit.

source/_integrations/sun.markdown (1)

21-22: Enhanced Explanation of Sun Integration Behavior
The added sentence details how the sun integration calculates times based on the configured home location. This extra context improves user understanding of its accuracy and triggers.

source/_integrations/airthings.markdown (1)

24-25: Enhance SmartLink Hub Benefit Clarity

The newly added paragraph clearly explains that while the integration can work without an Airthings SmartLink hub, using one provides real-time updates to sensor data. Ensure that the language aligns with similar documentation sections and is easily understandable by users.

source/_integrations/prusalink.markdown (1)

25-25: Update Related URL Title for Enhanced Clarity

The updated title for the related URL now specifies "PrusaLink installation guide for Prusa MK2.5/MK3 with Raspberry Pi 3/4," which clearly informs users about the target models and supported hardware.

source/_integrations/eheimdigital.markdown (2)

7-7: Metadata Enhancement: Added Sensor Category and Platform

The additions of "Sensor" to ha_category (line 7) and "sensor" to ha_platforms (line 18) accurately reflect the expanded functionality of the integration. This update improves discoverability for users interested in sensor capabilities.

Also applies to: 18-18


52-59: Comprehensive Sensor Documentation for EHEIM classicVARIO+e

The new section detailing the sensor aspects of the EHEIM classicVARIO+e is well written, outlining current pump speed, service hours, and error code information. Double-check that the error descriptions match the official device documentation to prevent any discrepancies.

source/_integrations/balay.markdown (1)

1-36: New Integration Documentation for Balay

The newly introduced balay.markdown file is well-structured and follows the established documentation format. All relevant metadata (title, description, categories, platforms, etc.) is provided, which aids in consistency across integrations. Verify that naming conventions and platform lists are consistent with similar integrations in the repository.

source/integrations/index.html (1)

731-734: Clear Brand Filter on Category Selection
The added code clearly removes any existing brand filter when a category is selected. This explicit handling should prevent conflicting filters and improve user experience.

source/_integrations/aemet.markdown (1)

76-78: Add Removal Instructions Section
The new "Removing the integration" section—with a brief statement and an inclusion of the remove_device_service.md snippet—aligns this integration’s documentation with others. This standardization aids users in understanding the removal process.

source/_integrations/homee.markdown (1)

15-16: New Platform Addition: "climate"
The inclusion of the climate platform extends the supported device types for the Homee integration. This update is well-aligned with the trend of broadening integration capabilities.

source/_integrations/file.markdown (2)

56-57: Streamline JSON Sensor Example
The JSON example now uses the standardized file path /config/sensor.json and a simplified value template ({{ value_json.temperature }}) without extraneous quotes. This change enhances clarity and aligns with configuration best practices.


73-74: Improve CSV Sensor Example Formatting
Similarly, for CSV entries, the updated file path /config/sensor.csv and the streamlined value template ({{ value.split(",")[1] }}) improve consistency and reduce unnecessary complexity in the sensor configuration.

source/_integrations/airzone_cloud.markdown (1)

120-126: New Removal Section Added
The new "## Removing the integration" section clearly states that no extra steps are required for removal and includes the standard reference ({% include integrations/remove_device_service.md %}). This addition improves documentation consistency across integrations.

source/_integrations/lg_thinq.markdown (1)

252-260: Renamed Automation Section
Renaming the "Automation" section to "Automation example" improves clarity by signaling that the provided YAML is an example rather than prescriptive configuration. Please ensure that any internal links or references to this section are updated accordingly.

source/_integrations/nut.markdown (1)

66-71: Updated Post-Installation Guidance
The newly added instructions on how to update the NUT device settings after installation are very clear. The use of the custom tag {% my integrations title="**Settings** > **Devices & services**" %} is an innovative way to reference the UI section, provided it renders properly in the final documentation.

source/_integrations/worxlandroid.markdown (1)

23-29: YAML Configuration List Format
Converting the sensor configuration entry into a list with a hyphen is a forward‐looking change. This format now supports multiple sensor entries and is consistent with Home Assistant’s configuration guidelines.

source/_integrations/eve.markdown (1)

1-16: New Integration Documentation – Metadata Section
The metadata for the new Eve integration, including fields like ha_iot_standard: matter and ha_brand: true, is well drafted and aligns with the overall documentation standards.

source/_integrations/ohme.markdown (1)

146-174: New Use Cases and Examples Sections Added
The addition of the “Use cases” and “Examples” sections provides practical scenarios (e.g., solar charging and battery storage) along with a clear YAML automation example. This enhancement will help users better understand how to leverage the Ohme integration’s features.

source/_integrations/mcp.markdown (1)

32-36: Enhanced Authentication Instructions and Configuration Options
The new prerequisite regarding OAuth authentication—along with the added “Client ID” and “Client Secret” configuration options—is a valuable improvement that clarifies when and how authentication credentials are needed. The newly added “Authorization” section further explains the use of Application Credentials, which should make setup more straightforward for users. Please double-check that the referenced Application Credentials documentation is up to date.

Also applies to: 46-50, 82-87

source/_integrations/heos.markdown (2)

90-100: New Queue Management Action Added
The documentation now includes details for the heos.remove_from_queue action alongside the existing heos.get_queue service, complete with an illustrative YAML payload and a data attributes table. This addition will enhance users’ ability to manage and modify the play queue effectively.

Also applies to: 132-149


232-242: Queue Item Playback Enhancement
The newly added “Play a queue item” section clearly explains how to invoke the media_player.play_media action with a queue type, including a practical YAML example and a table of data attributes. This improvement supports finer control over queue playback.

source/_integrations/constructa.markdown (2)

1-33: New Integration Metadata is Well-Defined.
The metadata header includes all required keys (title, description, categories, IoT class, release version, etc.) and follows the established documentation standards.


35-35: Include Statement is Appropriately Placed.
The line including the supported brand markdown is correctly inserted, ensuring consistency with other integration docs.

source/_integrations/motionblinds_matter.markdown (3)

1-19: Metadata and Introduction Look Solid.
The header and introduction sections clearly define the integration’s purpose and scope. All required metadata fields are provided and correctly formatted.


31-54: Comprehensive Device List for "Motionblinds with Bluetooth & 433MHz".
The supported devices are organized in a clear list with corresponding links. The presentation makes it easy for users to locate the details for each device model.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~42-~42: This word is normally spelled with a hyphen.
Context: ...roducts/venetian) - [CM-07 Motionblinds Mid Motor Battery/Wired 0.8Nm](https://motionblin...

(MID_HYPHEN)


[uncategorized] ~43-~43: This word is normally spelled with a hyphen.
Context: ...products/roman) - [CM-07V2 Motionblinds Mid Motor Battery/Wired 0.8Nm](https://motionblin...

(MID_HYPHEN)


55-70: Clear and Detailed Device List for "Eve Motionblinds with Matter & Thread".
The updated section effectively communicates the requirements (e.g. the need for a Thread Border Router) and provides well-structured examples with proper links.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~63-~63: This word is normally spelled with a hyphen.
Context: ... - [CM-07-E-R Eve Motionblinds Venetian Mid Motor Battery/Wired 0.8Nm](https://motionblin...

(MID_HYPHEN)


[uncategorized] ~64-~64: This word is normally spelled with a hyphen.
Context: ... - [CM-07-E-V Eve Motionblinds Venetian Mid Motor Battery/Wired 0.8Nm](https://motionblin...

(MID_HYPHEN)

source/_integrations/music_assistant.markdown (7)

1-16: Header Metadata is Well-Defined.
The metadata section accurately captures all required details for the Music Assistant integration, adhering to the documentation guidelines.


26-34: Clear Explanation for media_content_id Payloads.
The updated description for the media_content_id payload for both play_media and browse_media actions is clear, with useful examples to assist users in understanding acceptable formats.


36-41: Effective Inclusion of Config Flow Guidance.
The inclusion of {% include integrations/config_flow.md %} along with the manual configuration instructions reinforces consistency across integrations.


44-60: Well-Documented Actions.
The sections for actions (such as music_assistant.play_media and music_assistant.play_announcement) are detailed and clearly formatted, providing concise examples that improve user understanding.


112-128: Comprehensive Action Descriptions for Searching.
The parameters for the music_assistant.search action are clearly documented with examples, ensuring users can easily see how to leverage the search functionality.


145-185: Detailed Documentation for Library Actions.
The get_library action and its parameters are thoroughly described, offering the necessary context and examples for effective usage.


195-203: Clear Notes and Removal Instructions.
The notes regarding duplicated entities and the integration removal guidelines are concise and align well with the broader documentation style.

source/_integrations/assist_satellite.markdown (2)

47-49: Enhanced Chime Customization Documentation.
The new explanation detailing the automatic chime behavior—and the options to override it with preannounce_media_id or disable it with preannounce: false—adds valuable clarity for users.


94-96: Consistent Chime Behavior for Conversation Actions.
The updated notes for the assist_satellite.start_conversation action provide consistency with the announce action and clearly outline the chime customization options.

source/_integrations/bosch_alarm.markdown (6)

1-16: New Bosch Alarm Integration Metadata is Complete.
The integration metadata is comprehensive and follows the documentation standards, ensuring that all necessary details (e.g., category, release, code owners) are provided.


18-21: Clear Introduction and Config Flow Guidance.
The introductory text sets the context for the Bosch Alarm Panel integration well, and the inclusion of configuration flow notes streamlines the setup guidance.


22-29: Supported Devices List is Comprehensive.
The supported devices are listed clearly with appropriate emphasis and links, making it easy for users to identify compatible models.


32-42: Provided Entities Section is Clear and Informative.
The documentation accurately describes the Alarm Control Panel entity and its functionality, aligning with user expectations.


43-47: Detailed Authentication Instructions.
The authentication section clearly explains the requirements (e.g., passcode lengths and types) and the process for credential prompts, which is essential for users configuring the integration.


70-74: Concise Removal Instructions.
The integration removal section is clear and concise, indicating that no extra steps are necessary for removal.

source/_integrations/rpi_power.markdown (3)

18-19: Clarity in Integration Description

The updated description clearly explains that this integration detects bad power supply conditions on the local Raspberry Pi running Home Assistant.


27-28: Standardized Configuration Flow Inclusion

Using the include directive to pull in {% include integrations/config_flow.md %} promotes consistency across integrations. Ensure that the referenced file is kept up-to-date.


29-33: Enhanced Details on Supported Functionality

The new “Supported functionality” section explains how the integration reports power issues via a binary sensor. This additional context improves user understanding of the integration’s capabilities.

source/_posts/2025-03-27-motionblinds-joins-wwha.markdown (12)

1-11: Well-Structured Frontmatter

The metadata (frontmatter) is comprehensive—it includes layout, title, description, date information, author, comments, categories, and an Open Graph image. This meets the documentation standards.


13-13: Clear Image Embedding

The image tag is correctly formatted with appropriate styling and alt text, enhancing the post’s visual appeal.


15-15: Engaging Introduction

The introductory paragraph immediately draws the reader’s attention by announcing the new Motionblinds partnership and hinting at their innovative products.

🧰 Tools
🪛 LanguageTool

[grammar] ~15-~15: In this context, ‘type’ should agree in number with the noun after ‘of’.
Context: ...nds.com/)! And if you're wondering what type of products they provide, the clue really is in the...

(TYPE_OF_PLURAL)


17-17: Detailed Product Announcement

The section describing Motionblinds’ certification as a Works with Home Assistant partner is clear and succinct. The inserted “” marker properly splits the preview from the full content.


19-19: Creative Section Header

The “Shades of innovation” header is thematic and engaging, setting an appropriate tone for the following content.


21-21: Comprehensive Brand Description

The background details on Motionblinds—including their history, product versatility, and commitment to sustainability—are informative and help establish credibility.


23-23: Engaging Future Outlook

The “A window to the future” section header is imaginative and fits well with the overall narrative. It prepares the reader for the forward-looking content that follows.


25-25: Enhanced Visual Support

The inclusion of an image (powered by Eve) with proper alt text and styling effectively reinforces the partnership message.


27-27: Clear Partnership Explanation

The detailed description of the collaboration with Eve Systems—highlighting Matter-over-Thread integration—is informative and underlines the innovation behind the product.


29-29: Detailed Connectivity Options

The text explains that Motionblinds using Bluetooth and 433MHz technology will also be integrated under the Works with Home Assistant program. This detail helps manage user expectations regarding device certification.


31-31: Clear Representation of Matter Bridge

The HTML block featuring the Matter Bridge image is well formatted and provides an immediate visual reference for users.


33-33: Strong Closing Statement

The concluding paragraph succinctly emphasizes the seamless integration and quality testing process behind Works with Home Assistant products.

🧰 Tools
🪛 LanguageTool

[grammar] ~33-~33: The noun should probably be in the singular form.
Context: ...ng to give a seamless experience. Every Works with Home Assistant product is tested b...

(EVERY_EACH_SINGULAR)

source/_integrations/siemens.markdown (2)

1-33: Complete Integration Metadata

The Siemens integration metadata is thorough and adheres to the established format. It clearly specifies categories, release version, domain, supported platforms, and additional attributes.


35-35: Consistent Brand Support Inclusion

Including {% include integrations/supported_brand.md %} ensures that the branding information is standardized across integrations.

source/_integrations/nuki.markdown (8)

30-31: Standardized Configuration Flow Inclusion

The inclusion of the configuration flow via {% include integrations/config_flow.md %} ensures consistency with other integrations. No issues are apparent.


32-41: Detailed Configuration Block

The configuration block using {% configuration_basic %} thoroughly explains the required parameters (Host, Port, Token) for interfacing with the Nuki Bridge. The instructions are explicit and user friendly.

🧰 Tools
🪛 LanguageTool

[style] ~40-~40: In American English, abbreviations like “etc.” require a period.
Context: ...ce issues with the API (authentication, etc). The default is True. {% endconfigur...

(ETC_PERIOD)


43-49: Clear Action Description for nuki.lock_n_go

The action description is straightforward, outlining the sequence of unlocking, waiting, and re-locking. The accompanying data attributes table is well formatted.


55-63: Comprehensive Action Details for nuki.set_continuous_mode

This section clearly explains the Continuous Mode action for Nuki Openers with detailed attribute descriptions. The clarity in explaining that the action is a no-op on other products is beneficial.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

61-61: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe

(MD055, table-pipe-style)


62-62: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe

(MD055, table-pipe-style)


64-74: Event Definition for nuki_event

The events section defines the structure of Nuki-generated events with a clear table of attributes. This aids in understanding the event payloads.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

72-72: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe

(MD055, table-pipe-style)


73-73: Table pipe style
Expected: leading_and_trailing; Actual: leading_only; Missing trailing pipe

(MD055, table-pipe-style)


75-78: Local Integration Alternatives Section

This new section effectively directs users to further integration options available on the Nuki website, ensuring they know local alternatives exist.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

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

(MD009, no-trailing-spaces)


79-82: HomeKit Support Details

The HomeKit support section is a useful addition, clearly indicating which generations support HomeKit via Bluetooth and providing the necessary integration reference.


88-91: Matter Support Information

The Matter support section informs users which models support Matter and how these integrate with Home Assistant. The provided link enhances understanding.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

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

(MD009, no-trailing-spaces)

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

490-492: Consistent Floor ID Examples

The example using {{ floor_id('First floor alias') }} correctly demonstrates that an alias maps to the appropriate floor ID. This consistency aids in user understanding.


541-543: Accurate Area ID Example

The example {{ area_id('Living Room Alias') }} properly illustrates the function’s expected output. This direct mapping example helps clarify the function’s use.

source/_integrations/profilo.markdown (1)

1-36: New Integration Metadata for Profilo Appears Well-Structured

The metadata follows the standard Home Connect integration template. All necessary fields (title, description, categories, platforms, and support information) are present and correctly formatted.

source/_integrations/pitsos.markdown (1)

1-36: New Integration Metadata for Pitsos is Consistent and Clear

The document correctly mirrors the standard template used for Home Connect integrations. The categories, platforms, and support information are complete and appropriately formatted.

source/_integrations/thermador.markdown (1)

1-36: New Integration Metadata for Thermador is Well-Formatted

The metadata is consistent with the other Home Connect integrations. All required fields—including the title, description, categories, and supporting integration details—are clearly provided.

source/_integrations/pterodactyl.markdown (3)

1-20: Updated Integration Metadata for Pterodactyl

  • The addition of “Button” and “Sensor” in both the ha_category (lines 6–8) and ha_platforms (lines 15–17) sections clearly reflects the expanded functionality.
  • Verify that the chosen IoT class (Local Polling, line 9) and the quality scale (bronze, line 19) are intentionally set for this integration.

58-73: Clear and Detailed Buttons Section

The new “Buttons” section (lines 58–73) effectively lists all available server control actions. The inclusion of a warning block for the “Force stop server” button is appropriate to highlight the associated risks.


74-90: Well-Structured Sensors Section

The “Sensors” section (lines 74–90) comprehensively describes both the primary sensors and those that are disabled by default. This detailed enumeration should help users understand the available monitoring options.

source/_integrations/gaggenau.markdown (1)

1-36: New Integration Metadata for Gaggenau.

The new metadata block is well structured and provides comprehensive details (title, description, categories, IoT class, release version, domain, code owners, etc.) that adhere to our documentation standards. Please verify that all field values are accurate and reflect the intended integration details.

source/_integrations/template.markdown (2)

259-263: Optimistic Mode for Number Entities.

The explanation for optimistic mode is clear and concise: it specifies that the number’s state updates immediately in optimistic mode, otherwise it waits for the state template update. Ensure that any usage examples elsewhere in the documentation reflect this behavior.


281-285: Optimistic Mode for Select Entities.

The new description for optimistic mode on select entities provides a clear understanding of its behavior. For consistency, verify that its wording mirrors that for number entities where applicable.

source/_integrations/mcp_server.markdown (3)

62-65: Clarify MCP Specification Update.

The revised text clearly communicates that the Model Context Protocol specification now defines authorization standards—which are still evolving. Linking directly to the latest specification version could further aid users in understanding the current limitations.


69-77: OAuth Section Enhancement.

This section now explains that Home Assistant supports OAuth via its Authentication API and has adopted IndieAuth principles (using the redirect URL’s base as the client ID). Ensure that the provided links remain current and consider noting any version requirements if applicable.


82-86: Long-Lived Access Tokens Clarification.

The instructions for creating and using Long-Lived Access Tokens are clear and straightforward. Double-check that the link to the Authentication documentation reflects the latest guidance.

source/_integrations/homekit.markdown (5)

169-172: New Filter Change Indication Parameter.

The addition of the linked_filter_change_indication_binary_sensor parameter enhances the documentation by enabling users to signal when an air purifier’s filter requires changing. Ensure that this option is highlighted in examples and that its description is consistent with similar parameters.


181-184: New PM2.5 Sensor Linking.

This update clarifies that setting the linked_pm25_sensor automatically defaults the fan’s type to an air purifier. This design helps reduce configuration errors. The explanation is clear and aligns with our intended functionality.


193-196: New Temperature Sensor Linking.

Providing a new option to link a temperature sensor (linked_temperature_sensor) for air purifier accessories is a valuable enhancement. Confirm that this feature is documented in downstream examples so users can easily adopt it.


216-220: Update Type Descriptions for Fan Entities.

The revised description for the type field now correctly includes both fan and air_purifier as valid options. Please check that this change is uniformly applied in both the YAML schema and any user interface instructions.


439-441: Update Supported Integrations Table for Fan Entities.

The modifications in the supported integrations table now clearly indicate that fan entities may be represented as either standard fans or air purifiers based on configuration. This dual representation should help users configure their devices correctly.

@MaartenStaa MaartenStaa changed the base branch from current to next April 7, 2025 12:12
@home-assistant home-assistant bot removed the current This PR goes into the current branch label Apr 7, 2025
@home-assistant home-assistant bot removed the needs-rebase The PR has been branched of the wrong base branch or targets an incorrect target branch label Apr 7, 2025
@home-assistant home-assistant bot added the next This PR goes into the next branch label Apr 7, 2025
@MaartenStaa MaartenStaa force-pushed the homekit-air-purifier-docs branch from 9010d71 to f72e6ad Compare April 7, 2025 16:33
@github-project-automation github-project-automation bot moved this from Todo to Approved in Documentation PRs Apr 8, 2025
@home-assistant home-assistant bot added the parent-merged The parent PR has been merged already label Apr 9, 2025
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 in-progress This PR/Issue is currently being worked on next This PR goes into the next branch parent-merged The parent PR has been merged already
Projects
Status: Approved
Development

Successfully merging this pull request may close these issues.

2 participants