Home Assistant Unofficial Reference 2024.12.1
sensor.py
Go to the documentation of this file.
1 """Creates LOQED sensors."""
2 
3 from typing import Final
4 
6  SensorDeviceClass,
7  SensorEntity,
8  SensorEntityDescription,
9  SensorStateClass,
10 )
11 from homeassistant.config_entries import ConfigEntry
12 from homeassistant.const import (
13  PERCENTAGE,
14  SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
15  EntityCategory,
16 )
17 from homeassistant.core import HomeAssistant
18 from homeassistant.helpers.entity_platform import AddEntitiesCallback
19 
20 from .const import DOMAIN
21 from .coordinator import LoqedDataCoordinator, StatusMessage
22 from .entity import LoqedEntity
23 
24 SENSORS: Final[tuple[SensorEntityDescription, ...]] = (
26  key="ble_strength",
27  translation_key="ble_strength",
28  device_class=SensorDeviceClass.SIGNAL_STRENGTH,
29  native_unit_of_measurement=SIGNAL_STRENGTH_DECIBELS_MILLIWATT,
30  state_class=SensorStateClass.MEASUREMENT,
31  entity_category=EntityCategory.DIAGNOSTIC,
32  entity_registry_enabled_default=False,
33  ),
35  key="battery_percentage",
36  device_class=SensorDeviceClass.BATTERY,
37  state_class=SensorStateClass.MEASUREMENT,
38  entity_category=EntityCategory.DIAGNOSTIC,
39  native_unit_of_measurement=PERCENTAGE,
40  ),
41 )
42 
43 
45  hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
46 ) -> None:
47  """Set up the Loqed lock platform."""
48  coordinator = hass.data[DOMAIN][entry.entry_id]
49 
50  async_add_entities(LoqedSensor(coordinator, sensor) for sensor in SENSORS)
51 
52 
54  """Representation of Sensor state."""
55 
56  def __init__(
57  self, coordinator: LoqedDataCoordinator, description: SensorEntityDescription
58  ) -> None:
59  """Initialize the sensor."""
60  super().__init__(coordinator)
61  self.entity_descriptionentity_description = description
62  self._attr_unique_id_attr_unique_id = f"{self.coordinator.lock.id}_{description.key}"
63 
64  @property
65  def data(self) -> StatusMessage:
66  """Return data object from DataUpdateCoordinator."""
67  return self.coordinator.lock
68 
69  @property
70  def native_value(self) -> int:
71  """Return state of sensor."""
72  return getattr(self.datadatadata, self.entity_descriptionentity_description.key)
None __init__(self, LoqedDataCoordinator coordinator, SensorEntityDescription description)
Definition: sensor.py:58
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)
Definition: sensor.py:46