Distribuzione locale

L'SDK Local Home migliora l'integrazione della tua smart home con l'Assistente Google aggiungendo un percorso di distribuzione locale per il routing degli intent della smart home.

L'SDK ti consente di scrivere un'app per l'evasione degli ordini locale, utilizzando TypeScript o JavaScript, che contiene la logica di business per la smart home. I dispositivi Google Home o Google Nest possono caricare ed eseguire la tua app sul dispositivo. L'app comunica direttamente con gli smart device esistenti tramite Wi-Fi su una rete LAN (Local Area Network) per eseguire i comandi utente, su protocolli esistenti.

L'integrazione dell'SDK offre miglioramenti delle prestazioni per l'azione per la smart home, tra cui una minore latenza e una maggiore affidabilità. Il fulfillment locale è supportato per tutti i tipi e caratteristiche di dispositivo, eccetto quelle che utilizzano la verifica secondaria dell'utente.

Inizia a creare Prova l'esempio

Scopri come funziona

Dopo aver ricevuto una risposta di SYNC dal cloud fulfillment, la piattaforma Home Home analizza la rete locale dell'utente utilizzando mDNS, trasmissione UDP o UPnP per rilevare gli smart device connessi all'assistente.

La piattaforma invia un intent IDENTIFY per determinare se il dispositivo è controllabile localmente confrontando l'ID dispositivo nella risposta IDENTIFY con quelli restituiti dalla risposta SYNC precedente. Se il dispositivo rilevato è un hub o un bridge, la piattaforma invia un intent REACHABLE_DEVICES e considera l'hub come dispositivo proxy per la comunicazione locale.

Quando riceve una risposta di conferma di un dispositivo locale, la piattaforma stabilisce un percorso di evasione degli ordini locale per il dispositivo Google Home o Google Nest dell'utente e, successivamente, indirizza i comandi utente per l'evasione degli ordini locale.

Quando un utente attiva un'azione per la smart home con un percorso di evasione degli ordini locale, l'assistente invia l'intent EXECUTE o l'intent QUERY al dispositivo Google Home o Google Nest, anziché all'evasione degli ordini nel cloud. Il dispositivo esegue quindi l'app di distribuzione locale per elaborare l'intent.

Questa figura mostra il flusso di esecuzione per l'evasione degli ordini locale. Il percorso di esecuzione acquisisce l'intento di un utente da un telefono con l'Assistente Google, quindi l'intent viene elaborato da Google Cloud, quindi viene eseguito localmente sul dispositivo Google Home e il comando viene eseguito direttamente sull'hub del dispositivo o direttamente sul dispositivo. Il cloud per sviluppatori è disponibile come
 cloud di riserva.
Figura 1: aggiunta del percorso di evasione degli ordini locale per l'azione per la smart home.

La piattaforma Home Home non è determinante nella scelta del dispositivo Google Home o Google Nest per attivare il comando. Gli intent EXECUTE e QUERY possono provenire da qualsiasi dispositivo Google Home o Google Nest definito nella stessa struttura del grafico Home del dispositivo di destinazione.

App di distribuzione locale

L'app di evasione degli ordini locale contiene la logica di business per elaborare gli intent inviati dalla piattaforma Home Home e accedere allo smart device tramite la rete locale. Non è prevista alcuna modifica dell'hardware per integrare l'evasione degli ordini locale. L'app soddisfa le richieste di azioni per la smart home inviando i comandi di controllo allo smart device tramite protocolli a livello di applicazione, tra cui HTTP, TCP o UDP. Nel caso in cui il percorso di evasione locale non vada a buon fine, l'evasione degli ordini cloud viene utilizzata come percorso di esecuzione di riserva.

Per supportare la creazione dell'app, l'SDK Local Home fornisce queste due classi principali:

  • DeviceManager: fornisce metodi per comunicare con smart device utilizzando TCP, socket UDP o richieste HTTP.
  • App: fornisce metodi per collegare i gestori per intent che Google invia dopo aver rilevato dispositivi controllabili localmente (IDENTIFY, REACHABLE_DEVICES). Questo corso soddisfa anche i comandi utente (EXECUTE) e risponde alle query degli utenti sullo stato attuale del dispositivo (QUERY).

Durante lo sviluppo, puoi creare e testare l'app caricandola sul tuo server di hosting o sulla tua macchina di sviluppo locale. In produzione, Google ospita l'app in un ambiente sandbox JavaScript sicuro sul dispositivo Google Home o Google Nest dell'utente.

L'API State Report non è attualmente supportata per l'evasione degli ordini locale. Google si basa sul tuo fulfillment cloud per elaborare queste richieste.

Ciclo di vita dell'applicazione

L'app di evasione degli ordini locale viene caricata on demand quando la piattaforma della home page locale rileva nuovi dispositivi locali corrispondenti alla configurazione della scansione del progetto oppure se l'intenzione di essere consegnata è correlata a un dispositivo identificato in precedenza.

I dispositivi Google Home o Google Nest hanno limiti di memoria e l'app locale di evasione degli ordini potrebbe essere interrotta in qualsiasi momento a causa della pressione della memoria nel sistema. Questo può succedere se la tua app inizia a consumare troppa memoria o se il sistema deve fare spazio per un'altra app. La piattaforma Home locale riavvia l'app solo quando sono presenti nuovi intenti da fornire e risorse di memoria sufficienti per l'esecuzione dell'app.

La piattaforma Home locale scarica l'app dopo un timeout per inattività quando l'utente scollega il proprio account o non ci sono più dispositivi che supportano l'evasione degli ordini locale associato al agentUserId dell'utente.

Dispositivi supportati

La piattaforma Home locale esegue la tua app di evasione degli ordini locale su dispositivi Google Home o Google Nest supportati. La tabella seguente descrive i dispositivi supportati e il tempo di esecuzione utilizzato su ogni dispositivo. Per scoprire di più sui requisiti di runtime, consulta la pagina Ambiente di esecuzione.

Dispositivo Tipo Ambiente
Google Home Altoparlante Chrome
Google Home Mini Altoparlante Chrome
Google Home Max Altoparlante Chrome
Nest Mini Altoparlante Chrome
Nest Hub Display Chrome
Nest Hub Max Display Chrome
Nest Wifi Router Node.js
Punto di accesso Chrome

Ambiente di esecuzione

L'ambiente di esecuzione per l'app di evasione degli ordini locale dipende dal dispositivo. La piattaforma Home Home supporta i seguenti ambienti di runtime:

  • Chrome: l'app per l'evasione degli ordini locale viene eseguita nel contesto di un browser Chrome window con Chrome M80 o versioni successive che supporta EMAMA Script ES2018.
  • Node.js: l'app di evasione degli ordini locale viene eseguita come script all'interno di un processo Node.js con Node v10.x LTS o versioni successive con supporto per ECMAScript versione ES2018.

Struttura del codice sorgente

Consigliamo di raggruppare le dipendenze in un unico file JavaScript utilizzando le configurazioni del bundler fornite dall'SDK della home page locale e di pacchettizzare il codice sorgente come espressione di funzione con richiamo immediato (IIFE).

Percorso di implementazione

Per utilizzare l'SDK Local Home per l'integrazione della tua smart home, devi eseguire queste attività:

1 Configura la configurazione della scansione Configura la console di Actions con i parametri necessari affinché l'assistente possa rilevare i dispositivi controllabili localmente.
2 Aggiorna la risposta SYNC in Cloud fulfillment In Cloud fulfillment, modifica il gestore di richieste SYNC per supportare il campo otherDeviceIds utilizzato dalla piattaforma per stabilire un percorso di evasione locale. In questo campo, specifica gli ID dei dispositivi che possono essere controllati localmente.
3 Implementare l'app per l'evasione degli ordini locale Utilizza l'SDK Local Home per creare un'app JavaScript per gestire gli intent IDENTIFY, EXECUTE e QUERY. Per i dispositivi proxy hub o bridge, devi anche gestire l'intent REACHABLE_DEVICES.
4 Testare ed eseguire il debug dell'app Testa l'integrazione (o autocertifica) usando la Suite di test di Google Home.

Prima di iniziare