Home Assistant Unofficial Reference 2024.12.1
sensor.py
Go to the documentation of this file.
1 """Support for Alpha2 heat control valve opening sensors."""
2 
3 from homeassistant.components.sensor import SensorEntity
4 from homeassistant.config_entries import ConfigEntry
5 from homeassistant.const import PERCENTAGE
6 from homeassistant.core import HomeAssistant
7 from homeassistant.helpers.entity_platform import AddEntitiesCallback
8 from homeassistant.helpers.update_coordinator import CoordinatorEntity
9 
10 from .const import DOMAIN
11 from .coordinator import Alpha2BaseCoordinator
12 
13 
15  hass: HomeAssistant,
16  config_entry: ConfigEntry,
17  async_add_entities: AddEntitiesCallback,
18 ) -> None:
19  """Add Alpha2 sensor entities from a config_entry."""
20 
21  coordinator: Alpha2BaseCoordinator = hass.data[DOMAIN][config_entry.entry_id]
22 
23  # HEATCTRL attribute ACTOR_PERCENT is not available in older firmware versions
25  Alpha2HeatControlValveOpeningSensor(coordinator, heat_control_id)
26  for heat_control_id, heat_control in coordinator.data["heat_controls"].items()
27  if heat_control["INUSE"]
28  and heat_control["_HEATAREA_ID"] in coordinator.data["heat_areas"]
29  and heat_control.get("ACTOR_PERCENT") is not None
30  )
31 
32 
34  CoordinatorEntity[Alpha2BaseCoordinator], SensorEntity
35 ):
36  """Alpha2 heat control valve opening sensor."""
37 
38  _attr_native_unit_of_measurement = PERCENTAGE
39 
40  def __init__(
41  self, coordinator: Alpha2BaseCoordinator, heat_control_id: str
42  ) -> None:
43  """Initialize Alpha2HeatControlValveOpeningSensor."""
44  super().__init__(coordinator)
45  self.heat_control_idheat_control_id = heat_control_id
46  self._attr_unique_id_attr_unique_id = f"{heat_control_id}:valve_opening"
47  heat_control = self.coordinator.data["heat_controls"][heat_control_id]
48  heat_area = self.coordinator.data["heat_areas"][heat_control["_HEATAREA_ID"]]
49  self._attr_name_attr_name = (
50  f"{heat_area['HEATAREA_NAME']} heat control {heat_control['NR']} valve"
51  " opening"
52  )
53 
54  @property
55  def native_value(self) -> int:
56  """Return the current valve opening percentage."""
57  return self.coordinator.data["heat_controls"][self.heat_control_idheat_control_id][
58  "ACTOR_PERCENT"
59  ]
None __init__(self, Alpha2BaseCoordinator coordinator, str heat_control_id)
Definition: sensor.py:42
None async_setup_entry(HomeAssistant hass, ConfigEntry config_entry, AddEntitiesCallback async_add_entities)
Definition: sensor.py:18