Te damos la bienvenida al Centro para desarrolladores de Google Home, el nuevo destino para aprender a desarrollar acciones para el hogar inteligente. Nota: Continuarás compilando acciones en la Consola de Actions.

Entrega local

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

El SDK de Local Home mejora la integración de tu hogar inteligente con Asistente de Google agregando una ruta de entrega local para 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. 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 comandos de usuarios en lugar de protocolos existentes.

La integración del SDK ofrece mejoras de rendimiento en tu acción de casa inteligente, como una latencia más baja y una mayor confiabilidad. La entrega local es compatible con todos los tipos y características de dispositivos, excepto aquellos que usan la verificación de usuarios secundaria.

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 analiza la red de área local del usuario mediante mDNS, transmisión UDP o UPnP para descubrir dispositivos inteligentes conectados al Asistente.

La plataforma envía un intent IDENTIFY para determinar si el dispositivo se puede controlar a nivel local. Para ello, compara el ID del dispositivo de la respuesta IDENTIFY con los que muestra la respuesta SYNC anterior. Si el dispositivo detectado es un concentrador o un puente, la plataforma envía un intent REACHABLE_DEVICES y lo trata como el dispositivo proxy para comunicarse de manera local.

Cuando recibe una respuesta en la que se confirma un dispositivo local, la plataforma establece una ruta de entrega local para el dispositivo Google Home o Google Nest del usuario y, luego, enruta los comandos 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 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.

En esta figura, se muestra el flujo de ejecución para la entrega local. La ruta de ejecución captura el intent de un usuario desde un teléfono con Asistente de Google, luego el Google Cloud lo procesa y, luego, se ejecuta de manera local en el dispositivo Google Home y el comando se emite directamente en el concentrador del dispositivo o directamente en el dispositivo. La nube del desarrollador está disponible como resguardo de la nube.
Figura 1: Cómo agregar una ruta de entrega local para la acción de casa inteligente.

La plataforma de Local Home no es determinista para elegir 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 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 la entrega local. La app cumple con las solicitudes de Acciones de casa inteligente mediante el envío de comandos de control al dispositivo inteligente a través de protocolos de la capa de aplicación, incluidos HTTP, TCP o UDP. En el caso de que la ruta de entrega local falle, la entrega en la 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 para intents que Google envía después de descubrir dispositivos controlables a nivel local (IDENTIFY, REACHABLE_DEVICES). Esta clase también cumple con los comandos del usuario (EXECUTE) y responde 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.

La API de Report State no es compatible actualmente con la entrega local. Google confía en la 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 dispositivos nuevos que coinciden con la configuración de análisis del proyecto o tiene intents pendientes para entregar relacionados con un dispositivo previamente identificado.

Los dispositivos Google Home o Google Nest tienen restricciones de memoria y tu app de entrega local puede finalizarse 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 espacio para otra app. La plataforma de Local Home reinicia la app solo cuando hay nuevos intents para entregar y recursos de memoria suficientes para que se ejecute.

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 admiten entregas locales asociadas 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 entorno de ejecución que se usa en cada uno. 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 Pantalla Chrome
Nest Hub Max Pantalla Chrome
Nest Wifi Router Node.js
Punto Chrome

Entorno de ejecución

El entorno de ejecución para tu app de entrega local depende de tu dispositivo. La plataforma de Local Home admite los siguientes entornos de ejecución:

Estructura del código fuente

Te recomendamos que agrupes tus dependencias en un solo archivo JavaScript mediante las configuraciones del agrupador que proporciona el SDK de Local Home y que empaquetes tu código fuente como una expresión de función invocada de inmediato (IIFE).

Ruta de implementación

Si deseas usar el SDK de Local Home para la integración de tu hogar inteligente, debes realizar estas tareas:

1 Establece la configuración del análisis Configura la Consola de Actions con los parámetros necesarios para que el Asistente descubra dispositivos que se pueden 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 para que admita el campo otherDeviceIds que la plataforma usa a fin de 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 para crear una app de JavaScript que maneje los intents IDENTIFY, EXECUTE y QUERY. Para 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 autocertificación) con Google Home Test Suite.

Antes de comenzar