Remove entity description mixin in Starlink (#112943)
This commit is contained in:
parent
e696afabe7
commit
e4b43680e1
5 changed files with 15 additions and 50 deletions
|
@ -32,20 +32,13 @@ async def async_setup_entry(
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass(frozen=True)
|
@dataclass(frozen=True, kw_only=True)
|
||||||
class StarlinkBinarySensorEntityDescriptionMixin:
|
class StarlinkBinarySensorEntityDescription(BinarySensorEntityDescription):
|
||||||
"""Mixin for required keys."""
|
"""Describes a Starlink binary sensor entity."""
|
||||||
|
|
||||||
value_fn: Callable[[StarlinkData], bool | None]
|
value_fn: Callable[[StarlinkData], bool | None]
|
||||||
|
|
||||||
|
|
||||||
@dataclass(frozen=True)
|
|
||||||
class StarlinkBinarySensorEntityDescription(
|
|
||||||
BinarySensorEntityDescription, StarlinkBinarySensorEntityDescriptionMixin
|
|
||||||
):
|
|
||||||
"""Describes a Starlink binary sensor entity."""
|
|
||||||
|
|
||||||
|
|
||||||
class StarlinkBinarySensorEntity(StarlinkEntity, BinarySensorEntity):
|
class StarlinkBinarySensorEntity(StarlinkEntity, BinarySensorEntity):
|
||||||
"""A BinarySensorEntity for Starlink devices. Handles creating unique IDs."""
|
"""A BinarySensorEntity for Starlink devices. Handles creating unique IDs."""
|
||||||
|
|
||||||
|
|
|
@ -31,20 +31,13 @@ async def async_setup_entry(
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass(frozen=True)
|
@dataclass(frozen=True, kw_only=True)
|
||||||
class StarlinkButtonEntityDescriptionMixin:
|
class StarlinkButtonEntityDescription(ButtonEntityDescription):
|
||||||
"""Mixin for required keys."""
|
"""Describes a Starlink button entity."""
|
||||||
|
|
||||||
press_fn: Callable[[StarlinkUpdateCoordinator], Awaitable[None]]
|
press_fn: Callable[[StarlinkUpdateCoordinator], Awaitable[None]]
|
||||||
|
|
||||||
|
|
||||||
@dataclass(frozen=True)
|
|
||||||
class StarlinkButtonEntityDescription(
|
|
||||||
ButtonEntityDescription, StarlinkButtonEntityDescriptionMixin
|
|
||||||
):
|
|
||||||
"""Describes a Starlink button entity."""
|
|
||||||
|
|
||||||
|
|
||||||
class StarlinkButtonEntity(StarlinkEntity, ButtonEntity):
|
class StarlinkButtonEntity(StarlinkEntity, ButtonEntity):
|
||||||
"""A ButtonEntity for Starlink devices. Handles creating unique IDs."""
|
"""A ButtonEntity for Starlink devices. Handles creating unique IDs."""
|
||||||
|
|
||||||
|
|
|
@ -26,21 +26,14 @@ async def async_setup_entry(
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass(frozen=True)
|
@dataclass(frozen=True, kw_only=True)
|
||||||
class StarlinkDeviceTrackerEntityDescriptionMixin:
|
class StarlinkDeviceTrackerEntityDescription(EntityDescription):
|
||||||
"""Describes a Starlink device tracker."""
|
"""Describes a Starlink button entity."""
|
||||||
|
|
||||||
latitude_fn: Callable[[StarlinkData], float]
|
latitude_fn: Callable[[StarlinkData], float]
|
||||||
longitude_fn: Callable[[StarlinkData], float]
|
longitude_fn: Callable[[StarlinkData], float]
|
||||||
|
|
||||||
|
|
||||||
@dataclass(frozen=True)
|
|
||||||
class StarlinkDeviceTrackerEntityDescription(
|
|
||||||
EntityDescription, StarlinkDeviceTrackerEntityDescriptionMixin
|
|
||||||
):
|
|
||||||
"""Describes a Starlink button entity."""
|
|
||||||
|
|
||||||
|
|
||||||
DEVICE_TRACKERS = [
|
DEVICE_TRACKERS = [
|
||||||
StarlinkDeviceTrackerEntityDescription(
|
StarlinkDeviceTrackerEntityDescription(
|
||||||
key="device_location",
|
key="device_location",
|
||||||
|
|
|
@ -41,20 +41,13 @@ async def async_setup_entry(
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass(frozen=True)
|
@dataclass(frozen=True, kw_only=True)
|
||||||
class StarlinkSensorEntityDescriptionMixin:
|
class StarlinkSensorEntityDescription(SensorEntityDescription):
|
||||||
"""Mixin for required keys."""
|
"""Describes a Starlink sensor entity."""
|
||||||
|
|
||||||
value_fn: Callable[[StarlinkData], datetime | StateType]
|
value_fn: Callable[[StarlinkData], datetime | StateType]
|
||||||
|
|
||||||
|
|
||||||
@dataclass(frozen=True)
|
|
||||||
class StarlinkSensorEntityDescription(
|
|
||||||
SensorEntityDescription, StarlinkSensorEntityDescriptionMixin
|
|
||||||
):
|
|
||||||
"""Describes a Starlink sensor entity."""
|
|
||||||
|
|
||||||
|
|
||||||
class StarlinkSensorEntity(StarlinkEntity, SensorEntity):
|
class StarlinkSensorEntity(StarlinkEntity, SensorEntity):
|
||||||
"""A SensorEntity for Starlink devices. Handles creating unique IDs."""
|
"""A SensorEntity for Starlink devices. Handles creating unique IDs."""
|
||||||
|
|
||||||
|
|
|
@ -31,22 +31,15 @@ async def async_setup_entry(
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass(frozen=True)
|
@dataclass(frozen=True, kw_only=True)
|
||||||
class StarlinkSwitchEntityDescriptionMixin:
|
class StarlinkSwitchEntityDescription(SwitchEntityDescription):
|
||||||
"""Mixin for required keys."""
|
"""Describes a Starlink switch entity."""
|
||||||
|
|
||||||
value_fn: Callable[[StarlinkData], bool | None]
|
value_fn: Callable[[StarlinkData], bool | None]
|
||||||
turn_on_fn: Callable[[StarlinkUpdateCoordinator], Awaitable[None]]
|
turn_on_fn: Callable[[StarlinkUpdateCoordinator], Awaitable[None]]
|
||||||
turn_off_fn: Callable[[StarlinkUpdateCoordinator], Awaitable[None]]
|
turn_off_fn: Callable[[StarlinkUpdateCoordinator], Awaitable[None]]
|
||||||
|
|
||||||
|
|
||||||
@dataclass(frozen=True)
|
|
||||||
class StarlinkSwitchEntityDescription(
|
|
||||||
SwitchEntityDescription, StarlinkSwitchEntityDescriptionMixin
|
|
||||||
):
|
|
||||||
"""Describes a Starlink switch entity."""
|
|
||||||
|
|
||||||
|
|
||||||
class StarlinkSwitchEntity(StarlinkEntity, SwitchEntity):
|
class StarlinkSwitchEntity(StarlinkEntity, SwitchEntity):
|
||||||
"""A SwitchEntity for Starlink devices. Handles creating unique IDs."""
|
"""A SwitchEntity for Starlink devices. Handles creating unique IDs."""
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue