Home Assistant Unofficial Reference 2024.12.1
sensor.py
Go to the documentation of this file.
1 """Support for Aqualink temperature sensors."""
2 
3 from __future__ import annotations
4 
5 from iaqualink.device import AqualinkSensor
6 
8  DOMAIN as SENSOR_DOMAIN,
9  SensorDeviceClass,
10  SensorEntity,
11 )
12 from homeassistant.config_entries import ConfigEntry
13 from homeassistant.const import UnitOfTemperature
14 from homeassistant.core import HomeAssistant
15 from homeassistant.helpers.entity_platform import AddEntitiesCallback
16 
17 from .const import DOMAIN as AQUALINK_DOMAIN
18 from .entity import AqualinkEntity
19 
20 PARALLEL_UPDATES = 0
21 
22 
24  hass: HomeAssistant,
25  config_entry: ConfigEntry,
26  async_add_entities: AddEntitiesCallback,
27 ) -> None:
28  """Set up discovered sensors."""
30  (HassAqualinkSensor(dev) for dev in hass.data[AQUALINK_DOMAIN][SENSOR_DOMAIN]),
31  True,
32  )
33 
34 
36  """Representation of a sensor."""
37 
38  def __init__(self, dev: AqualinkSensor) -> None:
39  """Initialize AquaLink sensor."""
40  super().__init__(dev)
41  self._attr_name_attr_name = dev.label
42  if not dev.name.endswith("_temp"):
43  return
44  self._attr_device_class_attr_device_class = SensorDeviceClass.TEMPERATURE
45  if dev.system.temp_unit == "F":
46  self._attr_native_unit_of_measurement_attr_native_unit_of_measurement = UnitOfTemperature.FAHRENHEIT
47  return
48  self._attr_native_unit_of_measurement_attr_native_unit_of_measurement = UnitOfTemperature.CELSIUS
49 
50  @property
51  def native_value(self) -> int | float | None:
52  """Return the state of the sensor."""
53  if self.devdev.state == "":
54  return None
55 
56  try:
57  return int(self.devdev.state)
58  except ValueError:
59  return float(self.devdev.state)