mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 05:07:41 +00:00
Add state class and last reset to consumption sensor in devolo Home Control (#53337)
* Add state class and last reset * Use STATE_CLASS_MEASUREMENT
This commit is contained in:
parent
24e07bc154
commit
c9c1c62d67
@ -12,6 +12,7 @@ from homeassistant.components.sensor import (
|
|||||||
DEVICE_CLASS_POWER,
|
DEVICE_CLASS_POWER,
|
||||||
DEVICE_CLASS_TEMPERATURE,
|
DEVICE_CLASS_TEMPERATURE,
|
||||||
DEVICE_CLASS_VOLTAGE,
|
DEVICE_CLASS_VOLTAGE,
|
||||||
|
STATE_CLASS_MEASUREMENT,
|
||||||
SensorEntity,
|
SensorEntity,
|
||||||
)
|
)
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
@ -167,6 +168,12 @@ class DevoloConsumptionEntity(DevoloMultiLevelDeviceEntity):
|
|||||||
self._sensor_type = consumption
|
self._sensor_type = consumption
|
||||||
self._device_class = DEVICE_CLASS_MAPPING.get(consumption)
|
self._device_class = DEVICE_CLASS_MAPPING.get(consumption)
|
||||||
|
|
||||||
|
if consumption == "total":
|
||||||
|
self._attr_state_class = STATE_CLASS_MEASUREMENT
|
||||||
|
self._attr_last_reset = device_instance.consumption_property[
|
||||||
|
element_uid
|
||||||
|
].total_since
|
||||||
|
|
||||||
self._value = getattr(
|
self._value = getattr(
|
||||||
device_instance.consumption_property[element_uid], consumption
|
device_instance.consumption_property[element_uid], consumption
|
||||||
)
|
)
|
||||||
@ -183,11 +190,15 @@ class DevoloConsumptionEntity(DevoloMultiLevelDeviceEntity):
|
|||||||
|
|
||||||
def _sync(self, message: tuple) -> None:
|
def _sync(self, message: tuple) -> None:
|
||||||
"""Update the consumption sensor state."""
|
"""Update the consumption sensor state."""
|
||||||
if message[0] == self._unique_id:
|
if message[0] == self._unique_id and message[2] != "total_since":
|
||||||
self._value = getattr(
|
self._value = getattr(
|
||||||
self._device_instance.consumption_property[self._unique_id],
|
self._device_instance.consumption_property[self._unique_id],
|
||||||
self._sensor_type,
|
self._sensor_type,
|
||||||
)
|
)
|
||||||
|
elif message[0] == self._unique_id and message[2] == "total_since":
|
||||||
|
self._attr_last_reset = self._device_instance.consumption_property[
|
||||||
|
self._unique_id
|
||||||
|
].total_since
|
||||||
else:
|
else:
|
||||||
self._generic_message(message)
|
self._generic_message(message)
|
||||||
self.schedule_update_ha_state()
|
self.schedule_update_ha_state()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user