Home Assistant Unofficial Reference 2024.12.1
entity.py
Go to the documentation of this file.
1 """Platform for shared base classes for sensors."""
2 
3 from __future__ import annotations
4 
5 from homeassistant.helpers.device_registry import DeviceInfo
6 from homeassistant.helpers.entity import EntityDescription
7 from homeassistant.helpers.update_coordinator import CoordinatorEntity
8 
9 from .const import DOMAIN
10 from .coordinator import (
11  FlumeDeviceConnectionUpdateCoordinator,
12  FlumeDeviceDataUpdateCoordinator,
13  FlumeNotificationDataUpdateCoordinator,
14 )
15 
16 
18  _FlumeCoordinatorT: FlumeDeviceDataUpdateCoordinator
19  | FlumeDeviceConnectionUpdateCoordinator
20  | FlumeNotificationDataUpdateCoordinator
21 ](CoordinatorEntity[_FlumeCoordinatorT]):
22  """Base entity class."""
23 
24  _attr_attribution = "Data provided by Flume API"
25  _attr_has_entity_name = True
26 
27  def __init__(
28  self,
29  coordinator: _FlumeCoordinatorT,
30  description: EntityDescription,
31  device_id: str,
32  location_name: str,
33  is_bridge: bool = False,
34  ) -> None:
35  """Class initializer."""
36  super().__init__(coordinator)
37  self.entity_description = description
38  self.device_id = device_id
39 
40  if is_bridge:
41  name = "Flume Bridge"
42  else:
43  name = "Flume Sensor"
44 
45  self._attr_unique_id = f"{description.key}_{device_id}"
46 
47  self._attr_device_info = DeviceInfo(
48  identifiers={(DOMAIN, device_id)},
49  manufacturer="Flume, Inc.",
50  model="Flume Smart Water Monitor",
51  name=f"{name} {location_name}",
52  configuration_url="https://portal.flumewater.com",
53  )
54 
55  async def async_added_to_hass(self) -> None:
56  """Request an update when added."""
57  await super().async_added_to_hass()
58  # We do not ask for an update with async_add_entities()
59  # because it will update disabled entities
60  await self.coordinator.async_request_refresh()
None __init__(self, _FlumeCoordinatorT coordinator, EntityDescription description, str device_id, str location_name, bool is_bridge=False)
Definition: entity.py:34