Ereignisse sind asynchron und werden von Google Cloud Pub/Sub in einem einzelnen Thema pro Projectverwaltet. Ereignisse liefern Updates für alle Geräte und Gebäude. Der Empfang von Ereignissen ist gewährleistet, solange das Zugriffstoken nicht vom Nutzer widerrufen wird und die Ereignisnachrichten nicht abgelaufen sind.
Ereignisse sind eine optionale Funktion der SDM API. Sie können sie ganz einfach mithilfe Ihres Google Cloud-Projekts implementieren und prüfen.
Veranstaltungen aktivieren
Ereignisse können in der Device Access Console aktiviert werden. Wählen Sie in der Console Ihr Projekt aus, falls Sie dies noch nicht getan haben.
Device Access Console aufrufen
Wenn Sie Ereignisse bereits aktiviert haben (z. B. beim Erstellen des Projekts), sollte das Feld Pub/Sub-Thema im Bereich Projektinformationen bereits einen Wert haben, der als Themen-ID bezeichnet wird und folgendermaßen formatiert ist:
projects/sdm-prod/topics/enterprise-project-id
Wenn Sie Ereignisse nicht aktiviert haben:
- Klicken Sie auf das Symbol für das Pub/Sub-Thema und wählen Sie Bearbeiten aus.
- Klicken Sie auf Ereignisse aktivieren und dann auf Speichern.
- Es wird eine Themen-ID im oben genannten Format für Sie generiert.
Kopieren Sie die Themen-ID. Sie benötigen sie, um ein Abo für das Thema zu erstellen, damit Ereignisnachrichten abgerufen werden können.
Pull-Abo erstellen
Bei einem Pull-Abo initiiert ein Abonnent Anfragen an den Pub/Sub-Server für in der Warteschlange befindliche Ereignisnachrichten. So können Sie schnell und einfach prüfen, ob Ereignisse für Ihre autorisierten Geräte generiert werden.
Öffnen Sie Cloud Shell für Ihr Google Cloud-Projekt:
Führen Sie in der Cloud Shell-Eingabeaufforderung den folgenden Befehl aus, um ein Pull-Abo für Ihr Thema zu erstellen. Verwenden Sie dazu eine beliebige subscription-id und Ihre eindeutige Themen-ID:
gcloud pubsub subscriptions create subscription-id --topic=projects/sdm-prod/topics/enterprise-project-id
Created subscription [projects/gcp-project-name/subscriptions/subscription-id].
Ereignisse initiieren
Wenn Sie nach dem Erstellen des Pub/Sub-Abos zum ersten Mal Ereignisse initiieren möchten, führen Sie einen Aufruf aus, um Ihre Geräte als einmaligen Trigger aufzulisten:
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'
Ereignisse für alle Gebäude und Geräte werden nach diesem API-Aufruf veröffentlicht.
Ereignisse generieren
Ereignisse werden für alle Änderungen von Trait-Feldern generiert – einige davon automatisch oder manuell.
Wenn sich beispielsweise die Umgebungstemperatur in der Nähe Ihres Nest Thermostats ändert, wird automatisch ein Ereignis für denTemperature -Attribut mit einem neuen ambientTemperatureCelsius
-Wert gesendet.
Sie haben folgende Möglichkeiten, sie manuell zu generieren:
- den Status Ihres Geräts physisch ändern, z. B. den Modus Ihres Nest Thermostats.
- Sie können ein Ereignis wie Bewegung, Person oder Geräusch auf einer Google Nest Cam Indoor auslösen.
- Gerätebefehl mit der SDM API ausführen
Nachrichten ansehen
Ereignisnachrichten können Sie in Ihrem Google Cloud-Projekt im Bereich „Pub/Sub-Abos“ aufrufen:
Google Cloud Pub/Sub-Abos aufrufen
- Klicken Sie auf die zuvor erstellte Abo-ID.
- Auf dem Bildschirm Abodetails sollten Sie die Aktivität für das Diagramm Anzahl nicht bestätigter Nachrichten sehen. Das bedeutet, dass Ereignisnachrichten für Ihr Abo eingegangen sind. Wenn Sie keine Aktivität sehen, warten Sie einen Moment oder generieren Sie weitere Ereignisse.
- Klicken Sie auf NACHRICHTEN ANSEHEN, um den Bereich Nachrichten aufzurufen.
- Klicken Sie auf PULL, um die Nachrichten aufzurufen. Sie sollten den Aktionen entsprechen, mit denen Sie Ereignisse generiert haben.
Nachrichten können auch in Cloud Shell mit einem einfachen pull
-Befehl angezeigt werden:
gcloud pubsub subscriptions pull subscription-id
Weitere Informationen zu Abotypen sowie zu den Arten von Ereignissen, die von der SDM API gesendet werden, und deren Verwendung finden Sie unter Ereignisse.
Nachrichten verwalten
Nachrichten sollten regelmäßig bestätigt und gelöscht werden, um ein Abo sauber zu halten und doppelte Nachrichtenzustellung an andere Abonnenten zu vermeiden. Alle Abonachrichten können im Bereich „Pub/Sub-Abos“ manuell dauerhaft gelöscht werden:
Google Cloud Pub/Sub-Abos aufrufen
- Klicken Sie auf die Abo-ID.
- Es gibt mehrere Möglichkeiten, eine Bestätigung zu senden und Daten zu löschen:
- Klicken Sie auf NACHRICHTEN ANSEHEN, um den Bereich Nachrichten aufzurufen. Setzen Sie ein Häkchen in das Kästchen Bestätigungsnachrichten aktivieren und klicken Sie auf ABRUFEN, um alle Nachrichten anzusehen und zu bestätigen.
- Klicken Sie auf NACHRICHTEN LÖSCHEN, um alle vorhandenen Nachrichten durch Bestätigung dauerhaft zu löschen, ohne sie anzusehen. Klicken Sie zum Bestätigen auf LÖSCHEN.
Sie können Nachrichten auch in Cloud Shell dauerhaft löschen, indem Sie das Flag --auto-ack
mit einem einfachen pull
-Befehl verwenden:
gcloud pubsub subscriptions pull subscription-id --auto-ack
Abos verwalten
Abos können auf unterschiedliche Weise konfiguriert werden, wie unter Aboeigenschaften verwenden beschrieben.
Wie Sie Abos und Nachrichten verwalten, bleibt Ihnen überlassen. Für eine Produktionsanwendung empfehlen wir jedoch, statt eines Nutzerkontos wie bisher in dieser Kurzanleitung Dienstkonten zur Authentifizierung zu verwenden. Ein Dienstkonto wird von einer Anwendung oder virtuellen Maschine und nicht von einer Person verwendet. Es hat einen eigenen eindeutigen Kontoschlüssel.
Weitere Informationen zur Authentifizierung von Dienstkonten mit Device Accessfinden Sie unter Ereignisse.