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.

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:
- 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 supporto per ECMAScript versione ES2018. - Node.js: l'app di evasione degli ordini locale viene eseguita come script in un processo Node.js con Node v10.x LTS o versioni successive con supporto per ECMAScript versione 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 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
- Acquisisci familiarità con le nozioni di base sulla creazione di un'azione per la smart home.
- Nella console di Actions, assicurati di avere un progetto di smart home esistente e che il collegamento dell'account sia configurato.
- Assicurati di aver eseguito l'accesso con lo stesso Account Google nella console di Actions e nell'assistente sul tuo dispositivo di test.
- È necessario un ambiente Node.js per scrivere l'app. Per installare Node.js e npm, è consigliato Gestore della versione del nodo.
- Per utilizzare l'ultima versione dell'SDK Local Home, devi registrare i tuoi dispositivi di prova al Programma Anteprima Cast.