Intents

Los intents de casa inteligente son objetos de mensajes simples que describen qué acción de smart home realizar, como encender una luz o transmitir audio a una bocina.

Todos los intents smart home están contenidos en el espacio de nombres action.devices y debes proporcionarles entregas. Cada vez que Google Assistant envía un intent a la entrega, se pasa el token de acceso de OAuth 2 de terceros de un usuario en el encabezado de autorización.

Estos son los intents smart home compatibles:

SINCRONIZAR

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

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 un intent action.devices.SYNC a tu entrega para recuperar la lista inicial de dispositivos y capacidades de usuario de tu infraestructura de nube.

En esta figura, se muestra la interacción entre la infraestructura de Google y la del socio. En la infraestructura de Google, hay una lista de socios disponibles 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 lado del socio es la vista web de configuración del socio, la vista web de OAuth, las condiciones de configuración y las condiciones opcionales, y los servicios de la nube del socio. La infraestructura del socio muestra las credenciales de OAuth a la app cliente de Asistente. Los servicios en la nube del socio envían los dispositivos y las capacidades disponibles a los servicios de Asistente, que luego almacenan la información en Home Graph.
Figura 1: Interacción entre la infraestructura de Google y del socio

Para evitar desvincular y volver a vincular la cuenta de un usuario, puedes enviar una solicitud de sincronización a Assistant. De esta manera, se envía el intent action.devices.SYNC a tu entrega para sincronizar la lista de dispositivos y capacidades. Consulta Cómo implementar la sincronización de solicitudes para obtener más información.

Diagrama de flujo de un intent SYNC
Figura 2: Intent SYNC

Durante la configuración de la entrega local, la plataforma de la página principal local verifica la respuesta SYNC de la entrega en la nube de tu Acción smart home. Si quieres obtener más información para modificar tu respuesta SYNC a fin de admitir la entrega local, consulta Cómo actualizar la respuesta SYNC en la entrega en la nube.

CONSULTA

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 preguntas como Hey Google, ¿qué luces están encendidas en la cocina?, Assistant envía un intent action.devices.QUERY a tu entrega.

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

Para obtener la mejor experiencia del usuario, debes implementar el Estado de informe 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: Informa el estado del dispositivo

EJECUTAR

El intent 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 un intent action.devices.EXECUTE que describe la acción y los dispositivos sobre los que se debe actuar. 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 EJECUTAR

DESCONECTAR

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