1 """Base class for yale_smart_alarm entity."""
3 from yalesmartalarmclient
import YaleLock
10 from .const
import DOMAIN, MANUFACTURER, MODEL
11 from .coordinator
import YaleDataUpdateCoordinator
15 """Base implementation for Yale device."""
17 _attr_has_entity_name =
True
19 def __init__(self, coordinator: YaleDataUpdateCoordinator, data: dict) ->
None:
20 """Initialize an Yale device."""
22 self._attr_unique_id: str = data[
"address"]
23 self._attr_device_info: DeviceInfo =
DeviceInfo(
25 manufacturer=MANUFACTURER,
27 identifiers={(DOMAIN, data[
"address"])},
28 via_device=(DOMAIN, coordinator.entry.data[CONF_USERNAME]),
33 """Base implementation for Yale lock device."""
35 _attr_has_entity_name =
True
37 def __init__(self, coordinator: YaleDataUpdateCoordinator, lock: YaleLock) ->
None:
38 """Initialize an Yale device."""
40 self._attr_unique_id: str = lock.sid()
43 manufacturer=MANUFACTURER,
45 identifiers={(DOMAIN, lock.sid())},
46 via_device=(DOMAIN, coordinator.entry.data[CONF_USERNAME]),
52 """Base implementation for Yale Alarm device."""
54 _attr_has_entity_name =
True
56 def __init__(self, coordinator: YaleDataUpdateCoordinator) ->
None:
57 """Initialize an Yale device."""
59 panel_info = coordinator.data[
"panel_info"]
61 identifiers={(DOMAIN, coordinator.entry.data[CONF_USERNAME])},
62 manufacturer=MANUFACTURER,
64 name=coordinator.entry.data[CONF_NAME],
65 connections={(CONNECTION_NETWORK_MAC, panel_info[
"mac"])},
66 sw_version=panel_info[
"version"],
None __init__(self, YaleDataUpdateCoordinator coordinator)
None __init__(self, YaleDataUpdateCoordinator coordinator, dict data)
None __init__(self, YaleDataUpdateCoordinator coordinator, YaleLock lock)