Skip to content

Add document for Dreo integration #36851

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

Open
wants to merge 55 commits into
base: next
Choose a base branch
from
Open

Conversation

w-xtao
Copy link

@w-xtao w-xtao commented Jan 10, 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

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.
    • Added preset modes: manual, auto, and sleep.
  • Documentation

    • Provided detailed integration instructions and device compatibility information for the Dreo integration.
    • Included troubleshooting sections for common issues related to device discovery, control, and credential management.
    • Emphasized registering devices via the Dreo App before integration setup.

@home-assistant home-assistant bot added has-parent This PR has a parent PR in a other repo next This PR goes into the next branch labels Jan 10, 2025
Copy link

netlify bot commented Jan 10, 2025

Deploy Preview for home-assistant-docs ready!

Name Link
🔨 Latest commit dfd4ebb
🔍 Latest deploy log https://app.netlify.com/sites/home-assistant-docs/deploys/6805a606d9258400082b0ae7
😎 Deploy Preview https://deploy-preview-36851--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 10, 2025

📝 Walkthrough

Walkthrough

The pull request adds a new integration for Dreo smart fans within Home Assistant. It introduces documentation that guides users to register their Dreo devices via the Dreo App before integrating them into Home Assistant. The integration supports controlling fan entities, including power, speed adjustment (with model-specific ranges), preset modes ("manual", "auto", "sleep"), and oscillation toggling. Supported fan models are listed, and the documentation includes configuration, removal, and troubleshooting instructions to address common issues such as device discovery failures, control problems, credential expiration, and unresponsive devices.

Changes

File Change Summary
source/_integrations/dreo.markdown - Added new integration documentation for Dreo smart fans
- Detailed device registration via Dreo App
- Described configuration through Home Assistant UI
- Listed supported fan models (DR-HTF001S to DR-HTF010S)
- Documented fan entity attributes: mode, speed, oscillate
- Provided troubleshooting guidance for discovery, control, credentials, and device responsiveness

Sequence Diagram

sequenceDiagram
    participant User
    participant "Home Assistant"
    participant "Dreo App"
    participant "Dreo Device"

    User->>Dreo App: Register device
    User->>Home Assistant: Add Dreo integration
    Home Assistant->>Dreo App: Request device credentials
    Dreo App-->>Home Assistant: Provide authentication
    Home Assistant->>Dreo Device: Discover and connect
    Home Assistant->>User: Integration setup complete
Loading

Tip

⚡💬 Agentic Chat (Pro Plan, General Availability)
  • We're introducing multi-step agentic chat in review comments and issue comments, within and outside of PR's. This feature enhances review and issue discussions with the CodeRabbit agentic chat by enabling advanced interactions, including the ability to create pull requests directly from comments and add commits to existing pull requests.

📜 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 eb69b8f and dfd4ebb.

📒 Files selected for processing (1)
  • source/_integrations/dreo.markdown (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • source/_integrations/dreo.markdown
⏰ 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

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

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

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

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

CodeRabbit Commands (Invoked using PR comments)

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

Other keywords and placeholders

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

CodeRabbit Configuration File (.coderabbit.yaml)

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

Documentation and Community

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

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 (5)
source/_integrations/dreo.markdown (5)

35-38: Enhance prerequisite section

Consider adding more specific prerequisites such as:

  • Minimum required version of the Dreo App
  • Network requirements (e.g., devices and Home Assistant must be on the same network)
  • Account requirements (e.g., Dreo account creation process)
🧰 Tools
🪛 Markdownlint (0.37.0)

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

(MD022, blanks-around-headings)


25-33: Add device-specific details

Consider enhancing the device list with:

  • Links to product pages or documentation for each model
  • Model-specific features or limitations
  • Release dates or firmware version requirements
🧰 Tools
🪛 Markdownlint (0.37.0)

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: Enhance attributes documentation

Consider adding:

  • Full range of possible values for each attribute
  • Default values
  • Whether attributes are read-only or can be set
  • Examples of how to use these attributes in automations

59-59: Fix grammar in troubleshooting step

Add a comma after "not" in the sentence.

-- **Check Dreo App Connection**: Ensure that your devices are properly connected to the Dreo App. Try restarting the Dreo App and checking if the devices are still visible and controllable within it. If not, re-pair the devices with the Dreo App following the app's official pairing instructions.
+- **Check Dreo App Connection**: Ensure that your devices are properly connected to the Dreo App. Try restarting the Dreo App and checking if the devices are still visible and controllable within it. If not, re-pair the devices with the Dreo App following the app's official pairing instructions.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~59-~59: 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)

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

(MD032, blanks-around-lists)


22-65: Fix markdown formatting issues

Please add blank lines:

  1. Around all headings (lines 22, 25, 35, 39, 46, 57, 58, 63)
  2. Around all lists (lines 26, 40, 59, 64)
  3. At the end of the file

This will improve readability and comply with markdown best practices.

🧰 Tools
🪛 LanguageTool

[uncategorized] ~59-~59: 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)


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

(MD022, blanks-around-headings)


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

(MD022, blanks-around-headings)


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

(MD022, blanks-around-headings)


63-63: 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)


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

(MD032, blanks-around-lists)


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

(MD032, blanks-around-lists)


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

(MD047, single-trailing-newline)

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 8864a17 and de66507.

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

[uncategorized] ~59-~59: 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/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)


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

(MD022, blanks-around-headings)


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

(MD022, blanks-around-headings)


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

(MD022, blanks-around-headings)


63-63: 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)


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

(MD032, blanks-around-lists)


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

(MD032, blanks-around-lists)


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

(MD047, single-trailing-newline)

⏰ 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)

6-6: Verify the release version

The release version is set to 2025.1. Please ensure this aligns with the planned release schedule and the corresponding core PR's release version.

✅ Verification successful

Release version 2025.1 is correct

The specified release version aligns with Home Assistant's versioning pattern for new integrations being added in early 2025.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check the release version in the core PR
gh pr view $(curl -s "https://api.github.com/search/issues?q=repo:home-assistant/core+is:pr+dreo+in:title" | jq -r '.items[0].number') --json body | jq -r '.body' | grep -i "release\|version"

Length of output: 295


Script:

#!/bin/bash
# Search for manifest.json files related to Dreo
fd manifest.json --exec grep -l "dreo\|Dreo" {} \;

# Search for recent Dreo-related files
fd . --type f --changed-within 2weeks --exec grep -l "dreo\|Dreo" {} \;

# Check if there are any existing Dreo integration files
rg -l "ha_release.*202[45]" --type md

Length of output: 4732

Brooke.Wang and others added 2 commits January 10, 2025 16:27
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

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

7-7: 🛠️ Refactor suggestion

Remove technical implementation detail

The ha_config_flow parameter is an internal implementation detail that shouldn't be exposed in user-facing documentation.

-ha_config_flow: true
🧹 Nitpick comments (5)
source/_integrations/dreo.markdown (5)

22-34: Consider adding model-specific feature details

While the list of supported models is comprehensive, it would be helpful to include any model-specific features or limitations to help users understand differences between models.

Would you like me to help create a feature comparison table for the different models?

🧰 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)


25-34: Fix markdown formatting

Add blank lines around the list for better readability.

 ### 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)

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)


39-45: Fix markdown formatting

Add blank lines around the numbered list for better readability.

 ## Configuration instructions
+
 1. **Open Home Assistant UI**: Log in to your Home Assistant web interface. Navigate to the "Settings" section, usually found in the sidebar.
 2. **Access Integrations**: In the "Settings" menu, click on "Integrations". This will take you to a page listing all the available integrations.
 3. **Search for Dreo**: Use the search bar on the Integrations page to search for the "Dreo" integration.
 4. **Initiate Setup**: Once you've located the Dreo integration, click on it to start the setup wizard. Follow the on-screen prompts to authorize Home Assistant to access your Dreo App account. This will involve logging into your Dreo App credentials within the Home Assistant setup flow.
 5. **Complete Setup**: After providing the necessary information and authorizing the connection, the integration should be set up successfully. You should then be able to control your Dreo devices from within Home Assistant.
+
🧰 Tools
🪛 Markdownlint (0.37.0)

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)


49-53: Enhance attribute documentation

Consider adding more details about valid values for each attribute:

  • For mode: List all possible modes
  • For speed: Clarify if 1-4 are the only valid values
  • For oscillate: Specify if any additional states exist beyond true/false

65-65: Add trailing newline

Add a newline character at the end of the file.

🧰 Tools
🪛 Markdownlint (0.37.0)

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

(MD047, single-trailing-newline)

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between de66507 and 1da055f.

📒 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)


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

(MD022, blanks-around-headings)


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

(MD022, blanks-around-headings)


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

(MD022, blanks-around-headings)


63-63: 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)


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

(MD032, blanks-around-lists)


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

(MD032, blanks-around-lists)


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

(MD047, single-trailing-newline)

⏰ 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)

14-21: Well-structured introduction!

The introduction clearly states the purpose of the integration and its requirements. The supported platform is correctly specified.


57-65: Comprehensive troubleshooting guide

The troubleshooting section effectively covers common issues and provides clear solutions.

However, fix the markdown formatting by adding blank lines around lists:

 ## Troubleshooting
+
 ### Device not discovered
+
 - **Check Dreo App Connection**: Ensure that your devices are properly connected to the Dreo App. Try restarting the Dreo App and checking if the devices are still visible and controllable within it. If not, re-pair the devices with the Dreo App following the app's official pairing instructions.
 - **Home Assistant Network Issues**: Make sure that your Home Assistant instance has network access. You can test this by trying to access other online services from within Home Assistant (for example, checking the weather integration if it's set up). If there are network problems, troubleshoot your Home Assistant's network connection, which may involve checking your router settings, Wi-Fi passwords, or Ethernet connections.
 - **Permissions**: Double-check that you've granted all the necessary permissions during the integration setup process. Incorrect permissions can prevent Home Assistant from discovering your Dreo devices.
+
 ### Inability to control devices
+
 - **Device State Sync**: Sometimes, the device state may not sync correctly between the Dreo App and Home Assistant. Try toggling the device on/off, changing the mode, or adjusting the speed from within the Dreo App, and then refreshing the device page in Home Assistant to see if the state updates.
 - **App Version Mismatch**: Ensure that both the Dreo App and Home Assistant are running up-to-date versions. An outdated version of either software could lead to compatibility issues and control problems. Update the Dreo App from the official app store for your device, and check for Home Assistant updates in the Home Assistant UI's update section.
+
🧰 Tools
🪛 Markdownlint (0.37.0)

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

(MD022, blanks-around-headings)


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

(MD022, blanks-around-headings)


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

(MD022, blanks-around-headings)


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

(MD022, blanks-around-headings)


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

(MD032, blanks-around-lists)


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

(MD032, blanks-around-lists)


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

(MD047, single-trailing-newline)

Brooke.Wang and others added 2 commits January 10, 2025 18:39
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 (3)
source/_integrations/dreo.markdown (3)

13-15: Add Dreo App requirements

Consider adding information about:

  • Required Dreo App version
  • App store links for iOS/Android
  • Any regional availability restrictions

26-33: Enhance device model information

Consider adding brief descriptions for each model to highlight their unique features or differences. This would help users identify their specific model and understand any model-specific capabilities.


51-55: Enhance attributes documentation

Consider adding:

  • Valid value ranges for each attribute
  • Default values
  • Whether attributes are read-only or writable
📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 1da055f and 6c87394.

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

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

(MD012, no-multiple-blanks)


21-21: 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)


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

(MD022, blanks-around-headings)


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

(MD022, blanks-around-headings)


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

(MD022, blanks-around-headings)


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

(MD022, blanks-around-headings)


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

(MD022, blanks-around-headings)


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

(MD032, blanks-around-lists)


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

(MD032, blanks-around-lists)


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

(MD047, single-trailing-newline)

⏰ 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)

35-46: Configuration instructions look good!

The setup instructions are clear, user-friendly, and properly avoid technical implementation details.

🧰 Tools
🪛 Markdownlint (0.37.0)

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

(MD022, blanks-around-headings)


6-6: Verify the release version

The release version is set to 2025.1. Please confirm if this is the intended version for the integration's first release. If this is meant to target the next major release, you might need to adjust it based on the current development cycle.

✅ Verification successful

Release version is appropriate

The version 2025.1 is correctly set for this new integration as it targets the first release of 2025, following the established pattern seen in other recent integrations (e.g., weheat: 2024.10).

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check current version pattern in other recent integrations
fd -e markdown . source/_integrations -t f -d 1 | xargs grep -l "^ha_release: " | xargs grep "^ha_release: " | sort -r | head -n 5

Length of output: 419


Script:

#!/bin/bash
# Check manifest files for current version
fd manifest.json . -t f | xargs grep -l "version" | xargs grep "version" | sort -r | head -n 5

# Check most recently added integrations
fd -e markdown . source/_integrations -t f -d 1 -0 | xargs -0 stat -f "%m %N" | sort -rn | head -n 5 | cut -d' ' -f2- | xargs grep "^ha_release: "

Length of output: 280


Script:

#!/bin/bash
# Check recently modified integration files
find source/_integrations -name "*.markdown" -type f -printf "%T@ %p\n" | sort -nr | head -n 5 | cut -f2- -d" " | xargs grep "^ha_release: "

# Check current version pattern
grep -r "MAJOR_VERSION = " .

Length of output: 456

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 (3)
source/_integrations/dreo.markdown (3)

38-39: Add app store links

Consider adding links to the Dreo App on both iOS App Store and Google Play Store to help users easily find and install the required app.

 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.
+Dreo App ([iOS App Store](link_to_ios_app), [Google Play Store](link_to_android_app)). Once registration is complete, you can add the Dreo integration in Home Assistant through the UI.

53-57: Enhance attribute documentation

The speed attribute description could be more detailed. Consider:

  1. Clarifying if speed 1 is lowest and 4 is highest
  2. Documenting the behavior when setting invalid speeds
-| `speed`   | The current speed setting (1-4). | 1 |
+| `speed`   | The fan speed setting from 1 (lowest) to 4 (highest). Invalid values will be clamped to the nearest valid speed. | 1 |

65-65: Fix formatting issues

Please address the following:

  1. Add a comma after "If not" in the device discovery troubleshooting
  2. Ensure the file ends with a single newline
-If not, re-pair the devices
+If not, re-pair the devices,

Also applies to: 72-72

🧰 Tools
🪛 LanguageTool

[uncategorized] ~65-~65: 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)

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 6c87394 and 1c77f86.

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

[uncategorized] ~65-~65: 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/dreo.markdown

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

(MD047, single-trailing-newline)

🔇 Additional comments (2)
source/_integrations/dreo.markdown (2)

41-48: Configuration instructions look great!

The step-by-step setup instructions are clear, concise, and user-friendly.


6-6: Verify the release version

The release version 2025.1 appears to be set to a future date. Please verify if this is the intended version for this integration's initial release.

✅ Verification successful

Release version is correct

The specified release version 2025.1 matches the current Home Assistant release cycle, as evidenced by the latest releases (2025.1.x).

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check current and upcoming Home Assistant release versions
curl -s https://api.github.com/repos/home-assistant/core/releases | jq -r '.[].tag_name' | head -n 5

Length of output: 151

Brooke.Wang and others added 2 commits January 10, 2025 21:14
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 (5)
source/_integrations/dreo.markdown (5)

23-23: Fix typo: Remove extra space

There's a double space after "App." in this line.

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

27-34: Consider adding more device details

Consider enhancing the device list with additional information for each model, such as:

  • Key features
  • Release year
  • Links to product pages

This would help users identify their specific models more easily.


41-48: Consider adding screenshots

The configuration instructions are clear, but they could be enhanced with screenshots showing:

  • The integration search page
  • The authorization flow
  • The final setup screen

This would make it easier for users to follow along.


65-65: Fix formatting: Remove unexpected period

There's an unexpected period after "App's" in the pairing instructions text.

-- **Check Dreo App Connection**: Ensure that your devices are properly connected to the Dreo App. Try restarting the Dreo App and checking if the devices are still visible and controllable within it. If not, re-pair the devices with the Dreo App following the app's. official pairing instructions.
+- **Check Dreo App Connection**: Ensure that your devices are properly connected to the Dreo App. Try restarting the Dreo App and checking if the devices are still visible and controllable within it. If not, re-pair the devices with the Dreo App following the app's official pairing instructions.

51-58: Add automation examples

Consider adding examples of how to use these attributes in automations. For example:

  • How to create an automation that changes the fan speed based on room temperature
  • How to toggle oscillation on a schedule
  • How to switch modes based on time of day

This would help users better understand the practical applications of these attributes.

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between 1c77f86 and cab54a7.

📒 Files selected for processing (1)
  • source/_integrations/dreo.markdown (1 hunks)
🔇 Additional comments (3)
source/_integrations/dreo.markdown (3)

6-6: Verify the release version

The release version is set to 2025.1, which appears to be a future date. Please verify if this is the intended version or if it should be adjusted to match the actual planned release version.


13-20: Introduction and platform support look good!

The introduction clearly explains the integration's purpose and correctly lists the supported platforms.


61-72: Fix markdown formatting

The formatting issues from the previous review still need to be addressed:

  1. Add blank lines around headings
  2. Add blank lines around lists
  3. Ensure file ends with a single newline

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 (2)
source/_integrations/dreo.markdown (2)

27-34: Consider adding model-specific feature details

While the supported models are clearly listed, it would be helpful to indicate if there are any feature differences between these models that users should be aware of.


61-72: Consider adding more troubleshooting scenarios

The troubleshooting section is well-organized, but consider adding these common scenarios:

  1. What to do if the Dreo App credentials are invalid or expired
  2. Steps to take if the device becomes unresponsive
  3. How to handle firmware update scenarios
📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between cab54a7 and 27f1d28.

📒 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 (5)
source/_integrations/dreo.markdown (5)

6-6: Verify the release version

The release version 2025.1 appears to be set in the future. Please confirm if this is intentional for a planned future release, or if it needs to be adjusted to match the actual release version.


13-20: Introduction and platform support look good!

The introduction clearly states the integration's purpose and supported platforms.


36-48: Configuration instructions are clear and comprehensive!

The prerequisites and step-by-step configuration instructions are well-documented and user-friendly.


59-60: Fix markdown formatting

Add blank lines around the text for proper markdown formatting.


1-72: Overall documentation quality is excellent!

The documentation is well-structured, comprehensive, and follows Home Assistant's documentation standards. It provides clear setup instructions, supported device information, and troubleshooting guidance. The minor suggestions provided above would further enhance an already solid documentation.

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 (3)
source/_integrations/dreo.markdown (3)

59-67: Improve Markdown Table & Heading Spacing

The table outlining the "Fan exposed attributes" (lines 63–67) and the heading "## Fan exposed attributes" at line 59 are clear, but please ensure that all headings and list items throughout the document are surrounded by blank lines. This adheres to markdownlint rules (MD022 for headings and MD032 for lists) and enhances readability.


71-115: Ensure Consistent Markdown Spacing Throughout

Throughout sections such as Troubleshooting, Configuration Instructions, and Firmware Update Scenarios (lines 71–115), verify that each heading and list block is separated by a blank line. Additionally, double-check that multi-line elements (e.g., instructions spanning several lines) maintain consistent spacing. These refinements help users navigate the documentation more easily.


115-115: Ensure a Single Trailing Newline

Please make sure that the file ends with a single newline character, as recommended by markdown style guidelines (MD047).

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between b61b8df and a5260d9.

📒 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 (2)
source/_integrations/dreo.markdown (2)

1-11: Review Front Matter Metadata

The YAML metadata is well formed and provides the essential integration details (title, description, category, platforms, etc.). Just ensure that the metadata remains consistent with the integration’s purpose as the documentation evolves.


13-16: 🛠️ Refactor suggestion

Clarify Supported Device Type in the Introduction

Line 13 states:

"The Dreo integration enables you to control smart switches connected to the Dreo App."

However, the rest of the document (including the title, description, and detailed sections) is focused on fans. For consistency and clarity, please update this line to reflect that the integration controls Dreo fans. For example:

-The Dreo integration enables you to control smart switches connected to the Dreo App.
+The Dreo integration enables you to control Dreo fans connected to the Dreo App.

This change will help avoid confusion regarding the supported device types.

Likely invalid or redundant comment.

@w-xtao
Copy link
Author

w-xtao commented Feb 6, 2025

Dear review team
I've noticed that my Dreo integraton has been under review for some time. Since my subsequent arrangements are tight, I urgently need this review to be passed. I'd like to know approximately how long it will take to complete the review. Would you please pay attention to it in your busy schedule? Thank you! @frenck

description: Instructions on how to set up Dreo fans within Home Assistant.
ha_category:
- Fan
ha_release: 2024.12
Copy link
Member

Choose a reason for hiding this comment

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

This should be updated when the core PR is merged so that it matches the actual release

@@ -0,0 +1,114 @@
---
title: Dreo
description: Instructions on how to set up Dreo fans within Home Assistant.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
description: Instructions on how to set up Dreo fans within Home Assistant.
description: Instructions on how to set up Dreo products within Home Assistant.

So that this does not get outdated as soon as more devices are added. We already state that only fans are supported in the actual docs bellow.

Copy link
Author

Choose a reason for hiding this comment

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

Thank you for your reminder. I have already changed "Fans" to "products".

ha_integration_type: integration
---

The Dreo integration enables you to control smart switches connected to the Dreo App.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
The Dreo integration enables you to control smart switches connected to the Dreo App.
The **Dreo** {% term integration %} enables you to control smart switches connected to the Dreo App.

Also add a link to the official website, please.

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.

## Configuration instructions
Copy link
Member

Choose a reason for hiding this comment

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

We provide helpers here to generate the docs for normal config flows. You can use {% include integrations/config_flow.md %} to avoid detailing the steps.

Same for removal with {% include integrations/remove_device_service.md %}

Copy link
Author

@w-xtao w-xtao Mar 13, 2025

Choose a reason for hiding this comment

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

I've fixed it,thanks

@home-assistant home-assistant bot marked this pull request as draft March 12, 2025 15:23
@home-assistant
Copy link

Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍

Learn more about our pull request process.

@w-xtao w-xtao marked this pull request as ready for review March 13, 2025 05:53
@home-assistant home-assistant bot requested a review from abmantis March 13, 2025 05:53
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 (3)
source/_integrations/dreo.markdown (3)

13-16: Introduction Consistency
The introduction on line 13 states that the integration enables you to control "smart switches" but later sections and the header clearly focus on fans. To ensure consistency, consider updating this text to refer to "smart fans" or "Dreo products" throughout the document.


55-55: Extra Blank Line Detected
Static analysis indicates there are multiple consecutive blank lines at line 55. Please remove the extra blank line to adhere to the markdown linting guidelines.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

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

(MD012, no-multiple-blanks)


112-112: Trailing Newline
To meet markdown formatting standards, please ensure that the file ends with a single newline character.

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between a5260d9 and 598337b.

📒 Files selected for processing (1)
  • source/_integrations/dreo.markdown (1 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
source/_integrations/dreo.markdown

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

(MD012, no-multiple-blanks)

🔇 Additional comments (7)
source/_integrations/dreo.markdown (7)

1-11: YAML Metadata Section
The YAML header is well-structured and includes all the required fields (title, description, ha_category, ha_release, ha_domain, ha_platforms, ha_integration_type). Make sure that as the integration evolves, fields such as ha_category remain aligned with its actual scope.


17-20: Supported Platform Clarity
The section listing supported platforms (lines 17–20) correctly indicates support for the fan platform. If future updates introduce additional platforms, this section should be revisited for accuracy.


56-66: Exposed Attributes Table Review
The table detailing the exposed attributes for the Dreo Tower Fan (lines 56–66) is clear and informative. Ensure the attribute definitions and examples remain synchronized with the integration’s actual implementation.


68-80: Troubleshooting – Device Discovery
The "Troubleshooting" section covering device discovery (lines 68–80) provides clear, actionable steps for the user. This content is detailed enough to help diagnose common connectivity issues.


81-89: Troubleshooting – Credential Issues
The procedural steps provided for handling invalid or expired Dreo App credentials (lines 81–89) are thorough and user-friendly. No changes required.


90-98: Troubleshooting – Device Unresponsiveness
The instructions for when a device becomes unresponsive (lines 90–98) are comprehensive. They clearly guide the user through power cycling, checking connections, and resetting.


99-112: Firmware Update Scenarios
The "Firmware update scenarios" section (lines 99–112) is very detailed and offers step-by-step guidance for updating and troubleshooting firmware updates. This is a strong, user-oriented section.

ha_integration_type: integration
---

The **Dreo** {% term integration %} enables you to control smart products connected to the [Dreo App](https://m.dreo.com/en).
Copy link
Member

Choose a reason for hiding this comment

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

should we also add a link to https://www.dreo.com/ ?

#### General Features

- **Sleep Mode**: All models can adjust the fan speed smoothly in the "sleep" mode. However, some models (such as DR-HTF001S) perform better in terms of adjustment smoothness, providing a more stable and quiet environment for sleeping.
- **Wide-Angle Oscillation**: Fans are typically equipped with a wide oscillation function, which ensures more even air circulation—especially in larger spaces.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
- **Wide-Angle Oscillation**: Fans are typically equipped with a wide oscillation function, which ensures more even air circulationespecially in larger spaces.
- **Wide-Angle Oscillation**: Fans are typically equipped with a wide oscillation function, which ensures more even air circulationespecially in larger spaces.

- **Sleep Mode**: All models can adjust the fan speed smoothly in the "sleep" mode. However, some models (such as DR-HTF001S) perform better in terms of adjustment smoothness, providing a more stable and quiet environment for sleeping.
- **Wide-Angle Oscillation**: Fans are typically equipped with a wide oscillation function, which ensures more even air circulation—especially in larger spaces.
- **Intelligent Auto Mode**: The "auto" mode of each model can adjust the fan speed based on temperature and humidity. For example, it provides a more precise and personalized comfort experience.
- **Child Lock Function**: Many fans include a child lock that helps prevent accidental setting changes and enhances household safety.
Copy link
Member

Choose a reason for hiding this comment

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

child lock is not implemented

Copy link
Author

Choose a reason for hiding this comment

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

@abmantis You're absolutely right. Thank you for pointing this out. I've removed the Child Lock Function from the features list since it's not implemented in the integration.


#### General Features

- **Sleep Mode**: All models can adjust the fan speed smoothly in the "sleep" mode. However, some models (such as DR-HTF001S) perform better in terms of adjustment smoothness, providing a more stable and quiet environment for sleeping.
Copy link
Member

Choose a reason for hiding this comment

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

is this part of preset_modes?

Copy link
Author

Choose a reason for hiding this comment

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

@abmantis Yes, sleep mode is implemented as part of the preset_modes functionality. In the integration, users can select 'sleep' as one of the preset modes for the fan. I've updated the documentation description to make this clearer by explicitly stating that it's a "sleep" preset mode rather than just a "sleep" mode.

Copy link
Author

Choose a reason for hiding this comment

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

@abmantis I've updated the documentation according to your suggestion, placing the "## Removing the integration" heading before the include statement. Thank you for your helpful feedback to improve the documentation structure.

- **Intelligent Auto Mode**: The "auto" mode of each model can adjust the fan speed based on temperature and humidity. For example, it provides a more precise and personalized comfort experience.
- **Child Lock Function**: Many fans include a child lock that helps prevent accidental setting changes and enhances household safety.
- **Fast Speed Adjustment Response**: Most fans offer a rapid speed-adjustment response time, enabling you to swiftly alter the fan speed according to your requirements.
- **Multi-Voice Assistant Integration**: Many models support integration with a wider range of voice assistants, which facilitates a wider range of hands-free operations.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
- **Multi-Voice Assistant Integration**: Many models support integration with a wider range of voice assistants, which facilitates a wider range of hands-free operations.

this is not specific to this integration

Copy link
Author

Choose a reason for hiding this comment

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

@abmantis I've removed the Multi-Voice Assistant Integration line from the features list as suggested. This change helps ensure the documentation accurately reflects the functionality available in the Home Assistant integration for Dreo devices.

Comment on lines 72 to 73
- **Home Assistant Network Issues**: Make sure that your Home Assistant instance has network access. You can test this by trying to access other online services from within Home Assistant (for example, checking the weather integration if it's set up). If there are network problems, troubleshoot your Home Assistant's network connection, which may involve checking your router settings, Wi-Fi passwords, or Ethernet connections.
- **Permissions**: Double-check that you've granted all the necessary permissions during the integration setup process. Incorrect permissions can prevent Home Assistant from discovering your Dreo devices.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
- **Home Assistant Network Issues**: Make sure that your Home Assistant instance has network access. You can test this by trying to access other online services from within Home Assistant (for example, checking the weather integration if it's set up). If there are network problems, troubleshoot your Home Assistant's network connection, which may involve checking your router settings, Wi-Fi passwords, or Ethernet connections.
- **Permissions**: Double-check that you've granted all the necessary permissions during the integration setup process. Incorrect permissions can prevent Home Assistant from discovering your Dreo devices.

these are not specific to the integration

Copy link
Author

Choose a reason for hiding this comment

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

@abmantis I've removed the "Home Assistant Network Issues" and "Permissions" troubleshooting points as they're not specific to the Dreo integration but rather general issues applicable to most integrations.


### Inability to control devices

- **Device State Sync**: Sometimes, the device state may not sync correctly between the Dreo App and Home Assistant. Try toggling the device on/off, changing the mode, or adjusting the speed from within the Dreo App, and then refreshing the device page in Home Assistant to see if the state updates.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
- **Device State Sync**: Sometimes, the device state may not sync correctly between the Dreo App and Home Assistant. Try toggling the device on/off, changing the mode, or adjusting the speed from within the Dreo App, and then refreshing the device page in Home Assistant to see if the state updates.
- **Device State Sync**: Sometimes, the device state may not sync correctly between the Dreo App and Home Assistant. Try toggling the device on/off, changing the mode, or adjusting the speed from within the Dreo App to see if the state updates.

HA updates without the need to refresh the page

Copy link
Author

Choose a reason for hiding this comment

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

@abmantis I've updated the Device State Sync troubleshooting text as suggested, removing the part about refreshing the device page in Home Assistant. This simplifies the instructions and focuses on actions in the Dreo App that might help resolve sync issues.

### Inability to control devices

- **Device State Sync**: Sometimes, the device state may not sync correctly between the Dreo App and Home Assistant. Try toggling the device on/off, changing the mode, or adjusting the speed from within the Dreo App, and then refreshing the device page in Home Assistant to see if the state updates.
- **App Version Mismatch**: Ensure that both the Dreo App and Home Assistant are running up-to-date versions. An outdated version of either software could lead to compatibility issues and control problems. Update the Dreo App from the official app store for your device, and check for Home Assistant updates in the Home Assistant UI's update section.
Copy link
Member

Choose a reason for hiding this comment

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

since HA connects to the backend and not the app, how does the app version impact HA?

Copy link
Author

Choose a reason for hiding this comment

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

@abmantis I've made the requested change. I kept the App Version Mismatch section but removed the reference to Home Assistant updates. The focus is now only on keeping the Dreo App up-to-date to avoid compatibility issues and control problems.


1. **Power cycle the device**: Turn off the device using its power switch or unplug it from the power source. Wait for about 10–15 seconds and then turn it back on or plug it back in.
2. **Check the Wi-Fi connection**: Ensure that the device is connected to a stable Wi-Fi network. You can try moving the device closer to the router to improve the signal strength.
3. **Restart the Dreo App and Home Assistant**: Close the Dreo App completely on your mobile device and restart it. Also, restart your Home Assistant instance. Then try to control the device again.
Copy link
Member

Choose a reason for hiding this comment

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

again, HA connects to the backend, right? why would restarting the app impact anything?
also, why restart HA? that shouldn't be required.

Copy link
Author

Choose a reason for hiding this comment

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

@abmantis Your are right,I've removed the step about restarting the Dreo App and Home Assistant from the troubleshooting section. Since Home Assistant connects directly to the Dreo backend (not the app), restarting the app wouldn't impact functionality. Similarly, restarting Home Assistant shouldn't be required to resolve device connectivity issues. The focus is now on addressing the actual device connection by power cycling, checking Wi-Fi, and if necessary, resetting the device.

Comment on lines 98 to 110
## Firmware update scenarios

### Updating the device firmware

1. **Check for updates in the Dreo App**: Open the Dreo App and navigate to the device management section. Select the device you want to update. If there is a firmware update available, the app will prompt you.
2. **Start the update**: Follow the on-screen instructions in the Dreo App to start the firmware update process. Make sure the device is connected to a stable power source and Wi-Fi network during the update.
3. **Wait for the update to complete**: The update process may take several minutes. Do not turn off the device or interrupt the update during this time.
4. **Verify the update**: Once the update is complete, check if the device's features are working as expected. You can also check the device information in the Dreo App to confirm the new firmware version.

### Issues during firmware update

- **Update fails**: If the firmware update fails, check your network connection. Try restarting the device, the Dreo App, and your Wi-Fi router. Then attempt the update again.
- **Device becomes unresponsive after update**: If the device becomes unresponsive after the firmware update, perform a power cycle on the device. If the problem persists, reset the device to its factory settings and re-add it to the Dreo App and Home Assistant.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
## Firmware update scenarios
### Updating the device firmware
1. **Check for updates in the Dreo App**: Open the Dreo App and navigate to the device management section. Select the device you want to update. If there is a firmware update available, the app will prompt you.
2. **Start the update**: Follow the on-screen instructions in the Dreo App to start the firmware update process. Make sure the device is connected to a stable power source and Wi-Fi network during the update.
3. **Wait for the update to complete**: The update process may take several minutes. Do not turn off the device or interrupt the update during this time.
4. **Verify the update**: Once the update is complete, check if the device's features are working as expected. You can also check the device information in the Dreo App to confirm the new firmware version.
### Issues during firmware update
- **Update fails**: If the firmware update fails, check your network connection. Try restarting the device, the Dreo App, and your Wi-Fi router. Then attempt the update again.
- **Device becomes unresponsive after update**: If the device becomes unresponsive after the firmware update, perform a power cycle on the device. If the problem persists, reset the device to its factory settings and re-add it to the Dreo App and Home Assistant.

I am not sure if these should be here, since the update process is not done trough HA

Copy link
Author

Choose a reason for hiding this comment

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

@abmantis Our intention with adding the firmware update section was to guide users on how to update device firmware and troubleshoot issues that might arise during updates. Based on your suggestion that this content may not align with Home Assistant documentation standards, I've removed the entire firmware update section. This ensures the documentation remains focused on functionality and operations directly relevant to the Home Assistant integration.

@home-assistant home-assistant bot marked this pull request as draft April 16, 2025 16:09
@w-xtao w-xtao marked this pull request as ready for review April 20, 2025 13:53
@home-assistant home-assistant bot requested a review from abmantis April 20, 2025 13:53
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/dreo.markdown (6)

2-3: Refine the description for clarity and focus
The description: field could be tightened to match Home Assistant’s style, for example:

description: Instructions on how to set up Dreo fans in Home Assistant.

This emphasizes the integration’s function and uses plural “fans” to match the supported devices.


17-20: Add a "Supported platforms" header
Rather than a plain list, use a dedicated header for consistency with other integration docs:

## Supported platforms

- **fan**

21-41: Streamline the "Supported functionality" section
This section currently dives deep into product feature specifics (model ranges, oscillation, preset modes). Per the integration-quality guidelines, focus on what the integration provides in Home Assistant. For example, shorten to:

  • Turn on/off
  • Set fan speed
  • Toggle oscillation
  • Select preset modes
    And move any device‑model details to an advanced or developer reference page.

42-48: Correct the "Prerequisite" heading
Standardize the heading to plural for consistency:

-## Prerequisite
+## Prerequisites

49-52: Consistent terminology for removal section
Align with other integrations by renaming this section:

-## Removing the integration
+## Remove the integration

79-80: Ensure file ends with a single newline
Add a trailing newline at the end of the file to satisfy Markdown lint rules (MD047).

📜 Review details

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

📥 Commits

Reviewing files that changed from the base of the PR and between e3d24d7 and eb69b8f.

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

1-11: Review frontmatter for release and indexing parameters
The ha_release: 2024.12 field should be confirmed against the core PR’s targeted release to avoid a mismatch once that PR merges. Additionally, consider adding sidebar_label and sidebar_position metadata to ensure this page is correctly placed in the documentation sidebar.

Comment on lines +13 to +14
The **Dreo** {% term integration %} enables you to control smart products connected to the [Dreo App](https://m.dreo.com/en) from [Dreo](https://www.dreo.com/).

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

Rephrase the introduction for accuracy
The current sentence:

The Dreo {% term integration %} enables you to control smart products connected to the Dreo App from Dreo.

is confusing. Consider:

The **Dreo** {% term integration %} enables you to control smart fans registered in the Dreo App directly from Home Assistant.

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

Successfully merging this pull request may close these issues.

3 participants