O SDK local do Google Home melhora a integração da sua casa inteligente com o Google Assistente ao adicionar um caminho de fulfillment local para rotear intents de casa inteligente.
O SDK local do Google Home oferece dois recursos: execução local e consulta local.
- A execução local permite atender a comandos enviando intents
EXEC
pelo caminho de fulfillment local, em vez de fazer uma chamada de API na nuvem. Por exemplo, a solicitação "Acenda a luz" pode ser processada pela execução local. - A Consulta local oferece a capacidade de processar consultas sobre
o estado do dispositivo enviando intents
QUERY
pelo caminho de fulfillment local. Por exemplo, a consulta local atenderia à pergunta "Minha luz está acesa?" sem fazer uma chamada de API na nuvem.
Com o SDK, é possível escrever um app de fulfillment local usando TypeScript ou JavaScript que contenha a lógica de negócios da sua casa inteligente. Os dispositivos Google Home ou Google Nest podem carregar e executar seu app no dispositivo. O app se comunica diretamente com os dispositivos inteligentes na rede Wi-Fi em uma rede local (LAN) para executar comandos do usuário usando protocolos atuais.
A integração do SDK oferece melhorias de performance à sua integração do Cloud-to-cloud, incluindo menor latência e maior confiabilidade. O atendimento 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 Testar o exemplo
Entenda como funciona
Depois de receber uma resposta SYNC
do fulfillment na nuvem, a plataforma local do Google Home 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 pode ser controlado localmente, comparando o ID do dispositivo na resposta IDENTIFY
com aqueles retornados pela resposta SYNC
anterior. Se o dispositivo detectado for um
hub ou uma ponte, a plataforma enviará uma intent REACHABLE_DEVICES
e tratará o
hub como o dispositivo proxy para comunicação local.
Quando recebe uma resposta confirmando um dispositivo local, a plataforma estabelece um caminho de fulfillment local para o dispositivo Google Home ou Google Nest do usuário e, em seguida, encaminha comandos do usuário para fulfillment local.
Quando um usuário aciona uma integração Cloud-to-cloud que tem um caminho de
fulfillment local, o Google Assistente envia a intent
EXECUTE
ou
QUERY
para o dispositivo Google Home ou Google Nest
em vez do fulfillment na nuvem. Em seguida, o dispositivo executa o app de fulfillment local para
processar a intent.
A plataforma Local Home não é determinista ao escolher qual dispositivo Google Home ou Google Nest vai 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 as intents enviadas pela plataforma Local Home e acessar seu dispositivo inteligente pela rede local. Não é necessário modificar o hardware para integrar o atendimento local. O app atende às solicitações de integração do Cloud-to-cloud enviando comandos de controle para o dispositivo inteligente usando protocolos da camada de aplicativo, incluindo HTTP, TCP ou UDP. Se o caminho de fulfillment local falhar, o fulfillment da nuvem será usado como um caminho de execução alternativo.
Para ajudar na criação do app, o SDK local do Google Home fornece estas duas classes principais:
DeviceManager
: fornece métodos para se comunicar com dispositivos inteligentes usando soquetes TCP, UDP ou solicitações HTTP.App
: fornece métodos para anexar manipuladores de intents que o Google envia depois de descobrir dispositivos controláveis localmente (IDENTIFY
,REACHABLE_DEVICES
). Essa classe também executa comandos do usuário (EXECUTE
) e responde a consultas do usuário sobre o estado atual do dispositivo (QUERY
).
Durante o desenvolvimento, é possível criar e testar o app carregando-o no seu próprio servidor de hospedagem ou máquina de desenvolvimento local. Em produção, o Google hospeda seu app em um ambiente de sandbox JavaScript seguro no dispositivo Google Home ou Google Nest do usuário.
No momento, a API Report State não é compatível com o atendimento local. O Google depende do seu fulfillment na nuvem para processar essas solicitações.
Ciclo de vida do aplicativo
O app de fulfillment local é carregado sob demanda quando a plataforma Local Home descobre novos dispositivos locais que correspondem à configuração de verificação do projeto ou tem intents pendentes para entregar relacionados a um dispositivo identificado anteriormente.
Os dispositivos Google Home ou Google Nest têm memória limitada, e seu app fulfillment local pode ser encerrado a qualquer momento devido à pressão de memória no sistema. Isso pode acontecer se o app começar a consumir muita memória ou se o sistema precisar abrir espaço para outro app. A plataforma Local Home reinicia o app apenas quando há novas intents para entregar e recursos de memória suficientes para a execução do app.
A plataforma Local Home descarrega seu app após um tempo limite de inatividade quando o usuário
desvincula a conta ou não há mais dispositivos compatíveis com o atendimento
local associados ao agentUserId
do usuário.
Dispositivos compatíveis
A plataforma Local Home executa seu app de fulfillment local em dispositivos Google Home ou Google Nest compatíveis. A tabela a seguir descreve os dispositivos compatíveis e o tempo de execução usado em cada um deles. Para saber mais sobre os requisitos de tempo 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 | Display | Chrome |
Nest Hub Max | Display | Chrome |
Nest Wifi | Roteador | Node.js |
Ponto | Chrome |
Ambiente de execução
O ambiente de execução do app de fulfillment local depende do seu dispositivo. A plataforma Local Home é compatível com os seguintes ambientes de execução:
- Chrome: seu app de atendimento local é executado no contexto de um navegador
Chrome
window
que executa o Chrome M80 ou uma versão mais recente com suporte para ECMAScript versão ES2018. - Node.js: seu app de fulfillment local é executado como um script em um processo do Node.js que executa Node v10.x LTS ou versões mais recentes com suporte para 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 empacotar seu código-fonte como uma expressão de função invocada imediatamente (IIFE, na sigla em inglês).
Caminho de implementação
Para usar o SDK local do Google Home na sua integração de casa inteligente, você precisa realizar estas tarefas:
1 | Configurar a verificação | Configure o Google Home Developer Console com os parâmetros necessários para que o Google Assistente descubra dispositivos controláveis localmente. |
2 | Atualize a resposta SYNC no fulfillment da nuvem | No seu atendimento na nuvem, modifique o
processador de solicitações
SYNC
para oferecer suporte ao campo
otherDeviceIds , que a plataforma usa para estabelecer um
caminho de atendimento local. Nesse campo, especifique os IDs dos dispositivos que podem ser
controlados localmente.
|
3 | Implementar o app de fulfillment local | Use o SDK Local Home para criar um app JavaScript que
processe as intents IDENTIFY ,
EXECUTE e
QUERY . Para dispositivos proxy de hub ou ponte, também é necessário processar a intent REACHABLE_DEVICES .
|
4 | Testar e depurar seu app | Teste sua integração (ou faça a autocertificação) usando o Pacote de testes do Google Home. |
Antes de começar
- Conheça os conceitos básicos de criação de uma integração do Cloud-to-cloud.
- No Google Home Developer Console, verifique se você tem um projeto de casa inteligente e se a vinculação de conta está configurada.
- Confira se você fez login com a mesma Conta do Google no Developer Console e no Google Assistente do dispositivo de teste.
- Você vai precisar de um ambiente Node.js para escrever seu app. Para instalar o Node.js e o npm, recomendamos o Node Version Manager.
- Para trabalhar com a versão mais recente do SDK local do Google Home, é necessário inscrever seus dispositivos de teste no Programa de prévia do Cast.