Home Assistant Unofficial Reference 2024.12.1
sensor.py
Go to the documentation of this file.
1 """Initialization of ATAG One sensor platform."""
2 
3 from homeassistant.components.sensor import SensorDeviceClass, SensorEntity
4 from homeassistant.const import (
5  PERCENTAGE,
6  UnitOfPressure,
7  UnitOfTemperature,
8  UnitOfTime,
9 )
10 from homeassistant.core import HomeAssistant
11 from homeassistant.helpers.entity_platform import AddEntitiesCallback
12 
13 from .coordinator import AtagConfigEntry, AtagDataUpdateCoordinator
14 from .entity import AtagEntity
15 
16 SENSORS = {
17  "Outside Temperature": "outside_temp",
18  "Average Outside Temperature": "tout_avg",
19  "Weather Status": "weather_status",
20  "CH Water Pressure": "ch_water_pres",
21  "CH Water Temperature": "ch_water_temp",
22  "CH Return Temperature": "ch_return_temp",
23  "Burning Hours": "burning_hours",
24  "Flame": "rel_mod_level",
25 }
26 
27 
29  hass: HomeAssistant,
30  config_entry: AtagConfigEntry,
31  async_add_entities: AddEntitiesCallback,
32 ) -> None:
33  """Initialize sensor platform from config entry."""
34  coordinator = config_entry.runtime_data
35  async_add_entities([AtagSensor(coordinator, sensor) for sensor in SENSORS])
36 
37 
39  """Representation of a AtagOne Sensor."""
40 
41  def __init__(self, coordinator: AtagDataUpdateCoordinator, sensor: str) -> None:
42  """Initialize Atag sensor."""
43  super().__init__(coordinator, SENSORS[sensor])
44  self._attr_name_attr_name_attr_name = sensor
45  if coordinator.atag.report[self._id_id].sensorclass in (
46  SensorDeviceClass.PRESSURE,
47  SensorDeviceClass.TEMPERATURE,
48  ):
49  self._attr_device_class_attr_device_class = coordinator.atag.report[self._id_id].sensorclass
50  if coordinator.atag.report[self._id_id].measure in (
51  UnitOfPressure.BAR,
52  UnitOfTemperature.CELSIUS,
53  UnitOfTemperature.FAHRENHEIT,
54  PERCENTAGE,
55  UnitOfTime.HOURS,
56  ):
57  self._attr_native_unit_of_measurement_attr_native_unit_of_measurement = coordinator.atag.report[
58  self._id_id
59  ].measure
60 
61  @property
62  def native_value(self):
63  """Return the state of the sensor."""
64  return self.coordinator.atag.report[self._id_id].state
65 
66  @property
67  def icon(self):
68  """Return icon."""
69  return self.coordinator.atag.report[self._id_id].icon
None __init__(self, AtagDataUpdateCoordinator coordinator, str sensor)
Definition: sensor.py:41
None async_setup_entry(HomeAssistant hass, AtagConfigEntry config_entry, AddEntitiesCallback async_add_entities)
Definition: sensor.py:32