Home Assistant Unofficial Reference 2024.12.1
entity.py
Go to the documentation of this file.
1 """The Radarr component."""
2 
3 from __future__ import annotations
4 
5 from typing import cast
6 
7 from homeassistant.const import ATTR_SW_VERSION
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 DEFAULT_NAME, DOMAIN
13 from .coordinator import RadarrDataUpdateCoordinator, StatusDataUpdateCoordinator, T
14 
15 
16 class RadarrEntity(CoordinatorEntity[RadarrDataUpdateCoordinator[T]]):
17  """Defines a base Radarr entity."""
18 
19  _attr_has_entity_name = True
20  coordinator: RadarrDataUpdateCoordinator[T]
21 
22  def __init__(
23  self,
24  coordinator: RadarrDataUpdateCoordinator[T],
25  description: EntityDescription,
26  ) -> None:
27  """Create Radarr entity."""
28  super().__init__(coordinator)
29  self.entity_descriptionentity_description = description
30  self._attr_unique_id_attr_unique_id = f"{coordinator.config_entry.entry_id}_{description.key}"
31 
32  @property
33  def device_info(self) -> DeviceInfo:
34  """Return device information about the Radarr instance."""
35  device_info = DeviceInfo(
36  configuration_url=self.coordinator.host_configuration.url,
37  entry_type=DeviceEntryType.SERVICE,
38  identifiers={(DOMAIN, self.coordinator.config_entry.entry_id)},
39  manufacturer=DEFAULT_NAME,
40  name=self.coordinator.config_entry.title,
41  )
42  if isinstance(self.coordinator, StatusDataUpdateCoordinator):
43  device_info[ATTR_SW_VERSION] = cast(
44  StatusDataUpdateCoordinator, self.coordinator
45  ).data.version
46  return device_info
None __init__(self, RadarrDataUpdateCoordinator[T] coordinator, EntityDescription description)
Definition: entity.py:26