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 dreo integration #36822

Closed
wants to merge 0 commits into from
Closed

Add dreo integration #36822

wants to merge 0 commits into from

Conversation

w-xtao
Copy link

@w-xtao w-xtao commented Jan 9, 2025

Proposed change

Add documentation for Dreo integration

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 Dreo fan integration to Home Assistant.
    • Support for controlling Dreo Tower Fans (models DR-HTF001S through DR-HTF010S).
    • Exposed fan attributes including mode, speed, and oscillation settings.
    • Introduced new configuration options for the inexogy integration, requiring email and password.
    • Enhanced Enphase Envoy documentation with reconfiguration and troubleshooting sections.
    • Updated iotty integration with new device support and improved entity descriptions.
    • Expanded Reolink integration documentation with specific hardware version requirements and rich notifications.
    • Launched a comprehensive overhaul of the backup system, including automated backups and encrypted storage.
    • Added troubleshooting guidance for the Roborock integration.
  • Documentation

    • Provided detailed integration instructions and device compatibility information.
    • Included troubleshooting sections for common issues related to device discovery and control.
    • Updated release notes for Home Assistant version 2025.1, detailing new features and improvements.

@home-assistant home-assistant bot added current This PR goes into the current branch 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 Jan 9, 2025
@home-assistant
Copy link

home-assistant bot commented Jan 9, 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.

Copy link

netlify bot commented Jan 9, 2025

Deploy Preview for home-assistant-docs ready!

Name Link
🔨 Latest commit 8864a17
🔍 Latest deploy log https://app.netlify.com/sites/home-assistant-docs/deploys/6780cb17b8b01400083e5cc3
😎 Deploy Preview https://deploy-preview-36822--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 Jan 9, 2025

📝 Walkthrough

Walkthrough

The pull request introduces a new integration for Dreo smart fans within Home Assistant, enabling users to control Dreo Tower Fans via the platform. This integration supports specific models (DR-HTF001S through DR-HTF010S) and requires users to register their devices in the Dreo App before they can be discovered. The documentation includes prerequisites, configuration instructions, and details about the exposed fan attributes such as mode, speed, and oscillate, along with troubleshooting guidance for common issues. Additionally, updates to versioning in _config.yml, new configuration fields in the inexogy integration, and enhancements to various other integrations and documentation are included.

Changes

File Change Summary
source/_integrations/dreo.markdown Added new integration documentation for Dreo smart fans, including:
- Supported fan models (DR-HTF001S to DR-HTF010S)
- Prerequisites for using the integration
- Exposed fan attributes: mode, speed, oscillate
- Configuration and usage examples
_config.yml Updated versioning details:
- current_major_version changed from 2024 to 2025
- current_minor_version changed from 12 to 1
- current_patch_version changed from 5 to 2
- date_released updated from 2024-12-20 to 2025-01-09
source/_integrations/discovergy.markdown Added new configuration fields:
- "Email address"
- "Password" with descriptions
source/_integrations/enphase_envoy.markdown Added new sections:
- "Reconfigure"
- "Firmware changes"
- "No battery controls"
- "Periodic network connection issues"
- "Energy dashboard"
source/_integrations/iotty.markdown Updated supported devices list and added new section for "iotty Outlet". Modified main unnamed switch entity description.
source/_integrations/reolink.markdown Clarified hardware version requirements for RLN8-410 and RLN16-410 NVR models. Added content on rich notifications and updated removal instructions.
source/_posts/2025-01-03-release-20251.markdown Added release notes for Home Assistant version 2025.1, detailing backup system overhaul and other improvements.
source/voice-pe/index.html Updated launch date for Voice Preview Edition and modified shipping information links for Australia.
source/voice-pe/styles.css Removed specific styles for timeline icons and modified style for event 2.

Sequence Diagram

sequenceDiagram
    participant User
    participant DreoApp
    participant HomeAssistant
    participant DREOFan

    User->>DreoApp: Register Fan
    DreoApp->>DREOFan: Configure Device
    User->>HomeAssistant: Add Dreo Integration
    HomeAssistant->>DreoApp: Discover Registered Fans
    DreoApp-->>HomeAssistant: Return Fan Details
    HomeAssistant->>DREOFan: Control Fan (mode, speed, oscillate)
Loading

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ 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. (Beta)
  • @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.

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

🧹 Nitpick comments (2)
source/_integrations/dreo.markdown (2)

14-14: Fix integration name formatting

The integration name formatting should be consistent. Remove the bold formatting from "Dreo" as it's not typically used in the introduction text.

-The `**Dreo** integration enables you to control smart switches and outlets connected to the Dreo App.
+The Dreo integration enables you to control smart switches and outlets connected to the Dreo App.

46-50: Improve the attributes table formatting and content

The attributes table needs several improvements:

  1. The oscillate attribute should be formatted with backticks like the other attributes
  2. Consider moving the model numbers to a separate column or to the table header to avoid repetition
  3. The examples could be more descriptive of the possible values
 | Attribute | Description                                                  | Example |
 | --------- | ------------------------------------------------------------ | ------- |
-| `mode`    | The current mode the device is in. (DR-HTF001S/002S/004S/005S/007S/008S/009S/010S) | manual  |
-| `speed`   | The current speed setting of the device. (DR-HTF001S/002S/004S/005S/007S/008S/009S/010S) | 1       |
-| oscillate | The current oscillate setting of the device. (DR-HTF001S/002S/004S/005S/007S/008S/009S/010S) | true    |
+| `mode`    | The current mode the device is in. | "manual", "auto", "sleep" |
+| `speed`   | The current speed setting (1-4). | 1 |
+| `oscillate` | Whether oscillation is enabled. | true/false |
+
+All attributes are supported by models: DR-HTF001S/002S/004S/005S/007S/008S/009S/010S
📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 1ec5490 and 247b94f.

📒 Files selected for processing (1)
  • source/_integrations/dreo.markdown (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: Redirect rules - home-assistant-docs
  • GitHub Check: Header rules - home-assistant-docs
  • GitHub Check: Pages changed - home-assistant-docs
🔇 Additional comments (1)
source/_integrations/dreo.markdown (1)

22-36: Well-structured device support documentation!

The supported devices section is clear and well-organized, with a comprehensive list of compatible fan models.

description: Instructions on how to set up Dreo fans within Home Assistant.
ha_category:
- Fan
ha_release: 0.66
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

Update the ha_release version number

As this is a new integration being added now, the version number 0.66 appears to be incorrect. The ha_release should reflect the upcoming Home Assistant release version where this integration will first appear.

Comment on lines 1 to 50
---
title: Dreo
description: Instructions on how to set up Dreo fans within Home Assistant.
ha_category:
- Fan
ha_release: 0.66
ha_config_flow: true
ha_domain: dreo
ha_platforms:
- fan
ha_integration_type: integration
---

The `**Dreo** integration enables you to control smart switches and outlets connected to the Dreo App.

The devices must be added to the Dreo App before this integration can discover them.

The following platforms are supported:

- **fan**

## Supported devices

This integration supports devices controllable by the Dreo App. The following devices are supported by this integration:

### Fans

- DR-HTF001S: Tower Fan
- DR-HTF002S: Tower Fan
- DR-HTF004S: Tower Fan
- DR-HTF005S: Tower Fan
- DR-HTF007S: Tower Fan
- DR-HTF008S: Tower Fan
- DR-HTF009S: Tower Fan
- DR-HTF010S: Tower Fan

## Prerequisite

Before you can use this integration, all devices must be registered with the
Dreo App. Once registration is complete, Added dreo integration in Home Assistant.

## Fan exposed attributes

Dreo Tower Fan will expose the following details depending on the features supported by the model:

| Attribute | Description | Example |
| --------- | ------------------------------------------------------------ | ------- |
| `mode` | The current mode the device is in. (DR-HTF001S/002S/004S/005S/007S/008S/009S/010S) | manual |
| `speed` | The current speed setting of the device. (DR-HTF001S/002S/004S/005S/007S/008S/009S/010S) | 1 |
| oscillate | The current oscillate setting of the device. (DR-HTF001S/002S/004S/005S/007S/008S/009S/010S) | true |
Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Add missing documentation sections

The documentation is missing some standard sections that would be helpful for users:

  1. Configuration instructions explaining how to set up the integration through the UI
  2. A troubleshooting section covering common issues users might encounter

Would you like me to provide a template for these missing sections?

Comment on lines 39 to 40
Before you can use this integration, all devices must be registered with the
Dreo App. Once registration is complete, Added dreo integration in Home Assistant.
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

Complete the prerequisites section

The sentence is incomplete and contains an oddly placed statement. Consider revising to provide clear setup instructions.

-Before you can use this integration, all devices must be registered with the
-Dreo App. Once registration is complete,  Added dreo integration in Home Assistant.
+Before you can use this integration, all devices must be registered with the
+Dreo App. Once registration is complete, you can add the Dreo integration in Home Assistant through the UI.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Before you can use this integration, all devices must be registered with the
Dreo App. Once registration is complete, Added dreo integration in Home Assistant.
Before you can use this integration, all devices must be registered with the
Dreo App. Once registration is complete, you can add the Dreo integration in Home Assistant through the UI.

@w-xtao w-xtao marked this pull request as draft January 9, 2025 03:33
@w-xtao w-xtao marked this pull request as ready for review January 9, 2025 03:33
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

🧹 Nitpick comments (4)
source/_integrations/dreo.markdown (4)

14-14: Fix incorrect markdown formatting.

Remove the double asterisks around "Dreo":

-The `**Dreo**` integration enables you to control smart switches and outlets connected to the Dreo App.
+The `Dreo` integration enables you to control smart switches and outlets connected to the Dreo App.

22-34: Add blank lines around lists for better readability.

Add blank lines before and after the list of fan models:

### Fans
+
- DR-HTF001S: Tower Fan
- DR-HTF002S: Tower Fan
- DR-HTF004S: Tower Fan
- DR-HTF005S: Tower Fan
- DR-HTF007S: Tower Fan
- DR-HTF008S: Tower Fan
- DR-HTF009S: Tower Fan
- DR-HTF010S: Tower Fan
+
🧰 Tools
🪛 Markdownlint (0.37.0)

22-22: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


25-25: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


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

(MD032, blanks-around-lists)


49-53: Fix table formatting and consolidate model information.

  1. Fix the table formatting for the oscillate row
  2. Consider consolidating the model information to reduce repetition
| Attribute | Description                                                  | Example |
| --------- | ------------------------------------------------------------ | ------- |
-| `mode`    | The current mode the device is in. (DR-HTF001S/002S/004S/005S/007S/008S/009S/010S) | manual  |
-| `speed`   | The current speed setting of the device. (DR-HTF001S/002S/004S/005S/007S/008S/009S/010S) | 1       |
-| oscillate | The current oscillate setting of the device. (DR-HTF001S/002S/004S/005S/007S/008S/009S/010S) | true    |
+| `mode`    | The current mode the device is in | manual  |
+| `speed`   | The current speed setting of the device | 1       |
+| `oscillate` | The current oscillate setting of the device | true    |
+
+All attributes are supported by models: DR-HTF001S, DR-HTF002S, DR-HTF004S, DR-HTF005S, DR-HTF007S, DR-HTF008S, DR-HTF009S, DR-HTF010S

55-63: LGTM! Comprehensive troubleshooting guide with minor formatting improvements needed.

The troubleshooting content is excellent. Add blank lines around the bullet points for better readability:

### Device not discovered
+
- **Check Dreo App Connection**: Ensure that your devices are properly connected...
- **Home Assistant Network Issues**: Make sure that your Home Assistant instance...
- **Permissions**: Double-check that you've granted all the necessary permissions...
+
### Inability to control devices
+
- **Device State Sync**: Sometimes, the device state may not sync correctly...
- **App Version Mismatch**: Ensure that both the Dreo App and Home Assistant...
+
🧰 Tools
🪛 Markdownlint (0.37.0)

55-55: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


56-56: Expected: 1; Actual: 0; Above
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


56-56: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


61-61: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


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

(MD032, blanks-around-lists)


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

(MD032, blanks-around-lists)

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 247b94f and fc89d3a.

📒 Files selected for processing (1)
  • source/_integrations/dreo.markdown (1 hunks)
🧰 Additional context used
🪛 Markdownlint (0.37.0)
source/_integrations/dreo.markdown

22-22: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


25-25: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


35-35: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


39-39: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


46-46: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


55-55: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


56-56: Expected: 1; Actual: 0; Above
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


56-56: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


61-61: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


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

(MD032, blanks-around-lists)


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

(MD032, blanks-around-lists)


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

(MD032, blanks-around-lists)


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

(MD032, blanks-around-lists)

⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: Redirect rules - home-assistant-docs
  • GitHub Check: Header rules - home-assistant-docs
  • GitHub Check: Pages changed - home-assistant-docs
🔇 Additional comments (2)
source/_integrations/dreo.markdown (2)

1-12: LGTM! Front matter is well-structured.

The metadata is complete and correctly formatted. The ha_release version is appropriately set for an upcoming release.


35-44: LGTM! Clear and comprehensive setup instructions.

The prerequisites and configuration steps are well-documented and provide a good user experience.

🧰 Tools
🪛 Markdownlint (0.37.0)

35-35: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


39-39: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


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

(MD032, blanks-around-lists)

source/_integrations/dreo.markdown Outdated Show resolved Hide resolved
@c0ffeeca7
Copy link
Contributor

Thank you for contributing, @w-xtao 👍

  • As this PR is related to a code PR, please rebase and point this PR against the next branch.
  • I'm drafting this PR. Once the PR is rebased, set it to Ready for review again.

@c0ffeeca7 c0ffeeca7 marked this pull request as draft January 9, 2025 14:15
@c0ffeeca7 c0ffeeca7 removed the current This PR goes into the current branch label Jan 9, 2025
@w-xtao w-xtao changed the base branch from current to next January 10, 2025 03:22
@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 Jan 10, 2025
@home-assistant home-assistant bot added the next This PR goes into the next branch label Jan 10, 2025
@w-xtao w-xtao marked this pull request as ready for review January 10, 2025 03:23
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: 3

♻️ Duplicate comments (1)
source/_integrations/dreo.markdown (1)

14-14: ⚠️ Potential issue

Update description to match supported devices.

The description still mentions "smart switches and outlets" but according to the supported devices section, this integration only supports fans.

Apply this fix:

-The Dreo integration enables you to control smart switches and outlets connected to the Dreo App.
+The Dreo integration enables you to control Dreo Tower Fans connected to the Dreo App.
🧹 Nitpick comments (5)
source/_integrations/dreo.markdown (1)

Line range hint 496-619: Rich notifications section needs formatting improvements.

While the content is excellent, there are some markdown formatting issues to address:

  1. Add blank lines around headings
  2. Fix ordered list numbering
  3. Use consistent code block style (prefer fenced over indented)
🧰 Tools
🪛 LanguageTool

[uncategorized] ~58-~58: Possible missing comma found.
Context: ... not, re-pair the devices with the Dreo App following the app's official pairing in...

(AI_HYDRA_LEO_MISSING_COMMA)

🪛 Markdownlint (0.37.0)

22-22: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


25-25: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


35-35: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


39-39: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


46-46: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


56-56: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


57-57: Expected: 1; Actual: 0; Above
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


57-57: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


62-62: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


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

(MD032, blanks-around-lists)


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

(MD032, blanks-around-lists)


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

(MD032, blanks-around-lists)


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

(MD032, blanks-around-lists)


54-54: Expected: leading_and_trailing; Actual: no_leading_or_trailing; Missing leading pipe
Table pipe style

(MD055, table-pipe-style)


54-54: Expected: leading_and_trailing; Actual: no_leading_or_trailing; Missing trailing pipe
Table pipe style

(MD055, table-pipe-style)


54-54: Expected: 3; Actual: 1; Too few cells, row will be missing data
Table column count

(MD056, table-column-count)

source/_posts/2025-01-03-release-20251.markdown (2)

26-34: Consider adding more technical details about the backup system overhaul.

While the introduction effectively conveys the excitement about the backup system changes, it would be helpful to include some technical specifications about:

  • The encryption algorithm used (AES-128)
  • The backup file format
  • Any size limitations

568-614: Consider grouping related changes in the patch release notes.

The patch release notes would be more readable if changes were grouped by:

  • Security fixes
  • Bug fixes
  • Documentation updates
  • Dependency updates
source/voice-pe/index.html (1)

945-945: Consider adding alt text for technical specifications.

The technical specifications for the TI AIC3204 DAC should include alt text describing the sampling rate and other key features for better accessibility.

source/voice-pe/styles.css (1)

Line range hint 1-3108: Consider performance optimizations.

While the CSS is generally well-optimized, consider these improvements:

  1. Reduce selector specificity where possible (e.g., .vpe-main #timeline[data-event="2"] could potentially be simplified)
  2. Group media queries by breakpoint to improve maintainability and reduce CSS size
  3. Consider using CSS containment for better rendering performance
📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between fc89d3a and b8ac0e4.

⛔ Files ignored due to path filters (11)
  • source/images/integrations/enphase_envoy/enphase_envoy_acb_battery.png is excluded by !**/*.png
  • source/images/integrations/enphase_envoy/enphase_envoy_aggr_acb_iq_battery.png is excluded by !**/*.png
  • source/images/integrations/enphase_envoy/enphase_envoy_aggr_iq_battery.png is excluded by !**/*.png
  • source/images/integrations/enphase_envoy/enphase_envoy_consumption.png is excluded by !**/*.png
  • source/images/integrations/enphase_envoy/enphase_envoy_ct_model.png is excluded by !**/*.png
  • source/images/integrations/enphase_envoy/enphase_envoy_dry_contact.png is excluded by !**/*.png
  • source/images/integrations/enphase_envoy/enphase_envoy_encharge.png is excluded by !**/*.png
  • source/images/integrations/enphase_envoy/enphase_envoy_enpower.png is excluded by !**/*.png
  • source/images/integrations/enphase_envoy/enphase_envoy_inverter_device.png is excluded by !**/*.png
  • source/images/integrations/enphase_envoy/enphase_envoy_production_reset.png is excluded by !**/*.png
  • source/images/integrations/enphase_envoy/enphase_envoy_solar_production.png is excluded by !**/*.png
📒 Files selected for processing (9)
  • _config.yml (1 hunks)
  • source/_integrations/discovergy.markdown (2 hunks)
  • source/_integrations/dreo.markdown (1 hunks)
  • source/_integrations/enphase_envoy.markdown (6 hunks)
  • source/_integrations/iotty.markdown (1 hunks)
  • source/_integrations/reolink.markdown (3 hunks)
  • source/_posts/2025-01-03-release-20251.markdown (1 hunks)
  • source/voice-pe/index.html (4 hunks)
  • source/voice-pe/styles.css (1 hunks)
🧰 Additional context used
🪛 LanguageTool
source/_integrations/reolink.markdown

[style] ~509-~509: Consider a shorter alternative to avoid wordiness.
Context: ...the same network as Home Assistant. 1. In order to receive such a rich notification, we ar...

(IN_ORDER_TO_PREMIUM)


[typographical] ~553-~553: After the expression ‘for example’ a comma is usually used.
Context: ...e notifications need to be sent. - For instance only when you are not home. The compani...

(COMMA_FOR_EXAMPLE)


[uncategorized] ~553-~553: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... the app. We will use this as an example but you can add as many conditions as you l...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~561-~561: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ...tion'>

- If you want to limit the amount of notifications being sent using a coo...

(AMOUNTOF_TO_NUMBEROF)


[style] ~616-~616: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...emember the conditions under And if need to be met, otherwise you will not receive ...

(REP_NEED_TO_VB)


[typographical] ~616-~616: The word “otherwise” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ... conditions under And if need to be met, otherwise you will not receive the notification. ...

(THUS_SENTENCE)

source/_posts/2025-01-03-release-20251.markdown

[uncategorized] ~72-~72: Commas set off the year in a month-day-year date.
Context: ...eases](#patch-releases) - 2025.1.1 - January 7 - [2025.1.2 - J...

(MISSING_COMMA_BETWEEN_DAY_AND_YEAR)


[style] ~107-~107: ‘on a regular basis’ might be wordy. Consider a shorter alternative.
Context: ...ing a schedule, backups will be created on a regular basis without you having to lift a finger. Th...

(EN_WORDINESS_PREMIUM_ON_A_REGULAR_BASIS)


[style] ~129-~129: The word ‘big’ tends to be overused. Consider an alternative.
Context: ...ight now**! Maybe you are about to make big changes or upgrade a whole bunch of things duri...

(BIG_DIFFERENCE)


[style] ~130-~130: Consider using “bunch”.
Context: ... about to make big changes or upgrade a whole bunch of things during an evening of tinkerin...

(WHOLE_LOT)


[style] ~273-~273: Consider an alternative to strengthen your wording.
Context: ... not stopping there! Expect to see even more improvements inspired by your feedback in upcoming r...

(IMPROVEMENTS_REFINEMENTS)


[style] ~282-~282: In American English, abbreviations like “etc.” require a period.
Context: ..."WTH can you not add categories, labels etc when creating an automation"**_](https:...

(ETC_PERIOD)


[style] ~372-~372: The phrase ‘a lot of’ might be wordy and overused. Consider using an alternative.
Context: ...ter/802529) Good question. If you have a lot of labels, scrolling through the list of l...

(A_LOT_OF)


[style] ~496-~496: Consider using a different adjective in this context to strengthen your wording.
Context: ...d. The [Stookwijzer] integration is a good alternative to get the same information...

(GOOD_ALTERNATIVE)


[style] ~502-~502: Consider an alternative to strengthen your wording.
Context: ...ther noteworthy changes There are many more improvements in this release; here are some of the o...

(IMPROVEMENTS_REFINEMENTS)


[uncategorized] ~519-~519: Consider adding a hyphen.
Context: ...pt editor (the three-dotted menu in the top right corner), making it easier to access t...

(TOP_LEFT_CORNER)


[style] ~537-~537: The phrase ‘a lot of’ might be wordy and overused. Consider using an alternative.
Context: ...amon] takes it a step further by adding a lot of settings to customize how the backgroun...

(A_LOT_OF)


[misspelling] ~694-~694: This word is normally spelled with a hyphen.
Context: ... January 9 - Fix Météo-France setup in non French cities (because of failed next rain sen...

(EN_COMPOUNDS_NON_FRENCH)


[grammar] ~696-~696: This expression is usually spelled with a hyphen.
Context: ...([cloud docs]) - Fix ZHA "referencing a non existing via_device" warning ([@puddly] - [#13...

(NON_ANTI_JJ)


[style] ~755-~755: Using many exclamation marks might seem excessive (in this case: 96 exclamation marks for a text that’s 28393 characters long)
Context: ...-assistant/core/issues), to get it fixed! Or, check our help page for gu...

(EN_EXCESSIVE_EXCLAMATION)


[style] ~764-~764: Consider shortening or rephrasing this to strengthen your wording.
Context: ...atible changes We do our best to avoid making changes to existing functionality that might unexp...

(MAKE_CHANGES)


[uncategorized] ~854-~854: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...en removed, as Tesla no longer supports Open Source application registrations and is moving...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[uncategorized] ~872-~872: Loose punctuation mark.
Context: ...wing UniFi sensor states: - Connected, which now became connected - `Pending...

(UNLIKELY_OPENING_PUNCTUATION)

source/_integrations/enphase_envoy.markdown

[grammar] ~658-~658: A determiner may be missing.
Context: ...minutes have been reported. In this case, best use a utility meter with the `Lifetime ...

(THE_SUPERLATIVE)


[grammar] ~664-~664: A determiner may be missing.
Context: ... spikes have been reported. In this case, best use a utility meter with the `Lifetime ...

(THE_SUPERLATIVE)

source/_integrations/dreo.markdown

[uncategorized] ~58-~58: Possible missing comma found.
Context: ... not, re-pair the devices with the Dreo App following the app's official pairing in...

(AI_HYDRA_LEO_MISSING_COMMA)

🪛 Markdownlint (0.37.0)
source/_integrations/reolink.markdown

519-519: Expected: 1; Actual: 2; Style: 1/1/1
Ordered list item prefix

(MD029, ol-prefix)


545-545: Expected: 1; Actual: 3; Style: 1/1/1
Ordered list item prefix

(MD029, ol-prefix)


551-551: Expected: 1; Actual: 4; Style: 1/1/1
Ordered list item prefix

(MD029, ol-prefix)


579-579: Expected: 1; Actual: 5; Style: 1/1/1
Ordered list item prefix

(MD029, ol-prefix)


596-596: Expected: 1; Actual: 6; Style: 1/1/1
Ordered list item prefix

(MD029, ol-prefix)


612-612: Expected: 1; Actual: 7; Style: 1/1/1
Ordered list item prefix

(MD029, ol-prefix)


567-567: Expected: indented; Actual: fenced
Code block style

(MD046, code-block-style)


505-505: null
Link fragments should be valid

(MD051, link-fragments)

source/_posts/2025-01-03-release-20251.markdown

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

(MD009, no-trailing-spaces)


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

(MD012, no-multiple-blanks)


746-746: Punctuation: '!'
Trailing punctuation in heading

(MD026, no-trailing-punctuation)


91-91: null
Emphasis used instead of a heading

(MD036, no-emphasis-as-heading)


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

(MD053, link-image-reference-definitions)


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

(MD053, link-image-reference-definitions)


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

(MD053, link-image-reference-definitions)


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

(MD053, link-image-reference-definitions)


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

(MD053, link-image-reference-definitions)


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

(MD053, link-image-reference-definitions)


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

(MD053, link-image-reference-definitions)


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

(MD053, link-image-reference-definitions)


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

(MD053, link-image-reference-definitions)


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

(MD053, link-image-reference-definitions)


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

(MD053, link-image-reference-definitions)


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

(MD053, link-image-reference-definitions)


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

(MD053, link-image-reference-definitions)


725-725: Duplicate link or image reference definition: "@jb101010-2"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


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

(MD053, link-image-reference-definitions)


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

(MD053, link-image-reference-definitions)


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

(MD053, link-image-reference-definitions)


730-730: Unused link or image reference definition: "abode docs"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


731-731: Unused link or image reference definition: "acaia docs"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


732-732: Unused link or image reference definition: "adax docs"
Link and image reference definitions should be needed

(MD053, link-image-reference-definitions)


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

(MD053, link-image-reference-definitions)


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

(MD053, link-image-reference-definitions)


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

(MD053, link-image-reference-definitions)

source/_integrations/enphase_envoy.markdown

45-45: null
Link fragments should be valid

(MD051, link-fragments)


196-196: null
Link fragments should be valid

(MD051, link-fragments)


205-205: null
Link fragments should be valid

(MD051, link-fragments)


214-214: null
Link fragments should be valid

(MD051, link-fragments)

source/_integrations/dreo.markdown

22-22: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


25-25: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


35-35: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


39-39: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


46-46: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


56-56: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


57-57: Expected: 1; Actual: 0; Above
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


57-57: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


62-62: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


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

(MD032, blanks-around-lists)


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

(MD032, blanks-around-lists)


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

(MD032, blanks-around-lists)


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

(MD032, blanks-around-lists)


54-54: Expected: leading_and_trailing; Actual: no_leading_or_trailing; Missing leading pipe
Table pipe style

(MD055, table-pipe-style)


54-54: Expected: leading_and_trailing; Actual: no_leading_or_trailing; Missing trailing pipe
Table pipe style

(MD055, table-pipe-style)


54-54: Expected: 3; Actual: 1; Too few cells, row will be missing data
Table column count

(MD056, table-column-count)

🔇 Additional comments (14)
source/_integrations/discovergy.markdown (2)

32-37: LGTM! Clear and well-structured configuration fields.

The new configuration fields for email and password are well-documented with clear descriptions.


50-52: LGTM! Standard removal instructions added.

The new section for removing the integration follows documentation standards.

source/_integrations/iotty.markdown (2)

43-44: LGTM! Product links updated correctly.

The updated product links for the EU version are valid and maintain consistent formatting.


52-56: LGTM! New outlet section well-structured.

The new iotty Outlet section is properly formatted and includes valid product links for different regions.

source/_integrations/dreo.markdown (1)

Line range hint 624-624: LGTM! Comprehensive automation examples.

The automation ideas section provides valuable use cases and examples for users.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~58-~58: Possible missing comma found.
Context: ... not, re-pair the devices with the Dreo App following the app's official pairing in...

(AI_HYDRA_LEO_MISSING_COMMA)

🪛 Markdownlint (0.37.0)

22-22: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


25-25: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


35-35: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


39-39: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


46-46: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


56-56: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


57-57: Expected: 1; Actual: 0; Above
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


57-57: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


62-62: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


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

(MD032, blanks-around-lists)


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

(MD032, blanks-around-lists)


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

(MD032, blanks-around-lists)


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

(MD032, blanks-around-lists)


54-54: Expected: leading_and_trailing; Actual: no_leading_or_trailing; Missing leading pipe
Table pipe style

(MD055, table-pipe-style)


54-54: Expected: leading_and_trailing; Actual: no_leading_or_trailing; Missing trailing pipe
Table pipe style

(MD055, table-pipe-style)


54-54: Expected: 3; Actual: 1; Too few cells, row will be missing data
Table column count

(MD056, table-column-count)

source/_integrations/reolink.markdown (1)

364-365: LGTM! Clear hardware compatibility information.

The updated hardware version requirements for RLN8-410 and RLN16-410 NVR models are well-documented, including helpful notes about firmware update status.

_config.yml (1)

109-112: LGTM! Version information updated correctly.

The Home Assistant version information has been properly updated to reflect the new release (2025.1.2).

source/_posts/2025-01-03-release-20251.markdown (1)

1-14: LGTM! The frontmatter is well-structured.

The metadata includes all required fields and follows the standard blog post format.

source/_integrations/enphase_envoy.markdown (1)

690-693: Excellent troubleshooting guidance for network issues.

The network troubleshooting section clearly explains the potential issues with dual network connections and provides a concrete solution.

source/voice-pe/index.html (2)

115-116: Update reflects the new launch timeline.

The launch date has been correctly updated to December 2024, aligning with the project timeline.


Line range hint 1458-1486: Australian distributor links have been updated correctly.

The new distributor links for Australia (OZ Smart Things and Smart Guys) are properly formatted and include appropriate company information.

source/voice-pe/styles.css (3)

Line range hint 2439-2607: Well-implemented animations with performance considerations!

The animation implementations follow best practices:

  • Use of hardware-accelerated properties (transform, opacity)
  • Consistent timing values
  • Smooth easing functions with cubic-bezier
  • Reasonable animation durations (0.25s-0.5s)

Line range hint 2608-3108: Excellent responsive design implementation!

The responsive design implementation is robust and well-structured:

  • Mobile-first approach with logical breakpoint progression
  • Dynamic grid system using CSS custom properties
  • Comprehensive viewport coverage from 300px to 2220px

1594-1594: LGTM! Verify visual alignment of timeline icon.

The adjustment of the timeline icon position looks good. The change from 2 to 2.333 in the multiplier provides finer control over the vertical positioning.

Please verify that the timeline icon aligns correctly with other UI elements by checking the visual appearance in different viewport sizes:

✅ Verification successful

Icon positioning calculation is correct and well-integrated

The multiplier of 2.333 for event 2's icon position is mathematically sound and works correctly with the timeline's grid system and event heights. The position calculation integrates properly with:

  • The responsive layout changes (--event-height: 4 → 3)
  • The 2-second transition animation
  • The overall timeline grid system
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for any related timeline positioning styles that might need adjustment
rg --type css "timeline.*track.*icon.*--top" -A 2 -B 2

Length of output: 56


Script:

#!/bin/bash
# Search for timeline-related styles and event positioning
echo "=== Timeline styles ==="
rg --type css "timeline" -A 2 -B 2

echo -e "\n=== Event positioning styles ==="
rg --type css "(--event|--top)" -A 2 -B 2

echo -e "\n=== Icon positioning styles ==="
rg --type css "icon.*{|\.icon" -A 2 -B 2

Length of output: 20224

Comment on lines 396 to 401
- **[Cookidoo]**, added by [@miaucl]
Interact with your shopping lists of [Cookidoo the official Thermomix recipe platform].
- **[EHEIM Digital]**, added by [@autinerd]
Control your [EHEIM Digital aquarium devices] with Home Assistant.
- **[Ituran]**, added by [@shmuelzon]
Retrieve and use information from your Ituran-equipped vehicle.
Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Consider adding a warning about polling interval impacts.

The section about customizing polling intervals should include a clear warning about potential system impacts of very short intervals, such as:

  • Increased resource usage
  • Network congestion
  • Potential stability issues

Comment on lines 642 to 645
### Firmware changes

[Envoy firmware](https://enphase.com/installers/resources/documentation/communication?&f[0]=document%3A217) versions come with changing behavior, features, and potential issues. Firmware is pushed to the Envoy by Enphase, while 'not always communicated in detail upfront'. This may result in sudden changes in the Envoy behavior and is always accompanied by an outage while Envoy is being updated.

Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Consider adding version numbers for firmware changes.

The firmware changes section would be more helpful if it included:

  • Specific version numbers affected
  • Dates of firmware releases
  • Links to official firmware release notes

Comment on lines 646 to 655
### No battery controls

As of Envoy firmware 8.2.4225, the Envoy no longer supports the following operations through the local REST API used by Home Assistant:

- Setting battery modes
- Enabling/disabling charging from the grid
- Changing reserve battery level

Until a resolution is found, you must use the Enphase App to control these features.

Copy link
Contributor

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion

Add workaround suggestions for battery control limitations.

Since firmware 8.2.4225 removes battery control support, consider adding:

  • Alternative methods to control batteries
  • Expected timeline for resolution
  • Impact on existing automations

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

🧹 Nitpick comments (6)
source/_integrations/roborock.markdown (2)

235-235: Fix grammar: Use "an" before "invalid".

Change "a invalid" to "an invalid" as the word "invalid" starts with a vowel sound.

-### I get a invalid or no user agreement error - but nothing shows up in my app
+### I get an invalid or no user agreement error - but nothing shows up in my app
🧰 Tools
🪛 LanguageTool

[misspelling] ~235-~235: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ...ock ``` ## Troubleshooting ### I get a invalid or no user agreement error - bu...

(EN_A_VS_AN)


237-242: Add blank lines around the numbered list.

For better readability and to follow markdown best practices, add blank lines before and after the numbered list.

 Roborock servers require accepting a user agreement before using the API, which may block Home Assistant during setup. Additionally, the Roborock may ask you to re-enter the user agreement, even if you have entered it before.  To allow Home Assistant to use the Roborock API, you need to take the following steps:
+
 1. Open your Roborock app.
 2. Open **Profile** > **About Us** > **User Agreement & Privacy Policy**.
 3. Hit **Revoke authorization**.
 4. Log back in and accept the policy.
 5. Reload the Roborock integration!
+
🧰 Tools
🪛 Markdownlint (0.37.0)

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

(MD032, blanks-around-lists)

source/_integrations/bang_olufsen.markdown (1)

76-76: Add missing comma after introductory phrase.

Add a comma after "at a later point" for proper punctuation.

-Currently, some features of the Mozart platform are not available through the [public API](https://github.com/bang-olufsen/mozart-open-api). Some may become available at a later point but until then the [Bang & Olufsen App](https://www.bang-olufsen.com/en/dk/story/apps) can be used to configure these settings and features:
+Currently, some features of the Mozart platform are not available through the [public API](https://github.com/bang-olufsen/mozart-open-api). Some may become available at a later point, but until then the [Bang & Olufsen App](https://www.bang-olufsen.com/en/dk/story/apps) can be used to configure these settings and features:
🧰 Tools
🪛 LanguageTool

[typographical] ~76-~76: It seems that a comma is missing after this introductory phrase.
Context: ... become available at a later point, but until then the [Bang & Olufsen App](https://www.ba...

(SINCE_THEN_COMMA)

source/_includes/common-tasks/update.md (1)

Line range hint 1-4: Enhance backup instructions for clarity

While step 1 mentions backup functionality, consider enhancing it to emphasize its importance and provide more detailed guidance:

  1. The current wording might not sufficiently stress the criticality of backups
  2. Users might benefit from explicit instructions about verifying their backup before proceeding

Consider expanding step 1 with this diff:

-1. Back up your installation{% if page.installation == "os" or page.installation == "supervised" %}, using the [backup functionality](/common-tasks/general/#backups) Home Assistant offers{% endif %}.
+1. Create and verify a backup of your installation:
+   - {% if page.installation == "os" or page.installation == "supervised" %}Use the [backup functionality](/common-tasks/general/#backups) Home Assistant offers{% endif %}
+   - Ensure your backup is complete and stored in a safe location
+   - Verify that your backup is accessible before proceeding
source/_integrations/reolink.markdown (2)

568-570: Consider improving the cooldown template.

The cooldown template could be made more robust by using a default value for both timestamps:

-{{as_timestamp(now()) - as_timestamp(state_attr('automation.reolink_push', 'last_triggered'), 0) > 30}}
+{{as_timestamp(now(), 0) - as_timestamp(state_attr('automation.reolink_push', 'last_triggered'), 0) > 30}}
🧰 Tools
🪛 Markdownlint (0.37.0)

568-568: Expected: indented; Actual: fenced
Code block style

(MD046, code-block-style)


520-520: Consider standardizing markdown formatting.

For better consistency:

  1. Use continuous numbering for ordered lists (currently jumps from 1 to 3, 4, 5, 6, 7)
  2. Use consistent code block style (currently mixes indented and fenced styles)

Also applies to: 546-546, 552-552, 580-580, 597-597, 613-613, 568-568

🧰 Tools
🪛 Markdownlint (0.37.0)

520-520: Expected: 1; Actual: 2; Style: 1/1/1
Ordered list item prefix

(MD029, ol-prefix)

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between b8ac0e4 and 9499e11.

📒 Files selected for processing (10)
  • source/_includes/common-tasks/update.md (1 hunks)
  • source/_integrations/bang_olufsen.markdown (1 hunks)
  • source/_integrations/cookidoo.markdown (1 hunks)
  • source/_integrations/fyta.markdown (1 hunks)
  • source/_integrations/mqtt.markdown (1 hunks)
  • source/_integrations/ohme.markdown (2 hunks)
  • source/_integrations/powerfox.markdown (1 hunks)
  • source/_integrations/reolink.markdown (3 hunks)
  • source/_integrations/roborock.markdown (1 hunks)
  • source/more-info/backup-emergency-kit.markdown (1 hunks)
✅ Files skipped from review due to trivial changes (3)
  • source/_integrations/cookidoo.markdown
  • source/more-info/backup-emergency-kit.markdown
  • source/_integrations/mqtt.markdown
🧰 Additional context used
🪛 LanguageTool
source/_integrations/bang_olufsen.markdown

[typographical] ~76-~76: It seems that a comma is missing after this introductory phrase.
Context: ... become available at a later point, but until then the [Bang & Olufsen App](https://www.ba...

(SINCE_THEN_COMMA)

source/_integrations/roborock.markdown

[misspelling] ~235-~235: Use “an” instead of ‘a’ if the following word starts with a vowel sound, e.g. ‘an article’, ‘an hour’.
Context: ...ock ``` ## Troubleshooting ### I get a invalid or no user agreement error - bu...

(EN_A_VS_AN)

source/_integrations/reolink.markdown

[style] ~510-~510: Consider a shorter alternative to avoid wordiness.
Context: ...the same network as Home Assistant. 1. In order to receive such a rich notification, we ar...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~510-~510: Possible missing comma found.
Context: ...n automation in Home Assistant. In Home Assistant go to {% my automations title="**Settin...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~530-~530: Possible missing comma found.
Context: ... alt='Screenshot: new trigger'>

Then under Entity, select the binary sen...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~530-~530: Possible missing comma found.
Context: ...ve a rich notification. For the Reolink integration the options are: - binary_sensor.*...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~544-~544: Possible missing comma found.
Context: ...nd the same message for multiple camera events like person and vehicle detection. You ...

(AI_HYDRA_LEO_MISSING_COMMA)


[typographical] ~554-~554: After the expression ‘for example’ a comma is usually used.
Context: ...e notifications need to be sent. - For instance only when you are not home. The compani...

(COMMA_FOR_EXAMPLE)


[uncategorized] ~554-~554: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... the app. We will use this as an example but you can add as many conditions as you l...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~562-~562: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ...tion'>

- If you want to limit the amount of notifications being sent using a coo...

(AMOUNTOF_TO_NUMBEROF)


[uncategorized] ~562-~562: Possible missing comma found.
Context: ...tifications being sent using a cooldown time you can use the following template cond...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~617-~617: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...emember the conditions under And if need to be met, otherwise you will not receive ...

(REP_NEED_TO_VB)


[typographical] ~617-~617: The word “otherwise” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ... conditions under And if need to be met, otherwise you will not receive the notification. ...

(THUS_SENTENCE)

🪛 Markdownlint (0.37.0)
source/_integrations/roborock.markdown

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

(MD032, blanks-around-lists)

source/_integrations/reolink.markdown

520-520: Expected: 1; Actual: 2; Style: 1/1/1
Ordered list item prefix

(MD029, ol-prefix)


546-546: Expected: 1; Actual: 3; Style: 1/1/1
Ordered list item prefix

(MD029, ol-prefix)


552-552: Expected: 1; Actual: 4; Style: 1/1/1
Ordered list item prefix

(MD029, ol-prefix)


580-580: Expected: 1; Actual: 5; Style: 1/1/1
Ordered list item prefix

(MD029, ol-prefix)


597-597: Expected: 1; Actual: 6; Style: 1/1/1
Ordered list item prefix

(MD029, ol-prefix)


613-613: Expected: 1; Actual: 7; Style: 1/1/1
Ordered list item prefix

(MD029, ol-prefix)


568-568: Expected: indented; Actual: fenced
Code block style

(MD046, code-block-style)


506-506: null
Link fragments should be valid

(MD051, link-fragments)

⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: Redirect rules - home-assistant-docs
  • GitHub Check: Header rules - home-assistant-docs
  • GitHub Check: Pages changed - home-assistant-docs
🔇 Additional comments (6)
source/_includes/common-tasks/update.md (1)

6-7: ⚠️ Potential issue

Fix step numbering inconsistency

The step numbers (6 and 7) appear to be incorrect in the sequence. They should be 3 and 4 to maintain proper ordering with the previous steps.

Apply this diff to fix the step numbering:

-3. Update Home Assistant.
-4. Review persistent notifications and log to see if there are any issues with your configuration that need to be addressed.
+3. Update Home Assistant.
+4. Review persistent notifications and log to see if there are any issues with your configuration that need to be addressed.

Likely invalid or redundant comment.

source/_integrations/reolink.markdown (2)

365-366: LGTM! Clear and helpful hardware compatibility information.

The updated hardware version compatibility information is well-documented and provides valuable details about both supported and unsupported versions, helping users make informed decisions.


497-620: LGTM! Comprehensive and well-structured tutorial.

The rich notifications tutorial is clear, detailed, and includes helpful screenshots to guide users through the setup process.

🧰 Tools
🪛 LanguageTool

[style] ~510-~510: Consider a shorter alternative to avoid wordiness.
Context: ...the same network as Home Assistant. 1. In order to receive such a rich notification, we ar...

(IN_ORDER_TO_PREMIUM)


[uncategorized] ~510-~510: Possible missing comma found.
Context: ...n automation in Home Assistant. In Home Assistant go to {% my automations title="**Settin...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~530-~530: Possible missing comma found.
Context: ... alt='Screenshot: new trigger'>

Then under Entity, select the binary sen...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~530-~530: Possible missing comma found.
Context: ...ve a rich notification. For the Reolink integration the options are: - binary_sensor.*...

(AI_HYDRA_LEO_MISSING_COMMA)


[uncategorized] ~544-~544: Possible missing comma found.
Context: ...nd the same message for multiple camera events like person and vehicle detection. You ...

(AI_HYDRA_LEO_MISSING_COMMA)


[typographical] ~554-~554: After the expression ‘for example’ a comma is usually used.
Context: ...e notifications need to be sent. - For instance only when you are not home. The compani...

(COMMA_FOR_EXAMPLE)


[uncategorized] ~554-~554: Use a comma before ‘but’ if it connects two independent clauses (unless they are closely connected and short).
Context: ... the app. We will use this as an example but you can add as many conditions as you l...

(COMMA_COMPOUND_SENTENCE)


[uncategorized] ~562-~562: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ...tion'>

- If you want to limit the amount of notifications being sent using a coo...

(AMOUNTOF_TO_NUMBEROF)


[uncategorized] ~562-~562: Possible missing comma found.
Context: ...tifications being sent using a cooldown time you can use the following template cond...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~617-~617: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...emember the conditions under And if need to be met, otherwise you will not receive ...

(REP_NEED_TO_VB)


[typographical] ~617-~617: The word “otherwise” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ... conditions under And if need to be met, otherwise you will not receive the notification. ...

(THUS_SENTENCE)

🪛 Markdownlint (0.37.0)

520-520: Expected: 1; Actual: 2; Style: 1/1/1
Ordered list item prefix

(MD029, ol-prefix)


546-546: Expected: 1; Actual: 3; Style: 1/1/1
Ordered list item prefix

(MD029, ol-prefix)


552-552: Expected: 1; Actual: 4; Style: 1/1/1
Ordered list item prefix

(MD029, ol-prefix)


580-580: Expected: 1; Actual: 5; Style: 1/1/1
Ordered list item prefix

(MD029, ol-prefix)


597-597: Expected: 1; Actual: 6; Style: 1/1/1
Ordered list item prefix

(MD029, ol-prefix)


613-613: Expected: 1; Actual: 7; Style: 1/1/1
Ordered list item prefix

(MD029, ol-prefix)


568-568: Expected: indented; Actual: fenced
Code block style

(MD046, code-block-style)


506-506: null
Link fragments should be valid

(MD051, link-fragments)

source/_integrations/ohme.markdown (1)

17-18: LGTM on metadata additions

The addition of quality scale and integration type metadata is correct and follows the standard pattern.

source/_integrations/powerfox.markdown (2)

14-15: LGTM on platform addition

The addition of diagnostics platform is properly documented.


17-18: Verify zeroconf support

The addition of ha_zeroconf: true suggests zero-configuration networking support, but this isn't documented in the integration description or configuration sections. Please verify if this integration actually supports zeroconf/mDNS discovery.

Comment on lines 4 to 5
ha_category:
- Sensor
- Car
- Sensor
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

Restore the "Car" category

The "Car" category should be retained as this integration is specifically for EV chargers. The current changes incorrectly remove this essential categorization.

ha_category:
+  - Car
  - Sensor
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
ha_category:
- Sensor
- Car
- Sensor
ha_category:
- Car
- Sensor

Comment on lines 18 to 19
ha_quality_scale: platinum
ha_dhcp: true
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

Remove ha_dhcp flag

The ha_dhcp: true flag appears incorrect as the documentation explicitly states under "Known limitations":

No direct connection to the FYTA Beam is supported (as the Beam only provides raw data, that needs to be processed on the FYTA server).

This indicates that DHCP discovery is not possible since direct connections are not supported.

ha_quality_scale: platinum
-ha_dhcp: true
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
ha_quality_scale: platinum
ha_dhcp: true
ha_quality_scale: platinum

@w-xtao w-xtao closed this Jan 10, 2025
@home-assistant home-assistant bot removed the in-progress This PR/Issue is currently being worked on label Jan 10, 2025
@github-actions github-actions bot locked and limited conversation to collaborators Jan 11, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
has-parent This PR has a parent PR in a other repo next This PR goes into the next branch
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants