Entity Component to no longer generate automatic groups (#23789)
This commit is contained in:
parent
13e6479b6e
commit
9aa02e35a7
41 changed files with 149 additions and 377 deletions
|
@ -19,7 +19,6 @@ from homeassistant.helpers.config_validation import make_entity_service_schema
|
|||
from homeassistant.helpers.service import async_extract_entity_ids
|
||||
from homeassistant.loader import async_get_integration, bind_hass
|
||||
from homeassistant.setup import async_prepare_setup_platform
|
||||
from homeassistant.util import slugify
|
||||
|
||||
from .entity_platform import EntityPlatform
|
||||
|
||||
|
@ -59,19 +58,15 @@ class EntityComponent:
|
|||
- Process the configuration and set up a platform based component.
|
||||
- Manage the platforms and their entities.
|
||||
- Help extract the entities from a service call.
|
||||
- Maintain a group that tracks all platform entities.
|
||||
- Listen for discovery events for platforms related to the domain.
|
||||
"""
|
||||
|
||||
def __init__(
|
||||
self, logger, domain, hass, scan_interval=DEFAULT_SCAN_INTERVAL, group_name=None
|
||||
):
|
||||
def __init__(self, logger, domain, hass, scan_interval=DEFAULT_SCAN_INTERVAL):
|
||||
"""Initialize an entity component."""
|
||||
self.logger = logger
|
||||
self.hass = hass
|
||||
self.domain = domain
|
||||
self.scan_interval = scan_interval
|
||||
self.group_name = group_name
|
||||
|
||||
self.config = None
|
||||
|
||||
|
@ -237,35 +232,6 @@ class EntityComponent:
|
|||
|
||||
await self._platforms[key].async_setup(platform_config, discovery_info)
|
||||
|
||||
@callback
|
||||
def _async_update_group(self) -> None:
|
||||
"""Set up and/or update component group.
|
||||
|
||||
This method must be run in the event loop.
|
||||
"""
|
||||
if self.group_name is None:
|
||||
return
|
||||
|
||||
ids = [
|
||||
entity.entity_id
|
||||
for entity in sorted(
|
||||
self.entities, key=lambda entity: entity.name or entity.entity_id
|
||||
)
|
||||
]
|
||||
|
||||
self.hass.async_create_task(
|
||||
self.hass.services.async_call(
|
||||
"group",
|
||||
"set",
|
||||
dict(
|
||||
object_id=slugify(self.group_name),
|
||||
name=self.group_name,
|
||||
visible=False,
|
||||
entities=ids,
|
||||
),
|
||||
)
|
||||
)
|
||||
|
||||
async def _async_reset(self) -> None:
|
||||
"""Remove entities and reset the entity component to initial values.
|
||||
|
||||
|
@ -279,11 +245,6 @@ class EntityComponent:
|
|||
self._platforms = {self.domain: self._platforms[self.domain]}
|
||||
self.config = None
|
||||
|
||||
if self.group_name is not None:
|
||||
await self.hass.services.async_call(
|
||||
"group", "remove", dict(object_id=slugify(self.group_name))
|
||||
)
|
||||
|
||||
async def async_remove_entity(self, entity_id: str) -> None:
|
||||
"""Remove an entity managed by one of the platforms."""
|
||||
for platform in self._platforms.values():
|
||||
|
@ -329,5 +290,4 @@ class EntityComponent:
|
|||
platform=platform,
|
||||
scan_interval=scan_interval,
|
||||
entity_namespace=entity_namespace,
|
||||
async_entities_added_callback=self._async_update_group,
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue