Evasione degli ordini locale

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.

Questa figura mostra il flusso di esecuzione per il fulfillment locale. La
            il percorso di esecuzione acquisisce l'intenzione di un utente da uno smartphone
            l'Assistente Google, l'intent dell'utente viene elaborato
            su Google Cloud, poi viene eseguita localmente su Google Home
            dispositivo e il comando viene inviato direttamente all'hub dei dispositivi
            direttamente al dispositivo. Il cloud per sviluppatori è disponibile come
            di Cloud Storage.
Figura 1: aggiunta di un percorso di distribuzione locale per la tua smart home Azione.

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:

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