From ab6be2890a771e62ce56922afe6952488099b952 Mon Sep 17 00:00:00 2001 From: Luke Waite Date: Wed, 25 Aug 2021 04:02:53 -0400 Subject: [PATCH] Add statistics for emoncms power and energy feeds (#55109) --- homeassistant/components/emoncms/sensor.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/emoncms/sensor.py b/homeassistant/components/emoncms/sensor.py index 5180275b528..033f7878b5e 100644 --- a/homeassistant/components/emoncms/sensor.py +++ b/homeassistant/components/emoncms/sensor.py @@ -5,7 +5,12 @@ import logging import requests import voluptuous as vol -from homeassistant.components.sensor import PLATFORM_SCHEMA, SensorEntity +from homeassistant.components.sensor import ( + PLATFORM_SCHEMA, + STATE_CLASS_MEASUREMENT, + STATE_CLASS_TOTAL_INCREASING, + SensorEntity, +) from homeassistant.const import ( CONF_API_KEY, CONF_ID, @@ -13,6 +18,8 @@ from homeassistant.const import ( CONF_UNIT_OF_MEASUREMENT, CONF_URL, CONF_VALUE_TEMPLATE, + DEVICE_CLASS_ENERGY, + DEVICE_CLASS_POWER, HTTP_OK, POWER_WATT, STATE_UNKNOWN, @@ -149,6 +156,13 @@ class EmonCmsSensor(SensorEntity): self._sensorid = sensorid self._elem = elem + if unit_of_measurement == "kWh": + self._attr_device_class = DEVICE_CLASS_ENERGY + self._attr_state_class = STATE_CLASS_TOTAL_INCREASING + elif unit_of_measurement == "W": + self._attr_device_class = DEVICE_CLASS_POWER + self._attr_state_class = STATE_CLASS_MEASUREMENT + if self._value_template is not None: self._state = self._value_template.render_with_possible_json_value( elem["value"], STATE_UNKNOWN