Home Assistant Unofficial Reference 2024.12.1
binary_sensor.py
Go to the documentation of this file.
1 """Support for Rain Bird Irrigation system LNK WiFi Module."""
2 
3 from __future__ import annotations
4 
5 import logging
6 
8  BinarySensorEntity,
9  BinarySensorEntityDescription,
10 )
11 from homeassistant.core import HomeAssistant
12 from homeassistant.helpers.entity_platform import AddEntitiesCallback
13 from homeassistant.helpers.update_coordinator import CoordinatorEntity
14 
15 from .coordinator import RainbirdUpdateCoordinator
16 from .types import RainbirdConfigEntry
17 
18 _LOGGER = logging.getLogger(__name__)
19 
20 
21 RAIN_SENSOR_ENTITY_DESCRIPTION = BinarySensorEntityDescription(
22  key="rainsensor",
23  translation_key="rainsensor",
24 )
25 
26 
28  hass: HomeAssistant,
29  config_entry: RainbirdConfigEntry,
30  async_add_entities: AddEntitiesCallback,
31 ) -> None:
32  """Set up entry for a Rain Bird binary_sensor."""
33  coordinator = config_entry.runtime_data.coordinator
34  async_add_entities([RainBirdSensor(coordinator, RAIN_SENSOR_ENTITY_DESCRIPTION)])
35 
36 
37 class RainBirdSensor(CoordinatorEntity[RainbirdUpdateCoordinator], BinarySensorEntity):
38  """A sensor implementation for Rain Bird device."""
39 
40  _attr_has_entity_name = True
41 
42  def __init__(
43  self,
44  coordinator: RainbirdUpdateCoordinator,
45  description: BinarySensorEntityDescription,
46  ) -> None:
47  """Initialize the Rain Bird sensor."""
48  super().__init__(coordinator)
49  self.entity_descriptionentity_description = description
50  if coordinator.unique_id is not None:
51  self._attr_unique_id_attr_unique_id = f"{coordinator.unique_id}-{description.key}"
52  self._attr_device_info_attr_device_info = coordinator.device_info
53  else:
54  self._attr_name_attr_name = f"{coordinator.device_name} Rainsensor"
55 
56  @property
57  def is_on(self) -> bool | None:
58  """Return True if entity is on."""
59  return self.coordinator.data.rain
None __init__(self, RainbirdUpdateCoordinator coordinator, BinarySensorEntityDescription description)
None async_setup_entry(HomeAssistant hass, RainbirdConfigEntry config_entry, AddEntitiesCallback async_add_entities)