diff --git a/homeassistant/components/climate/device_trigger.py b/homeassistant/components/climate/device_trigger.py index 16f7aca3c28..0b0bedb49bb 100644 --- a/homeassistant/components/climate/device_trigger.py +++ b/homeassistant/components/climate/device_trigger.py @@ -174,7 +174,10 @@ async def async_get_trigger_capabilities( if trigger_type == "hvac_mode_changed": return { "extra_fields": vol.Schema( - {vol.Optional(CONF_FOR): cv.positive_time_period_dict} + { + vol.Required(state_trigger.CONF_TO): vol.In(const.HVAC_MODES), + vol.Optional(CONF_FOR): cv.positive_time_period_dict, + } ) } diff --git a/tests/components/climate/test_device_trigger.py b/tests/components/climate/test_device_trigger.py index 25e1a9d920d..00099538a6f 100644 --- a/tests/components/climate/test_device_trigger.py +++ b/tests/components/climate/test_device_trigger.py @@ -270,7 +270,23 @@ async def test_get_trigger_capabilities_hvac_mode(hass): assert voluptuous_serialize.convert( capabilities["extra_fields"], custom_serializer=cv.custom_serializer - ) == [{"name": "for", "optional": True, "type": "positive_time_period_dict"}] + ) == [ + { + "name": "to", + "options": [ + ("off", "off"), + ("heat", "heat"), + ("cool", "cool"), + ("heat_cool", "heat_cool"), + ("auto", "auto"), + ("dry", "dry"), + ("fan_only", "fan_only"), + ], + "required": True, + "type": "select", + }, + {"name": "for", "optional": True, "type": "positive_time_period_dict"}, + ] @pytest.mark.parametrize(