Add state_class to relevant sensors in Danfoss Air (#54847)

Co-authored-by: Franck Nijhof <frenck@frenck.nl>
This commit is contained in:
Jonas Pedersen 2021-08-22 19:59:59 +02:00 committed by GitHub
parent da20552cd8
commit 2d34ebc506
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3,7 +3,7 @@ import logging
from pydanfossair.commands import ReadCommand from pydanfossair.commands import ReadCommand
from homeassistant.components.sensor import SensorEntity from homeassistant.components.sensor import STATE_CLASS_MEASUREMENT, SensorEntity
from homeassistant.const import ( from homeassistant.const import (
DEVICE_CLASS_BATTERY, DEVICE_CLASS_BATTERY,
DEVICE_CLASS_HUMIDITY, DEVICE_CLASS_HUMIDITY,
@ -27,52 +27,73 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
TEMP_CELSIUS, TEMP_CELSIUS,
ReadCommand.exhaustTemperature, ReadCommand.exhaustTemperature,
DEVICE_CLASS_TEMPERATURE, DEVICE_CLASS_TEMPERATURE,
STATE_CLASS_MEASUREMENT,
], ],
[ [
"Danfoss Air Outdoor Temperature", "Danfoss Air Outdoor Temperature",
TEMP_CELSIUS, TEMP_CELSIUS,
ReadCommand.outdoorTemperature, ReadCommand.outdoorTemperature,
DEVICE_CLASS_TEMPERATURE, DEVICE_CLASS_TEMPERATURE,
STATE_CLASS_MEASUREMENT,
], ],
[ [
"Danfoss Air Supply Temperature", "Danfoss Air Supply Temperature",
TEMP_CELSIUS, TEMP_CELSIUS,
ReadCommand.supplyTemperature, ReadCommand.supplyTemperature,
DEVICE_CLASS_TEMPERATURE, DEVICE_CLASS_TEMPERATURE,
STATE_CLASS_MEASUREMENT,
], ],
[ [
"Danfoss Air Extract Temperature", "Danfoss Air Extract Temperature",
TEMP_CELSIUS, TEMP_CELSIUS,
ReadCommand.extractTemperature, ReadCommand.extractTemperature,
DEVICE_CLASS_TEMPERATURE, DEVICE_CLASS_TEMPERATURE,
STATE_CLASS_MEASUREMENT,
], ],
[ [
"Danfoss Air Remaining Filter", "Danfoss Air Remaining Filter",
PERCENTAGE, PERCENTAGE,
ReadCommand.filterPercent, ReadCommand.filterPercent,
None, None,
None,
], ],
[ [
"Danfoss Air Humidity", "Danfoss Air Humidity",
PERCENTAGE, PERCENTAGE,
ReadCommand.humidity, ReadCommand.humidity,
DEVICE_CLASS_HUMIDITY, DEVICE_CLASS_HUMIDITY,
STATE_CLASS_MEASUREMENT,
],
["Danfoss Air Fan Step", PERCENTAGE, ReadCommand.fan_step, None, None],
[
"Danfoss Air Exhaust Fan Speed",
"RPM",
ReadCommand.exhaust_fan_speed,
None,
None,
],
[
"Danfoss Air Supply Fan Speed",
"RPM",
ReadCommand.supply_fan_speed,
None,
None,
], ],
["Danfoss Air Fan Step", PERCENTAGE, ReadCommand.fan_step, None],
["Danfoss Air Exhaust Fan Speed", "RPM", ReadCommand.exhaust_fan_speed, None],
["Danfoss Air Supply Fan Speed", "RPM", ReadCommand.supply_fan_speed, None],
[ [
"Danfoss Air Dial Battery", "Danfoss Air Dial Battery",
PERCENTAGE, PERCENTAGE,
ReadCommand.battery_percent, ReadCommand.battery_percent,
DEVICE_CLASS_BATTERY, DEVICE_CLASS_BATTERY,
None,
], ],
] ]
dev = [] dev = []
for sensor in sensors: for sensor in sensors:
dev.append(DanfossAir(data, sensor[0], sensor[1], sensor[2], sensor[3])) dev.append(
DanfossAir(data, sensor[0], sensor[1], sensor[2], sensor[3], sensor[4])
)
add_entities(dev, True) add_entities(dev, True)
@ -80,7 +101,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
class DanfossAir(SensorEntity): class DanfossAir(SensorEntity):
"""Representation of a Sensor.""" """Representation of a Sensor."""
def __init__(self, data, name, sensor_unit, sensor_type, device_class): def __init__(self, data, name, sensor_unit, sensor_type, device_class, state_class):
"""Initialize the sensor.""" """Initialize the sensor."""
self._data = data self._data = data
self._name = name self._name = name
@ -88,6 +109,7 @@ class DanfossAir(SensorEntity):
self._type = sensor_type self._type = sensor_type
self._unit = sensor_unit self._unit = sensor_unit
self._device_class = device_class self._device_class = device_class
self._attr_state_class = state_class
@property @property
def name(self): def name(self):