Los eventos son asíncronos y los administra Google Cloud Pub/Sub, en un solo tema por Project. Los eventos proporcionan actualizaciones para todos los dispositivos y estructuras, y la recepción de eventos está garantizada, siempre y cuando el usuario no revoque el token de acceso y los mensajes del evento no hayan vencido.
Los eventos son una función opcional de la API de SDM. Se pueden implementar y verificar con facilidad mediante tu proyecto de Google Cloud.
Habilitar eventos
Los eventos se pueden habilitar en Device Access Console. Selecciona tu proyecto en Console si aún no lo has hecho.
Si ya habilitaste eventos (por ejemplo, durante la creación de proyectos), el campo tema de Pub/Sub en la sección Información del proyecto ya debería tener un valor, llamado ID de tema, con el siguiente formato:
projects/sdm-prod/topics/enterprise-project-id
Si no habilitaste los eventos, haz lo siguiente:
- Haz clic en el ícono del tema de Pub/Sub y selecciona Editar.
- Marca Habilitar eventos y haz clic en Guardar.
- Se generará un ID de tema para ti en el formato que se muestra más arriba.
Copia el ID de tema, ya que lo necesitarás para crear una suscripción al tema para que se puedan recuperar los mensajes de eventos.
Crea una suscripción de extracción
En una suscripción de extracción, un suscriptor inicia solicitudes al servidor de Pub/Sub para los mensajes de eventos en cola. Esta es una forma rápida y sencilla de verificar que se generen eventos para tus dispositivos autorizados.
Abre Cloud Shell para tu proyecto de Google Cloud:
En la instrucción de Cloud Shell, ejecuta el siguiente comando para crear una suscripción de extracción a tu tema, con cualquier subscription-id que desees y tu ID de tema único:
gcloud pubsub subscriptions create subscription-id --topic=projects/sdm-prod/topics/enterprise-project-id
Created subscription [projects/gcp-project-name/subscriptions/subscription-id].
Cómo iniciar eventos
Para iniciar eventos por primera vez después de crear la suscripción a Pub/Sub, realiza una llamada para enumerar tus dispositivos como un activador único:
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'
Los eventos de todas las estructuras y dispositivos se publicarán después de esta llamada a la API.
Genera eventos
Los eventos se generan para todos los cambios en los campos de características, algunos son automáticos y otros manuales.
Por ejemplo, si cambia la temperatura ambiente cerca del Nest Thermostat, se enviará automáticamente un evento para el atributoTemperature con un nuevo valor de ambientTemperatureCelsius
.
Para generar uno de forma manual, haz lo siguiente:
- Cambiar físicamente el estado del dispositivo, como cambiar el modo del Nest Thermostat
- Activar un evento, como movimiento, persona o sonido en una Google Nest Cam Indoor
- Ejecuta un comando del dispositivo con la API de SDM.
Ver los mensajes
Los mensajes de eventos se pueden ver en tu proyecto de Google Cloud, en la sección Suscripciones a Pub/Sub:
Ir a Suscripciones de Google Cloud Pub/Sub
- Haz clic en el ID de suscripción que creaste antes.
- En la pantalla Detalles de la suscripción, deberías ver la actividad del gráfico Cantidad de mensajes no confirmados. Esto indica que se recibieron mensajes de eventos para tu suscripción. Si no ves ninguna actividad, espera un momento o genera algunos eventos más.
- Haz clic en VER MENSAJES para abrir el panel Mensajes.
- Haz clic en PULL para ver los mensajes. Deben corresponder a las acciones que usaste para generar eventos.
Los mensajes también se pueden ver en Cloud Shell con un comando pull
básico:
gcloud pubsub subscriptions pull subscription-id
Para obtener más información sobre los tipos de suscripción, así como los tipos de eventos que envía la API de SDM y cómo usarlos, consulta Eventos.
Administrar mensajes
Los mensajes deben confirmarse y purgarse con regularidad para mantener una suscripción limpia y evitar la entrega de mensajes duplicados a otros suscriptores. Todos los mensajes de suscripción se pueden purgar de forma manual en la sección Suscripciones de Pub/Sub:
Ve a Suscripciones de Pub/Sub de Google Cloud
- Haz clic en el ID de suscripción.
- Existen algunas formas de confirmar y purgar los datos:
- Haz clic en VER MENSAJES para abrir el panel Mensajes. Marca la casilla de verificación Habilitar mensajes de confirmación y haz clic en EXTRAER para ver y confirmar todos los mensajes.
- Haz clic en BORRAR MENSAJES para borrar definitivamente todos los mensajes existentes mediante su confirmación sin verlos. Haz clic en BORRAR para confirmar.
Los mensajes también se pueden borrar definitivamente en Cloud Shell mediante la marca --auto-ack
con
un comando pull
básico:
gcloud pubsub subscriptions pull subscription-id --auto-ack
Administrar las suscripciones
Las suscripciones se pueden configurar de diferentes maneras, como se describe en Cómo usar propiedades de suscripción.
Si bien puedes administrar las suscripciones y los mensajes como desees, para una aplicación de producción, te recomendamos que uses cuentas de servicio para la autenticación, en lugar de una cuenta de usuario como la que usaste hasta ahora en esta guía de inicio rápido. Una aplicación o máquina virtual usa una cuenta de servicio, no una persona, y tiene su clave de cuenta única.
Para obtener más información sobre la autenticación de cuentas de servicio con Device Access, consulta Eventos.