O SDK local do Google Home aprimora sua integração de casa inteligente com o Google Assistente, adicionando um caminho de fulfillment local para rotear intents de casa inteligente.
O SDK permite criar um app de fulfillment local usando TypeScript ou JavaScript, que contém a lógica de negócios de casa inteligente. Os dispositivos Google Home ou Google Nest podem carregar e executar o app no dispositivo. O app se comunica diretamente com os dispositivos inteligentes existentes por Wi-Fi em uma rede local (LAN) para executar comandos de usuário em protocolos existentes.
A integração do SDK oferece melhorias de desempenho para a ação de casa inteligente, incluindo menor latência e maior confiabilidade. O fulfillment local é compatível com todos os tipos e características de dispositivos, exceto aqueles que usam a verificação secundária do usuário.
Comece a criar Teste a amostra
Entenda como funciona
Depois de receber uma resposta SYNC
do fulfillment na nuvem, a plataforma da casa local verifica a rede
local do usuário usando mDNS, transmissão UDP ou UPnP para descobrir
dispositivos inteligentes conectados ao Google Assistente.
A plataforma envia uma intent IDENTIFY
para determinar se o dispositivo é
controlável localmente, comparando o ID do dispositivo na resposta IDENTIFY
com os retornados pela resposta SYNC
anterior. Se o dispositivo detectado for um hub ou ponte, a plataforma enviará um intent REACHABLE_DEVICES
e tratará o hub como o dispositivo proxy para comunicação local.
Ao receber uma resposta confirmando um dispositivo local, a plataforma estabelecerá um caminho de fulfillment local para o dispositivo Google Home ou Google Nest do usuário e, depois, encaminhará os comandos do usuário para o fulfillment local.
Quando um usuário aciona uma ação de casa inteligente que tem um caminho de fulfillment local,
o Google Assistente envia a intent EXECUTE
ou a QUERY
para o
dispositivo Google Home ou Google Nest, em vez do fulfillment da nuvem. Em seguida, o dispositivo executa o app de fulfillment local para processar a intent.

A plataforma Google Home não é determinista ao escolher qual dispositivo Google Home ou Google Nest acionará o comando. Os intents EXECUTE
e QUERY
podem vir de qualquer
dispositivo Google Home ou Google Nest definido na mesma estrutura do Home
Graph que o dispositivo de destino.
App de fulfillment local
O app de fulfillment local contém a lógica de negócios para processar os intents enviados pela plataforma Local Home e acessar o dispositivo inteligente pela rede local. Não é esperado que seu hardware seja integrado ao fulfillment local. O app atende a solicitações de ação de casa inteligente enviando comandos de controle para o dispositivo inteligente por meio de protocolos da camada de aplicativos, incluindo HTTP, TCP ou UDP. Caso o caminho de fulfillment local falhe, o fulfillment da nuvem é usado como um caminho de execução substituto.
Para oferecer compatibilidade com a criação do app, o SDK local do Google Home oferece estas duas classes principais:
DeviceManager
: fornece métodos para se comunicar com dispositivos inteligentes usando soquetes UDP ou TCP ou solicitações HTTP.App
: fornece métodos para anexar gerenciadores de intents que o Google envia após descobrir dispositivos controláveis localmente (IDENTIFY
,REACHABLE_DEVICES
). Essa classe também atende aos comandos do usuário (EXECUTE
) e responde a consultas do usuário sobre o estado atual do dispositivo (QUERY
).
Durante o desenvolvimento, você pode criar e testar o aplicativo carregando-o no seu próprio servidor de hospedagem ou máquina de desenvolvimento local. Na produção, o Google hospeda o app em um ambiente de sandbox seguro no dispositivo Google Home ou Google Nest do usuário.
No momento, a API Report State não é compatível com o fulfillment local. O Google depende do fulfillment da nuvem para processar essas solicitações.
Ciclo de vida do aplicativo
Seu app de fulfillment local é carregado sob demanda quando a plataforma do Google Home local descobre novos dispositivos locais que correspondem à configuração da verificação do projeto ou tem intents pendentes para enviar relacionadas a um dispositivo identificado anteriormente.
Os dispositivos Google Home ou Google Nest têm restrição de memória e o app de fulfillment local pode ser encerrado a qualquer momento devido à pressão da memória no sistema. Isso pode acontecer se o app começar a consumir muita memória ou se o sistema precisar liberar espaço para outro. A plataforma local do Google Home só reinicia o app quando há novas intents para entregar e recursos de memória suficientes para ele ser executado.
A plataforma da casa local descarrega o app após um tempo limite de inatividade quando o usuário desvincula a conta ou quando não há mais dispositivos compatíveis com o fulfillment local associado à agentUserId
do usuário.
Dispositivos com suporte
A plataforma do Google Home local executa o app de fulfillment local nos dispositivos Google Home ou Google Nest compatíveis. A tabela a seguir descreve os dispositivos compatíveis e o ambiente de execução usado em cada dispositivo. Para saber mais sobre os requisitos de ambiente de execução, consulte Ambiente de execução.
Dispositivo | Tipo | Ambiente |
---|---|---|
Google Home | Alto-falante | Chrome |
Google Home Mini | Alto-falante | Chrome |
Google Home Max | Alto-falante | Chrome |
Nest Mini | Alto-falante | Chrome |
Nest Hub | Tela | Chrome |
Nest Hub Max | Tela | Chrome |
Nest Wifi | Roteador | Node.js |
Ponto | Chrome |
Ambiente de execução
O ambiente de execução do app de fulfillment local depende do dispositivo. A plataforma do Local Home é compatível com os seguintes ambientes de execução:
- Chrome: seu app de fulfillment local é executado no contexto de um navegador
window
com o Chrome M80 ou mais recente, compatível com a versão do ECMAScript ES2018 (em inglês). - Node.js: seu aplicativo de fulfillment local é executado como um script dentro de um processo Node.js que executa o Node v10.x LTS ou posterior com suporte para o ECMAScript versão ES2018.
Estrutura do código-fonte
Recomendamos agrupar suas dependências em um único arquivo JavaScript usando as configurações do bundler fornecidas pelo SDK local do Google Home e o empacotamento do código-fonte como uma expressão de função invocada imediatamente (IIFE, na sigla em inglês).
Caminho de implementação
Para utilizar o SDK local do Google Home na sua integração de casa inteligente, você precisa executar estas tarefas:
1 | Definir a configuração da verificação | Configure o Console do Actions com os parâmetros necessários para que o Assistente descubra dispositivos controláveis localmente. |
2 | Atualizar a resposta do SYNC no fulfillment da nuvem | No fulfillment da nuvem, modifique o gerenciador de solicitação SYNC para oferecer compatibilidade com o campo
otherDeviceIds que a plataforma usa para estabelecer um caminho de fulfillment local. Nesse campo, especifique os códigos dos dispositivos que podem ser controlados localmente.
|
3 | Implementar o app de fulfillment local | Use o SDK local do Google Home para criar um app JavaScript que processe os intents IDENTIFY ,
EXECUTE e
QUERY . Para dispositivos proxy de hub ou ponte, você também precisa
processar o intent REACHABLE_DEVICES .
|
4 | Testar e depurar o app | Teste sua integração (ou a autocertificação) usando o Pacote de testes do Google Home. |
Antes de começar
- Familiarize-se com os conceitos básicos da criação de uma ação de casa inteligente.
- No Console de ações, verifique se você tem um projeto de casa inteligente e se a vinculação da conta está configurada.
- Verifique se você fez login com a mesma Conta do Google no console do Actions e no Assistente no dispositivo de teste.
- Você precisará de um ambiente do Node.js para criar seu aplicativo. Para instalar o Node.js e o NPM, o Node Version Manager é recomendado.
- Para trabalhar com a versão mais recente do SDK local do Google Home, é necessário inscrever os dispositivos de teste no programa de testes do Google Cast.