Home Assistant Unofficial Reference 2024.12.1
entity.py
Go to the documentation of this file.
1 """The nuki component."""
2 
3 from __future__ import annotations
4 
5 from pynuki.device import NukiDevice
6 
7 from homeassistant.helpers.device_registry import DeviceInfo
8 from homeassistant.helpers.update_coordinator import CoordinatorEntity
9 
10 from .const import DOMAIN
11 from .coordinator import NukiCoordinator
12 from .helpers import parse_id
13 
14 
15 class NukiEntity[_NukiDeviceT: NukiDevice](CoordinatorEntity[NukiCoordinator]):
16  """An entity using CoordinatorEntity.
17 
18  The CoordinatorEntity class provides:
19  should_poll
20  async_update
21  async_added_to_hass
22  available
23 
24  """
25 
26  def __init__(self, coordinator: NukiCoordinator, nuki_device: _NukiDeviceT) -> None:
27  """Pass coordinator to CoordinatorEntity."""
28  super().__init__(coordinator)
29  self._nuki_device = nuki_device
30 
31  @property
32  def device_info(self) -> DeviceInfo:
33  """Device info for Nuki entities."""
34  return DeviceInfo(
35  identifiers={(DOMAIN, parse_id(self._nuki_device.nuki_id))},
36  name=self._nuki_device.name,
37  manufacturer="Nuki Home Solutions GmbH",
38  model=self._nuki_device.device_model_str.capitalize(),
39  sw_version=self._nuki_device.firmware_version,
40  via_device=(DOMAIN, self.coordinator.bridge_id),
41  serial_number=parse_id(self._nuki_device.nuki_id),
42  )
None __init__(self, NukiCoordinator coordinator, _NukiDeviceT nuki_device)
Definition: entity.py:26
DeviceInfo device_info(self)
Definition: entity.py:32