Veranstaltungen abonnieren

Ereignisse sind asynchron und werden von Google Cloud Pub/Sub in einem einzigen Thema pro Projectverwaltet. Ereignisse liefern Updates für alle Geräte und Gebäude und der Empfang von Ereignissen wird sichergestellt, 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 mithilfe Ihres Google Cloud-Projekts einfach implementiert und verifiziert werden.

Veranstaltungen aktivieren

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

Zur Console Device Access

Wenn Sie bereits Ereignisse aktiviert haben (z. B. bei der Projekterstellung), sollte das Feld Pub/Sub-Thema im Bereich Projektinformationen bereits einen Wert, eine sogenannte Themen-ID, im folgenden Format enthalten:

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

Falls Sie 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 das Kästchen Ereignisse aktivieren und dann auf Speichern.
  3. Eine Themen-ID wird im oben gezeigten 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 für Ereignisnachrichten in der Warteschlange an den Pub/Sub-Server. 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:

Zu Google Cloud Shell

Führen Sie an der Cloud Shell-Eingabeaufforderung den folgenden Befehl aus, um ein Pull-Abo zu Ihrem Thema zu erstellen. Verwenden Sie dazu einen beliebigen 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 du zum ersten Mal Ereignisse auslösen möchtest, nachdem das Pub/Sub-Abo erstellt wurde, rufe einen Aufruf auf, um deine 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 die EigenschaftTemperatur mit einem neuen Wert für ambientTemperatureCelsius gesendet.

Sie haben zwei Möglichkeiten, diese manuell zu generieren:

  1. Ändern Sie den Status des Geräts physisch, z. B. den Modus des Nest Thermostats.
  2. Ereignisse wie Bewegungen, Personen oder Geräusche auf Google Nest Cam Indoor auslösen.
  3. Mit der SDM API können Sie einen Gerätebefehl ausführen.

E-Mails ansehen

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

Zu den Google Cloud Pub/Sub-Abos

  1. Klicken Sie auf die Abo-ID, die Sie zuvor erstellt haben.
  2. Auf dem Bildschirm Abodetails sollten Sie die Aktivität für das Diagramm Anzahl nicht bestätigter Nachrichten sehen. Das zeigt an, dass Ereignisnachrichten für dein Abo eingegangen sind. Wenn Sie keine Aktivität sehen, warten Sie einen Moment oder generieren Sie weitere Ereignisse.
  3. Klicken Sie auf NACHRICHTEN ANSEHEN, um den Bereich Nachrichten aufzurufen.
  4. Klicken Sie auf PULL (Pull), um die Meldungen aufzurufen. Sie sollten den Aktionen entsprechen, mit denen Sie Ereignisse generiert haben.

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

gcloud pubsub subscriptions pull subscription-id

Weitere Informationen zu Abotypen sowie zu den von der SDM API gesendeten Ereignistypen und zu ihrer Verwendung findest du unter Ereignisse.

Nachrichten verwalten

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

Zu den Google Cloud Pub/Sub-Abos

  1. Klicken Sie auf die Abo-ID.
  2. Für die Bestätigung und das dauerhafte Löschen gibt es mehrere Möglichkeiten:
    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 Bestätigung dauerhaft zu löschen, ohne sie anzusehen. Klicke zum Bestätigen auf PURGE.

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 verschiedene Arten konfiguriert werden, wie unter Aboattribute 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 (nicht von einer Person) verwendet und hat einen eigenen eindeutigen Kontoschlüssel.

Weitere Informationen zur Dienstkontoauthentifizierung mit Device Accessfinden Sie unter Ereignisse.