1
0
mirror of https://github.com/home-assistant/core.git synced 2025-12-24 21:06:19 +00:00

Allow disabling entities in the registry (#12360)

This commit is contained in:
Paulus Schoutsen
2018-02-13 04:33:15 -08:00
committed by Pascal Vizeli
parent a4b88fc31b
commit d2cea84254
4 changed files with 64 additions and 6 deletions

View File

@@ -26,6 +26,9 @@ PATH_REGISTRY = 'entity_registry.yaml'
SAVE_DELAY = 10
_LOGGER = logging.getLogger(__name__)
DISABLED_HASS = 'hass'
DISABLED_USER = 'user'
@attr.s(slots=True, frozen=True)
class RegistryEntry:
@@ -35,12 +38,20 @@ class RegistryEntry:
unique_id = attr.ib(type=str)
platform = attr.ib(type=str)
name = attr.ib(type=str, default=None)
disabled_by = attr.ib(
type=str, default=None,
validator=attr.validators.in_((DISABLED_HASS, DISABLED_USER, None)))
domain = attr.ib(type=str, default=None, init=False, repr=False)
def __attrs_post_init__(self):
"""Computed properties."""
object.__setattr__(self, "domain", split_entity_id(self.entity_id)[0])
@property
def disabled(self):
"""Return if entry is disabled."""
return self.disabled_by is not None
class EntityRegistry:
"""Class to hold a registry of entities."""
@@ -116,7 +127,8 @@ class EntityRegistry:
entity_id=entity_id,
unique_id=info['unique_id'],
platform=info['platform'],
name=info.get('name')
name=info.get('name'),
disabled_by=info.get('disabled_by')
)
self.entities = entities