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.
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ń:
- Kliknij ikonę Pub/Sub temat i wybierz Edytuj.
- Zaznacz pole Włącz zdarzenia i kliknij Zapisz.
- 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:
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:
- Fizycznie zmienić stan urządzenia, na przykład zmienić tryb urządzenia Nest Thermostat.
- Wywoływanie zdarzeń, takich jak wykrycie ruchu, osoby lub dźwięku, na kamerze Google Nest Cam Indoor.
- 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
- Kliknij utworzony wcześniej identyfikator subskrypcji.
- 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ń.
- Kliknij WYŚWIETL WIADOMOŚCI, aby otworzyć panel Wiadomości.
- 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
- Kliknij identyfikator subskrypcji.
- Możesz potwierdzić i usunąć dane na kilka sposobów:
- 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.
- 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.