Add required features to vacuum intents (#151581)

This commit is contained in:
Michael Hansen
2025-09-02 14:10:31 -05:00
committed by GitHub
parent fa0f707872
commit a023dfc013
3 changed files with 29 additions and 7 deletions

View File

@@ -3,7 +3,7 @@
from homeassistant.core import HomeAssistant
from homeassistant.helpers import intent
from . import DOMAIN, SERVICE_RETURN_TO_BASE, SERVICE_START
from . import DOMAIN, SERVICE_RETURN_TO_BASE, SERVICE_START, VacuumEntityFeature
INTENT_VACUUM_START = "HassVacuumStart"
INTENT_VACUUM_RETURN_TO_BASE = "HassVacuumReturnToBase"
@@ -20,6 +20,7 @@ async def async_setup_intents(hass: HomeAssistant) -> None:
description="Starts a vacuum",
required_domains={DOMAIN},
platforms={DOMAIN},
required_features=VacuumEntityFeature.START,
),
)
intent.async_register(
@@ -31,5 +32,6 @@ async def async_setup_intents(hass: HomeAssistant) -> None:
description="Returns a vacuum to base",
required_domains={DOMAIN},
platforms={DOMAIN},
required_features=VacuumEntityFeature.RETURN_HOME,
),
)

View File

@@ -212,7 +212,14 @@ async def test_vacuum_intents(
await vaccum_intent.async_setup_intents(hass)
entity_id = f"{vacuum.DOMAIN}.rover"
hass.states.async_set(entity_id, STATE_CLOSED)
hass.states.async_set(
entity_id,
STATE_CLOSED,
{
ATTR_SUPPORTED_FEATURES: vacuum.VacuumEntityFeature.START
| vacuum.VacuumEntityFeature.RETURN_HOME
},
)
async_expose_entity(hass, conversation.DOMAIN, entity_id, True)
# start

View File

@@ -4,9 +4,10 @@ from homeassistant.components.vacuum import (
DOMAIN,
SERVICE_RETURN_TO_BASE,
SERVICE_START,
VacuumEntityFeature,
intent as vacuum_intent,
)
from homeassistant.const import STATE_IDLE
from homeassistant.const import ATTR_SUPPORTED_FEATURES, STATE_IDLE
from homeassistant.core import HomeAssistant
from homeassistant.helpers import intent
@@ -18,7 +19,9 @@ async def test_start_vacuum_intent(hass: HomeAssistant) -> None:
await vacuum_intent.async_setup_intents(hass)
entity_id = f"{DOMAIN}.test_vacuum"
hass.states.async_set(entity_id, STATE_IDLE)
hass.states.async_set(
entity_id, STATE_IDLE, {ATTR_SUPPORTED_FEATURES: VacuumEntityFeature.START}
)
calls = async_mock_service(hass, DOMAIN, SERVICE_START)
response = await intent.async_handle(
@@ -42,7 +45,9 @@ async def test_start_vacuum_without_name(hass: HomeAssistant) -> None:
await vacuum_intent.async_setup_intents(hass)
entity_id = f"{DOMAIN}.test_vacuum"
hass.states.async_set(entity_id, STATE_IDLE)
hass.states.async_set(
entity_id, STATE_IDLE, {ATTR_SUPPORTED_FEATURES: VacuumEntityFeature.START}
)
calls = async_mock_service(hass, DOMAIN, SERVICE_START)
response = await intent.async_handle(
@@ -63,7 +68,11 @@ async def test_stop_vacuum_intent(hass: HomeAssistant) -> None:
await vacuum_intent.async_setup_intents(hass)
entity_id = f"{DOMAIN}.test_vacuum"
hass.states.async_set(entity_id, STATE_IDLE)
hass.states.async_set(
entity_id,
STATE_IDLE,
{ATTR_SUPPORTED_FEATURES: VacuumEntityFeature.RETURN_HOME},
)
calls = async_mock_service(hass, DOMAIN, SERVICE_RETURN_TO_BASE)
response = await intent.async_handle(
@@ -87,7 +96,11 @@ async def test_stop_vacuum_without_name(hass: HomeAssistant) -> None:
await vacuum_intent.async_setup_intents(hass)
entity_id = f"{DOMAIN}.test_vacuum"
hass.states.async_set(entity_id, STATE_IDLE)
hass.states.async_set(
entity_id,
STATE_IDLE,
{ATTR_SUPPORTED_FEATURES: VacuumEntityFeature.RETURN_HOME},
)
calls = async_mock_service(hass, DOMAIN, SERVICE_RETURN_TO_BASE)
response = await intent.async_handle(