Home Assistant Unofficial Reference 2024.12.1
sensor.py
Go to the documentation of this file.
1 """Support for SRP Energy Sensor."""
2 
3 from __future__ import annotations
4 
6  SensorDeviceClass,
7  SensorEntity,
8  SensorStateClass,
9 )
10 from homeassistant.config_entries import ConfigEntry
11 from homeassistant.const import UnitOfEnergy
12 from homeassistant.core import HomeAssistant
13 from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
14 from homeassistant.helpers.entity_platform import AddEntitiesCallback
15 from homeassistant.helpers.typing import StateType
16 from homeassistant.helpers.update_coordinator import CoordinatorEntity
17 
18 from . import SRPEnergyDataUpdateCoordinator
19 from .const import DEVICE_CONFIG_URL, DEVICE_MANUFACTURER, DEVICE_MODEL, DOMAIN
20 
21 
23  hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
24 ) -> None:
25  """Set up the SRP Energy Usage sensor."""
26  coordinator: SRPEnergyDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
27 
28  async_add_entities([SrpEntity(coordinator, entry)])
29 
30 
31 class SrpEntity(CoordinatorEntity[SRPEnergyDataUpdateCoordinator], SensorEntity):
32  """Implementation of a Srp Energy Usage sensor."""
33 
34  _attr_attribution = "Powered by SRP Energy"
35  _attr_native_unit_of_measurement = UnitOfEnergy.KILO_WATT_HOUR
36  _attr_device_class = SensorDeviceClass.ENERGY
37  _attr_state_class = SensorStateClass.TOTAL_INCREASING
38  _attr_has_entity_name = True
39  _attr_translation_key = "energy_usage"
40 
41  def __init__(
42  self,
43  coordinator: SRPEnergyDataUpdateCoordinator,
44  config_entry: ConfigEntry,
45  ) -> None:
46  """Initialize the SrpEntity class."""
47  super().__init__(coordinator)
48  self._attr_unique_id_attr_unique_id = f"{config_entry.entry_id}_total_usage"
49  self._attr_device_info_attr_device_info = DeviceInfo(
50  identifiers={(DOMAIN, config_entry.entry_id)},
51  name=f"SRP Energy {config_entry.title}",
52  entry_type=DeviceEntryType.SERVICE,
53  manufacturer=DEVICE_MANUFACTURER,
54  model=DEVICE_MODEL,
55  configuration_url=DEVICE_CONFIG_URL,
56  )
57 
58  @property
59  def native_value(self) -> StateType:
60  """Return the state of the device."""
61  return self.coordinator.data
None __init__(self, SRPEnergyDataUpdateCoordinator coordinator, ConfigEntry config_entry)
Definition: sensor.py:45
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)
Definition: sensor.py:24