Suscríbete a eventos

Los eventos son asíncronos y Google Cloud Pub/Sub los administra en un solo tema por Project. Los eventos proporcionan actualizaciones para todos los dispositivos y estructuras, y se garantiza la recepción de eventos siempre que el usuario no revoque el token de acceso y los mensajes de 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 la Device Access consola. Selecciona tu proyecto en Console si aún no lo has hecho.

Ir a la Device Access consola

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, en el siguiente formato:

projects/sdm-prod/topics/enterprise-project-id

Si no habilitaste los eventos, haz lo siguiente:

  1. Haz clic en el ícono del tema de Pub/Sub y selecciona Editar.
  2. Marca Habilitar eventos y haz clic en Guardar.
  3. Se genera un ID de tema para ti en el formato que se muestra arriba.

Copia el ID del tema, ya que lo necesitarás para crear una suscripción al tema, de modo 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 enviar mensajes de eventos en cola. Esta es una forma rápida y fácil de verificar que se generen eventos para tus dispositivos autorizados.

Abre Cloud Shell para tu proyecto de Google Cloud:

Ir a Google Cloud Shell

En el mensaje de Cloud Shell, ejecuta el siguiente comando para crear una suscripción de extracción a tu tema, con el subscription-id que desees y tu ID único del tema:

gcloud pubsub subscriptions create subscription-id --topic=projects/sdm-prod/topics/enterprise-project-id
Created subscription [projects/gcp-project-name/subscriptions/subscription-id].

Inicia 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 para todas las estructuras y los 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 de tu Nest Thermostat, se enviará automáticamente un evento correspondiente a la característicaTemperatura con un nuevo valor ambientTemperatureCelsius.

Sigue uno de estos pasos para generar uno de forma manual:

  1. Cambiar físicamente el estado de tu dispositivo, por ejemplo, cambiar el modo de tu Nest Thermostat.
  2. Activa un evento, como un movimiento, una persona o un sonido, en una Google Nest Cam Indoor.
  3. Ejecuta un comando de dispositivo con la API de SDM.

Visualiza los mensajes

Los mensajes de eventos se pueden ver en tu proyecto de Google Cloud, en la sección Suscripciones de Pub/Sub:

Ir a Suscripciones de Google Cloud Pub/Sub

  1. Haz clic en el ID de suscripción que creaste anteriormente.
  2. En la pantalla Subscription details, deberías ver la actividad en el gráfico Unacked message count. Esto indica que llegaron mensajes de eventos para tu suscripción. Si no ves ninguna actividad, espera un momento o genera algunos eventos más.
  3. Haz clic en VER MENSAJES para abrir el panel Mensajes.
  4. 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 se deben confirmar y borrar definitivamente para mantener una suscripción limpia y evitar la entrega de mensajes duplicados a otros suscriptores. Todos los mensajes de suscripción se pueden borrar definitivamente de forma manual en la sección Suscripciones de Pub/Sub:

Ir a Suscripciones de Google Cloud Pub/Sub

  1. Haz clic en el ID de la suscripción.
  2. Existen varias formas de reconocerlo y borrarlos definitivamente:
    1. Haz clic en VER MENSAJES para abrir el panel Mensajes. Marca la casilla de verificación Habilitar mensajes confirmados y haz clic en PULL para ver y confirmar todos los mensajes.
    2. Haz clic en PURGE MENSAJES para que se borren definitivamente todos los mensajes existentes aceptándolos sin verlos. Haz clic en PURGE 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 varias maneras, como se describe en Cómo usar las propiedades de suscripción.

Si bien tú decides cómo administrar las suscripciones y los mensajes, en el caso de 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 tienes 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 la cuenta de servicio con Device Access, consulta Eventos.