Remove Deconz entity descriptions required fields mixins (#104009)
This commit is contained in:
parent
b400b33b0d
commit
2c003d8c10
4 changed files with 17 additions and 42 deletions
|
@ -65,24 +65,15 @@ T = TypeVar(
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass(kw_only=True)
|
||||||
class DeconzBinarySensorDescriptionMixin(Generic[T]):
|
class DeconzBinarySensorDescription(Generic[T], BinarySensorEntityDescription):
|
||||||
"""Required values when describing secondary sensor attributes."""
|
|
||||||
|
|
||||||
update_key: str
|
|
||||||
value_fn: Callable[[T], bool | None]
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
|
||||||
class DeconzBinarySensorDescription(
|
|
||||||
BinarySensorEntityDescription,
|
|
||||||
DeconzBinarySensorDescriptionMixin[T],
|
|
||||||
):
|
|
||||||
"""Class describing deCONZ binary sensor entities."""
|
"""Class describing deCONZ binary sensor entities."""
|
||||||
|
|
||||||
instance_check: type[T] | None = None
|
instance_check: type[T] | None = None
|
||||||
name_suffix: str = ""
|
name_suffix: str = ""
|
||||||
old_unique_id_suffix: str = ""
|
old_unique_id_suffix: str = ""
|
||||||
|
update_key: str
|
||||||
|
value_fn: Callable[[T], bool | None]
|
||||||
|
|
||||||
|
|
||||||
ENTITY_DESCRIPTIONS: tuple[DeconzBinarySensorDescription, ...] = (
|
ENTITY_DESCRIPTIONS: tuple[DeconzBinarySensorDescription, ...] = (
|
||||||
|
|
|
@ -23,18 +23,13 @@ from .deconz_device import DeconzDevice, DeconzSceneMixin
|
||||||
from .gateway import DeconzGateway, get_gateway_from_config_entry
|
from .gateway import DeconzGateway, get_gateway_from_config_entry
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass(kw_only=True)
|
||||||
class DeconzButtonDescriptionMixin:
|
class DeconzButtonDescription(ButtonEntityDescription):
|
||||||
"""Required values when describing deCONZ button entities."""
|
|
||||||
|
|
||||||
suffix: str
|
|
||||||
button_fn: str
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
|
||||||
class DeconzButtonDescription(ButtonEntityDescription, DeconzButtonDescriptionMixin):
|
|
||||||
"""Class describing deCONZ button entities."""
|
"""Class describing deCONZ button entities."""
|
||||||
|
|
||||||
|
button_fn: str
|
||||||
|
suffix: str
|
||||||
|
|
||||||
|
|
||||||
ENTITY_DESCRIPTIONS = {
|
ENTITY_DESCRIPTIONS = {
|
||||||
PydeconzScene: [
|
PydeconzScene: [
|
||||||
|
|
|
@ -31,9 +31,9 @@ from .util import serial_from_unique_id
|
||||||
T = TypeVar("T", Presence, PydeconzSensorBase)
|
T = TypeVar("T", Presence, PydeconzSensorBase)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass(kw_only=True)
|
||||||
class DeconzNumberDescriptionMixin(Generic[T]):
|
class DeconzNumberDescription(Generic[T], NumberEntityDescription):
|
||||||
"""Required values when describing deCONZ number entities."""
|
"""Class describing deCONZ number entities."""
|
||||||
|
|
||||||
instance_check: type[T]
|
instance_check: type[T]
|
||||||
name_suffix: str
|
name_suffix: str
|
||||||
|
@ -42,11 +42,6 @@ class DeconzNumberDescriptionMixin(Generic[T]):
|
||||||
value_fn: Callable[[T], float | None]
|
value_fn: Callable[[T], float | None]
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
|
||||||
class DeconzNumberDescription(NumberEntityDescription, DeconzNumberDescriptionMixin[T]):
|
|
||||||
"""Class describing deCONZ number entities."""
|
|
||||||
|
|
||||||
|
|
||||||
ENTITY_DESCRIPTIONS: tuple[DeconzNumberDescription, ...] = (
|
ENTITY_DESCRIPTIONS: tuple[DeconzNumberDescription, ...] = (
|
||||||
DeconzNumberDescription[Presence](
|
DeconzNumberDescription[Presence](
|
||||||
key="delay",
|
key="delay",
|
||||||
|
|
|
@ -91,22 +91,16 @@ T = TypeVar(
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass(kw_only=True)
|
||||||
class DeconzSensorDescriptionMixin(Generic[T]):
|
class DeconzSensorDescription(Generic[T], SensorEntityDescription):
|
||||||
"""Required values when describing secondary sensor attributes."""
|
|
||||||
|
|
||||||
supported_fn: Callable[[T], bool]
|
|
||||||
update_key: str
|
|
||||||
value_fn: Callable[[T], datetime | StateType]
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
|
||||||
class DeconzSensorDescription(SensorEntityDescription, DeconzSensorDescriptionMixin[T]):
|
|
||||||
"""Class describing deCONZ binary sensor entities."""
|
"""Class describing deCONZ binary sensor entities."""
|
||||||
|
|
||||||
instance_check: type[T] | None = None
|
instance_check: type[T] | None = None
|
||||||
name_suffix: str = ""
|
name_suffix: str = ""
|
||||||
old_unique_id_suffix: str = ""
|
old_unique_id_suffix: str = ""
|
||||||
|
supported_fn: Callable[[T], bool]
|
||||||
|
update_key: str
|
||||||
|
value_fn: Callable[[T], datetime | StateType]
|
||||||
|
|
||||||
|
|
||||||
ENTITY_DESCRIPTIONS: tuple[DeconzSensorDescription, ...] = (
|
ENTITY_DESCRIPTIONS: tuple[DeconzSensorDescription, ...] = (
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue