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

Reload config entry when entity enabled in entity registry, remove entity if disabled. #26120

Merged
merged 9 commits into from Aug 23, 2019

Conversation

@balloob
Copy link
Member

commented Aug 21, 2019

Description:

When disabled_by is updated for an entity in the entity registry and it is enabled, reload the integration to activate that entity. Only works with config entries that support unloading (and thus supports reloading).

When disabled_by is set, the entity will now remove itself.

CC @Kane610

Checklist:

  • The code change is tested and works locally.
  • Local tests pass with tox. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the development checklist

If the code does not interact with devices:

  • Tests have been added to verify that the new code works.

@balloob balloob requested a review from home-assistant/core as a code owner Aug 21, 2019

@project-bot project-bot bot added this to Needs review in Dev Aug 21, 2019

homeassistant/config_entries.py Outdated Show resolved Hide resolved
homeassistant/config_entries.py Outdated Show resolved Hide resolved
@andrewsayre

This comment has been minimized.

Copy link
Member

commented Aug 22, 2019

Why do we have to reload the entire config entry when disabled_by of one of the entities changes? Isn't there a less drastic way to toggle the status?

@balloob

This comment has been minimized.

Copy link
Member Author

commented Aug 22, 2019

@andrewsayre when entities get enabled, it means that they were previously disabled and so they were discarded when passed to async_add_entities. I guess we could introduce some callback for integrations to say: Hey, I can re-enable my own entities.

@balloob

This comment has been minimized.

Copy link
Member Author

commented Aug 22, 2019

I have updated this PR to handle the disabling of entities now inside an entity, it will remove itself without triggering a reload.

So now a reload is only triggered if we enable entities.

@balloob balloob changed the title Reload config entry when disabled_by updated in entity registry Reload config entry when entity enabled in entity registry, remove entity if disabled. Aug 22, 2019

Dev automation moved this from Needs review to Reviewer approved Aug 22, 2019

@balloob

This comment has been minimized.

Copy link
Member Author

commented Aug 22, 2019

Let's not merge this until @andrewsayre has a chance to respond to my answers to his concerns about reloading.

balloob added 9 commits Aug 21, 2019

@balloob balloob force-pushed the reload-config-entry-entity-registry-update branch from 2d099ed to 8af8b55 Aug 22, 2019

@andrewsayre

This comment has been minimized.

Copy link
Member

commented Aug 23, 2019

I’m good, maybe in the future we can implement this in a way that doesn’t require setup of the entry again, given there’s often connection logic that we don’t want to have to run through unnecessarily, but for now it’s fine.

@andrewsayre andrewsayre merged commit f704a8e into dev Aug 23, 2019

11 checks passed

CI Build #20190822.60 succeeded
Details
CI (FullCheck Mypy) FullCheck Mypy succeeded
Details
CI (FullCheck Pylint) FullCheck Pylint succeeded
Details
CI (Overview CheckFormat) Overview CheckFormat succeeded
Details
CI (Overview Lint) Overview Lint succeeded
Details
CI (Overview Validate) Overview Validate succeeded
Details
CI (Tests PyTest Python36) Tests PyTest Python36 succeeded
Details
CI (Tests PyTest Python37) Tests PyTest Python37 succeeded
Details
cla-bot Everyone involved has signed the CLA
codecov/patch 100% of diff hit (target 94%)
Details
codecov/project 94% (target 90%)
Details

Dev automation moved this from Reviewer approved to Done Aug 23, 2019

@delete-merged-branch delete-merged-branch bot deleted the reload-config-entry-entity-registry-update branch Aug 23, 2019

@balloob balloob added this to the 0.98 milestone Aug 23, 2019

@lock lock bot locked and limited conversation to collaborators Aug 24, 2019

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
4 participants
You can’t perform that action at this time.