mirror of
https://github.com/home-assistant/core.git
synced 2025-07-24 21:57:51 +00:00
Add energy device class to deCONZ consumption sensors (#53731)
This commit is contained in:
parent
6d30e596ca
commit
edf0e0bd08
@ -23,6 +23,7 @@ from homeassistant.const import (
|
|||||||
ATTR_TEMPERATURE,
|
ATTR_TEMPERATURE,
|
||||||
ATTR_VOLTAGE,
|
ATTR_VOLTAGE,
|
||||||
DEVICE_CLASS_BATTERY,
|
DEVICE_CLASS_BATTERY,
|
||||||
|
DEVICE_CLASS_ENERGY,
|
||||||
DEVICE_CLASS_HUMIDITY,
|
DEVICE_CLASS_HUMIDITY,
|
||||||
DEVICE_CLASS_ILLUMINANCE,
|
DEVICE_CLASS_ILLUMINANCE,
|
||||||
DEVICE_CLASS_POWER,
|
DEVICE_CLASS_POWER,
|
||||||
@ -40,6 +41,7 @@ from homeassistant.helpers.dispatcher import (
|
|||||||
async_dispatcher_connect,
|
async_dispatcher_connect,
|
||||||
async_dispatcher_send,
|
async_dispatcher_send,
|
||||||
)
|
)
|
||||||
|
from homeassistant.util import dt as dt_util
|
||||||
|
|
||||||
from .const import ATTR_DARK, ATTR_ON, NEW_SENSOR
|
from .const import ATTR_DARK, ATTR_ON, NEW_SENSOR
|
||||||
from .deconz_device import DeconzDevice
|
from .deconz_device import DeconzDevice
|
||||||
@ -51,6 +53,7 @@ ATTR_DAYLIGHT = "daylight"
|
|||||||
ATTR_EVENT_ID = "event_id"
|
ATTR_EVENT_ID = "event_id"
|
||||||
|
|
||||||
DEVICE_CLASS = {
|
DEVICE_CLASS = {
|
||||||
|
Consumption: DEVICE_CLASS_ENERGY,
|
||||||
Humidity: DEVICE_CLASS_HUMIDITY,
|
Humidity: DEVICE_CLASS_HUMIDITY,
|
||||||
LightLevel: DEVICE_CLASS_ILLUMINANCE,
|
LightLevel: DEVICE_CLASS_ILLUMINANCE,
|
||||||
Power: DEVICE_CLASS_POWER,
|
Power: DEVICE_CLASS_POWER,
|
||||||
@ -65,6 +68,7 @@ ICON = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
STATE_CLASS = {
|
STATE_CLASS = {
|
||||||
|
Consumption: STATE_CLASS_MEASUREMENT,
|
||||||
Humidity: STATE_CLASS_MEASUREMENT,
|
Humidity: STATE_CLASS_MEASUREMENT,
|
||||||
Pressure: STATE_CLASS_MEASUREMENT,
|
Pressure: STATE_CLASS_MEASUREMENT,
|
||||||
Temperature: 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_state_class = STATE_CLASS.get(type(self._device))
|
||||||
self._attr_unit_of_measurement = UNIT_OF_MEASUREMENT.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
|
@callback
|
||||||
def async_update_callback(self, force_update=False):
|
def async_update_callback(self, force_update=False):
|
||||||
"""Update the sensor's state."""
|
"""Update the sensor's state."""
|
||||||
|
@ -10,6 +10,7 @@ from homeassistant.config_entries import RELOAD_AFTER_UPDATE_DELAY
|
|||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
ATTR_DEVICE_CLASS,
|
ATTR_DEVICE_CLASS,
|
||||||
DEVICE_CLASS_BATTERY,
|
DEVICE_CLASS_BATTERY,
|
||||||
|
DEVICE_CLASS_ENERGY,
|
||||||
DEVICE_CLASS_ILLUMINANCE,
|
DEVICE_CLASS_ILLUMINANCE,
|
||||||
DEVICE_CLASS_POWER,
|
DEVICE_CLASS_POWER,
|
||||||
DEVICE_CLASS_TEMPERATURE,
|
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")
|
consumption_sensor = hass.states.get("sensor.consumption_sensor")
|
||||||
assert consumption_sensor.state == "0.002"
|
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")
|
assert not hass.states.get("sensor.clip_light_level_sensor")
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user