Home Assistant Unofficial Reference 2024.12.1
sensor.py
Go to the documentation of this file.
1 """Support for SleepIQ Sensor."""
2 
3 from __future__ import annotations
4 
5 from asyncsleepiq import SleepIQBed, SleepIQSleeper
6 
7 from homeassistant.components.sensor import SensorEntity, SensorStateClass
8 from homeassistant.config_entries import ConfigEntry
9 from homeassistant.core import HomeAssistant, callback
10 from homeassistant.helpers.entity_platform import AddEntitiesCallback
11 
12 from .const import DOMAIN, PRESSURE, SLEEP_NUMBER
13 from .coordinator import SleepIQData, SleepIQDataUpdateCoordinator
14 from .entity import SleepIQSleeperEntity
15 
16 SENSORS = [PRESSURE, SLEEP_NUMBER]
17 
18 
20  hass: HomeAssistant,
21  entry: ConfigEntry,
22  async_add_entities: AddEntitiesCallback,
23 ) -> None:
24  """Set up the SleepIQ bed sensors."""
25  data: SleepIQData = hass.data[DOMAIN][entry.entry_id]
27  SleepIQSensorEntity(data.data_coordinator, bed, sleeper, sensor_type)
28  for bed in data.client.beds.values()
29  for sleeper in bed.sleepers
30  for sensor_type in SENSORS
31  )
32 
33 
35  SleepIQSleeperEntity[SleepIQDataUpdateCoordinator], SensorEntity
36 ):
37  """Representation of an SleepIQ Entity with CoordinatorEntity."""
38 
39  _attr_icon = "mdi:bed"
40 
41  def __init__(
42  self,
43  coordinator: SleepIQDataUpdateCoordinator,
44  bed: SleepIQBed,
45  sleeper: SleepIQSleeper,
46  sensor_type: str,
47  ) -> None:
48  """Initialize the sensor."""
49  self.sensor_typesensor_type = sensor_type
50  self._attr_state_class_attr_state_class = SensorStateClass.MEASUREMENT
51  super().__init__(coordinator, bed, sleeper, sensor_type)
52 
53  @callback
54  def _async_update_attrs(self) -> None:
55  """Update sensor attributes."""
56  self._attr_native_value_attr_native_value = getattr(self.sleeper, self.sensor_typesensor_type)
None __init__(self, SleepIQDataUpdateCoordinator coordinator, SleepIQBed bed, SleepIQSleeper sleeper, str sensor_type)
Definition: sensor.py:47
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)
Definition: sensor.py:23