Add support for state_class to MQTT sensor (#50927)

This commit is contained in:
Erik Montnemery 2021-05-21 17:37:26 +02:00 committed by GitHub
parent 6e087039f4
commit dc65f279a7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 58 additions and 1 deletions

View file

@ -7,7 +7,11 @@ import functools
import voluptuous as vol
from homeassistant.components import sensor
from homeassistant.components.sensor import DEVICE_CLASSES_SCHEMA, SensorEntity
from homeassistant.components.sensor import (
DEVICE_CLASSES_SCHEMA,
STATE_CLASSES_SCHEMA,
SensorEntity,
)
from homeassistant.const import (
CONF_DEVICE_CLASS,
CONF_FORCE_UPDATE,
@ -33,6 +37,7 @@ from .mixins import (
)
CONF_EXPIRE_AFTER = "expire_after"
CONF_STATE_CLASS = "state_class"
DEFAULT_NAME = "MQTT Sensor"
DEFAULT_FORCE_UPDATE = False
@ -42,6 +47,7 @@ PLATFORM_SCHEMA = mqtt.MQTT_RO_PLATFORM_SCHEMA.extend(
vol.Optional(CONF_EXPIRE_AFTER): cv.positive_int,
vol.Optional(CONF_FORCE_UPDATE, default=DEFAULT_FORCE_UPDATE): cv.boolean,
vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string,
vol.Optional(CONF_STATE_CLASS): STATE_CLASSES_SCHEMA,
vol.Optional(CONF_UNIT_OF_MEASUREMENT): cv.string,
}
).extend(MQTT_ENTITY_COMMON_SCHEMA.schema)
@ -173,6 +179,11 @@ class MqttSensor(MqttEntity, SensorEntity):
"""Return the device class of the sensor."""
return self._config.get(CONF_DEVICE_CLASS)
@property
def state_class(self) -> str | None:
"""Return the state class of the sensor."""
return self._config.get(CONF_STATE_CLASS)
@property
def available(self) -> bool:
"""Return true if the device is available and value has not expired."""