S'abonner aux événements

Les événements sont asynchrones et gérés par Google Cloud Pub/Sub, dans un seul sujet par ProjectLes événements fournissent des mises à jour pour tous les appareils et toutes les structures. La réception des événements est à condition que le jeton d'accès ne soit pas révoqué par l'utilisateur et que les messages d'événement n'aient pas est arrivé à expiration.

Les événements sont une fonctionnalité facultative de l'API SDM. Ils peuvent peuvent être facilement implémentés et validés à l'aide de votre projet.

Activer les événements

Vous pouvez activer les événements dans la Device Access console. Sélectionnez votre projet dans le champ de la console Google Cloud, si ce n'est pas déjà fait.

Accéder à la Device Access console

Si vous avez déjà activé les événements (par exemple, pendant les événements création), Le champ Sujet Pub/Sub de la section Informations sur le projet doit déjà comporter un appelée ID du sujet, au format suivant:

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

Si vous n'avez pas activé les événements:

  1. Cliquez sur l'icône pour Pub/Sub sujet, puis sélectionnez Modifier.
  2. Cochez Activer les événements, puis cliquez sur Enregistrer.
  3. Un ID de sujet est généré automatiquement, au format indiqué ci-dessus.

Copiez l'ID du sujet. Vous en aurez besoin pour créer un abonnement associé au sujet. les messages d'événement peuvent être récupérés.

Créer un abonnement pull

Un abonnement pull permet à un abonné de lancer des requêtes au service pour les messages d'événement mis en file d'attente. Il s'agit d'un moyen simple et rapide de vérifier que sont générés pour vos appareils autorisés.

Ouvrez Cloud Shell pour votre projet Google Cloud:

Accéder à Google Cloud Shell

Lorsque Cloud Shell vous y invite, exécutez la commande suivante pour créer une session d'extraction abonnement à votre sujet, en utilisant les subscription-id de votre choix et votre ID de sujet unique:

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

Lancer des événements

Pour lancer des événements pour la première fois une fois l'abonnement Pub/Sub créez, effectuez un appel pour lister vos appareils en tant que déclencheur unique:

curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer access-token'

Les événements pour toutes les structures et tous les appareils seront publiés après cet appel d'API.

Générer des événements

Des événements sont générés pour toutes les modifications des champs de caractéristiques, dont certaines sont automatiques. quelques manuels.

Par exemple, si la température ambiante est proche de Modifications apportées au thermostat Nest, un événement La caractéristique detempérature sera automatiquement envoyé avec une nouvelle valeur ambientTemperatureCelsius.

Pour en générer manuellement un, vous avez deux possibilités:

  1. Modifier physiquement l'état de l'appareil, par exemple en changeant le mode votre thermostat Nest.
  2. déclencher un événement, tel qu'un mouvement, une personne ou un son, sur une Google Nest Cam Indoor.
  3. Exécuter une commande d'appareil à l'aide de l'API SDM.

Consulter les messages

Vous pouvez consulter les messages d'événement dans votre projet Google Cloud, dans la Section "Abonnements Pub/Sub" :

Accéder à la page "Abonnements Google Cloud Pub/Sub"

  1. Cliquez sur l'ID d'abonnement que vous avez créé précédemment.
  2. Sur l'écran Détails de l'abonnement, vous devriez voir l'activité relative à Graphique du nombre de messages non confirmés. Cela signifie que des messages d'événement pour votre abonnement. Si vous ne voyez aucune activité, patientez un peu ou générer d'autres événements.
  3. Cliquez sur AFFICHER LES MESSAGES pour afficher le panneau Messages.
  4. Cliquez sur TIRER pour afficher les messages. Ils doivent correspondre aux actions que vous avez utilisés pour générer des événements.

Vous pouvez également afficher les messages dans Cloud Shell à l'aide d'une commande pull de base:

gcloud pubsub subscriptions pull subscription-id

Pour en savoir plus sur les types d'abonnements et les types d'événements envoyés par l'API SDM et comment les utiliser, consultez Événements :

Gérer les messages

Les messages doivent être régulièrement confirmés et supprimés définitivement pour conserver un abonnement nettoyer et éviter la distribution de messages en double aux autres abonnés. Tout les messages d'abonnement peuvent être supprimés manuellement et définitivement dans les abonnements Pub/Sub. :

Accéder à la page "Abonnements Google Cloud Pub/Sub"

  1. Cliquez sur l'ID d'abonnement.
  2. Il existe plusieurs façons de confirmer et de supprimer définitivement les messages: <ph type="x-smartling-placeholder">
      </ph>
    1. Cliquez sur AFFICHER LES MESSAGES pour afficher le panneau Messages. Cochez la case Enable ack messages (Activer les messages de confirmation). case à cocher, puis cliquez sur TIRER pour afficher et confirmer tous les messages.
    2. Cliquez sur PURGE . MESSAGES pour supprimer définitivement tous les messages existants en accusant réception sans les consulter. Cliquez sur PURGE pour confirmer.

Les messages peuvent également être supprimés définitivement dans Cloud Shell à l'aide de l'option --auto-ack avec une commande pull de base:

gcloud pubsub subscriptions pull subscription-id --auto-ack

Gérer les abonnements

Les abonnements peuvent être configurés de différentes manières, comme décrit dans la section Utiliser les propriétés d'abonnement

Bien que la gestion des abonnements et des messages vous incombe, de production, nous vous recommandons d'utiliser Comptes de service pour au lieu d'un compte utilisateur comme vous l'avez fait jusqu'à présent dans cette courte guide de démarrage. Un compte de service est utilisé par une application ou une machine virtuelle, et non par avec une clé de compte unique.

Pour en savoir plus sur l'authentification des comptes de service avec Device Access, consultez Événements :