L'SDK Local Home migliora l'integrazione della tua smart home con l'Assistente Google aggiungendo un percorso di completamento locale per il routing degli intent della smart home.
L'SDK della casa locale fornisce due funzionalità: esecuzione locale e query locale.
- L'esecuzione locale consente di eseguire i comandi inviando
EXEC
intent tramite il percorso di adempimento locale, anziché effettuare una chiamata all'API cloud. Ad esempio, la richiesta "Accendi la luce" potrebbe essere gestita da Local Execution. - Local Query offre la possibilità di gestire le query relative allo stato del dispositivo inviando intent
QUERY
tramite il percorso di evasione locale. Ad esempio, Local Query eseguirà la query "La mia luce è accesa?" senza effettuare una chiamata all'API cloud.
L'SDK ti consente di scrivere un'app di evasione degli ordini locale, utilizzando TypeScript o JavaScript, che contiene la logica aziendale della tua casa intelligente. I dispositivi Google Home o Google Nest possono caricare e eseguire la tua app sul dispositivo. L'app comunica direttamente con gli smart device esistenti tramite Wi-Fi su una rete locale (LAN) per eseguire i comandi degli utenti tramite i protocolli esistenti.
L'integrazione dell'SDK offre miglioramenti alle prestazioni dell'integrazione di Cloud-to-cloud, tra cui una latenza inferiore e una maggiore affidabilità. L'evasione locale è supportata per tutti i tipi di dispositivi e le caratteristiche dei dispositivi, ad eccezione di quelli che utilizzano la verifica utente secondaria.
Inizia a creare Prova il Sample
Come funziona
Dopo aver ricevuto una risposta SYNC
dal tuo cloud fulfillment, la piattaforma Local Home esegue la scansione della rete di area locale dell'utente utilizzando mDNS, trasmissione UDP o UPnP per rilevare
gli smart device connessi all'assistente.
La piattaforma invia un'intenzione 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'intenzione REACHABLE_DEVICES
e tratta l'hub come il dispositivo proxy per la comunicazione locale.
Quando riceve una risposta che conferma un dispositivo locale, la piattaforma stabilisce un percorso di adempimento locale per il dispositivo Google Home o Google Nest dell'utente e successivamente inoltra i comandi dell'utente per l'adempimento locale.
Quando un utente attiva un'integrazione Cloud-to-cloud con un percorso di esecuzione locale, l'assistente invia l'intent EXECUTE
o l'intent QUERY
al dispositivo Google Home o Google Nest anziché alla gestione in cloud. Il dispositivo esegue quindi l'app di evasione degli ordini locale per elaborare l'intent.
La piattaforma Local Home non è determinista nella scelta del dispositivo Google Home o Google Nest su cui attivare il comando. Gli intent EXECUTE
e QUERY
possono essere inviati tramite qualsiasi
dispositivo Google Home o Google Nest definito nella stessa struttura del grafico della casa 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 Local Home e accedere al tuo 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 integrazione di Cloud-to-cloud inviando comandi di controllo allo smart device tramite protocolli di livello di applicazione, tra cui HTTP, TCP o UDP. Se il percorso di evasione locale non va a buon fine, viene utilizzato il cloud fulfillment come percorso di esecuzione di riserva.
Per supportare la creazione dell'app, l'SDK della casa locale fornisce queste due classi principali:
DeviceManager
: fornisce metodi per comunicare con gli smart device utilizzando socket TCP, UDP o richieste HTTP.App
: fornisce metodi per associare gestori per gli intent inviati da Google dopo aver rilevato i dispositivi controllabili localmente (IDENTIFY
,REACHABLE_DEVICES
). Questo gruppo soddisfa anche i comandi dell'utente (EXECUTE
) e risponde alle query dell'utente sullo stato corrente 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 la tua app in un ambiente sandbox JavaScript sicuro sul dispositivo Google Home o Google Nest dell'utente.
L'API Report State non è attualmente supportata per l'evasione locale. Google si affida al tuo Fulfillment cloud per elaborare queste richieste.
Ciclo di vita dell'applicazione
L'app di evasione degli ordini locale viene caricata su richiesta quando la piattaforma Local Home rileva nuovi dispositivi locali corrispondenti alla configurazione della ricerca del progetto o ha intenti in attesa da inviare relativi a un dispositivo identificato in precedenza.
I dispositivi Google Home o Google Nest hanno una memoria limitata e l'app di evasione degli ordini locale potrebbe essere interrotta in qualsiasi momento a causa della pressione sulla memoria del sistema. Questo può accadere se l'app inizia a consumare troppa memoria o se il sistema deve fare spazio per un'altra app. La piattaforma Local Home riavvia l'app solo quando sono presenti nuovi intent da inviare e risorse di memoria sufficienti per l'esecuzione dell'app.
La piattaforma Local Home scarica la tua app dopo un timeout di inattività quando l'utente scollega il proprio account o non sono più presenti dispositivi che supportano l'evasione degli ordini locali associati al agentUserId
dell'utente.
Dispositivi supportati
La piattaforma Local Home esegue la tua app di evasione degli ordini locali sui dispositivi Google Home o Google Nest supportati. La tabella seguente descrive i dispositivi supportati e il runtime utilizzato su ciascun dispositivo. Per scoprire di più sui requisiti di runtime, consulta 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 evasione degli ordini locale dipende dal tuo 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 della 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 di 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 pacchettizzare il codice sorgente come espressione di funzione invocata immediatamente (IIFE).
Percorso di implementazione
Per utilizzare l'SDK della casa locale per l'integrazione della smart home, devi svolgere queste attività:
1 | Configurare la configurazione della scansione | Configura Google Home Developer Console con i parametri necessari per consentire all'assistente di rilevare i dispositivi controllabili localmente. |
2 | Aggiorna la risposta SYNC nel tuo cloud fulfillment | Nella gestione dell'ordine nel cloud, modifica il gestore delle 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 | Implementare l'app di 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 e eseguire il debug dell'app | Testa l'integrazione (o autocertificati) utilizzando la Google Home Test Suite. |
Prima di iniziare
- Acquisisci familiarità con le nozioni di base della creazione di un'integrazione Cloud-to-cloud.
- In Google Home Developer Console, assicurati di avere un progetto per la smart home esistente e che il collegamento dell'account sia configurato.
- Assicurati di aver eseguito l'accesso con lo stesso Account Google in Developer Console e nell'assistente sul dispositivo di test.
- Per scrivere l'app, è necessario un ambiente Node.js. Per installare Node.js e npm, è consigliato Node Version Manager.
- Per utilizzare la versione più recente dell'SDK Local Home, devi registrare i tuoi dispositivi di test nel Programma di anteprima di Trasmissione.