1 """The Elexa Guardian integration."""
3 from __future__
import annotations
5 from dataclasses
import dataclass
12 from .const
import API_SYSTEM_DIAGNOSTICS, CONF_UID, DOMAIN
13 from .coordinator
import GuardianDataUpdateCoordinator
17 """Define a base Guardian entity."""
19 _attr_has_entity_name =
True
22 self, coordinator: GuardianDataUpdateCoordinator, description: EntityDescription
31 """Define a Guardian paired sensor entity."""
36 coordinator: GuardianDataUpdateCoordinator,
37 description: EntityDescription,
40 super().
__init__(coordinator, description)
42 paired_sensor_uid = coordinator.data[
"uid"]
44 identifiers={(DOMAIN, paired_sensor_uid)},
46 model=coordinator.data[
"codename"],
47 name=f
"Guardian paired sensor {paired_sensor_uid}",
48 via_device=(DOMAIN, entry.data[CONF_UID]),
53 @dataclass(frozen=True, kw_only=True)
55 """Describe a Guardian valve controller entity."""
61 """Define a Guardian valve controller entity."""
66 coordinators: dict[str, GuardianDataUpdateCoordinator],
67 description: ValveControllerEntityDescription,
70 super().
__init__(coordinators[description.api_category], description)
75 identifiers={(DOMAIN, entry.data[CONF_UID])},
78 name=f
"Guardian valve controller {entry.data[CONF_UID]}",
None __init__(self, GuardianDataUpdateCoordinator coordinator, EntityDescription description)
None __init__(self, ConfigEntry entry, GuardianDataUpdateCoordinator coordinator, EntityDescription description)
None __init__(self, ConfigEntry entry, dict[str, GuardianDataUpdateCoordinator] coordinators, ValveControllerEntityDescription description)