Home Assistant Unofficial Reference 2024.12.1
entity.py
Go to the documentation of this file.
1 """Entities for the ViCare integration."""
2 
3 from PyViCare.PyViCareDevice import Device as PyViCareDevice
4 from PyViCare.PyViCareDeviceConfig import PyViCareDeviceConfig
5 from PyViCare.PyViCareHeatingDevice import (
6  HeatingDeviceWithComponent as PyViCareHeatingDeviceComponent,
7 )
8 
9 from homeassistant.helpers.device_registry import DeviceInfo
10 from homeassistant.helpers.entity import Entity
11 
12 from .const import DOMAIN
13 
14 
16  """Base class for ViCare entities."""
17 
18  _attr_has_entity_name = True
19 
20  def __init__(
21  self,
22  unique_id_suffix: str,
23  device_serial: str | None,
24  device_config: PyViCareDeviceConfig,
25  device: PyViCareDevice,
26  component: PyViCareHeatingDeviceComponent | None = None,
27  ) -> None:
28  """Initialize the entity."""
29  gateway_serial = device_config.getConfig().serial
30  device_id = device_config.getId()
31 
32  identifier = f"{gateway_serial}_{device_serial.replace("zigbee-", "zigbee_") if device_serial is not None else device_id}"
33 
34  self._api: PyViCareDevice | PyViCareHeatingDeviceComponent = (
35  component if component else device
36  )
37  self._attr_unique_id_attr_unique_id = f"{identifier}-{unique_id_suffix}"
38  if component:
39  self._attr_unique_id_attr_unique_id += f"-{component.id}"
40 
41  self._attr_device_info_attr_device_info = DeviceInfo(
42  identifiers={(DOMAIN, identifier)},
43  serial_number=device_serial,
44  name=device_config.getModel(),
45  manufacturer="Viessmann",
46  model=device_config.getModel(),
47  configuration_url="https://developer.viessmann.com/",
48  )
None __init__(self, str unique_id_suffix, str|None device_serial, PyViCareDeviceConfig device_config, PyViCareDevice device, PyViCareHeatingDeviceComponent|None component=None)
Definition: entity.py:27