El SDK de Local Home mejora tu integración de casa inteligente con Asistente de Google mediante la incorporación de una ruta de entrega local a fin de enrutar intents de casa inteligente.
El SDK te permite escribir una app de entrega local mediante TypeScript o JavaScript que contenga la lógica empresarial de tu hogar inteligente. Los dispositivos Google Home o Google Nest pueden cargar y ejecutar tu app en el dispositivo. La app se comunica directamente con tus dispositivos inteligentes existentes a través de Wi-Fi en una red de área local (LAN) para completar los comandos de usuario y los protocolos existentes.
La integración del SDK ofrece mejoras de rendimiento para tu Acción de casa inteligente, lo que incluye una menor latencia y una mayor confiabilidad. La entrega local es compatible con todos los tipos y características de dispositivo, excepto aquellos que usan la verificación secundaria de usuario.
Comenzar a compilar Probar la muestra
Comprende el funcionamiento
Después de obtener una respuesta SYNC
de la entrega en la nube, la plataforma de Local Home escanea la red de área local del usuario mediante mDNS, la transmisión UDP o UPnP para descubrir dispositivos inteligentes conectados al Asistente.
La plataforma envía un intent IDENTIFY
a fin de determinar si el dispositivo se puede controlar de forma local. Para ello, compara el ID del dispositivo en la respuesta de IDENTIFY
con los que muestra la respuesta de SYNC
anterior. Si el dispositivo detectado es un concentrador o puente, la plataforma envía un intent REACHABLE_DEVICES
y trata el concentrador como el dispositivo proxy para comunicarse de forma local.
Cuando recibe una respuesta que confirma un dispositivo local, la plataforma establece una ruta de entrega local al dispositivo Google Home o Google Nest del usuario y, luego, enruta los comandos del usuario para la entrega local.
Cuando un usuario activa una Acción de casa inteligente que tiene una ruta de entrega local, Asistente envía el intent EXECUTE
o el intent QUERY
al dispositivo Google Home o Google Nest en lugar de la entrega en la nube. Luego, el dispositivo ejecuta la app de entrega local para procesar el intent.

La plataforma de Local Home no es determinista en la elección de qué dispositivo Google Home o Google Nest activa el comando. Los intents EXECUTE
y QUERY
pueden provenir de cualquier dispositivo Google Home o Google Nest definido en la misma estructura de Home Graph que el dispositivo de destino.
App de entrega local
La app de entrega local contiene la lógica empresarial para procesar los intents enviados por la plataforma de Home local y acceder a tu dispositivo inteligente a través de la red de área local. No se espera que se modifique tu hardware para integrar la entrega local. Para completar las solicitudes de Acción de la casa inteligente, la app envía comandos de control al dispositivo inteligente a través de protocolos de la capa de la aplicación, incluidos HTTP, TCP o UDP. En caso de que falle la ruta de entrega local, la entrega de nube se usa como ruta de ejecución de resguardo.
Para admitir la compilación de la app, el SDK de Local Home proporciona estas dos clases principales:
DeviceManager
: Proporciona métodos para comunicarse con dispositivos inteligentes mediante solicitudes TCP, UDP o HTTP.App
: Proporciona métodos para adjuntar controladores a los intents que Google envía después de descubrir dispositivos que se pueden controlar de forma local (IDENTIFY
,REACHABLE_DEVICES
). Esta clase también entrega comandos de usuario (EXECUTE
) y responde las consultas de los usuarios sobre el estado actual del dispositivo (QUERY
).
Durante el desarrollo, puedes compilar y probar la app si la cargas en tu propio servidor de hosting o máquina de desarrollo local. En producción, Google aloja tu app en un entorno de zona de pruebas seguro de JavaScript en el dispositivo Google Home o Google Nest del usuario.
Actualmente, no se admite la API de Informe del estado para la entrega local. Google confía en tu entrega en la nube para procesar estas solicitudes.
Ciclo de vida de la aplicación
Tu app de entrega local se carga a pedido cuando la plataforma de Local Home descubre nuevos dispositivos locales que coinciden con la configuración del análisis del proyecto o tiene intents pendientes para entregar relacionados con un dispositivo identificado con anterioridad.
Los dispositivos Google Home o Google Nest tienen restricciones de memoria, y tu app de entrega local puede finalizar en cualquier momento debido a la presión de la memoria en el sistema. Esto puede suceder si tu app comienza a consumir demasiada memoria o si el sistema necesita hacer lugar para otra app. La plataforma de Local Home reinicia la app solo cuando hay intents nuevos para entregar y recursos de memoria suficientes a fin de que se ejecute la app.
La plataforma local de Home descarga tu app después de un tiempo de espera de inactividad cuando el usuario desvincula su cuenta o cuando ya no hay dispositivos que admitan la entrega local asociada con el agentUserId
del usuario.
Dispositivos compatibles
La plataforma de Home local ejecuta tu app de entrega local en dispositivos Google Home o Google Nest compatibles. En la siguiente tabla, se describen los dispositivos compatibles y el entorno de ejecución que se usa en cada dispositivo. Para obtener más información sobre los requisitos del entorno de ejecución, consulta Entorno de ejecución.
Dispositivo | Tipo | Entorno |
---|---|---|
Google Home | Bocina | Chrome |
Google Home Mini | Bocina | Chrome |
Google Home Max | Bocina | Chrome |
Nest Mini | Bocina | Chrome |
Nest Hub | Pantalla | Chrome |
Nest Hub Max | Pantalla | Chrome |
Nest Wifi | Router | Node.js |
Punto | Chrome |
Entorno de ejecución
El entorno de ejecución de la app de entrega local depende de tu dispositivo. La plataforma de Local Home admite los siguientes entornos de ejecución:
- Chrome: Tu app de entrega local se ejecuta dentro del contexto de un navegador Chrome
window
que ejecuta Chrome M80 o una versión posterior y es compatible con ECMAScript versión ES2018. - Node.js: la app de entrega local se ejecuta como una secuencia de comandos dentro de un proceso de Node.js que ejecuta Node v10.x LTS o una versión posterior compatible con ECMAScript versión ES2018.
Estructura del código fuente
Recomendamos que vincules tus dependencias en un solo archivo JavaScript con las configuraciones de agrupador que proporciona el SDK de Local Home y empaqueta tu código fuente como una expresión de función invocada de inmediato (IIFE).
Ruta de implementación
A fin de usar el SDK de Local Home para la integración de tu hogar inteligente, debes realizar las siguientes tareas:
1 | Establece la configuración de análisis | Configura la Consola de Actions con los parámetros necesarios para que el Asistente detecte dispositivos que se puedan controlar de forma local. |
2 | Actualiza la respuesta de SYNC en tu entrega en la nube | En tu entrega en la nube, modifica el controlador de solicitudes SYNC a fin de admitir el campo
otherDeviceIds que usa la plataforma para establecer una ruta de entrega local. En ese campo, especifica los ID de los dispositivos que se pueden controlar de forma local.
|
3 | Implementa la app de entrega local | Usa el SDK de Local Home a fin de crear una app de JavaScript para controlar los intents IDENTIFY ,
EXECUTE y
QUERY . Para dispositivos proxy de puente o puente, también debes controlar el intent REACHABLE_DEVICES .
|
4 | Prueba y depura tu app | Prueba tu integración (o autocertifica) con el Conjunto de pruebas de Google Home. |
Antes de comenzar
- Familiarízate con los conceptos básicos para crear una Acción de casa inteligente.
- En la Consola de Actions, asegúrate de tener un proyecto de casa inteligente existente y de que la vinculación de cuentas esté configurada.
- Asegúrate de haber accedido con la misma Cuenta de Google en la Consola de Actions y en Asistente en el dispositivo de prueba.
- Necesitarás un entorno de Node.js para escribir tu app. Se recomienda usar Node Version Manager a fin de instalar Node.js y npm.
- Para trabajar con la versión más reciente del SDK de Local Home, deberás inscribir tus dispositivos de prueba en el Programa de versión preliminar de Cast.