Veranstaltungen abonnieren

Ereignisse sind asynchron und werden von Google Cloud Pub/Sub in einem einzelnen Thema pro Projectverwaltet. Ereignisse stellen Updates für alle Geräte und Gebäude bereit und der Empfang von Ereignissen wird garantiert, solange der Zugriffstoken nicht vom Nutzer widerrufen wird und die Ereignisnachrichten nicht abgelaufen sind.

Ereignisse sind eine optionale Funktion der SDM API. Sie können mit Ihrem Google Cloud-Projekt ganz einfach implementiert und verifiziert werden.

Veranstaltungen aktivieren

Ereignisse können in der Device Access Console aktiviert werden. Wählen Sie Ihr Projekt in der Console aus, falls Sie dies noch nicht getan haben.

Zur Device Access Console

Wenn Sie Ereignisse bereits aktiviert haben (z. B. während der Projekterstellung), sollte das Feld Pub/Sub-Thema im Abschnitt Projektinformationen bereits einen Wert namens „Themen-ID“ im folgenden Format haben:

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

Wenn Sie die Ereignisse nicht aktiviert haben:

  1. Klicken Sie auf das Symbol für Pub/Sub-Thema und wählen Sie Bearbeiten aus.
  2. Klicken Sie auf Ereignisse aktivieren und dann auf Speichern.
  3. Eine Themen-ID wird im oben gezeigten Format generiert.

Kopieren Sie die Themen-ID, damit Sie ein Abo für das Thema erstellen können, damit Ereignisnachrichten abgerufen werden können.

Pull-Abo erstellen

Ein Pull-Abo besteht darin, dass ein Abonnent Anfragen für Ereignisnachrichten an den Pub/Sub-Server initiiert. So können Sie schnell und einfach überprüfen, ob Ereignisse für Ihre autorisierten Geräte generiert werden.

Öffnen Sie Cloud Shell für Ihr Google Cloud-Projekt:

Zu Google Cloud Shell

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 den subscription-id Ihrer Wahl und Ihre eindeutige Topic 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 der Erstellung des Pub/Sub-Abos zum ersten Mal Ereignisse starten möchten, rufen Sie auf, 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 erstellen

Ereignisse werden für alle Eigenschaften von Eigenschaftsfeldern generiert. Einige davon sind automatisch, einige manuell.

Wenn sich beispielsweise die Umgebungstemperatur in der Nähe Ihres Nest Thermostats ändert, wird automatisch ein Ereignis für die EigenschaftTemperatur mit einem neuen ambientTemperatureCelsius-Wert gesendet.

Sie haben auch die Möglichkeit, manuell eines zu generieren:

  1. Physischen Status des Geräts ändern, z. B. den Modus von Nest Thermostat ändern
  2. Bei einer Google Nest Cam Indoor ein Ereignis auslösen, z. B. eine Bewegung, eine Person oder ein Geräusch.
  3. Führen Sie mit der SDM API einen Gerätebefehl aus.

Nachrichten ansehen

Ereignisnachrichten können in Ihrem Google Cloud-Projekt im Bereich „Pub/Sub-Abos“ angezeigt werden:

Zu Google Cloud Pub/Sub-Abos

  1. Klicken Sie auf die Abo-ID, die Sie zuvor erstellt haben.
  2. Auf dem Bildschirm Abodetails sollten Aktivitäten für das Diagramm Anzahl der nicht bestätigten Nachrichten angezeigt werden. Das bedeutet, dass Ereignisnachrichten für Ihr Abo eingegangen sind. Wenn Sie keine Aktivitäten sehen, warten Sie einen Moment oder generieren ein paar weitere Ereignisse.
  3. Klicken Sie auf NACHRICHTEN ANSEHEN, um den Bereich Nachrichten aufzurufen.
  4. Klicken Sie auf ziehen, um sich die Nachrichten anzusehen. Sie sollten den Aktionen entsprechen, die Sie zum Generieren von Ereignissen verwendet haben.

Sie können sich Nachrichten auch mit einem einfachen pull-Befehl in Cloud Shell ansehen:

gcloud pubsub subscriptions pull subscription-id

Weitere Informationen zu Abotypen sowie zu den von der SDM API gesendeten Ereignissen und deren Verwendung finden Sie unter Ereignisse.

Nachrichten verwalten

Nachrichten sollten regelmäßig bestätigt und dauerhaft gelöscht werden, um das Abo übersichtlich zu halten und eine doppelte Nachrichtenzustellung an andere Abonnenten zu vermeiden. Alle Abonachrichten können im Abschnitt „Pub/Sub-Abos“ manuell dauerhaft gelöscht werden:

Zu Google Cloud Pub/Sub-Abos

  1. Klicke auf die Abo-ID.
  2. Es gibt mehrere Möglichkeiten, den Vorgang zu bestätigen und dauerhaft zu löschen:
    1. Klicken Sie auf NACHRICHTEN ANSEHEN, um den Bereich Nachrichten aufzurufen. Klicken Sie auf das Kästchen Bestätigungsnachrichten aktivieren und dann auf PULL, um alle Nachrichten anzusehen und zu bestätigen.
    2. Klicken Sie auf NACHRICHTEN LÖSCHEN, um alle vorhandenen Nachrichten durch Löschen zu bestätigen, ohne sie anzusehen. Klicken Sie zum Bestätigen auf Löschen.

Nachrichten können auch in Cloud Shell dauerhaft gelöscht werden, wenn 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 verschiedene Weise konfiguriert werden, wie unter Aboeigenschaften verwenden beschrieben.

Wie Sie Abos und Nachrichten verwalten möchten, entscheiden Sie selbst. Für eine Produktionsanwendung empfehlen wir jedoch die Dienstkonten anstelle eines Nutzerkontos wie in dieser Kurzanleitung. Ein Dienstkonto wird von einer Anwendung oder virtuellen Maschine verwendet, nicht von einer Person und hat einen eigenen eindeutigen Kontoschlüssel.

Weitere Informationen zur Dienstkontoauthentifizierung mit Device Accessfindest du unter Ereignisse.