Add ability to set device class on knx sensor (#81278)
Add ability to set device class on sensor
This commit is contained in:
parent
5f1c92ce51
commit
8d50b05d0d
2 changed files with 21 additions and 7 deletions
|
@ -21,7 +21,11 @@ from homeassistant.components.cover import (
|
||||||
DEVICE_CLASSES_SCHEMA as COVER_DEVICE_CLASSES_SCHEMA,
|
DEVICE_CLASSES_SCHEMA as COVER_DEVICE_CLASSES_SCHEMA,
|
||||||
)
|
)
|
||||||
from homeassistant.components.number import NumberMode
|
from homeassistant.components.number import NumberMode
|
||||||
from homeassistant.components.sensor import CONF_STATE_CLASS, STATE_CLASSES_SCHEMA
|
from homeassistant.components.sensor import (
|
||||||
|
CONF_STATE_CLASS,
|
||||||
|
DEVICE_CLASSES_SCHEMA as SENSOR_DEVICE_CLASSES_SCHEMA,
|
||||||
|
STATE_CLASSES_SCHEMA,
|
||||||
|
)
|
||||||
from homeassistant.components.switch import (
|
from homeassistant.components.switch import (
|
||||||
DEVICE_CLASSES_SCHEMA as SWITCH_DEVICE_CLASSES_SCHEMA,
|
DEVICE_CLASSES_SCHEMA as SWITCH_DEVICE_CLASSES_SCHEMA,
|
||||||
)
|
)
|
||||||
|
@ -855,6 +859,7 @@ class SensorSchema(KNXPlatformSchema):
|
||||||
vol.Optional(CONF_STATE_CLASS): STATE_CLASSES_SCHEMA,
|
vol.Optional(CONF_STATE_CLASS): STATE_CLASSES_SCHEMA,
|
||||||
vol.Required(CONF_TYPE): sensor_type_validator,
|
vol.Required(CONF_TYPE): sensor_type_validator,
|
||||||
vol.Required(CONF_STATE_ADDRESS): ga_list_validator,
|
vol.Required(CONF_STATE_ADDRESS): ga_list_validator,
|
||||||
|
vol.Optional(CONF_DEVICE_CLASS): SENSOR_DEVICE_CLASSES_SCHEMA,
|
||||||
vol.Optional(CONF_ENTITY_CATEGORY): ENTITY_CATEGORIES_SCHEMA,
|
vol.Optional(CONF_ENTITY_CATEGORY): ENTITY_CATEGORIES_SCHEMA,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
|
@ -12,7 +12,13 @@ from homeassistant.components.sensor import (
|
||||||
DEVICE_CLASSES,
|
DEVICE_CLASSES,
|
||||||
SensorEntity,
|
SensorEntity,
|
||||||
)
|
)
|
||||||
from homeassistant.const import CONF_ENTITY_CATEGORY, CONF_NAME, CONF_TYPE, Platform
|
from homeassistant.const import (
|
||||||
|
CONF_DEVICE_CLASS,
|
||||||
|
CONF_ENTITY_CATEGORY,
|
||||||
|
CONF_NAME,
|
||||||
|
CONF_TYPE,
|
||||||
|
Platform,
|
||||||
|
)
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
from homeassistant.helpers.typing import ConfigType, StateType
|
from homeassistant.helpers.typing import ConfigType, StateType
|
||||||
|
@ -54,11 +60,14 @@ class KNXSensor(KnxEntity, SensorEntity):
|
||||||
def __init__(self, xknx: XKNX, config: ConfigType) -> None:
|
def __init__(self, xknx: XKNX, config: ConfigType) -> None:
|
||||||
"""Initialize of a KNX sensor."""
|
"""Initialize of a KNX sensor."""
|
||||||
super().__init__(_create_sensor(xknx, config))
|
super().__init__(_create_sensor(xknx, config))
|
||||||
self._attr_device_class = (
|
if device_class := config.get(CONF_DEVICE_CLASS):
|
||||||
self._device.ha_device_class()
|
self._attr_device_class = device_class
|
||||||
if self._device.ha_device_class() in DEVICE_CLASSES
|
else:
|
||||||
else None
|
self._attr_device_class = (
|
||||||
)
|
self._device.ha_device_class()
|
||||||
|
if self._device.ha_device_class() in DEVICE_CLASSES
|
||||||
|
else None
|
||||||
|
)
|
||||||
self._attr_force_update = self._device.always_callback
|
self._attr_force_update = self._device.always_callback
|
||||||
self._attr_entity_category = config.get(CONF_ENTITY_CATEGORY)
|
self._attr_entity_category = config.get(CONF_ENTITY_CATEGORY)
|
||||||
self._attr_unique_id = str(self._device.sensor_value.group_address_state)
|
self._attr_unique_id = str(self._device.sensor_value.group_address_state)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue