Les événements sont asynchrones et gérés par Google Cloud Pub/Sub, dans un seul sujet par Project. Les événements fournissent des informations sur tous les appareils et toutes les structures. La réception des événements est assurée tant que le jeton d'accès n'est pas révoqué par l'utilisateur et que les messages d'événement n'ont pas expiré.
Les événements sont une fonctionnalité facultative de l'API SDM. Elles peuvent être facilement implémentées et vérifiées à l'aide de votre projet Google Cloud.
Activer les événements
Vous pouvez activer les événements dans la console Device Access . Si ce n'est pas déjà fait, sélectionnez votre projet dans la console.
Accéder à la console Device Access
Si vous avez déjà activé les événements (par exemple, lors de la création du projet), le champ Sujet Pub/Sub de la section Activer un thème Pub/Sub pour les événements devrait déjà contenir une valeur, appelée ID de sujet, dans l'ancien format :
projects/sdm-prod/topics/enterprise-project-id
Pour migrer depuis un sujet hébergé par Google, désactivez le sujet Pub/Sub hébergé par Google dans la console Device Access et réactivez les événements à l'aide d'un sujet Pub/Sub auto-hébergé créé dans votre propre projet Google Cloud. La migration de la configuration de votre sujet Pub/Sub n'invalide pas les jetons d'accès utilisateur ni les autorisations OAuth existants.
Vous pouvez créer ou modifier des sujets Pub/Sub auto-hébergés dans votre propre projet Google Cloud. Ils sont soumis aux tarifs standards de Google Cloud Pub/Sub (qui incluent un niveau sans frais de 10 Go par mois).
Créez le sujet Pub/Sub :
gcloud pubsub topics create {topic} --message-retention-duration=0sAccordez les autorisations nécessaires de l'API SDM pour accéder aux données d'événements et les publier pour l'ID de thème de votre projet :
gcloud pubsub topics add-iam-policy-binding projects/{project}/topics/{topic} \
--member="group:sdm-publisher@googlegroups.com" \
--role="roles/pubsub.publisher"Le format de l'ID de thème que vous venez de créer se présente comme suit :
projects/gcp-project-name/subscriptions/topic-id
Notez votre ID de sujet. Vous en aurez besoin pour activer les événements. Pour en savoir plus, consultez Créer un sujet.
Pour activer les événements (ou migrer depuis une rubrique hébergée par Google) :
- Si vous créez un projet, sélectionnez Activer les événements, puis cliquez sur Créer un projet. Si vous migrez un projet existant à partir d'un sujet hébergé par Google, désactivez d'abord le sujet Pub/Sub existant sur l'écran d'informations du projet.
- Cliquez sur l'icône pour Sujet Pub/Sub, puis sélectionnez Activer les événements avec le thème Pub/Sub (ou Modifier le thème actuel).
- Saisissez l'ID du sujet Pub/Sub auto-hébergé que vous avez créé précédemment.
Copiez l'ID de votre sujet. Vous en aurez besoin pour créer un abonnement au sujet afin de pouvoir récupérer les messages d'événement.
Créer un abonnement pull
Un abonnement pull est un abonnement dans lequel un abonné envoie des requêtes au serveur Pub/Sub pour les messages d'événements mis en file d'attente. C'est un moyen simple et rapide de vérifier que des événements sont générés pour vos appareils autorisés.
Ouvrez Cloud Shell pour votre projet Google Cloud :
À l'invite Cloud Shell, exécutez la commande suivante pour créer un abonnement par extraction à votre sujet, en utilisant le subscription-id de votre choix et l'ID unique de votre sujet :
gcloud pubsub subscriptions create subscription-id --topic=projects/gcp-project-name/subscriptions/topic-id
Created subscription [projects/gcp-project-name/subscriptions/subscription-id].Initier des événements
Pour initier des événements pour la première fois lorsque l'abonnement Pub/Sub a été créé, effectuez un appel pour lister vos appareils en tant que déclencheur ponctuel :
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 apportées aux champs de traits, dont certaines sont automatiques et d'autres manuelles.
Par exemple, si la température ambiante près de votre Nest Thermostat change, un événement pour le traitTempérature sera automatiquement envoyé avec une nouvelle valeur ambientTemperatureCelsius.
Pour en générer un manuellement :
- Modifiez physiquement l'état de votre appareil, par exemple en changeant le mode de votre thermostat Nest.
- Déclenchez un événement (mouvement, personne ou son, par exemple) sur une Google Nest Cam Indoor.
- Exécutez une commande d'appareil à l'aide de l'API SDM.
Consulter les messages
Vous pouvez afficher les messages d'événement dans la section "Abonnements Pub/Sub" de votre projet Google Cloud :
Accéder à la page "Abonnements Pub/Sub" de Google Cloud
- Cliquez sur l'ID d'abonnement que vous avez créé précédemment.
- Sur l'écran Détails de l'abonnement, vous devriez voir l'activité du graphique Nombre de messages non confirmés. Cela indique que les messages d'événement ont été reçus pour votre abonnement. Si aucune activité ne s'affiche, patientez un peu ou générez d'autres événements.
- Cliquez sur AFFICHER LES MESSAGES pour afficher le panneau Messages.
- Cliquez sur RÉCUPÉRER pour afficher les messages. Elles doivent correspondre aux actions que vous avez utilisées pour générer des événements.
Vous pouvez également afficher les messages dans Cloud Shell avec une commande pull de base :
gcloud pubsub subscriptions pull subscription-idPour en savoir plus sur les types d'abonnement, ainsi que sur les types d'événements envoyés par l'API SDM et sur la façon de les utiliser, consultez Événements.
Gérer les messages
Les messages doivent être régulièrement confirmés et supprimés pour que l'abonnement reste propre et pour éviter la distribution de messages en double aux autres abonnés. Tous les messages d'abonnement peuvent être supprimés manuellement dans la section "Abonnements Pub/Sub" :
Accéder à la page "Abonnements Pub/Sub" de Google Cloud
- Cliquez sur l'ID de l'abonnement.
- Vous pouvez confirmer et purger les données de plusieurs façons :
- Cliquez sur AFFICHER LES MESSAGES pour afficher le panneau Messages. Cochez la case Activer la confirmation de messages, puis cliquez sur EXTRAIRE pour afficher et confirmer tous les messages.
- Cliquez sur SUPPRIMER LES MESSAGES pour supprimer tous les messages existants en confirmant sans les afficher. Cliquez sur PURGE pour confirmer.
Vous pouvez également supprimer les messages dans Cloud Shell à l'aide de l'indicateur --auto-ack avec une commande pull de base :
gcloud pubsub subscriptions pull subscription-id --auto-ackGérer les abonnements
Les abonnements peuvent être configurés de différentes manières, comme décrit dans Utiliser les propriétés d'abonnement.
Bien que la façon dont vous souhaitez gérer les abonnements et les messages vous appartienne, nous vous recommandons d'utiliser des comptes de service pour l'authentification dans une application de production, plutôt qu'un compte utilisateur comme vous l'avez fait jusqu'à présent dans ce guide de démarrage rapide. Un compte de service est utilisé par une application ou une machine virtuelle, et non par une personne. Il possède sa propre clé de compte unique.
Pour en savoir plus sur l'authentification par compte de service avec Device Access, consultez Événements.