Home Assistant Unofficial Reference 2024.12.1
entity.py
Go to the documentation of this file.
1 """Base functionality for Aprilaire entities."""
2 
3 from __future__ import annotations
4 
5 import logging
6 
7 from pyaprilaire.const import Attribute
8 
9 from homeassistant.helpers.update_coordinator import BaseCoordinatorEntity
10 
11 from .coordinator import AprilaireCoordinator
12 
13 _LOGGER = logging.getLogger(__name__)
14 
15 
16 class BaseAprilaireEntity(BaseCoordinatorEntity[AprilaireCoordinator]):
17  """Base for Aprilaire entities."""
18 
19  _attr_available = False
20  _attr_has_entity_name = True
21 
22  def __init__(
23  self, coordinator: AprilaireCoordinator, unique_id: str | None
24  ) -> None:
25  """Initialize the entity."""
26 
27  super().__init__(coordinator)
28 
29  self._attr_device_info_attr_device_info = coordinator.device_info
30  self._attr_unique_id_attr_unique_id = f"{unique_id}_{self.translation_key}"
31 
32  self._update_available_update_available()
33 
34  def _update_available(self):
35  """Update the entity availability."""
36 
37  connected: bool = self.coordinator.data.get(
38  Attribute.CONNECTED, None
39  ) or self.coordinator.data.get(Attribute.RECONNECTING, None)
40 
41  stopped: bool = self.coordinator.data.get(Attribute.STOPPED, None)
42 
43  self._attr_available_attr_available_attr_available = connected and not stopped
44 
45  async def async_update(self) -> None:
46  """Implement abstract base method."""
None __init__(self, AprilaireCoordinator coordinator, str|None unique_id)
Definition: entity.py:24