Home Assistant Unofficial Reference 2024.12.1
binary_sensor.py
Go to the documentation of this file.
1 """Binary sensor platform for Trafikverket Camera integration."""
2 
3 from __future__ import annotations
4 
5 from collections.abc import Callable
6 from dataclasses import dataclass
7 
9  BinarySensorEntity,
10  BinarySensorEntityDescription,
11 )
12 from homeassistant.core import HomeAssistant, callback
13 from homeassistant.helpers.entity_platform import AddEntitiesCallback
14 
15 from . import TVCameraConfigEntry
16 from .coordinator import CameraData
17 from .entity import TrafikverketCameraNonCameraEntity
18 
19 PARALLEL_UPDATES = 0
20 
21 
22 @dataclass(frozen=True, kw_only=True)
24  """Describes Trafikverket Camera binary sensor entity."""
25 
26  value_fn: Callable[[CameraData], bool | None]
27 
28 
29 BINARY_SENSOR_TYPE = TVCameraSensorEntityDescription(
30  key="active",
31  translation_key="active",
32  value_fn=lambda data: data.data.active,
33 )
34 
35 
37  hass: HomeAssistant,
38  entry: TVCameraConfigEntry,
39  async_add_entities: AddEntitiesCallback,
40 ) -> None:
41  """Set up Trafikverket Camera binary sensor platform."""
42 
43  coordinator = entry.runtime_data
45  [
47  coordinator, entry.entry_id, BINARY_SENSOR_TYPE
48  )
49  ]
50  )
51 
52 
54  TrafikverketCameraNonCameraEntity, BinarySensorEntity
55 ):
56  """Representation of a Trafikverket Camera binary sensor."""
57 
58  entity_description: TVCameraSensorEntityDescription
59 
60  @callback
61  def _update_attr(self) -> None:
62  """Update _attr."""
63  self._attr_is_on_attr_is_on = self.entity_descriptionentity_description.value_fn(self.coordinator.data)
None async_setup_entry(HomeAssistant hass, TVCameraConfigEntry entry, AddEntitiesCallback async_add_entities)