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 consente di scrivere un'app di evasione degli ordini locale tramite TypeScript o JavaScript, contenente la logica di business per la 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 rete LAN (Local Area Network) per eseguire i comandi dell'utente, anziché i protocolli esistenti.

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

Inizia a creare Prova l'esempio

Scopri come funziona

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

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

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 e, successivamente, indirizza i comandi utente per l'evasione degli ordini locale.

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

Questa figura mostra il flusso di esecuzione per il fulfillment 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 da Google Cloud, quindi viene eseguito localmente sul dispositivo Google Home e il comando viene emesso 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 della tua smart home.

La piattaforma della home page locale non è deterministica nella scelta del dispositivo Google Home o Google Nest per attivare il comando. Gli intent EXECUTE e QUERY possono passare attraverso qualsiasi dispositivo Google Home o Google Nest definito nella stessa struttura del grafico a casa 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 Local Home e accedere allo smart device tramite la rete locale. Non è prevista alcuna modifica del tuo hardware per integrare la distribuzione locale. L'app soddisfa le richieste di azioni per la smart home inviando comandi di controllo allo smart device tramite protocolli a livello di applicazione, tra cui HTTP, TCP o UDP. Se il percorso di evasione locale non va 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 i 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 Report State non è attualmente supportata per il fulfillment locale. Google si basa sul tuo fulfillment cloud per elaborare queste richieste.

Ciclo di vita di un'applicazione

L'app di evasione degli ordini locale viene caricata on demand quando la piattaforma Home page rileva nuovi dispositivi locali corrispondenti alla configurazione di scansione del progetto o ha un'intenzione di consegna in attesa relativa a un dispositivo identificato in precedenza.

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

La piattaforma della home page locale scarica l'app dopo un timeout per inattività quando l'utente scollega il proprio account o quando non ci sono più dispositivi che supportano il fulfillment locale associato all'agentUserId dell'utente.

Dispositivi supportati

La piattaforma Home Home esegue l'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 ciascun dispositivo. Per scoprire di più sui requisiti di runtime, consulta la pagina relativa all'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 Display Google Chrome
Nest Hub Max Display 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 Home supporta i seguenti ambienti di runtime:

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 assemblare il codice sorgente come IIFE (immediata chiamata) Espressione di funzione.

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 Aggiorna la risposta SYNC nell'evasione degli ordini cloud Nel fulfillment cloud, 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 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 Google Test Suite.

Prima di iniziare