Zdarzenia są asynchroniczne i zarządzane przez Google Cloud Pub/Sub w jednym temacie 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 są opcjonalną funkcją interfejsu SDM API. Można je łatwo wdrożyć i potwierdzić, korzystając z 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), w polu Temat Pub/Sub w sekcji Informacje o projekcie powinna być już 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 zostanie wygenerowany w formatzie pokazanym powyżej.
Skopiuj identyfikator tematu. Będzie Ci on potrzebny do utworzenia subskrypcji tematu, aby można było pobierać 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. To szybki i prosty sposób na sprawdzenie, czy zdarzenia są generowane na Twoich autoryzowanych urządzeniach.
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 po utworzeniu subskrypcji Pub/Sub po raz pierwszy wywołać zdarzenia, wykonaj wywołanie, aby wyświetlić listę urządzeń jako jednorazowy bodziec:
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 wprowadzana automatycznie, a część 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 zmieniać stan urządzenia, np. zmieniać tryb termostatu 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 stronę 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 zostały dostarczone w ramach 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
Wiadomości powinny być regularnie potwierdzane i usuwane, aby subskrypcja była czysta i uniknąć duplikatów wiadomości do innych subskrybentów. Wszystkie wiadomości subskrypcji można ręcznie usunąć w sekcji Subskrypcje Pub/Sub:
Otwórz stronę 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. Aby potwierdzić, kliknij USUNĘĆ.
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 kont usługi do uwierzytelniania, a nie konta użytkownika, jak to miało miejsce do tej pory w tym przewodniku skrótowym. Konto usługi jest używane przez aplikację lub maszynę wirtualną, a nie przez osobę, i ma własny klucz konta.
Więcej informacji o uwierzytelnianiu kont usługi za pomocą Device Accessznajdziesz w artykule Zdarzenia.