El SDK de Local Home mejora la integración de tu casa inteligente con Google Asistente agregando una ruta de entrega local a la ruta intents de casa inteligente
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 a través de Wi-Fi en una red de área local (LAN) para cumplir con los comandos del usuario. sobre los protocolos existentes.
La integración del SDK ofrece mejoras de rendimiento para tu casa inteligente Acciones, incluidas una menor latencia y una mayor confiabilidad. La entrega local es compatible con todos los tipos de dispositivos y sus características, excepto los que usan usuario secundario verificación.
Comenzar a compilar Prueba la muestra
Comprende el funcionamiento
Después de obtener una respuesta SYNC
de tu entrega en la nube, la plataforma Local Home escanea los datos
red de área local que usa mDNS, transmisión UDP o UPnP para detectar
dispositivos inteligentes conectados a Asistente.
La plataforma envía un intent IDENTIFY
para determinar si el dispositivo está
que se puede controlar de manera local mediante la comparación del ID de dispositivo en la respuesta de IDENTIFY
a los que muestra la respuesta SYNC
anterior. Si el dispositivo detectado es un
o puente, la plataforma envía un intent REACHABLE_DEVICES
y trata
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 Nest del usuario y, luego, de 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 EXECUTE
o QUERY
a la
un 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 a la hora de elegir qué dispositivo Google Home o Google Nest elegir
activar el comando. Los intents EXECUTE
y QUERY
pueden pasar
El dispositivo Google Home o Google Nest definido en el mismo Home Graph
de destino como 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 Local Home y acceder a tu dispositivo inteligente a través de la red de área local. No se espera que ninguna modificación de tu hardware integre la entrega local. El La app cumple las solicitudes Action de casa inteligente enviando comandos de control al a través de protocolos de la capa de aplicación, como HTTP, TCP o UDP. En caso de que falle la ruta de entrega local, se usa tu administración de entrega en la nube como una ruta de ejecución de resguardo.
Para admitir la compilación de la app, el SDK de Local Home proporciona estas dos herramientas clases:
DeviceManager
Proporciona métodos para comunicarse con dispositivos inteligentes mediante sockets TCP, UDP o solicitudes HTTP.App
Proporciona métodos para adjuntar controladores para intents que Google envía. luego de descubrir dispositivos que se pueden controlar localmente (IDENTIFY
,REACHABLE_DEVICES
). Esta clase también entrega los comandos del 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 cargándola por tu cuenta un servidor de hosting o una máquina de desarrollo local. En producción, Google aloja tus app en un entorno seguro de zona de pruebas de JavaScript en el dispositivo Google Home o Google Nest del usuario.
La API de Report State es no es compatible actualmente con la entrega local. Google se basa en su o entrega en la nube para procesar estas solicitudes.
Ciclo de vida de la aplicación
Tu app de entrega local se carga on demand cuando la plataforma de Local Home descubre nuevos dispositivos locales que coincidan con la configuración de análisis del proyecto o que tengan o intents a entregar en relación con un dispositivo identificado previamente.
Los dispositivos Google Home o Google Nest tienen restricción de memoria y tu app de entrega local pueden finalizar en cualquier momento debido a la presión de la memoria en el sistema. Esto puede suceder si tu app empieza a consumir demasiada memoria o si el sistema necesita hacer lugar para otra aplicación. La plataforma de Home local reinicia tu app solo cuando hay intents nuevos para y suficientes recursos de memoria para que se ejecute la app.
La plataforma de Local Home descarga tu app después de un tiempo de espera de inactividad cuando el usuario
desvincula su cuenta o ya no existen dispositivos compatibles con la configuración local
entrega asociada con la agentUserId
del usuario.
Dispositivos compatibles
La plataforma de Local Home ejecuta tu app de entrega local en Dispositivos Google Home o Google Nest. En la siguiente tabla, se describen los dispositivos compatibles y las el tiempo de ejecución utilizado 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 | Altavoz | Chrome |
Google Home Mini | Altavoz | Chrome |
Google Home Max | Altavoz | Chrome |
Nest Mini | Altavoz | 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 lo siguiente: entornos de ejecución:
- Chrome: Tu app de entrega local se ejecuta en el contexto de una Chrome
navegador
window
con Chrome M80 o más adelante con compatibilidad para Versión ES2018 de ECMAScript. - Node.js: Tu app de entrega local se ejecuta como una secuencia de comandos en Node.js. proceso con Node v10.x LTS o más adelante con compatibilidad para Versión ES2018 de ECMAScript.
Estructura del código fuente
Recomendamos agrupar tus dependencias en un solo archivo JavaScript con el configuraciones de agrupadores que proporciona el SDK de Local Home y empaquetar tu código fuente como Expresión de función invocada de inmediato (IIFE).
Ruta de implementación
Si deseas utilizar el SDK de Local Home para la integración de tu casa inteligente, debes hacer lo siguiente: realizar estas tareas:
1 | Configurar el análisis configuración | Configura la Consola de Actions con los parámetros necesarios para el Asistente para descubrir dispositivos que se pueden controlar de forma local. |
2 | Actualiza el La respuesta de SYNC en tu entrega en la nube | En tu entrega en la nube, modifica el
SYNC
de solicitudes para admitir el
otherDeviceIds que usa la plataforma para establecer una
ruta de entrega local. En ese campo, especifica los IDs de los dispositivos que se pueden
y controlarse a nivel local.
|
3 | Implemente app de entrega local | Usa el SDK de Local Home para crear una app de JavaScript para
manejas IDENTIFY ,
EXECUTE y
QUERY . En el caso de los dispositivos con proxies de concentrador o puente,
también controla el intent REACHABLE_DEVICES .
|
4 | Cómo probar y depurar tu app | Prueba tu integración (o autocertifica) con el Paquete de pruebas de Google Home. |
Antes de comenzar
- Familiarízate con los conceptos básicos para crear una casa inteligente Action:
- En la sección Acciones consola, marca de que tienes un proyecto de casa inteligente y que la vinculación de cuentas está configurar.
- Asegúrate de haber accedido con la misma Cuenta de Google en la Consola de Actions y en Asistente en tu dispositivo de prueba.
- Necesitarás un Node.js para escribir tu aplicación. Para instalar Node.js y npm, usa Node Version Administrador .
- Para trabajar con la versión más reciente del SDK de Local Home, deberás hacer lo siguiente: registrar tus dispositivos de prueba en la versión preliminar de Cast Google for Education.