Home Assistant Unofficial Reference 2024.12.1
binary_sensor.py
Go to the documentation of this file.
1 """Support for Vallox ventilation unit binary sensors."""
2 
3 from __future__ import annotations
4 
5 from dataclasses import dataclass
6 
8  BinarySensorEntity,
9  BinarySensorEntityDescription,
10 )
11 from homeassistant.config_entries import ConfigEntry
12 from homeassistant.const import EntityCategory
13 from homeassistant.core import HomeAssistant
14 from homeassistant.helpers.entity_platform import AddEntitiesCallback
15 
16 from .const import DOMAIN
17 from .coordinator import ValloxDataUpdateCoordinator
18 from .entity import ValloxEntity
19 
20 
22  """Representation of a Vallox binary sensor."""
23 
24  entity_description: ValloxBinarySensorEntityDescription
25  _attr_entity_category = EntityCategory.DIAGNOSTIC
26 
27  def __init__(
28  self,
29  name: str,
30  coordinator: ValloxDataUpdateCoordinator,
31  description: ValloxBinarySensorEntityDescription,
32  ) -> None:
33  """Initialize the Vallox binary sensor."""
34  super().__init__(name, coordinator)
35 
36  self.entity_descriptionentity_description = description
37 
38  self._attr_unique_id_attr_unique_id = f"{self._device_uuid}-{description.key}"
39 
40  @property
41  def is_on(self) -> bool | None:
42  """Return true if the binary sensor is on."""
43  return self.coordinator.data.get(self.entity_descriptionentity_description.metric_key) == 1
44 
45 
46 @dataclass(frozen=True, kw_only=True)
48  """Describes Vallox binary sensor entity."""
49 
50  metric_key: str
51 
52 
53 BINARY_SENSOR_ENTITIES: tuple[ValloxBinarySensorEntityDescription, ...] = (
55  key="post_heater",
56  translation_key="post_heater",
57  metric_key="A_CYC_IO_HEATER",
58  ),
59 )
60 
61 
63  hass: HomeAssistant,
64  entry: ConfigEntry,
65  async_add_entities: AddEntitiesCallback,
66 ) -> None:
67  """Set up the sensors."""
68 
69  data = hass.data[DOMAIN][entry.entry_id]
70 
72  ValloxBinarySensorEntity(data["name"], data["coordinator"], description)
73  for description in BINARY_SENSOR_ENTITIES
74  )
None __init__(self, str name, ValloxDataUpdateCoordinator coordinator, ValloxBinarySensorEntityDescription description)
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)