Intents

Los intents para la casa inteligente son objetos de mensajería simples que describen qué integración de Cloud-to-cloud se debe realizar, como encender una luz o transmitir audio a una bocina.

Todas las acciones de smart home se encuentran en el espacio de nombres action.devices, y debes proporcionar una respuesta para ellas. Cada vez que Google Assistant envía un intent a la función de cumplimiento, se pasa el token de acceso de OAuth 2 de terceros de un usuario en el encabezado de autorización.

Estos son los intents de smart home compatibles:

SINCRONIZAR

El intent action.devices.SYNC se usa para solicitar la lista de dispositivos smart home que el usuario conectó y que están disponibles para su uso.

Cuando un usuario configura sus dispositivos con Google Home app (GHA), también se autentica en tu infraestructura de nube. Luego, Assistant recibe un token de OAuth2. En este punto, Assistant envía una intención action.devices.SYNC a tu cumplimiento para recuperar la lista inicial de dispositivos y capacidades del usuario de tu infraestructura de nube.

En esta figura, se muestra la interacción entre la infraestructura de Google y la infraestructura del socio. Desde la infraestructura de Google, hay una
    lista de socios que está disponible para la app cliente del Asistente, que luego
    fluye a la infraestructura del socio para completar la autenticación de OAuth. La autenticación de OAuth del socio es la WebView de configuración del socio, la WebView de OAuth, la configuración y las condiciones opcionales, y los servicios en la nube del socio. La infraestructura del socio y, luego, devuelve las credenciales de OAuth a la app cliente del Asistente. Los servicios en la nube del socio envían los dispositivos y las capacidades disponibles a los servicios del Asistente, que luego almacenan la información en Home Graph.
Figura 1: Interacción entre la infraestructura de Google y la del socio

Para evitar desvincular y volver a vincular la cuenta de un usuario, puedes enviar una sincronización de solicitudes a Assistant. Esto envía la intención action.devices.SYNC a tu cumplimiento para sincronizar la lista de dispositivos y capacidades. Consulta Implementa la sincronización de solicitudes para obtener más información.

Diagrama de flujo de un intent de SYNC
Figura 2: Intención de SYNC

Durante la configuración de la entrega local, la plataforma de Local Home verifica la respuesta SYNC de la entrega en la nube de tu acción smart home. Para obtener más información sobre cómo modificar tu respuesta SYNC para admitir la entrega local, consulta Actualiza la respuesta de SYNC en la entrega en la nube.

QUERY

El intent action.devices.QUERY se usa para consultar el estado actual de los dispositivos smart home.

Cuando los usuarios consultan el estado de los dispositivos, para responder una pregunta como Hey Google, ¿qué luces están encendidas en la cocina? Assistant envía un intent action.devices.QUERY a tu cumplimiento.

Diagrama de flujo de un intent QUERY
Figura 3: Intent QUERY

Para brindar la mejor experiencia del usuario, debes implementar Report State para informar de forma proactiva el estado actual de los dispositivos de un usuario directamente a Google Home Graph. Por ejemplo, esto le permite a Assistant saber si el usuario encendió una luz inteligente con un interruptor físico.

Cómo informar el estado del dispositivo con Report State
Figura 4: Informe del estado del dispositivo

EJECUTAR

La intención action.devices.EXECUTE se usa para proporcionar comandos que se ejecutarán en dispositivos smart home.

Cuando los usuarios envían comandos a dispositivos con Assistant, tu fulfillment recibe un intent action.devices.EXECUTE que describe la acción y los dispositivos en los que se debe realizar la acción. Un usuario puede ejecutar una acción en un dispositivo con un comando como Hey Google, enciende las luces de la sala de estar.

Diagrama de flujo de un intent EXECUTE
Figura 5: Intent EXECUTE

DESCONECTAR

El intent action.devices.DISCONNECT se activa para informarte cuando un usuario desvinculó la cuenta de la app de Assistant. Después de recibir una intención action.devices.DISCONNECT, no debes informar el estado de los dispositivos de este usuario.