diff --git a/homeassistant/components/knx/cover.py b/homeassistant/components/knx/cover.py index c677b12c0ee..b88b1cfe86a 100644 --- a/homeassistant/components/knx/cover.py +++ b/homeassistant/components/knx/cover.py @@ -5,6 +5,7 @@ from homeassistant.components.cover import ( ATTR_POSITION, ATTR_TILT_POSITION, DEVICE_CLASS_BLIND, + DEVICE_CLASSES, SUPPORT_CLOSE, SUPPORT_OPEN, SUPPORT_SET_POSITION, @@ -47,6 +48,8 @@ class KNXCover(KnxEntity, CoverEntity): @property def device_class(self): """Return the class of this device, from component DEVICE_CLASSES.""" + if self._device.device_class in DEVICE_CLASSES: + return self._device.device_class if self._device.supports_angle: return DEVICE_CLASS_BLIND return None diff --git a/homeassistant/components/knx/factory.py b/homeassistant/components/knx/factory.py index 6da2b73cd6a..385b7c009ed 100644 --- a/homeassistant/components/knx/factory.py +++ b/homeassistant/components/knx/factory.py @@ -82,6 +82,7 @@ def _create_cover(knx_module: XKNX, config: ConfigType) -> XknxCover: travel_time_up=config[CoverSchema.CONF_TRAVELLING_TIME_UP], invert_position=config[CoverSchema.CONF_INVERT_POSITION], invert_angle=config[CoverSchema.CONF_INVERT_ANGLE], + device_class=config.get(CONF_DEVICE_CLASS), ) diff --git a/homeassistant/components/knx/manifest.json b/homeassistant/components/knx/manifest.json index 4055048fd2d..6b253c2a010 100644 --- a/homeassistant/components/knx/manifest.json +++ b/homeassistant/components/knx/manifest.json @@ -2,7 +2,7 @@ "domain": "knx", "name": "KNX", "documentation": "https://www.home-assistant.io/integrations/knx", - "requirements": ["xknx==0.15.3"], + "requirements": ["xknx==0.15.4"], "codeowners": ["@Julius2342", "@farmio", "@marvin-w"], "quality_scale": "silver" } diff --git a/homeassistant/components/knx/schema.py b/homeassistant/components/knx/schema.py index cbf06925163..c17667cbed2 100644 --- a/homeassistant/components/knx/schema.py +++ b/homeassistant/components/knx/schema.py @@ -77,6 +77,7 @@ class CoverSchema: ): cv.positive_int, vol.Optional(CONF_INVERT_POSITION, default=False): cv.boolean, vol.Optional(CONF_INVERT_ANGLE, default=False): cv.boolean, + vol.Optional(CONF_DEVICE_CLASS): cv.string, } ) diff --git a/requirements_all.txt b/requirements_all.txt index 5e2d832f247..bd8f81da42f 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -2307,7 +2307,7 @@ xboxapi==2.0.1 xfinity-gateway==0.0.4 # homeassistant.components.knx -xknx==0.15.3 +xknx==0.15.4 # homeassistant.components.bluesound # homeassistant.components.rest