Subskrybuj wydarzenia

Zdarzenia są asynchroniczne i zarządzane przez Google Cloud Pub/Sub w ramach jednego tematu na Project. Zdarzenia dostarczają aktualizacji dla wszystkich urządzeń i struktur. Odbieranie zdarzeń jest zapewnione, o ile użytkownik nie cofnie tokenu dostępu, a wiadomości zdarzeń nie wygasną.

Zdarzenia to opcjonalna funkcja interfejsu SDM API. Możesz je łatwo wdrożyć i zweryfikować za pomocą projektu Google Cloud.

Włącz wydarzenia

Zdarzenia można włączyć w  Device Access Konsoli. Jeśli jeszcze tego nie zrobiono, wybierz projekt w konsoli.

Otwórz Device Access konsolę

Jeśli masz już włączone zdarzenia (np. podczas tworzenia projektu), pole Temat Pub/Sub w sekcji Informacje o projekcie powinno już mieć wartość o nazwie Identyfikator tematu w formacie:

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

Jeśli nie masz włączonych zdarzeń:

  1. Kliknij ikonę  Pub/Sub temat i wybierz Edytuj.
  2. Zaznacz pole Włącz zdarzenia i kliknij Zapisz.
  3. Identyfikator tematu jest generowany w podanym wyżej formacie.

Skopiuj identyfikator tematu. Będzie Ci on potrzebny do utworzenia subskrypcji tematu, aby można było pobrać wiadomości o wydarzeniu.

Tworzenie subskrypcji pull

W ramach subskrypcji pull subskrybent inicjuje żądania do serwera Pub/Sub w celu pobrania wiadomości o zdarzeniach z kolejki. Dzięki temu można szybko i łatwo sprawdzić, czy zdarzenia są generowane dla autoryzowanych urządzeń.

Otwórz Cloud Shell dla projektu Google Cloud:

Otwórz Google Cloud Shell

W Cloud Shell uruchom to polecenie, aby utworzyć subskrypcję tematu z pull, używając dowolnego subscription-id i wyjątkowego identyfikatora tematu:

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

Inicjowanie zdarzeń

Aby zainicjować zdarzenia po raz pierwszy po utworzeniu subskrypcji Pub/Sub, wywołaj listę urządzeń jako aktywator jednorazowy:

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

Po tym wywołaniu interfejsu API zostaną opublikowane zdarzenia dotyczące wszystkich struktur i urządzeń.

Generowanie zdarzeń

Zdarzenia są generowane w przypadku wszystkich zmian w polach cech, z których część jest przeprowadzana automatycznie, a częściowo ręcznie.

Jeśli np. temperatura otoczenia w pobliżu termostatu Nest Thermostat ulegnie zmianie, zdarzenie dotyczące atrybutuTemperatura zostanie automatycznie wysłane z nową wartością ambientTemperatureCelsius.

Aby wygenerować go ręcznie:

  1. Fizycznie zmienić stan urządzenia, na przykład zmienić tryb urządzenia Nest Thermostat.
  2. Wywoływanie zdarzeń, takich jak wykrycie ruchu, osoby lub dźwięku, na kamerze Google Nest Cam Indoor.
  3. Wykonaj polecenie urządzenia za pomocą interfejsu SDM API.

Wyświetl wiadomości

Wiadomości zdarzeń możesz wyświetlać w projekcie Google Cloud w sekcji Subskrypcje Pub/Sub:

Otwórz subskrypcje Google Cloud Pub/Sub

  1. Kliknij utworzony wcześniej identyfikator subskrypcji.
  2. Na ekranie Szczegóły subskrypcji powinna pojawić się aktywność na wykresie Liczba niezapakowanych wiadomości. Oznacza to, że wiadomości o zdarzeniach dotarły do Twojej subskrypcji. Jeśli nie widzisz żadnej aktywności, odczekaj chwilę lub wygeneruj jeszcze kilka zdarzeń.
  3. Kliknij  WYŚWIETL WIADOMOŚCI, aby otworzyć panel Wiadomości.
  4. Aby wyświetlić wiadomości, kliknij PULL. Powinny one odpowiadać działaniom, które generują zdarzenia.

Wiadomości można też wyświetlać w Cloud Shell za pomocą podstawowego polecenia pull:

gcloud pubsub subscriptions pull subscription-id

Więcej informacji o typach subskrypcji oraz typach zdarzeń wysyłanych przez interfejs SDM API i sposobie ich używania znajdziesz w artykule Zdarzenia.

Zarządzanie wiadomościami

Aby zachować czystość subskrypcji i uniknąć powielonych wiadomości do innych subskrybentów, należy regularnie potwierdzać i usuwać wiadomości. Wszystkie wiadomości subskrypcji można ręcznie usunąć w sekcji Subskrypcje Pub/Sub:

Otwórz subskrypcje Google Cloud Pub/Sub

  1. Kliknij identyfikator subskrypcji.
  2. Możesz potwierdzić i usunąć dane na kilka sposobów:
    1. Kliknij WYŚWIETL WIADOMOŚCI, aby otworzyć panel Wiadomości. Zaznacz pole wyboru Włącz komunikaty potwierdzenia i kliknij PULL, aby wyświetlić i potwierdzić wszystkie wiadomości.
    2. Kliknij  TRWAŁE USUŃ WIADOMOŚCI, aby trwale usunąć wszystkie istniejące wiadomości przez ich potwierdzenie bez ich wyświetlania. Kliknij WYCZYŚĆ, aby potwierdzić.

Wiadomości można też usunąć w Cloud Shell, używając flagi --auto-ack w podstawowym poleceniu pull:

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

Zarządzaj subskrypcjami

Subskrypcje można konfigurować na różne sposoby, jak opisano w artykule Korzystanie z właściwości subskrypcji.

Sposób zarządzania subskrypcjami i wiadomościami zależy od Ciebie, ale w przypadku aplikacji produkcyjnej zalecamy używanie do uwierzytelniania kont usługi, a nie kont użytkowników takich jak do tej pory w tym krótkim przewodniku. Konto usługi jest używane przez aplikację lub maszynę wirtualną, a nie przez osobę, i ma własny unikalny klucz konta.

Więcej informacji o uwierzytelnianiu kont usługi za pomocą Device Accessznajdziesz w artykule Zdarzenia.