Home Assistant Unofficial Reference 2024.12.1
binary_sensor.py
Go to the documentation of this file.
1 """Support for Alpha2 IO device battery sensors."""
2 
4  BinarySensorDeviceClass,
5  BinarySensorEntity,
6 )
7 from homeassistant.config_entries import ConfigEntry
8 from homeassistant.const import EntityCategory
9 from homeassistant.core import HomeAssistant
10 from homeassistant.helpers.entity_platform import AddEntitiesCallback
11 from homeassistant.helpers.update_coordinator import CoordinatorEntity
12 
13 from .const import DOMAIN
14 from .coordinator import Alpha2BaseCoordinator
15 
16 
18  hass: HomeAssistant,
19  config_entry: ConfigEntry,
20  async_add_entities: AddEntitiesCallback,
21 ) -> None:
22  """Add Alpha2 sensor entities from a config_entry."""
23 
24  coordinator: Alpha2BaseCoordinator = hass.data[DOMAIN][config_entry.entry_id]
25 
27  Alpha2IODeviceBatterySensor(coordinator, io_device_id)
28  for io_device_id, io_device in coordinator.data["io_devices"].items()
29  if io_device["_HEATAREA_ID"]
30  and io_device["_HEATAREA_ID"] in coordinator.data["heat_areas"]
31  )
32 
33 
35  CoordinatorEntity[Alpha2BaseCoordinator], BinarySensorEntity
36 ):
37  """Alpha2 IO device battery binary sensor."""
38 
39  _attr_device_class = BinarySensorDeviceClass.BATTERY
40  _attr_entity_category = EntityCategory.DIAGNOSTIC
41 
42  def __init__(self, coordinator: Alpha2BaseCoordinator, io_device_id: str) -> None:
43  """Initialize Alpha2IODeviceBatterySensor."""
44  super().__init__(coordinator)
45  self.io_device_idio_device_id = io_device_id
46  self._attr_unique_id_attr_unique_id = f"{io_device_id}:battery"
47  io_device = self.coordinator.data["io_devices"][io_device_id]
48  heat_area = self.coordinator.data["heat_areas"][io_device["_HEATAREA_ID"]]
49  self._attr_name_attr_name = (
50  f"{heat_area['HEATAREA_NAME']} IO device {io_device['NR']} battery"
51  )
52 
53  @property
54  def is_on(self):
55  """Return the state of the sensor."""
56  # 0=empty, 1=weak, 2=good
57  return self.coordinator.data["io_devices"][self.io_device_idio_device_id]["BATTERY"] < 2
None __init__(self, Alpha2BaseCoordinator coordinator, str io_device_id)
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)