Home Assistant Unofficial Reference 2024.12.1
entity.py
Go to the documentation of this file.
1 """The Tesla Wall Connector integration."""
2 
3 from __future__ import annotations
4 
5 from collections.abc import Callable
6 from dataclasses import dataclass
7 from typing import Any
8 
9 from homeassistant.helpers.device_registry import DeviceInfo
10 from homeassistant.helpers.update_coordinator import CoordinatorEntity
11 
12 from . import WallConnectorData
13 from .const import DOMAIN, WALLCONNECTOR_DEVICE_NAME
14 
15 
16 @dataclass(frozen=True)
18  """Mixin with a function pointer for getting sensor value."""
19 
20  value_fn: Callable[[dict], Any]
21 
22 
23 def _get_unique_id(serial_number: str, key: str) -> str:
24  """Get a unique entity name."""
25  return f"{serial_number}-{key}"
26 
27 
29  """Base class for Wall Connector entities."""
30 
31  _attr_has_entity_name = True
32 
33  def __init__(self, wall_connector_data: WallConnectorData) -> None:
34  """Initialize WallConnector Entity."""
35  self.wall_connector_datawall_connector_data = wall_connector_data
36  self._attr_unique_id_attr_unique_id = _get_unique_id(
37  wall_connector_data.serial_number, self.entity_description.key
38  )
39  super().__init__(wall_connector_data.update_coordinator)
40 
41  @property
42  def device_info(self) -> DeviceInfo:
43  """Return information about the device."""
44  return DeviceInfo(
45  identifiers={(DOMAIN, self.wall_connector_datawall_connector_data.serial_number)},
46  name=WALLCONNECTOR_DEVICE_NAME,
47  model=self.wall_connector_datawall_connector_data.part_number,
48  sw_version=self.wall_connector_datawall_connector_data.firmware_version,
49  manufacturer="Tesla",
50  )
None __init__(self, WallConnectorData wall_connector_data)
Definition: entity.py:33
str _get_unique_id(str serial_number, str key)
Definition: entity.py:23