diff --git a/homeassistant/components/zwave_js/device_condition.py b/homeassistant/components/zwave_js/device_condition.py index b419230a0bd..4ae8142ec9e 100644 --- a/homeassistant/components/zwave_js/device_condition.py +++ b/homeassistant/components/zwave_js/device_condition.py @@ -197,7 +197,10 @@ async def async_get_condition_capabilities( "extra_fields": vol.Schema( { vol.Required(ATTR_COMMAND_CLASS): vol.In( - {cc.value: cc.name for cc in CommandClass} + { + CommandClass(cc.id).value: CommandClass(cc.id).name + for cc in sorted(node.command_classes, key=lambda cc: cc.name) # type: ignore[no-any-return] + } ), vol.Required(ATTR_PROPERTY): cv.string, vol.Optional(ATTR_PROPERTY_KEY): cv.string, diff --git a/tests/components/zwave_js/test_device_condition.py b/tests/components/zwave_js/test_device_condition.py index eef672c4c5b..0256981a726 100644 --- a/tests/components/zwave_js/test_device_condition.py +++ b/tests/components/zwave_js/test_device_condition.py @@ -430,7 +430,18 @@ async def test_get_condition_capabilities_value( ) assert capabilities and "extra_fields" in capabilities - cc_options = [(cc.value, cc.name) for cc in CommandClass] + cc_options = [ + (133, "ASSOCIATION"), + (128, "BATTERY"), + (112, "CONFIGURATION"), + (98, "DOOR_LOCK"), + (122, "FIRMWARE_UPDATE_MD"), + (114, "MANUFACTURER_SPECIFIC"), + (113, "ALARM"), + (152, "SECURITY"), + (99, "USER_CODE"), + (134, "VERSION"), + ] assert voluptuous_serialize.convert( capabilities["extra_fields"], custom_serializer=cv.custom_serializer