L'SDK Local Home migliora l'integrazione della tua smart home con Google Assistente aggiungendo un percorso di evasione degli ordini locale per il percorso. intent per la smart home.
L'SDK ti consente di scrivere un'app di distribuzione locale utilizzando TypeScript o JavaScript, che contiene la logica di business della smart home. I dispositivi Google Home o Google Nest possono caricare esegui l'app sul dispositivo. La tua app comunica direttamente con il tuo smart device esistente dispositivi tramite Wi-Fi su una LAN (Local Area Network) per eseguire i comandi dell'utente su protocolli esistenti.
L'integrazione dell'SDK migliora le prestazioni della smart home Azione, tra cui minore latenza e maggiore affidabilità. L'evasione degli ordini locale è supportata per tutti i tipi e le caratteristiche dei dispositivi, ad eccezione di quelli che utilizzano utente secondario verifica.
Inizia a creare Prova l'esempio
Come funziona
Dopo aver ricevuto una risposta SYNC
dalla tua distribuzione cloud, la piattaforma Home locale scansiona il codice
LAN (Local Area Network) utilizzando mDNS, broadcast UDP o UPnP per scoprire
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
a quelli restituiti dalla precedente risposta SYNC
. Se il dispositivo rilevato è un
hub o bridge, la piattaforma invia un intent REACHABLE_DEVICES
e tratta le
come dispositivo proxy per le comunicazioni locali.
Quando riceve una risposta che conferma un dispositivo locale, la piattaforma stabilisce un percorso di distribuzione locale al dispositivo Google Home o Google Nest dell'utente e, successivamente, il routing per il completamento locale.
Quando un utente attiva un'azione per la smart home con un percorso di distribuzione locale,
L'assistente invia EXECUTE
o l'intent QUERY
alla
dispositivo Google Home o Google Nest anziché distribuzione cloud. Il dispositivo
esegue l'app di distribuzione locale per elaborare l'intent.
La piattaforma Home locale non è deterministica nella scelta del dispositivo Google Home o Google Nest da usare
attivare il comando. Gli intent EXECUTE
e QUERY
possono provenire da qualsiasi
Dispositivo Google Home o Google Nest definito nello stesso Home Graph
come dispositivo di destinazione.
App di distribuzione locale
L'app di distribuzione locale contiene la logica di business per elaborare gli intent inviati la piattaforma Home locale e accedere allo smart device tramite la rete LAN. Non è prevista alcuna modifica dell'hardware per integrare la distribuzione locale. La L'app soddisfa le richieste di azione per la smart home inviando comandi di controllo al tramite protocolli a livello di applicazione, tra cui HTTP, TCP o UDP. Nel caso in cui il percorso di distribuzione locale non vada a buon fine, verrà utilizzato l'evasione degli ordini cloud. un percorso di esecuzione di riserva.
Per supportare lo sviluppo dell'app, l'SDK Local Home fornisce queste due opzioni principali classi:
DeviceManager
: Offre metodi per comunicare con gli smart device utilizzando TCP, UDP o richieste HTTP.App
: Fornisce metodi per collegare i gestori per gli intent che Google invia dopo aver individuato dispositivi controllabili localmente (IDENTIFY
,REACHABLE_DEVICES
). Questa classe completa 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 autonomamente. un server di hosting o una macchina di sviluppo locale. In fase di produzione, Google ospita in un ambiente sandbox JavaScript sicuro sul dispositivo Google Home o Google Nest dell'utente.
L'API Report State attualmente non supportato per l'evasione degli ordini locale. Google si basa sui tuoi il deployment cloud per elaborare queste richieste.
Ciclo di vita dell'applicazione
L'app di distribuzione locale viene caricata on demand quando la piattaforma Home locale rileva nuovi dispositivi locali corrispondenti alla configurazione della scansione del progetto o in attesa gli intent da pubblicare relativi a un dispositivo identificato in precedenza.
I dispositivi Google Home o Google Nest hanno limiti di memoria e la tua app di distribuzione locale può essere terminata in qualsiasi momento a causa della pressione di memoria nel sistema. Questo può si verificano se l'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 e risorse di memoria sufficienti per l'esecuzione dell'app.
La piattaforma Home locale scarica la tua app dopo un timeout di inattività quando l'utente
scollega il suo account o non ci sono più dispositivi che supportano la funzionalità locale
completamento associato all'indirizzo agentUserId
dell'utente.
Dispositivi supportati
La piattaforma Home locale esegue l'app di distribuzione locale sui dispositivi supportati Dispositivi Google Home o Google Nest. Nella tabella che segue sono descritti i dispositivi supportati e le tempo di esecuzione più elevato su ciascun dispositivo. Per scoprire di più sui requisiti di runtime, vedi 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 | Chrome |
Ambiente di esecuzione
L'ambiente di esecuzione per l'app di distribuzione locale dipende da dispositivo. La piattaforma Local Home supporta le seguenti funzionalità ambienti di runtime:
- Chrome: l'app di distribuzione locale viene eseguita nel contesto di un browser Chrome
browser
window
con Chrome M80 o in seguito con il supporto ECMAScript versione ES2018. - Node.js: l'app di distribuzione locale viene eseguita come script all'interno di un file Node.js. processo che esegue Node v10.x LTS o in seguito con il supporto ECMAScript versione ES2018.
Struttura del codice sorgente
Ti consigliamo di raggruppare le dipendenze in un unico file JavaScript utilizzando configurazioni bundle forniti dall'SDK Local Home e pacchettizzando il codice sorgente sotto forma di Espressione di funzione richiamata immediatamente (IIFE).
Percorso di implementazione
Per utilizzare l'SDK Local Home per l'integrazione con la tua smart home, devi: eseguire queste attività:
1 | Configurazione della scansione config | Configura la console Actions con i parametri necessari per per rilevare i dispositivi controllabili localmente. |
2 | Aggiorna il Sincronizza la risposta nel tuo fulfillment cloud | Nel fulfillment Cloud, modifica
SYNC
gestore di richieste per il supporto
otherDeviceIds utilizzato dalla piattaforma per stabilire
percorso di distribuzione locale. Nel campo, specifica gli ID dei dispositivi che possono essere
controllato localmente.
|
3 | Implementa il metodo app di distribuzione locale | Utilizza l'SDK Local Home per creare un'app JavaScript al fine di
gestire IDENTIFY ,
EXECUTE e
QUERY intent. Per i dispositivi proxy hub o bridge, dovresti
gestire anche l'intent REACHABLE_DEVICES .
|
4 | Testare ed eseguire il debug dell'app | Testa la tua integrazione (o ottieni un'autocertificazione) utilizzando la Test Suite di Google Home. |
Prima di iniziare
- Acquisisci familiarità con le nozioni di base per la creazione di una smart home Azione.
- Nella sezione Azioni Google Cloud, assicurati di avere già un progetto per la smart home e che il collegamento dell'account sia configurato.
- Assicurati di aver effettuato l'accesso con lo stesso Account Google nel Nella console di Actions e nell'assistente sul tuo dispositivo di test.
- È necessario un file Node.js per scrivere la tua app. Per installare Node.js e npm, versione nodo Gestore è consigliato.
- Per lavorare con l'ultima versione dell'SDK Local Home, devi: registrare i dispositivi di test nell'anteprima di trasmissione Google Cloud.