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 fan #117789

Draft
wants to merge 1 commit into
base: dev
Choose a base branch
from
Draft

Add dreo integration fan #117789

wants to merge 1 commit into from

Conversation

dreo-team
Copy link

@dreo-team dreo-team commented May 20, 2024

Breaking change

Added dreo integration fan

Proposed change

Type of change

  • Dependency upgrade
  • Bugfix (non-breaking change which fixes an issue)
  • New integration (thank you!)
  • New feature (which adds functionality to an existing integration)
  • Deprecation (breaking change to happen in the future)
  • Breaking change (fix/feature causing existing functionality to break)
  • Code quality improvements to existing code or addition of tests

Additional information

  • This PR fixes or closes issue: fixes #
  • This PR is related to issue:
  • Link to documentation pull request:

Checklist

  • The code change is tested and works locally.
  • Local tests pass. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist
  • I have followed the perfect PR recommendations
  • The code has been formatted using Ruff (ruff format homeassistant tests)
  • Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

Link to documentation PR: home-assistant/home-assistant.io#32869

If the code communicates with devices, web services, or third-party tools:

  • The manifest file has all fields filled out correctly.
    Updated and included derived files by running: python3 -m script.hassfest.
  • New or updated dependencies have been added to requirements_all.txt.
    Updated by running python3 -m script.gen_requirements_all.
  • For the updated dependencies - a link to the changelog, or at minimum a diff between library versions is added to the PR description.
  • Untested files have been added to .coveragerc.

To help with the load of incoming pull requests:

@jpbede jpbede changed the title Added dreo integration fan Add dreo integration fan May 20, 2024
Copy link
Member

@frenck frenck left a comment

Choose a reason for hiding this comment

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

The repository seems to be empty:

https://github.com/dreo-team/hscloud

Could you take a look?

../Frenck

@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.

@home-assistant home-assistant bot marked this pull request as draft May 20, 2024 10:46
@dreo-team
Copy link
Author

Modify PR document link

@dreo-team
Copy link
Author

repository: https://github.com/dreo-team/hscloud, has been pushed

@dreo-team dreo-team requested a review from frenck May 22, 2024 02:51
@dreo-team

This comment was marked as duplicate.

@dreo-team

This comment was marked as duplicate.

@dreo-team
Copy link
Author

Hey home-assistant!
Is it convenient to speed up the review process?
Thanks,
The Dreo Team

@frenck
Copy link
Member

frenck commented May 24, 2024

Is it convenient to speed up the review process?

For more information about our Pull Request process, please see: https://developers.home-assistant.io/docs/review-process

Thanks

../Frenck

@dreo-team

This comment has been minimized.

@frenck
Copy link
Member

frenck commented May 30, 2024

@dreo-team please dit not ask for review, for more information about the review process check the page I linked above.

Thanks!

Copy link
Member

@frenck frenck left a comment

Choose a reason for hiding this comment

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

Some initial comment to get the review processes going. I've left some quick picks and some larger comments.

Additionally:

  • The translation string (strings.json) is missing.
  • We require integrations to provide tests for config flows, with a 100% test coverage. Please add tests.

@@ -1733,6 +1733,7 @@ omit =
homeassistant/components/zwave_me/sensor.py
homeassistant/components/zwave_me/siren.py
homeassistant/components/zwave_me/switch.py
homeassistant/components/dreo/fan.py
Copy link
Member

Choose a reason for hiding this comment

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

Please keep this file alphabetically sorted

from hscloud.hscloud import HsCloud

_LOGGER = logging.getLogger(__name__)
_LOGGER.setLevel(logging.INFO)
Copy link
Member

Choose a reason for hiding this comment

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

This shouldn't be controlled by the integration.

Suggested change
_LOGGER.setLevel(logging.INFO)

Comment on lines +19 to +20
login = await hass.async_add_executor_job(manager.login)
if not login:
Copy link
Member

Choose a reason for hiding this comment

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

login seems to be unused otherwise.

Suggested change
login = await hass.async_add_executor_job(manager.login)
if not login:
if not await hass.async_add_executor_job(manager.login):

manager = HsCloud(username, password)
login = await hass.async_add_executor_job(manager.login)
if not login:
_LOGGER.error("Unable to login to the Dreo server")
Copy link
Member

Choose a reason for hiding this comment

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

  • Should this raise an exception instead?
  • This should ideally differentiate between an network/connection error and an authentication error (username/password doesn't match). Different exceptions can be raised for those cases.

Comment on lines +24 to +35
platforms = []
fan_devices = []
devices = await hass.async_add_executor_job(manager.get_devices)
for device in devices:
_platforms = PLATFORMS_CONFIG.get(device.get("model"))
for platform in _platforms:
if platform == FAN:
fan_devices.append(device)

platforms.extend(_platforms)

platforms = list(set(platforms))
Copy link
Member

Choose a reason for hiding this comment

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

Shouldn't we just set up all platforms instead? And let the platform decide if it should add entities for a given device?

Comment on lines +59 to +62
_LOGGER.error(mask_error)
raise ValueError(
f"{exc}"
)
Copy link
Member

Choose a reason for hiding this comment

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

These should raise an HomeAssistantError instead.

from typing import Any

_LOGGER = logging.getLogger(__name__)
_LOGGER.setLevel(logging.INFO)
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
_LOGGER.setLevel(logging.INFO)

Comment on lines +8 to +11
"ssdp": [],
"zeroconf": [],
"homekit": {},
"dependencies": [],
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
"ssdp": [],
"zeroconf": [],
"homekit": {},
"dependencies": [],

{
"domain": "dreo",
"name": "Dreo",
"version": "1.0.0",
Copy link
Member

Choose a reason for hiding this comment

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

Versions are not used by built-in integrations.

Suggested change
"version": "1.0.0",

"homekit": {},
"dependencies": [],
"codeowners": [
"@kane"
Copy link
Member

Choose a reason for hiding this comment

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

Who is kane?

@home-assistant home-assistant bot marked this pull request as draft May 30, 2024 07:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants