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.

Todos los intents de smart home se encuentran en el espacio de nombres action.devices y debes proporcionar una respuesta para ellos. Cada vez que Google Assistant envía un intent a la respuesta, se pasa un token de acceso de OAuth 2 de terceros del usuario en el encabezado de autorización.

Estas son las smart home intents 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 intent action.devices.SYNC a tu entrega 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 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 incluye 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 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 solicitud de sincronización a Assistant. Esto envía la intención action.devices.SYNC a tu cumplimiento para sincronizar la lista de dispositivos y capacidades. Consulta Implementa Request Sync 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 de 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 del dispositivo, para responder una pregunta como Hey Google, ¿qué luces están encendidas en la cocina?, Assistant envía una intención action.devices.QUERY a tu entrega.

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 lámpara inteligente con un interruptor de luz 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 entrega recibe una intención action.devices.EXECUTE que describe la acción y los dispositivos en los que se debe realizar. 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

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