Home Assistant Unofficial Reference 2024.12.1
sensor.py
Go to the documentation of this file.
1 """Support for Rain Bird Irrigation system LNK Wi-Fi Module."""
2 
3 from __future__ import annotations
4 
5 import logging
6 
7 from homeassistant.components.sensor import SensorEntity, SensorEntityDescription
8 from homeassistant.core import HomeAssistant
9 from homeassistant.helpers.entity_platform import AddEntitiesCallback
10 from homeassistant.helpers.typing import StateType
11 from homeassistant.helpers.update_coordinator import CoordinatorEntity
12 
13 from .coordinator import RainbirdUpdateCoordinator
14 from .types import RainbirdConfigEntry
15 
16 _LOGGER = logging.getLogger(__name__)
17 
18 
19 RAIN_DELAY_ENTITY_DESCRIPTION = SensorEntityDescription(
20  key="raindelay",
21  translation_key="raindelay",
22 )
23 
24 
26  hass: HomeAssistant,
27  config_entry: RainbirdConfigEntry,
28  async_add_entities: AddEntitiesCallback,
29 ) -> None:
30  """Set up entry for a Rain Bird sensor."""
32  [
34  config_entry.runtime_data.coordinator,
35  RAIN_DELAY_ENTITY_DESCRIPTION,
36  )
37  ]
38  )
39 
40 
41 class RainBirdSensor(CoordinatorEntity[RainbirdUpdateCoordinator], SensorEntity):
42  """A sensor implementation for Rain Bird device."""
43 
44  _attr_has_entity_name = True
45 
46  def __init__(
47  self,
48  coordinator: RainbirdUpdateCoordinator,
49  description: SensorEntityDescription,
50  ) -> None:
51  """Initialize the Rain Bird sensor."""
52  super().__init__(coordinator)
53  self.entity_descriptionentity_description = description
54  if coordinator.unique_id is not None:
55  self._attr_unique_id_attr_unique_id = f"{coordinator.unique_id}-{description.key}"
56  self._attr_device_info_attr_device_info = coordinator.device_info
57  else:
58  self._attr_name_attr_name = (
59  f"{coordinator.device_name} {description.key.capitalize()}"
60  )
61 
62  @property
63  def native_value(self) -> StateType:
64  """Return the value reported by the sensor."""
65  return self.coordinator.data.rain_delay
None __init__(self, RainbirdUpdateCoordinator coordinator, SensorEntityDescription description)
Definition: sensor.py:50
None async_setup_entry(HomeAssistant hass, RainbirdConfigEntry config_entry, AddEntitiesCallback async_add_entities)
Definition: sensor.py:29