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 offre due funzionalità: esecuzione locale e query locale.
- L'esecuzione locale offre la possibilità di eseguire comandi inviando
intent
EXEC
tramite il percorso di fulfillment locale, anziché effettuare una chiamata all'API cloud. Ad esempio, la richiesta "Accendi la luce" potrebbe essere gestita da Local Execution. - Local Query consente di gestire le query relative allo stato del dispositivo inviando intent
QUERY
tramite il percorso di evasione locale. Ad esempio, la query locale soddisfa la query "La mia luce è accesa?" senza effettuare una chiamata API cloud.
L'SDK ti consente di scrivere un'app di evasione locale, utilizzando TypeScript o JavaScript, che contiene la logica di business della tua casa smart. I dispositivi Google Home o Google Nest possono caricare ed eseguire la tua app sul dispositivo. La tua app comunica direttamente con i tuoi dispositivi smart esistenti tramite Wi-Fi su una rete locale (LAN) per eseguire i comandi dell'utente, tramite protocolli esistenti.
L'integrazione dell'SDK offre miglioramenti delle prestazioni all'integrazione di Cloud-to-cloud, tra cui latenza inferiore e maggiore affidabilità. L'evasione locale è supportata per tutti i tipi di dispositivi e le relative caratteristiche, ad eccezione di quelli che utilizzano la verifica secondaria dell'utente.
Inizia a creare Prova l'esempio
Scopri come funziona
Dopo aver ricevuto una risposta SYNC
dall'evasione cloud, la piattaforma Local 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 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 dispositivo proxy per la comunicazione locale.
Quando riceve una risposta che conferma un dispositivo locale, la piattaforma stabilisce un percorso di fulfillment locale al dispositivo Google Home o Google Nest dell'utente e successivamente indirizza i comandi dell'utente per il fulfillment locale.
Quando un utente attiva un'integrazione Cloud-to-cloud che ha un percorso di distribuzione locale, l'assistente invia l'intent EXECUTE
o l'intent QUERY
al dispositivo Google Home o Google Nest anziché alla distribuzione cloud. Il dispositivo esegue quindi l'app di evasione locale per
elaborare l'intent.
La piattaforma Local Home non è deterministica nella scelta del dispositivo Google Home o Google Nest da
attivare il comando. Gli intent EXECUTE
e QUERY
possono essere inviati da qualsiasi dispositivo Google Home o Google Nest definito nella stessa struttura Home Graph del dispositivo di destinazione.
App di evasione ordini locale
L'app di distribuzione 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. Per integrare l'evasione locale non è prevista alcuna modifica dell'hardware. L'app soddisfa le richieste di integrazione di Cloud-to-cloud inviando comandi di controllo allo smart device tramite protocolli di livello applicazione, tra cui HTTP, TCP o UDP. Nel caso in cui il percorso di evasione locale non vada a buon fine, l'evasione sul cloud viene utilizzata 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 collegare i gestori per gli intent che Google invia dopo aver rilevato i dispositivi controllabili localmente (IDENTIFY
,REACHABLE_DEVICES
). Questa classe soddisfa anche i comandi dell'utente (EXECUTE
) e risponde alle query dell'utente sullo stato attuale del dispositivo (QUERY
).
Durante lo sviluppo, puoi creare e testare l'app caricandola sul tuo server di hosting o sulla 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 all'evasione nel cloud per elaborare queste richieste.
Ciclo di vita dell'applicazione
L'app di evasione locale viene caricata su richiesta quando la piattaforma Local Home rileva nuovi dispositivi locali corrispondenti alla configurazione di scansione 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 la tua app di evasione locale potrebbe essere chiusa in qualsiasi momento a causa della pressione della memoria nel sistema. Ciò 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 ci sono nuovi intent da distribuire 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 suo account o non ci sono più dispositivi che supportano l'evasione
locale associati al agentUserId
dell'utente.
Dispositivi supportati
La piattaforma Local Home esegue l'app di evasione locale 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 la sezione 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 dell'app di adempimento locale dipende dal tuo dispositivo. La piattaforma Local Home supporta i seguenti ambienti di runtime:
- Chrome: l'app di evasione 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 locale viene eseguita come script all'interno di un processo Node.js in esecuzione su 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 da Local Home SDK e di comprimere il codice sorgente come espressione di funzione richiamata 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 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 fulfillment cloud | Nel tuo cloud fulfillment, modifica il
SYNC
gestore delle richieste per supportare il
campo
otherDeviceIds che la piattaforma utilizza per stabilire un
percorso di evasione locale. In questo campo, specifica gli ID dei dispositivi che possono essere
controllati localmente.
|
3 | Implementare l'app di evasione 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
gestire anche l'intent REACHABLE_DEVICES .
|
4 | Testare ed eseguire il debug dell'app | Testa l'integrazione (o autocertificala) utilizzando Google Home Test Suite. |
Prima di iniziare
- Acquisisci familiarità con le nozioni di base per creare un'Cloud-to-cloudintegrazione.
- In Google Home Developer Console, assicurati di avere un progetto 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 la tua app, avrai bisogno di un ambiente Node.js. Per installare Node.js e npm, ti consigliamo di utilizzare Node Version Manager.
- Per utilizzare l'ultima versione dell'SDK Local Home, devi registrare i tuoi dispositivi di test al programma Cast Preview.