Home Assistant Unofficial Reference 2024.12.1
binary_sensor.py
Go to the documentation of this file.
1 """Support for sensors."""
2 
3 from __future__ import annotations
4 
5 from aiocomelit import ComelitVedoZoneObject
6 from aiocomelit.const import ALARM_ZONES
7 
9  BinarySensorDeviceClass,
10  BinarySensorEntity,
11 )
12 from homeassistant.config_entries import ConfigEntry
13 from homeassistant.core import HomeAssistant
14 from homeassistant.helpers.entity_platform import AddEntitiesCallback
15 from homeassistant.helpers.update_coordinator import CoordinatorEntity
16 
17 from .const import DOMAIN
18 from .coordinator import ComelitVedoSystem
19 
20 
22  hass: HomeAssistant,
23  config_entry: ConfigEntry,
24  async_add_entities: AddEntitiesCallback,
25 ) -> None:
26  """Set up Comelit VEDO presence sensors."""
27 
28  coordinator: ComelitVedoSystem = hass.data[DOMAIN][config_entry.entry_id]
29 
31  ComelitVedoBinarySensorEntity(coordinator, device, config_entry.entry_id)
32  for device in coordinator.data[ALARM_ZONES].values()
33  )
34 
35 
37  CoordinatorEntity[ComelitVedoSystem], BinarySensorEntity
38 ):
39  """Sensor device."""
40 
41  _attr_has_entity_name = True
42  _attr_device_class = BinarySensorDeviceClass.MOTION
43 
44  def __init__(
45  self,
46  coordinator: ComelitVedoSystem,
47  zone: ComelitVedoZoneObject,
48  config_entry_entry_id: str,
49  ) -> None:
50  """Init sensor entity."""
51  self._api_api = coordinator.api
52  self._zone_zone = zone
53  super().__init__(coordinator)
54  # Use config_entry.entry_id as base for unique_id
55  # because no serial number or mac is available
56  self._attr_unique_id_attr_unique_id = f"{config_entry_entry_id}-presence-{zone.index}"
57  self._attr_device_info_attr_device_info = coordinator.platform_device_info(zone, "zone")
58 
59  @property
60  def is_on(self) -> bool:
61  """Presence detected."""
62  return self.coordinator.data[ALARM_ZONES][self._zone_zone.index].status_api == "0001"
None __init__(self, ComelitVedoSystem coordinator, ComelitVedoZoneObject zone, str config_entry_entry_id)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)