Home Assistant Unofficial Reference 2024.12.1
entity.py
Go to the documentation of this file.
1 """The venstar component."""
2 
3 from __future__ import annotations
4 
5 from homeassistant.config_entries import ConfigEntry
6 from homeassistant.core import callback
7 from homeassistant.helpers.device_registry import DeviceInfo
8 from homeassistant.helpers.update_coordinator import CoordinatorEntity
9 
10 from .const import DOMAIN
11 from .coordinator import VenstarDataUpdateCoordinator
12 
13 
14 class VenstarEntity(CoordinatorEntity[VenstarDataUpdateCoordinator]):
15  """Representation of a Venstar entity."""
16 
17  _attr_has_entity_name = True
18 
19  def __init__(
20  self,
21  venstar_data_coordinator: VenstarDataUpdateCoordinator,
22  config: ConfigEntry,
23  ) -> None:
24  """Initialize the data object."""
25  super().__init__(venstar_data_coordinator)
26  self._config_config = config
27  self._client_client = venstar_data_coordinator.client
28 
29  @callback
30  def _handle_coordinator_update(self) -> None:
31  """Handle updated data from the coordinator."""
32  self.async_write_ha_state()
33 
34  @property
35  def device_info(self) -> DeviceInfo:
36  """Return the device information for this entity."""
37  firmware_version = self._client_client.get_firmware_ver()
38  return DeviceInfo(
39  identifiers={(DOMAIN, self._config_config.entry_id)},
40  name=self._client_client.name,
41  manufacturer="Venstar",
42  model=f"{self._client.model}-{self._client.get_type()}",
43  sw_version=f"{firmware_version[0]}.{firmware_version[1]}",
44  )
None __init__(self, VenstarDataUpdateCoordinator venstar_data_coordinator, ConfigEntry config)
Definition: entity.py:23