Add energy device class to deCONZ consumption sensors (#53731)
This commit is contained in:
parent
6d30e596ca
commit
edf0e0bd08
2 changed files with 9 additions and 1 deletions
|
@ -23,6 +23,7 @@ from homeassistant.const import (
|
|||
ATTR_TEMPERATURE,
|
||||
ATTR_VOLTAGE,
|
||||
DEVICE_CLASS_BATTERY,
|
||||
DEVICE_CLASS_ENERGY,
|
||||
DEVICE_CLASS_HUMIDITY,
|
||||
DEVICE_CLASS_ILLUMINANCE,
|
||||
DEVICE_CLASS_POWER,
|
||||
|
@ -40,6 +41,7 @@ from homeassistant.helpers.dispatcher import (
|
|||
async_dispatcher_connect,
|
||||
async_dispatcher_send,
|
||||
)
|
||||
from homeassistant.util import dt as dt_util
|
||||
|
||||
from .const import ATTR_DARK, ATTR_ON, NEW_SENSOR
|
||||
from .deconz_device import DeconzDevice
|
||||
|
@ -51,6 +53,7 @@ ATTR_DAYLIGHT = "daylight"
|
|||
ATTR_EVENT_ID = "event_id"
|
||||
|
||||
DEVICE_CLASS = {
|
||||
Consumption: DEVICE_CLASS_ENERGY,
|
||||
Humidity: DEVICE_CLASS_HUMIDITY,
|
||||
LightLevel: DEVICE_CLASS_ILLUMINANCE,
|
||||
Power: DEVICE_CLASS_POWER,
|
||||
|
@ -65,6 +68,7 @@ ICON = {
|
|||
}
|
||||
|
||||
STATE_CLASS = {
|
||||
Consumption: STATE_CLASS_MEASUREMENT,
|
||||
Humidity: STATE_CLASS_MEASUREMENT,
|
||||
Pressure: STATE_CLASS_MEASUREMENT,
|
||||
Temperature: STATE_CLASS_MEASUREMENT,
|
||||
|
@ -158,6 +162,9 @@ class DeconzSensor(DeconzDevice, SensorEntity):
|
|||
self._attr_state_class = STATE_CLASS.get(type(self._device))
|
||||
self._attr_unit_of_measurement = UNIT_OF_MEASUREMENT.get(type(self._device))
|
||||
|
||||
if device.type in Consumption.ZHATYPE:
|
||||
self._attr_last_reset = dt_util.utc_from_timestamp(0)
|
||||
|
||||
@callback
|
||||
def async_update_callback(self, force_update=False):
|
||||
"""Update the sensor's state."""
|
||||
|
|
|
@ -10,6 +10,7 @@ from homeassistant.config_entries import RELOAD_AFTER_UPDATE_DELAY
|
|||
from homeassistant.const import (
|
||||
ATTR_DEVICE_CLASS,
|
||||
DEVICE_CLASS_BATTERY,
|
||||
DEVICE_CLASS_ENERGY,
|
||||
DEVICE_CLASS_ILLUMINANCE,
|
||||
DEVICE_CLASS_POWER,
|
||||
DEVICE_CLASS_TEMPERATURE,
|
||||
|
@ -118,7 +119,7 @@ async def test_sensors(hass, aioclient_mock, mock_deconz_websocket):
|
|||
|
||||
consumption_sensor = hass.states.get("sensor.consumption_sensor")
|
||||
assert consumption_sensor.state == "0.002"
|
||||
assert ATTR_DEVICE_CLASS not in consumption_sensor.attributes
|
||||
assert consumption_sensor.attributes[ATTR_DEVICE_CLASS] == DEVICE_CLASS_ENERGY
|
||||
|
||||
assert not hass.states.get("sensor.clip_light_level_sensor")
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue