Home Assistant Unofficial Reference 2024.12.1
entity.py
Go to the documentation of this file.
1 """Base entity for Habitica."""
2 
3 from __future__ import annotations
4 
5 from typing import TYPE_CHECKING
6 
7 from homeassistant.const import CONF_NAME, CONF_URL
8 from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
9 from homeassistant.helpers.entity import EntityDescription
10 from homeassistant.helpers.update_coordinator import CoordinatorEntity
11 
12 from .const import DOMAIN, MANUFACTURER, NAME
13 from .coordinator import HabiticaDataUpdateCoordinator
14 
15 
16 class HabiticaBase(CoordinatorEntity[HabiticaDataUpdateCoordinator]):
17  """Base Habitica entity."""
18 
19  _attr_has_entity_name = True
20 
21  def __init__(
22  self,
23  coordinator: HabiticaDataUpdateCoordinator,
24  entity_description: EntityDescription,
25  ) -> None:
26  """Initialize a Habitica entity."""
27  super().__init__(coordinator)
28  if TYPE_CHECKING:
29  assert coordinator.config_entry.unique_id
30  self.entity_descriptionentity_description = entity_description
31  self._attr_unique_id_attr_unique_id = (
32  f"{coordinator.config_entry.unique_id}_{entity_description.key}"
33  )
34  self._attr_device_info_attr_device_info = DeviceInfo(
35  entry_type=DeviceEntryType.SERVICE,
36  manufacturer=MANUFACTURER,
37  model=NAME,
38  name=coordinator.config_entry.data[CONF_NAME],
39  configuration_url=coordinator.config_entry.data[CONF_URL],
40  identifiers={(DOMAIN, coordinator.config_entry.unique_id)},
41  )
None __init__(self, HabiticaDataUpdateCoordinator coordinator, EntityDescription entity_description)
Definition: entity.py:25