Teach CoordinatorEntity to cooperate with its siblings
This commit is contained in:
parent
07ceafed62
commit
a76b1ef5b5
2 changed files with 21 additions and 5 deletions
|
@ -155,8 +155,11 @@ class ScrapeSensor(CoordinatorEntity[ScrapeCoordinator], ManualTriggerSensorEnti
|
|||
yaml: bool,
|
||||
) -> None:
|
||||
"""Initialize a web scrape sensor."""
|
||||
CoordinatorEntity.__init__(self, coordinator)
|
||||
ManualTriggerSensorEntity.__init__(self, hass, trigger_entity_config)
|
||||
super().__init__(
|
||||
config=trigger_entity_config,
|
||||
coordinator=coordinator,
|
||||
hass=hass,
|
||||
)
|
||||
self._select = select
|
||||
self._attr = attr
|
||||
self._index = index
|
||||
|
|
|
@ -7,6 +7,7 @@ import asyncio
|
|||
from collections.abc import Awaitable, Callable, Coroutine, Generator
|
||||
from datetime import datetime, timedelta
|
||||
from functools import cached_property
|
||||
from inspect import Parameter, signature
|
||||
import logging
|
||||
from random import randint
|
||||
from time import monotonic
|
||||
|
@ -466,9 +467,21 @@ class BaseCoordinatorEntity[
|
|||
"""Base class for all Coordinator entities."""
|
||||
|
||||
def __init__(
|
||||
self, coordinator: _BaseDataUpdateCoordinatorT, context: Any = None
|
||||
self,
|
||||
coordinator: _BaseDataUpdateCoordinatorT,
|
||||
context: Any = None,
|
||||
**kwargs: Any,
|
||||
) -> None:
|
||||
"""Create the entity with a DataUpdateCoordinator."""
|
||||
call_super = True
|
||||
if not kwargs:
|
||||
super_parameters = signature(super().__init__).parameters
|
||||
for param in super_parameters.values():
|
||||
if param.default == Parameter.empty:
|
||||
call_super = False
|
||||
break
|
||||
if call_super:
|
||||
super().__init__(**kwargs)
|
||||
self.coordinator = coordinator
|
||||
self.coordinator_context = context
|
||||
|
||||
|
@ -503,7 +516,7 @@ class CoordinatorEntity(BaseCoordinatorEntity[_DataUpdateCoordinatorT]):
|
|||
"""A class for entities using DataUpdateCoordinator."""
|
||||
|
||||
def __init__(
|
||||
self, coordinator: _DataUpdateCoordinatorT, context: Any = None
|
||||
self, coordinator: _DataUpdateCoordinatorT, context: Any = None, **kwargs: Any
|
||||
) -> None:
|
||||
"""Create the entity with a DataUpdateCoordinator.
|
||||
|
||||
|
@ -511,7 +524,7 @@ class CoordinatorEntity(BaseCoordinatorEntity[_DataUpdateCoordinatorT]):
|
|||
|
||||
Necessary to bind TypeVar to correct scope.
|
||||
"""
|
||||
super().__init__(coordinator, context)
|
||||
super().__init__(coordinator=coordinator, context=context, **kwargs)
|
||||
|
||||
@property
|
||||
def available(self) -> bool:
|
||||
|
|
Loading…
Add table
Reference in a new issue