Ti diamo il benvenuto nel Centro sviluppatori Google Home, la nuova destinazione per imparare a sviluppare azioni per la smart home. Nota:continuerai a creare azioni nella Console Actions.

Distribuzione locale

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

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 di evasione degli ordini locale tramite TypeScript o JavaScript, che contiene la logica di business della tua smart home. I dispositivi Google Home o Google Nest possono caricare ed eseguire l'app sul dispositivo. L'app comunica direttamente con gli smart device esistenti tramite Wi-Fi su una LAN (Local Area Network) per eseguire i comandi dell'utente, tramite protocolli esistenti.

L'integrazione dell'SDK offre miglioramenti delle prestazioni per l'azione della tua smart home, inclusa una latenza più bassa e una maggiore affidabilità. La distribuzione locale è supportata per tutti i tipi di dispositivi e tutte le caratteristiche dei dispositivi, tranne quelli che utilizzano la verifica secondaria dell'utente.

Inizia a creare Prova l'esempio

Scopri come funziona

Dopo aver ricevuto una risposta SYNC dal tuo fulfillment cloud, la piattaforma Home locale analizza la rete locale dell'utente utilizzando mDNS, trasmissione UDP o UPnP per rilevare gli smart device collegati 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 il dispositivo proxy per le comunicazioni locali.

Quando riceve una risposta che conferma un dispositivo locale, la piattaforma stabilisce un percorso di evasione locale per il dispositivo Google Home o Google Nest dell'utente, quindi esegue il routing dei comandi per l'evasione degli ordini locali.

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

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

La piattaforma Home Home non è deterministica nel scegliere quale dispositivo Google Home o Google Nest 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 evasione degli ordini locale

L'app di evasione degli ordini locale contiene la logica di business per elaborare gli intent inviati dalla piattaforma locale della casa 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 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, il tuo evasione ordini cloud verrà utilizzato come percorso di esecuzione di riserva.

Per supportare la creazione dell'app, l'SDK Local Home offre 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 gli intent che Google invia dopo aver rilevato i dispositivi controllabili localmente (IDENTIFY, REACHABLE_DEVICES). Questo corso esegue 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 per lo 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 Stato rapporto non è attualmente supportata per l'evasione degli ordini locale. Google si basa sul tuo evasione degli ordini 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 o se sono presenti intenti in sospeso relativi alla consegna di un dispositivo identificato in precedenza.

I dispositivi Google Home o Google Nest hanno limitazioni di memoria e l'app di evasione degli ordini locale può essere terminata 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 Home riavvia la tua app solo quando ci sono nuovi intent da pubblicare e risorse di memoria sufficienti per l'esecuzione.

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 locali associati al agentUserId dell'utente.

Dispositivi supportati

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

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

Ambiente di esecuzione

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

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

Struttura del codice sorgente

Ti consigliamo di raggruppare le dipendenze in un unico file JavaScript utilizzando le configurazioni del bundler fornite dall'SDK Local Home 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 di scansione Configura la console di Actions con i parametri necessari per consentire all'assistente di rilevare i dispositivi controllabili localmente.
2 Aggiornare la risposta di sincronizzazione in Cloud fulfillment Nel tuo fulfillment cloud, modifica il gestore di richieste SYNC per supportare il campo otherDeviceIds utilizzato dalla piattaforma per stabilire un percorso di evasione degli ordini locale. In questo campo specifica gli ID dei dispositivi che possono essere controllati localmente.
3 Implementa l'app di distribuzione 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 la tua integrazione (o autocertifica) usando la Test Suite di Google Home.

Prima di iniziare