Home Assistant Unofficial Reference 2024.12.1
sensor.py
Go to the documentation of this file.
1 """Battery sensor for the Nuki Lock."""
2 
3 from __future__ import annotations
4 
5 from pynuki.device import NukiDevice
6 
7 from homeassistant.components.sensor import SensorDeviceClass, SensorEntity
8 from homeassistant.config_entries import ConfigEntry
9 from homeassistant.const import PERCENTAGE, EntityCategory
10 from homeassistant.core import HomeAssistant
11 from homeassistant.helpers.entity_platform import AddEntitiesCallback
12 
13 from . import NukiEntryData
14 from .const import DOMAIN as NUKI_DOMAIN
15 from .entity import NukiEntity
16 
17 
19  hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
20 ) -> None:
21  """Set up the Nuki lock sensor."""
22  entry_data: NukiEntryData = hass.data[NUKI_DOMAIN][entry.entry_id]
23 
25  NukiBatterySensor(entry_data.coordinator, lock) for lock in entry_data.locks
26  )
27 
28 
29 class NukiBatterySensor(NukiEntity[NukiDevice], SensorEntity):
30  """Representation of a Nuki Lock Battery sensor."""
31 
32  _attr_has_entity_name = True
33  _attr_native_unit_of_measurement = PERCENTAGE
34  _attr_device_class = SensorDeviceClass.BATTERY
35  _attr_entity_category = EntityCategory.DIAGNOSTIC
36 
37  @property
38  def unique_id(self) -> str:
39  """Return a unique ID."""
40  return f"{self._nuki_device.nuki_id}_battery_level"
41 
42  @property
43  def native_value(self) -> float:
44  """Return the state of the sensor."""
45  return self._nuki_device.battery_charge
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)
Definition: sensor.py:20