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

Rework UniFi device tracker to utilizing entity description #81979

Conversation

Kane610
Copy link
Member

@Kane610 Kane610 commented Nov 11, 2022

Breaking change

Proposed change

Migrate sensor platform to utilize entity description much as switch and #81821 and #81930 platforms.
This currently breaks signalling for when config entry options are enabled thus removing those tests, will be readded later on
Once device trackers are migrated and strict typing is achieved I will start merging entity descriptions to one common.

Related PRs

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
  • The code has been formatted using Black (black --fast homeassistant tests)
  • Tests have been added to verify that the new code works.

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

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:

@Kane610 Kane610 force-pushed the unifi-use_entity_description_with_device_trackers branch from e30a70d to dd02187 Compare December 23, 2022 15:33
@elupus
Copy link
Contributor

elupus commented Dec 28, 2022

How is all these function pointers making it better? This change adds about 100 additional lines of code. I feel it would make sense to keep some logic in the entity classes and keep mostly constants in the entity descriptions.

@Kane610
Copy link
Member Author

Kane610 commented Dec 28, 2022

How is all these function pointers making it better? This change adds about 100 additional lines of code. I feel it would make sense to keep some logic in the entity classes and keep mostly constants in the entity descriptions.

Yes currently it's not better. This is just a small step on the way. But the client tracker should switch as well. After that it can be consolidated to using the entity.py. So once the small steps are completed it will be much less code overall.

Copy link
Contributor

@elupus elupus left a comment

Choose a reason for hiding this comment

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

I think this is okey since you are maintainer of this integration. But so far i fail to see how it's going to get simpler or more understandable with these changes.

def unique_id(self) -> str:
"""Return a unique ID."""
return self._attr_unique_id

Copy link
Contributor

Choose a reason for hiding this comment

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

This is default for an Entity, so not needed?

Copy link
Member Author

Choose a reason for hiding this comment

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

Device tracker is special :)

Copy link
Member Author

Choose a reason for hiding this comment

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

def unique_id(self) -> str | None:

It overloads the normal unique_id method

@Kane610
Copy link
Member Author

Kane610 commented Dec 28, 2022

I think this is okey since you are maintainer of this integration. But so far i fail to see how it's going to get simpler or more understandable with these changes.

I hope to make it more consolidated over all, in the case of device tracker it has always been a bit cumbersome

@Kane610 Kane610 merged commit de5c7b0 into home-assistant:dev Dec 28, 2022
@Kane610 Kane610 deleted the unifi-use_entity_description_with_device_trackers branch December 28, 2022 21:29
@github-actions github-actions bot locked and limited conversation to collaborators Dec 29, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants