Add state class and last reset to consumption sensor in devolo Home Control (#53337)
* Add state class and last reset * Use STATE_CLASS_MEASUREMENTpull/53350/head
parent
24e07bc154
commit
c9c1c62d67
|
@ -12,6 +12,7 @@ from homeassistant.components.sensor import (
|
|||
DEVICE_CLASS_POWER,
|
||||
DEVICE_CLASS_TEMPERATURE,
|
||||
DEVICE_CLASS_VOLTAGE,
|
||||
STATE_CLASS_MEASUREMENT,
|
||||
SensorEntity,
|
||||
)
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
|
@ -167,6 +168,12 @@ class DevoloConsumptionEntity(DevoloMultiLevelDeviceEntity):
|
|||
self._sensor_type = 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(
|
||||
device_instance.consumption_property[element_uid], consumption
|
||||
)
|
||||
|
@ -183,11 +190,15 @@ class DevoloConsumptionEntity(DevoloMultiLevelDeviceEntity):
|
|||
|
||||
def _sync(self, message: tuple) -> None:
|
||||
"""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._device_instance.consumption_property[self._unique_id],
|
||||
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:
|
||||
self._generic_message(message)
|
||||
self.schedule_update_ha_state()
|
||||
|
|
Loading…
Reference in New Issue