1 """A risco entity base class."""
3 from __future__
import annotations
7 from pyrisco
import RiscoCloud
8 from pyrisco.cloud.zone
import Zone
as CloudZone
9 from pyrisco.local.zone
import Zone
as LocalZone
16 from .
import zone_update_signal
17 from .const
import DOMAIN
18 from .coordinator
import RiscoDataUpdateCoordinator
22 """Return unique id for a cloud zone."""
23 return f
"{risco.site_uuid}_zone_{zone_id}"
27 """Risco cloud entity base class."""
30 self, *, coordinator: RiscoDataUpdateCoordinator, **kwargs: Any
32 """Init the entity."""
33 super().
__init__(coordinator=coordinator, **kwargs)
36 raise NotImplementedError
40 self.async_write_ha_state()
44 """Return the Risco API object."""
45 return self.coordinator.risco
49 """Risco cloud zone entity base class."""
51 _attr_has_entity_name =
True
56 coordinator: RiscoDataUpdateCoordinator,
63 super().
__init__(coordinator=coordinator, **kwargs)
69 identifiers={(DOMAIN, device_unique_id)},
71 name=self.
_zone_zone.name,
76 self.
_zone_zone = self.coordinator.data.zones[self.
_zone_id_zone_id]
80 """Risco local zone entity base class."""
82 _attr_should_poll =
False
83 _attr_has_entity_name =
True
98 device_unique_id = f
"{system_id}_zone_{zone_id}_local"
101 identifiers={(DOMAIN, device_unique_id)},
102 manufacturer=
"Risco",
108 """Subscribe to updates."""
None __init__(self, *RiscoDataUpdateCoordinator coordinator, **Any kwargs)
None _handle_coordinator_update(self)
None _get_data_from_coordinator(self)
_attr_extra_state_attributes
None __init__(self, *RiscoDataUpdateCoordinator coordinator, str suffix, int zone_id, CloudZone zone, **Any kwargs)
None _get_data_from_coordinator(self)
_attr_extra_state_attributes
None async_added_to_hass(self)
None __init__(self, *str system_id, str suffix, int zone_id, LocalZone zone, **Any kwargs)
None async_write_ha_state(self)
None async_on_remove(self, CALLBACK_TYPE func)
str zone_unique_id(RiscoCloud risco, int zone_id)
str zone_update_signal(int zone_id)
Callable[[], None] async_dispatcher_connect(HomeAssistant hass, str signal, Callable[..., Any] target)