Home Assistant Unofficial Reference 2024.12.1
entity.py
Go to the documentation of this file.
1 """Base entity for Coolmaster integration."""
2 
3 from pycoolmasternet_async.coolmasternet import CoolMasterNetUnit
4 
5 from homeassistant.core import callback
6 from homeassistant.helpers.device_registry import DeviceInfo
7 from homeassistant.helpers.update_coordinator import CoordinatorEntity
8 
9 from . import CoolmasterDataUpdateCoordinator
10 from .const import DOMAIN
11 
12 
13 class CoolmasterEntity(CoordinatorEntity[CoolmasterDataUpdateCoordinator]):
14  """Representation of a Coolmaster entity."""
15 
16  _attr_has_entity_name = True
17 
18  def __init__(
19  self,
20  coordinator: CoolmasterDataUpdateCoordinator,
21  unit_id: str,
22  info: dict[str, str],
23  ) -> None:
24  """Initiate CoolmasterEntity."""
25  super().__init__(coordinator)
26  self._unit_id: str = unit_id
27  self._unit_unit: CoolMasterNetUnit = coordinator.data[self._unit_id]
28  self._attr_device_info: DeviceInfo = DeviceInfo(
29  identifiers={(DOMAIN, unit_id)},
30  manufacturer="CoolAutomation",
31  model="CoolMasterNet",
32  name=unit_id,
33  sw_version=info["version"],
34  )
35  if hasattr(self, "entity_description"):
36  self._attr_unique_id: str = f"{unit_id}-{self.entity_description.key}"
37 
38  @callback
39  def _handle_coordinator_update(self) -> None:
40  self._unit_unit = self.coordinator.data[self._unit_id]
None __init__(self, CoolmasterDataUpdateCoordinator coordinator, str unit_id, dict[str, str] info)
Definition: entity.py:23