Home Assistant Unofficial Reference 2024.12.1
entity.py
Go to the documentation of this file.
1 """Base entity for Trafikverket Camera."""
2 
3 from __future__ import annotations
4 
5 from homeassistant.core import callback
6 from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
7 from homeassistant.helpers.entity import EntityDescription
8 from homeassistant.helpers.update_coordinator import CoordinatorEntity
9 
10 from .const import DOMAIN
11 from .coordinator import TVDataUpdateCoordinator
12 
13 
14 class TrafikverketCameraEntity(CoordinatorEntity[TVDataUpdateCoordinator]):
15  """Base entity for Trafikverket Camera."""
16 
17  _attr_has_entity_name = True
18 
19  def __init__(
20  self,
21  coordinator: TVDataUpdateCoordinator,
22  entry_id: str,
23  ) -> None:
24  """Initiate Trafikverket Camera Sensor."""
25  super().__init__(coordinator)
26  self._attr_device_info_attr_device_info = DeviceInfo(
27  identifiers={(DOMAIN, entry_id)},
28  entry_type=DeviceEntryType.SERVICE,
29  manufacturer="Trafikverket",
30  model="v1.0",
31  configuration_url="https://api.trafikinfo.trafikverket.se/",
32  )
33 
34 
36  """Base entity for Trafikverket Camera but for non camera entities."""
37 
38  def __init__(
39  self,
40  coordinator: TVDataUpdateCoordinator,
41  entry_id: str,
42  description: EntityDescription,
43  ) -> None:
44  """Initiate Trafikverket Camera Sensor."""
45  super().__init__(coordinator, entry_id)
46  self._attr_unique_id_attr_unique_id = f"{entry_id}-{description.key}"
47  self.entity_descriptionentity_description = description
48  self._update_attr_update_attr()
49 
50  @callback
51  def _update_attr(self) -> None:
52  """Update _attr."""
53 
54  @callback
55  def _handle_coordinator_update(self) -> None:
56  self._update_attr_update_attr()
57  return super()._handle_coordinator_update()
None __init__(self, TVDataUpdateCoordinator coordinator, str entry_id)
Definition: entity.py:23
None __init__(self, TVDataUpdateCoordinator coordinator, str entry_id, EntityDescription description)
Definition: entity.py:43