developers.home-assistant/docs/intent_firing.md

1.9 KiB

title
Firing intents

When you fire an intent, you will get a response back or an error will be raised. It is up to the component to return the result to the user.

Example code to handle an intent in Home Assistant.

from homeassistant.helpers import intent

intent_type = "TurnLightOn"
slots = {"entity": {"value": "Kitchen"}}

try:
    intent_response = yield from intent.async_handle(
        hass, "example_component", intent_type, slots
    )

except intent.UnknownIntent as err:
    _LOGGER.warning("Received unknown intent %s", intent_type)

except intent.InvalidSlotInfo as err:
    _LOGGER.error("Received invalid slot data: %s", err)

except intent.IntentError:
    _LOGGER.exception("Error handling request for %s", intent_type)

The intent response is an instance of homeassistant.helpers.intent.IntentResponse.

Name Type Description
intent Intent Instance of intent that triggered response.
speech Dictionary Speech responses. Each key is a type. Allowed types are plain and ssml.
reprompt Dictionary Reprompt responses. Each key is a type. Allowed types are plain and ssml.
This is used to keep the session open when a response is required from the user. In these cases, speech usually is a question.
card Dictionary Card responses. Each key is a type.

Speech dictionary values:

Name Type Description
speech String The text to say
extra_data Any Extra information related to this speech.

Reprompt dictionary values:

Name Type Description
reprompt String The text to say when user takes too long to respond
extra_data Any Extra information related to this speech.

Card dictionary values:

Name Type Description
title String The title of the card
content Any The content of the card