Gli eventi sono asincroni e vengono gestiti da Google Cloud Pub/Sub in un singolo argomento per Project. Gli eventi forniscono aggiornamenti per tutti i dispositivi e le strutture e la ricezione degli eventi è garantita finché il token di accesso non viene revocato dall'utente e i messaggi degli eventi non sono scaduti.
Gli eventi sono una funzionalità facoltativa dell'API SDM. Possono essere facilmente implementati e verificati utilizzando il tuo progetto Google Cloud.
Attiva eventi
Gli eventi possono essere attivati nella Device Access console. Se non l'hai ancora fatto, seleziona il tuo progetto nella console.
Vai alla Device Access console
Se hai già attivato gli eventi (ad esempio durante la creazione del progetto), il campo Topic Pub/Sub nella sezione Informazioni sul progetto dovrebbe già avere un valore, chiamato ID argomento, nel formato:
projects/sdm-prod/topics/enterprise-project-id
Se non hai attivato gli eventi:
- Fai clic sull'icona per l'argomento Pub/Sub e seleziona Modifica.
- Seleziona Attiva eventi e fai clic su Salva.
- Viene generato un ID argomento nel formato mostrato sopra.
Copia l'ID argomento, che ti servirà per creare una sottoscrizione all'argomento in modo da poter recuperare i messaggi di evento.
Creare una sottoscrizione pull
In un abbonamento pull, un sottoscrittore avvia richieste al server Pub/Sub per i messaggi di eventi in coda. Si tratta di un modo semplice e veloce per verificare che gli eventi vengano generati per i tuoi dispositivi autorizzati.
Apri Cloud Shell per il tuo progetto Google Cloud:
Al prompt di Cloud Shell, esegui il seguente comando per creare una sottoscrizione pull al tuo argomento, utilizzando qualsiasi subscription-id e il tuo ID argomento univoco:
gcloud pubsub subscriptions create subscription-id --topic=projects/sdm-prod/topics/enterprise-project-id
Created subscription [projects/gcp-project-name/subscriptions/subscription-id].
Eventi di istruzione
Per avviare gli eventi per la prima volta dopo aver creato l'abbonamento Pub/Sub, effettua una chiamata per elencare i dispositivi come trigger una tantum:
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'
Gli eventi per tutte le strutture e tutti i dispositivi verranno pubblicati dopo questa chiamata API.
Generare eventi
Gli eventi vengono generati per tutte le modifiche ai campi dei tratti, alcune delle quali sono automatiche, altre manuali.
Ad esempio, se la temperatura ambiente vicino a Nest Thermostat cambia, verrà inviato automaticamente un evento per la caratteristicaTemperatura con un nuovo valore ambientTemperatureCelsius
.
Per generarne uno manualmente:
- Modificare fisicamente lo stato del dispositivo, ad esempio cambiare la modalità di Nest Thermostat.
- Attivare un evento, ad esempio movimento, persona o suono, su Google Nest Cam Indoor.
- Esegui un comando del dispositivo utilizzando l'API SDM.
Visualizza messaggi
I messaggi di evento possono essere visualizzati nel progetto Google Cloud, nella sezione Iscrizioni Pub/Sub:
Vai a Abbonamenti Pub/Sub di Google Cloud
- Fai clic sull'ID abbonamento creato in precedenza.
- Nella schermata Dettagli dell'abbonamento, dovresti vedere l'attività per il grafico Conteggio messaggi non confermati. Ciò indica che i messaggi di evento sono stati ricevuti per il tuo abbonamento. Se non vedi alcuna attività, attendi un po' di tempo o genera qualche altro evento.
- Fai clic su VISUALIZZA MESSAGGI per visualizzare il riquadro Messaggi.
- Fai clic su PULL per visualizzare i messaggi. Devono corrispondere alle azioni che hai utilizzato per generare gli eventi.
I messaggi possono essere visualizzati anche in Cloud Shell con un comando pull
di base:
gcloud pubsub subscriptions pull subscription-id
Per saperne di più sui tipi di abbonamenti, nonché sui tipi di eventi inviati dall'API SDM e su come utilizzarli, consulta Eventi.
Gestisci messaggi
I messaggi devono essere confermati ed eliminati regolarmente per mantenere un abbonamento pulito ed evitare la consegna di messaggi duplicati ad altri abbonati. Tutti i messaggi delle sottoscrizioni possono essere eliminati manualmente nella sezione Subscriptions (Abbonamenti) di Pub/Sub:
Vai a Abbonamenti Pub/Sub di Google Cloud
- Fai clic sull'ID abbonamento.
- Esistono diversi modi per confermare ed eliminare i dati:
- Fai clic su VISUALIZZA MESSAGGI per visualizzare il riquadro Messaggi. Seleziona la casella di controllo Abilita messaggi ACK e fai clic su PULL per visualizzare e confermare tutti i messaggi.
- Fai clic su ELIMINA MESSAGGI per eliminare definitivamente tutti i messaggi esistenti confermandoli senza visualizzarli. Fai clic su ELIMINA per confermare.
I messaggi possono essere eliminati anche in Cloud Shell utilizzando il flag --auto-ack
con un comando pull
di base:
gcloud pubsub subscriptions pull subscription-id --auto-ack
Gestisci sottoscrizioni
Le sottoscrizioni possono essere configurate in diversi modi, come descritto in Utilizzare le proprietà di sottoscrizione.
Sebbene sia a tua discrezione decidere come gestire le iscrizioni e i messaggi, per un'applicazione di produzione ti consigliamo di utilizzare gli account di servizio per l'autenticazione anziché un account utente come hai fatto finora in questa guida rapida. Un account di servizio viene utilizzato da un'applicazione o da una macchina virtuale, non da una persona, e ha una propria chiave account univoca.
Per ulteriori informazioni sull'autenticazione degli account di servizio con Device Access, consulta Eventi.