Home Assistant Unofficial Reference 2024.12.1
sensor.py
Go to the documentation of this file.
1 """Dormakaba dKey integration sensor platform."""
2 
3 from __future__ import annotations
4 
5 from py_dormakaba_dkey import DKEYLock
6 
8  SensorDeviceClass,
9  SensorEntity,
10  SensorEntityDescription,
11  SensorStateClass,
12 )
13 from homeassistant.config_entries import ConfigEntry
14 from homeassistant.const import PERCENTAGE
15 from homeassistant.core import HomeAssistant, callback
16 from homeassistant.helpers.entity_platform import AddEntitiesCallback
17 from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
18 
19 from .const import DOMAIN
20 from .entity import DormakabaDkeyEntity
21 from .models import DormakabaDkeyData
22 
23 BINARY_SENSOR_DESCRIPTIONS = (
25  key="battery_level",
26  device_class=SensorDeviceClass.BATTERY,
27  native_unit_of_measurement=PERCENTAGE,
28  state_class=SensorStateClass.MEASUREMENT,
29  ),
30 )
31 
32 
34  hass: HomeAssistant,
35  entry: ConfigEntry,
36  async_add_entities: AddEntitiesCallback,
37 ) -> None:
38  """Set up the lock platform for Dormakaba dKey."""
39  data: DormakabaDkeyData = hass.data[DOMAIN][entry.entry_id]
41  DormakabaDkeySensor(data.coordinator, data.lock, description)
42  for description in BINARY_SENSOR_DESCRIPTIONS
43  )
44 
45 
47  """Dormakaba dKey sensor."""
48 
49  _attr_has_entity_name = True
50 
51  def __init__(
52  self,
53  coordinator: DataUpdateCoordinator[None],
54  lock: DKEYLock,
55  description: SensorEntityDescription,
56  ) -> None:
57  """Initialize a Dormakaba dKey binary sensor."""
58  self.entity_descriptionentity_description = description
59  self._attr_unique_id_attr_unique_id = f"{lock.address}_{description.key}"
60  super().__init__(coordinator, lock)
61 
62  @callback
63  def _async_update_attrs(self) -> None:
64  """Handle updating _attr values."""
65  self._attr_native_value_attr_native_value = getattr(self._lock_lock, self.entity_descriptionentity_description.key)
None __init__(self, DataUpdateCoordinator[None] coordinator, DKEYLock lock, SensorEntityDescription description)
Definition: sensor.py:56
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)
Definition: sensor.py:37