El SDK de Local Home mejora la integración de tu casa inteligente con Asistente de Google agregando una ruta de entrega local para enrutar intents de casa inteligente.
El SDK de Local Home proporciona dos capacidades: Ejecución local y Consulta local.
- La ejecución local permite completar comandos enviando intents
EXEC
a través de la ruta de entrega local, en lugar de realizar una llamada a la API de Cloud. Por ejemplo, la ejecución local podría controlar la solicitud "Enciende la luz". - Local Query permite controlar consultas relacionadas con el estado del dispositivo enviando intents
QUERY
a través de la ruta de entrega local. Por ejemplo, la Búsqueda local completaría la búsqueda "¿Mi luz está encendida?" sin realizar una llamada a la API de Cloud.
El SDK te permite escribir una app de entrega local, con TypeScript o JavaScript, que contiene la lógica empresarial de tu casa inteligente. Los dispositivos Google Home o Google Nest pueden cargar y ejecutar tu app en el dispositivo. Tu 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 del usuario, a través de protocolos existentes.
La integración del SDK ofrece mejoras de rendimiento en tu integración de Cloud-to-cloud, como menor latencia y mayor confiabilidad. El cumplimiento local se admite en todos los tipos y rasgos de dispositivos, excepto en aquellos que usan la verificación secundaria del usuario.
Comienza a compilar Prueba la muestra
Comprende el funcionamiento
Después de recibir una respuesta SYNC
de tu cumplimiento en la nube, la plataforma de Local Home analiza la red de área local del usuario con mDNS, transmisión UDP o UPnP para descubrir los dispositivos inteligentes conectados al Asistente.
La plataforma envía un intent IDENTIFY
para determinar si el dispositivo se puede controlar de forma local. Para ello, compara el ID del dispositivo en la respuesta IDENTIFY
con los que se devolvieron en la respuesta SYNC
anterior. Si el dispositivo detectado es un concentrador o un puente, la plataforma envía un intent REACHABLE_DEVICES
y trata al concentrador como el dispositivo proxy para la comunicación 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 integración de Cloud-to-cloud 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 a la entrega en la nube. Luego, el dispositivo ejecuta la app de entrega local para procesar la intención.
La plataforma de Local Home no es determinista a la hora de elegir qué dispositivo Google Home o Google Nest activará el comando. Las acciones 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 que envía la plataforma de Local Home 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 el cumplimiento local. La app cumple con las solicitudes de integración de Cloud-to-cloud enviando comandos de control al dispositivo inteligente a través de protocolos de capa de aplicación, incluidos HTTP, TCP o UDP. En caso de que falle la ruta de entrega local, se usará tu entrega en la nube como ruta de ejecución de respaldo.
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 a través de sockets TCP, UDP o solicitudes HTTP.App
: Proporciona métodos para adjuntar controladores para intents que Google envía después de descubrir dispositivos controlables de forma local (IDENTIFY
,REACHABLE_DEVICES
). Esta clase también cumple con los comandos del usuario (EXECUTE
) y responde las consultas del usuario sobre el estado actual del dispositivo (QUERY
).
Durante el desarrollo, puedes compilar y probar la app cargándola en tu propio servidor de hosting o en tu máquina de desarrollo local. En producción, Google aloja tu app en un entorno de zona de pruebas de JavaScript seguro en el dispositivo Google Home o Google Nest del usuario.
Actualmente, la API de Report State no es compatible con el cumplimiento local. Google depende de tu cumplimiento 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 dispositivos locales nuevos que coinciden con la configuración de análisis del proyecto o tiene intents pendientes para entregar relacionados con un dispositivo identificado previamente.
Los dispositivos Google Home o Google Nest tienen limitaciones de memoria, y es posible que tu app de entrega local se cierre en cualquier momento debido a la presión de memoria en el sistema. Esto puede suceder si tu app comienza a consumir demasiada memoria o si el sistema necesita espacio para otra app. La plataforma de Local Home reinicia tu app solo cuando hay intents nuevos para entregar y recursos de memoria suficientes para que se ejecute la app.
La plataforma de Local Home descarga tu app después de un tiempo de espera por inactividad cuando el usuario desvincula su cuenta o ya no hay dispositivos que admitan la ejecución local asociados con el agentUserId
del usuario.
Dispositivos compatibles
La plataforma de Local Home 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 tiempo de ejecución que se usa en cada uno. Para obtener más información sobre los requisitos de tiempo de ejecución, consulta Entorno de ejecución.
Dispositivo | Tipo | Entorno |
---|---|---|
Página principal de Google | Bocina | Chrome |
Google Home Mini | Bocina | Chrome |
Google Home Max | Bocina | Chrome |
Nest Mini | Bocina | Chrome |
Nest Hub | Display | Chrome |
Nest Hub Max | Display | Chrome |
Nest Wifi | Router | Node.js |
Punto | Chrome |
Entorno de ejecución
El entorno de ejecución de tu app de entrega local depende de tu dispositivo. La plataforma Local Home admite los siguientes entornos de ejecución:
- Chrome: Tu app de procesamiento local se ejecuta en el contexto de un navegador Chrome
window
que ejecuta Chrome M80 o una versión posterior con compatibilidad para ECMAScript versión ES2018. - Node.js: Tu app de cumplimiento 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 con compatibilidad para ECMAScript versión ES2018.
Estructura del código fuente
Te recomendamos que agrupes tus dependencias en un solo archivo JavaScript con las configuraciones del bundler que proporciona el SDK de Local Home y que empaquetes tu código fuente como una expresión de función invocada inmediatamente (IIFE).
Ruta de implementación
Para utilizar el SDK de Local Home en tu integración de casa inteligente, debes realizar las siguientes tareas:
1 | Configura el análisis | Configura el Google Home Developer Console con los parámetros necesarios para que el Asistente descubra dispositivos controlables de forma local. |
2 | Actualiza la respuesta de SYNC en tu entrega en la nube | En tu cumplimiento en la nube, modifica el controlador de solicitudes SYNC para que admita el campo
otherDeviceIds que la plataforma usa para establecer una ruta de cumplimiento local. En ese campo, especifica los IDs de los dispositivos que se pueden controlar de forma local.
|
3 | Implementa la app de entrega local | Usa el SDK de Local Home para crear una app en JavaScript que controle los intents IDENTIFY ,
EXECUTE y
QUERY . En el caso de los dispositivos proxy de concentrador o puente, también debes controlar el intent REACHABLE_DEVICES .
|
4 | Cómo probar y depurar tu app | Prueba tu integración (o certifícala por tu cuenta) con el paquete de pruebas de Google Home. |
Antes de comenzar
- Familiarízate con los conceptos básicos para crear una integración de Cloud-to-cloud.
- En Google Home Developer Console, 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 Developer Console y en el Asistente en tu dispositivo de prueba.
- Necesitarás un entorno de Node.js para escribir tu app. Te recomendamos usar Node Version Manager para 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 Cast Preview.