Iscriviti agli eventi

Gli eventi sono asincroni e gestiti da Google Cloud Pub/Sub, in un unico argomento per Project. Gli eventi forniscono aggiornamenti per tutti i dispositivi e le strutture e la ricezione degli eventi è garantita purché il token di accesso non sia stato revocato dall'utente e i messaggi degli eventi non siano scaduti.

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

Attiva eventi

È possibile attivare gli eventi nella Device Access Console. Seleziona il tuo progetto nella console, se non l'hai già fatto.

Vai alla Device Access Console

Se hai già abilitato gli eventi (ad esempio, durante la creazione di progetti), il campo Argomento Pub/Sub nella sezione Informazioni sul progetto dovrebbe già contenere un valore chiamato ID argomento, nel formato:

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

Se non hai abilitato 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 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 degli eventi.

Crea una sottoscrizione pull

In una sottoscrizione pull, un sottoscrittore avvia richieste al server Pub/Sub per i messaggi degli eventi in coda. Si tratta di un metodo rapido e semplice per verificare che gli eventi siano generati sui vostri dispositivi autorizzati.

Apri Cloud Shell per il tuo progetto Google Cloud:

Vai a Google Cloud Shell

Al prompt di Cloud Shell, esegui il comando seguente per creare una sottoscrizione pull per l'argomento, utilizzando come preferisci 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].

Avvia eventi

Per avviare gli eventi per la prima volta dopo la creazione della sottoscrizione 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 del trattino, alcuni dei quali sono automatici, alcuni manuali.

Ad esempio, se la temperatura ambiente vicino al Nest Thermostat cambia, verrà inviato automaticamente un evento per il valore Temperatura con un nuovo valore ambientTemperatureCelsius.

Per generarne manualmente uno, procedi in uno dei seguenti modi:

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

Visualizza messaggi

I messaggi degli eventi possono essere visualizzati nel progetto Google Cloud, nella sezione Abbonamenti Pub/Sub:

Vai alle sottoscrizioni Pub/Sub di Google Cloud

  1. Fai clic sull'ID abbonamento creato in precedenza.
  2. Nella schermata Dettagli abbonamento viene visualizzata un'attività per il grafico Conteggio messaggi senza ACK. Ciò indica che sono stati inviati messaggi evento per la tua iscrizione. Se non vedi alcuna attività, attendi qualche istante 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 saperne di più sui tipi di abbonamento, 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 regolarmente, per mantenere pulita l'iscrizione ed evitare la consegna di messaggi duplicati ad altri abbonati. Tutti i messaggi delle sottoscrizioni possono essere eliminati definitivamente manualmente nella sezione Iscrizioni Pub/Sub:

Vai alle sottoscrizioni Pub/Sub di Google Cloud

  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 i messaggi ACK e fai clic su PULL per visualizzare e confermare tutti i messaggi.
    2. Fai clic su INVIA MESSAGGI per eliminare definitivamente tutti i messaggi esistenti confermandoli senza visualizzarli. Fai clic su SURGARE per confermare.

I messaggi possono essere eliminati definitivamente 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

Gli abbonamenti possono essere configurati in diversi modi, come descritto nella sezione Utilizzo delle proprietà degli abbonamenti.

Il modo in cui vuoi gestire le iscrizioni e i messaggi spetta a te, ma per un'applicazione di produzione ti consigliamo di utilizzare gli account di servizio per l'autenticazione anziché un account utente come quello che 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 maggiori informazioni sull'autenticazione dell'account di servizio con Device Access, consulta Eventi.