diff --git a/homeassistant/components/knx/schema.py b/homeassistant/components/knx/schema.py index 885fe4a177f..d559cd2005a 100644 --- a/homeassistant/components/knx/schema.py +++ b/homeassistant/components/knx/schema.py @@ -191,7 +191,7 @@ class KNXPlatformSchema(ABC): """Voluptuous schema for KNX platform entity configuration.""" PLATFORM: ClassVar[Platform | str] - ENTITY_SCHEMA: ClassVar[vol.Schema] + ENTITY_SCHEMA: ClassVar[vol.Schema | vol.All | vol.Any] @classmethod def platform_node(cls) -> dict[vol.Optional, vol.All]: @@ -445,18 +445,6 @@ class CoverSchema(KNXPlatformSchema): DEFAULT_NAME = "KNX Cover" ENTITY_SCHEMA = vol.All( - vol.Schema( - { - vol.Required( - vol.Any(CONF_MOVE_LONG_ADDRESS, CONF_POSITION_ADDRESS), - msg=( - f"At least one of '{CONF_MOVE_LONG_ADDRESS}' or" - f" '{CONF_POSITION_ADDRESS}' is required." - ), - ): object, - }, - extra=vol.ALLOW_EXTRA, - ), vol.Schema( { vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, @@ -480,6 +468,20 @@ class CoverSchema(KNXPlatformSchema): vol.Optional(CONF_ENTITY_CATEGORY): ENTITY_CATEGORIES_SCHEMA, } ), + vol.Any( + vol.Schema( + {vol.Required(CONF_MOVE_LONG_ADDRESS): object}, + extra=vol.ALLOW_EXTRA, + ), + vol.Schema( + {vol.Required(CONF_POSITION_ADDRESS): object}, + extra=vol.ALLOW_EXTRA, + ), + msg=( + f"At least one of '{CONF_MOVE_LONG_ADDRESS}' or" + f" '{CONF_POSITION_ADDRESS}' is required." + ), + ), )