1 """Support for Comelit."""
3 from abc
import abstractmethod
4 from datetime
import timedelta
7 from aiocomelit
import (
8 ComeliteSerialBridgeApi,
9 ComelitSerialBridgeObject,
11 ComelitVedoAreaObject,
12 ComelitVedoZoneObject,
15 from aiocomelit.api
import ComelitCommonApi
16 from aiocomelit.const
import BRIDGE, VEDO
24 from .const
import _LOGGER, DOMAIN
28 """Base coordinator for Comelit Devices."""
31 config_entry: ConfigEntry
34 def __init__(self, hass: HomeAssistant, device: str, host: str) ->
None:
35 """Initialize the scanner."""
43 name=f
"{DOMAIN}-{host}-coordinator",
46 device_registry = dr.async_get(self.
hasshass)
47 device_registry.async_get_or_create(
49 identifiers={(DOMAIN, self.
config_entryconfig_entry.entry_id)},
51 name=f
"{device} ({self._host})",
52 manufacturer=
"Comelit",
53 hw_version=self._hw_version,
58 object_class: ComelitVedoZoneObject
59 | ComelitVedoAreaObject
60 | ComelitSerialBridgeObject,
63 """Set platform device info."""
69 f
"{self.config_entry.entry_id}-{object_type}-{object_class.index}",
72 via_device=(DOMAIN, self.
config_entryconfig_entry.entry_id),
73 name=object_class.name,
74 model=f
"{self._device} {object_type}",
75 manufacturer=
"Comelit",
76 hw_version=self._hw_version,
80 """Update device data."""
81 _LOGGER.debug(
"Polling Comelit %s host: %s", self.
_device_device, self.
_host_host)
83 await self.api.login()
85 except (exceptions.CannotConnect, exceptions.CannotRetrieveData)
as err:
87 except exceptions.CannotAuthenticate
as err:
88 raise ConfigEntryAuthFailed
from err
92 """Class method for updating data."""
95 class ComelitSerialBridge(ComelitBaseCoordinator):
96 """Queries Comelit Serial Bridge."""
98 _hw_version =
"20003101"
99 api: ComeliteSerialBridgeApi
101 def __init__(self, hass: HomeAssistant, host: str, port: int, pin: int) ->
None:
102 """Initialize the scanner."""
103 self.
apiapi = ComeliteSerialBridgeApi(host, port, pin)
104 super().
__init__(hass, BRIDGE, host)
107 """Specific method for updating data."""
108 return await self.
apiapi.get_all_devices()
112 """Queries Comelit VEDO system."""
114 _hw_version =
"VEDO IP"
117 def __init__(self, hass: HomeAssistant, host: str, port: int, pin: int) ->
None:
118 """Initialize the scanner."""
119 self.
apiapi = ComelitVedoApi(host, port, pin)
123 """Specific method for updating data."""
124 return await self.
apiapi.get_all_areas_and_zones()
dr.DeviceInfo platform_device_info(self, ComelitVedoZoneObject|ComelitVedoAreaObject|ComelitSerialBridgeObject object_class, str object_type)
dict[str, Any] _async_update_system_data(self)
None __init__(self, HomeAssistant hass, str device, str host)
dict[str, Any] _async_update_data(self)
dict[str, Any] _async_update_system_data(self)
None __init__(self, HomeAssistant hass, str host, int port, int pin)
dict[str, Any] _async_update_system_data(self)
None __init__(self, HomeAssistant hass, str host, int port, int pin)