Home Assistant Unofficial Reference 2024.12.1
binary_sensor.py
Go to the documentation of this file.
1 """Alarm sensors for the Venstar Thermostat."""
2 
4  BinarySensorDeviceClass,
5  BinarySensorEntity,
6 )
7 from homeassistant.config_entries import ConfigEntry
8 from homeassistant.core import HomeAssistant
9 from homeassistant.helpers.entity_platform import AddEntitiesCallback
10 
11 from .const import DOMAIN
12 from .entity import VenstarEntity
13 
14 
16  hass: HomeAssistant,
17  config_entry: ConfigEntry,
18  async_add_entities: AddEntitiesCallback,
19 ) -> None:
20  """Set up Vensar device binary_sensors based on a config entry."""
21  coordinator = hass.data[DOMAIN][config_entry.entry_id]
22 
23  if coordinator.client.alerts is None:
24  return
26  VenstarBinarySensor(coordinator, config_entry, alert["name"])
27  for alert in coordinator.client.alerts
28  )
29 
30 
32  """Represent a Venstar alert."""
33 
34  _attr_device_class = BinarySensorDeviceClass.PROBLEM
35 
36  def __init__(self, coordinator, config, alert):
37  """Initialize the alert."""
38  super().__init__(coordinator, config)
39  self.alertalert = alert
40  self._attr_unique_id_attr_unique_id = f"{config.entry_id}_{alert.replace(' ', '_')}"
41  self._attr_name_attr_name = alert
42 
43  @property
44  def is_on(self):
45  """Return true if the binary sensor is on."""
46  for alert in self._client_client.alerts:
47  if alert["name"] == self.alertalert:
48  return alert["active"]
49 
50  return None
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)