Búsqueda de sitios web

node.js - ¿Cómo configuro y despliego una aplicación de ejecución local para la acción de hogar inteligente de Google?


Estoy implementando la funcionalidad de ejecución local para mi acción de Google Smart Home. Estoy siguiendo los pasos en este enlace: https://developers.google.com/actions/smarthome/develop/local

Ya he configurado los datos de escaneo en la consola, y ahora estoy intentando desplegar mi aplicación de ejecución local. Sé programar en JavaScript, he creado un par de funciones de Firebase, pero no soy un experto en Node.js. No entiendo cómo configurar y ejecutar esta aplicación de JavaScript.

Intenté ejecutarlo en el navegador, pero dice que no puede encontrar "require", y leí que node.js no se supone que se ejecute del lado del cliente. En el enlace de arriba, dice que hay que crear un index.html, que declare el "local_execution.js". ¿Este módulo de JavaScript se va a ejecutar del lado del cliente? ¿Alguien puede señalarme en la dirección correcta? Tal vez explicar cómo configurar el directorio de la aplicación.

Gracias de antemano, Henrique

Respuesta #1

El mejor lugar para empezar sería con la aplicación de ejemplo local en GitHub. Esta muestra incluye tanto una aplicación de ejecución local como un dispositivo virtual compatible, con instrucciones para compilarla y desplegarla.

Para las pruebas, necesitas hospedar la aplicación web (HTML/JavaScript) en un lugar que sea accesible para tu dispositivo doméstico. Esto podría ser un servidor de desarrollo local o algo como Firebase Hosting (el ejemplo tiene instrucciones para ambos). La URL hospedada se coloca en la consola bajo Prueba > Prueba en el dispositivo.

Intenté ejecutarlo en el navegador, pero dice que no puede encontrar "require", y leí que node.js no se supone que funcione del lado del cliente.

Los dispositivos Home ejecutan un entorno basado en navegador (Chrome), por lo que su JavaScript debe ser compatible con el navegador. Si utiliza paradigmas de programación de Node (por ejemplo, importar módulos usando require) en su código, necesita usar una herramienta de empaquetado como Webpack o Parcel para preparar el código para el navegador. El ejemplo utiliza Webpack para lograr esto.

Nota al margen: No puedes ejecutar ni siquiera una aplicación local para el hogar correctamente empaquetada en el navegador de tu máquina de desarrollo porque el SDK local para el hogar solo existe en los dispositivos Home.