Home Assistant Unofficial Reference 2024.12.1
binary_sensor.py
Go to the documentation of this file.
1 """Binary sensor platform for Acaia scales."""
2 
3 from collections.abc import Callable
4 from dataclasses import dataclass
5 
6 from aioacaia.acaiascale import AcaiaScale
7 
9  BinarySensorDeviceClass,
10  BinarySensorEntity,
11  BinarySensorEntityDescription,
12 )
13 from homeassistant.core import HomeAssistant
14 from homeassistant.helpers.entity_platform import AddEntitiesCallback
15 
16 from .coordinator import AcaiaConfigEntry
17 from .entity import AcaiaEntity
18 
19 
20 @dataclass(kw_only=True, frozen=True)
22  """Description for Acaia binary sensor entities."""
23 
24  is_on_fn: Callable[[AcaiaScale], bool]
25 
26 
27 BINARY_SENSORS: tuple[AcaiaBinarySensorEntityDescription, ...] = (
29  key="timer_running",
30  translation_key="timer_running",
31  device_class=BinarySensorDeviceClass.RUNNING,
32  is_on_fn=lambda scale: scale.timer_running,
33  ),
34 )
35 
36 
38  hass: HomeAssistant,
39  entry: AcaiaConfigEntry,
40  async_add_entities: AddEntitiesCallback,
41 ) -> None:
42  """Set up binary sensors."""
43 
44  coordinator = entry.runtime_data
46  AcaiaBinarySensor(coordinator, description) for description in BINARY_SENSORS
47  )
48 
49 
51  """Representation of an Acaia binary sensor."""
52 
53  entity_description: AcaiaBinarySensorEntityDescription
54 
55  @property
56  def is_on(self) -> bool:
57  """Return true if the binary sensor is on."""
58  return self.entity_descriptionentity_description.is_on_fn(self._scale_scale_scale)
None async_setup_entry(HomeAssistant hass, AcaiaConfigEntry entry, AddEntitiesCallback async_add_entities)