Iscriviti agli eventi

Gli eventi sono asincroni e 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 a condizione che il token di accesso non venga revocato dall'utente e i messaggi di evento non siano scaduti.

Gli eventi sono una funzionalità facoltativa dell'API SDM. Possono essere implementate e verificate facilmente utilizzando il tuo progetto Google Cloud.

Attiva eventi

Puoi attivare gli eventi nella Device Access console. Seleziona il tuo progetto nella console, se non l'hai ancora fatto.

Vai alla Device Access console

Se hai già abilitato gli eventi (ad esempio, durante la creazione del progetto), il campo Argomento 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:

  1. Fai clic sull'icona per l'argomento Pub/Sub e seleziona Modifica.
  2. Seleziona Abilita eventi e fai clic su Salva.
  3. Viene generato automaticamente un ID argomento nel formato mostrato sopra.

Copia il tuo ID argomento, che ti servirà per creare una sottoscrizione all'argomento in modo da poter recuperare i messaggi di evento.

Creare una sottoscrizione pull

Una sottoscrizione pull è quella in cui un sottoscrittore avvia richieste al server Pub/Sub per i messaggi di evento in coda. Si tratta di un modo semplice e veloce per verificare che vengano generati eventi per i dispositivi autorizzati.

Apri Cloud Shell per il tuo progetto Google Cloud:

Vai a Google Cloud Shell

Nel prompt di Cloud Shell, esegui questo comando per creare una sottoscrizione pull per l'argomento, utilizzando subscription-id e l'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].

Avvia eventi

Per avviare eventi per la prima volta dopo la creazione dell'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 i dispositivi verranno pubblicati dopo questa chiamata API.

Genera 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 Temperatura con un nuovo valore ambientTemperatureCelsius.

Per generarne uno manualmente:

  1. Cambiare fisicamente lo stato del dispositivo, ad esempio cambiare la modalità di Nest Thermostat.
  2. Attivare un evento, ad esempio un movimento, una persona o un suono, su Google Nest Cam Indoor.
  3. Esegui un comando del dispositivo utilizzando l'API SDM.

visualizza i messaggi

I messaggi di evento possono essere visualizzati nel tuo progetto Google Cloud, nella sezione Sottoscrizioni Pub/Sub:

Vai agli abbonamenti Google Cloud Pub/Sub

  1. Fai clic sull'ID abbonamento creato in precedenza.
  2. Nella schermata Dettagli abbonamento, dovresti vedere l'attività relativa al grafico Numero di messaggi non bloccati. Questo indica che sono arrivati i messaggi di evento per la tua sottoscrizione. Se non vedi alcuna attività, attendi un po' o genera qualche altro evento.
  3. Fai clic su VISUALIZZA MESSAGGI per visualizzare il riquadro Messaggi.
  4. Fai clic su PULL per visualizzare i messaggi. Dovrebbero 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 ulteriori informazioni sui tipi di abbonamento, 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 pulita una sottoscrizione ed evitare la doppia consegna ad altri sottoscrittori. Tutti i messaggi di sottoscrizione possono essere eliminati manualmente nella sezione Sottoscrizioni Pub/Sub:

Vai agli abbonamenti Google Cloud Pub/Sub

  1. Fai clic sull'ID abbonamento.
  2. Esistono diversi modi per confermare ed eliminare definitivamente:
    1. 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.
    2. Fai clic su ELIMINA MESSAGGI per eliminare definitivamente tutti i messaggi esistenti confermando senza visualizzarli. Fai clic su PURGE per confermare.

I messaggi possono anche essere eliminati definitivamente in Cloud Shell utilizzando il flag --auto-ack con un comando pull di base:

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

Gestisci sottoscrizioni

Gli abbonamenti possono essere configurati in diversi modi, come descritto in Utilizzare le proprietà degli abbonamenti.

Anche se la modalità di gestione degli abbonamenti e dei messaggi dipende da te, per un'applicazione di produzione ti consigliamo di utilizzare per l'autenticazione gli account di servizio, anziché un account utente come quello utilizzato 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 di account univoca.

Per maggiori informazioni sull'autenticazione degli account di servizio con Device Access, consulta Eventi.