Home Assistant Unofficial Reference 2024.12.1
sensor.py
Go to the documentation of this file.
1 """Support for LightwaveRF TRV - Associated Battery."""
2 
3 from __future__ import annotations
4 
6  SensorDeviceClass,
7  SensorEntity,
8  SensorStateClass,
9 )
10 from homeassistant.const import CONF_NAME, PERCENTAGE
11 from homeassistant.core import HomeAssistant
12 from homeassistant.helpers.entity_platform import AddEntitiesCallback
13 from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
14 
15 from . import CONF_SERIAL, LIGHTWAVE_LINK
16 
17 
19  hass: HomeAssistant,
20  config: ConfigType,
21  async_add_entities: AddEntitiesCallback,
22  discovery_info: DiscoveryInfoType | None = None,
23 ) -> None:
24  """Find and return battery."""
25  if discovery_info is None:
26  return
27 
28  batteries = []
29 
30  lwlink = hass.data[LIGHTWAVE_LINK]
31 
32  for device_config in discovery_info.values():
33  name = device_config[CONF_NAME]
34  serial = device_config[CONF_SERIAL]
35  batteries.append(LightwaveBattery(name, lwlink, serial))
36 
37  async_add_entities(batteries)
38 
39 
41  """Lightwave TRV Battery."""
42 
43  _attr_device_class = SensorDeviceClass.BATTERY
44  _attr_native_unit_of_measurement = PERCENTAGE
45  _attr_state_class = SensorStateClass.MEASUREMENT
46 
47  def __init__(self, name, lwlink, serial):
48  """Initialize the Lightwave Trv battery sensor."""
49  self._attr_name_attr_name = name
50  self._lwlink_lwlink = lwlink
51  self._serial_serial = serial
52  self._attr_unique_id_attr_unique_id = f"{serial}-trv-battery"
53 
54  def update(self) -> None:
55  """Communicate with a Lightwave RTF Proxy to get state."""
56  (dummy_temp, dummy_targ, battery, dummy_output) = self._lwlink_lwlink.read_trv_status(
57  self._serial_serial
58  )
59  self._attr_native_value_attr_native_value = battery
None async_setup_platform(HomeAssistant hass, ConfigType config, AddEntitiesCallback async_add_entities, DiscoveryInfoType|None discovery_info=None)
Definition: sensor.py:23