From c9c1c62d67929897de7897db6918887da3768fba Mon Sep 17 00:00:00 2001 From: Guido Schmitz Date: Thu, 22 Jul 2021 18:24:06 +0200 Subject: [PATCH] Add state class and last reset to consumption sensor in devolo Home Control (#53337) * Add state class and last reset * Use STATE_CLASS_MEASUREMENT --- .../components/devolo_home_control/sensor.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/devolo_home_control/sensor.py b/homeassistant/components/devolo_home_control/sensor.py index 0500fc72b0b..af67c6cd78a 100644 --- a/homeassistant/components/devolo_home_control/sensor.py +++ b/homeassistant/components/devolo_home_control/sensor.py @@ -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()