Homeware es una API para Google Home diseñada para que de una vez por todas puedas conectar tus dispositivos y circuitos a Google Home y Google Assitant de la forma correcta, sin usar IFTTT.
Desplegar HomeWare
El despliegue es el proceso por el cual ponemos en funcionamiento nuestra propia copia de Homeware y la configuramos para funcionar con nuestros datos.
He decidido trasladar el proceso para desplegar HomeWare a su web: https://kikeelectronico.github.io/Homeware-LAN/
Una chorrada, en configurar el proyecto en google actions paso 3 la dirección debe acabar con / al final
https://us-central1-[id].cloudfunctions.net/smarthome/
Como vuelvo a comenzar el Homeware una vez que la RPI hace un reboot? Cuando ejecuto sudo docker-compose ps puedo ver una lista con 8 elementos con «State:UP», pero al intentar acceder a la API desde un navegador en una PC, la api muestra la página de Login, pero el botón azúl «Login» no hace absolutamente nada. No puedo acceder a la API. Por ende, Google Home tampoco puede acceder a la API, por lo que Goolge no puede controlar los dispositivos, aunque estos si se encuentren conectados via MQTT (veo la conexión de los dispositivos a MQTT via Serial… Leer más »
Hola Andres. La información debería guardarse de forma automática en volúmenes. Ejecuta
docker volume ls
para ver si estos volúmenes existen. Deberías ver una lista con:local homeware-lan_certs
local homeware-lan_homeware-files
local homeware-lan_homeware-logs
local homeware-lan_html
local homeware-lan_mosquitto-data
local homeware-lan_redis-data
local homeware-lan_vhostd
Hola Kike, Hoy tuve que desconectar/conectar mi Raspberry, y al reiniciar la situación es exactamente la descrita en el primer mensaje. Immediatamente ejecuté docker volume ls como sugieres, y de hecho sí veo estos 7 volúmenes. De igual manera, tuve que ejecutar curl -d '{"user":"YOURUSER", "pass":"YOURPASSWORD"}' -H "Content-Type: application/json" -X POST https://YOURDOMAIN/api/user/set/ para poder acceder a la API con el botón azúl «Login», ya que de lo contrario este botón no hace absolutamente nada. Ya luego de entrar en la API completamente reinicializada a zero, reinstalo mi último backup para re-crear mis dispositivos. Espero que entre todos podamos encontrar una… Leer más »
Hola Andres, estoy bastante perdido con el tema. Si no te importa seguimos la conversación por email, a ver si llegamos a algún resultado. Escríbeme desde https://contacto.rinconingenieril.es/
Hola Sres.
Es que es posible instalar Homeware en una Raspberry Pi Zero W? O es que el RPI Zero es demasiado lento para Homeware?
Alguien lo ha probado?
Sino, cual seria el hardware mínimo para el buen funcionamiento del Homeware?
Muchas gracias
He tratado de correr el Homeware en una RPI Zero W y les cuento que la RPI se congela…. No es lo suficientemente fuerte como para poder usarla con Homeware
Amigo, tienes por ahí el diagrama de conexión y las librerias del ejemplo que tienes con el modulo ESP8266WiFi, ya instale todo y estoy trabado con ese sensor y queria ver cual puede ser mi error.
Buen trabajo lo he instalado y me ha funcionado todo, ahora estoy intentando configurar un termostato, lo hago sin problema, me sale en Google home pero al intentar ajustar el setpoint de la temperatura desde homeware, no me envía la cadena por mqtt al dispositivo ESP… por que puede ser??
Hay un bug. Estará solucionado en la versión 1.4.
Hola Enrique! He logrado instalar todo y hasta pude implementar varios dispositivos en un solo microcontrolador, el unico problema con el que me encuentro es que en Homeware cuando google manda un cambio de color este no llega al dispositivo a menos que sea blanco y llega como valor de temperatura de 4200, cualquier otro color hace que se cuelgue la comunicacion con el dispositivo y ya no llegan mensajes de encendido, apagado o cambio de brillo a menos que vuelva a mandar un color blanco. Supongo que algo puedo estar haciendo mal, pero honestamente no lo encuentro, tambien entiendo… Leer más »
Revisaré ese posible bug.
Puedes usar:
rgb[0] = (color&0xFF)*4;
rgb[1] = ((color>>8)&0xFF)*4;
rgb[2] = ((color>>16)&0xFF)*4;
Hola buenas,
He estado intentando hacer una instalación de la aplicación en una raspberry pi y a la hora de configurar las claves ssl deja de funcionar la aplicación y no deja conectarse a la pagina web, si antes de hacer la instalación del ssl atreves de la red local si aparece la pagina y me deja foguearme pero cuando sigo con la instalación deja de funcionar
Hola buenas Enrique!!
De primeras quería decirte que me encanta tu trabajo y que es una muy buena alternativa.
Te quería hace una pregunta a la hora de instalar con el nuevo instalador me pide un usuario y contraseña y me da errores por todos lados cuando intento una podrías poner en algún lado todos los pasos que hay que seguir?? muchas gracias 🙂
Aquí https://kikeelectronico.github.io/Homeware-LAN/docs/install#install-without-docker-compose
Puedo aplicarlo para un Logo8 Siemens?
Hola Enrique!
Tienes aun disponible el código de Homeware Firebase? Por motivos educacionales me gustaría probar esa versión, pero los links a github ya no se encuentran disponibles.
Saludos desde Chile!
Sí, escríbeme usando https://contacto.rinconingenieril.es/ y te lo adjunto
Hola buenas, no logro hacer que en google home me aparezca los dispositivos, es como si intentase conetar pero no lo logra. En los LOGS queda algo asi:
Alert– 09/12/2020, 01:30:26
Request to API > log endpoint with bad authentication
Hola Ezequiel, te he respondido al email.
Hola, Enrique. Muchas gracias por tu trabajo.
Tengo un problema en el último paso. Dado que lo único que me aparece después de presionar <[test] Home> es el navegador web con un mensaje de que no se puede acceder a este sitio. Evidentemente no hay ningún cambio en mi Google Home.
Es posible que tengas la versión v1.1.2 con un bug en ese punto. Está corregido en la v1.1.3.
Hola, tengo un problema con Homeware-LAN. Después de instalar todo en mi Rasberry, a la hora de conectar la app de Google home con el [Test] Home, no me dejaba (me redirigía a la pagina pero me decía que la conexión había sido rechazada). Con el tiempo y investigando me di cuenta que como el servidor y el dispositivo estaban en la misma red local, necesitaba tener activado el Loopback, y como mi router no permite esto y mi proveedor de internet tampoco. Decidí instalarme un servidor DDNS en mi red local (con lo que a través de este saldrían… Leer más »
Con respecto al problema del loopback, no podemos hacer nada. Pero con la solución que has propuesto, deberían haber aparecido los dispositivos. ¿Qué versión de Homeware tienes instalada?
Habra una guia de como hacer eso del port forwarding y o modificar los puerto que ocupa mi raspberry, el purto 80 lo tengo bloqueado en el router y el proyecto necesita que use esos puertos, habrá manera de cambiarlo?
http://www.noip.com/support/knowledgebase/section/routers-and-firewalls/port-forwarding/?utm_campaign=getting-started&utm_medium=notice&utm_source=email
Hola buenas, he hecho el proyecto de controlar las luces con un ESP8266 y Google home, el problema es que cuando le digo a Google home que encienda la luz, como que la intenta accionar pero no lo consigue, a su vez en la consola de firebase no cambia el estado de false a true, no llega a encenderse. He leído que hay gente con el mismo problema pero no he encontrado solución.Como puedo solucionarlo?
Otra duda es que con el mismo método podría subir a bajar un store o cortina. MUCHAS GRCIAS!!
Hola Pedro. Homeware Firebase está obsoleta desde hace un año. Si te interesa, revisa la versión LAN, está si tiene soporte.
Ok, muchas gracias, he buscado sobre homeware LAN i he encontrado tu vídeo, mi duda es que si puedo utilizarlo en Arduino con un ESP8266
Homeware LAN tienes que instalarlo en una Raspberry Py o en un servidor Ubuntu. El hardware para tus dispositivos puede ser lo que quieras, siempre y cuando pueda comunicarse via MQTT
Hola, tengo un par de fallos a la hora de hacer el proyecto de Homeware-LAN y te he enviado este correo para ver si me podías echar una mano. Para comenzar tengo una duda sobre los DDNS (utilizo no-ip) el caso es que me gustaria saber si a una DDNS se puede acceder desde dento de la red local. El problema vienen cuando entro en la aplicación de Google Home y me aparece el dispositivo [test] Home, y al clicar le me redirige a la página de DDNS pero no se me abre me da un error diciendo que la… Leer más »
Creo que ya has dado con el problema del loopback 🙂
Hola muchas gracias por el tutorial quisiera saber si es posible instalar homeware en un servidor linux Ubuntu seria para no usar un raspberry pi y si es posible de que forma lo podría hacer también cuento con dominio propio y una ip fija muchas gracias
Hola José, sí puedes. Yo testeo en un servidor con Ubuntu 20.04.
enrique buenas tardes, tengo una pregunta, soy nuevo en esto y me gustaria saber cual es el nombre del dominio? en el asistente pide iniciar sesion en la pagina de noip el dominio es el nombre del host o es la direccion ip de la raspberry?, de antemano agradezco tu ayuda
Es el nombre de host que te haya asignado noip al registrarte.
Hola Enrique , me encanta el proyecto !!me hace ilusión probarlo ,compre una raspberry pi4 y me puse a ello , el tema es que no logro darle al clavo . le instale Ubuntu 20.04 LTS y seguí todos los pasos , dejo el error espero que alguien me pueda ayudar desde ya muchas gracias en la ip de la raspberry tengo únicamente el puerto http (Welcome to nginx! (nginx 1.17.10 Ubuntu) y el error en consola ssh al instalar es el siguiente make[1]: Leaving directory ‘/home/ubuntu/pi/Homeware-LAN/redis/redis-stable/src’ v0.6 dependencies have been installed. Warning: The unit file, source configuration file or… Leer más »
De momento Homeware-LAN está pensado para correr en Raspberry Pi y su ruta tiene que ser: /home/pi/Homeware-LAN
Hola buenas,
Me encanta tu plataforma,
Como sugerencia podrías añadir para las luces como un atributo que permita estar en varios modos?
Así se podrá poner en modo arco iris o algo por el estilo como respiración.
Por mi parte me molaría mucho.
Gracias por el trabajo un saludo
Hola, lo valoraré. Ahora mismo Homeware-LAN solo actúa en base a lo que Google soporta y esta no es una característica que Google haya implementado.
Es que estaba haciendo una aplicación para el móvil que me permitiera conectarme a homeware-lan y estaría bien poder hacer algo de eso
Hola Enrique, primero que nada gracias por todo este trabajo de desarrollo, en su momento use la versión de homeware-firebase con buenos resultados y ahora estoy intentando instalar la versión LAN dentro de un contenedor de docker en una raspberry pi 4, hasta el momento sin éxito, no puedo arrancar el servicio. ¿sera posible hacer esto de iniciar homeware con docker? ¿tenes algún consejo para la instalación? la verdad que estaría genial poder crear una imagen para hub.docker.com y luego levantar un contenedor con la API. Saludos desde Argentina
No tengo ningún ejemplo. Lo analizaré, pero no prometo nada.
Enrique, buenas tardes. Comentarte que ya tengo la placa correctamente funcionando a modo de interruptor. Lo que pasa es que en mi caso lo que necesito es un conmutador, el cual pone el relé en un estado o en otro, independientemente de que la luz este encendida o apagada. Para saber si la luz esta encendida o apagada uso actualmente otro pin a modo de entrada el cual alimento con un rele que se acciona a 220v en paralelo con la bombilla. Como hago para que mqtt sepa si mi luz esta encendida o apagada? Otro dispositivo que uso es… Leer más »
Puedes enviar el estado de la bombilla por MQTT, sigue estas instrucciones: https://github.com/kikeelectronico/Homeware-LAN/wiki/Communicate-a-hardware-device-with-Homeware-LAN
Los dispositivos que están implementados son los definidos por Google. De momento ellos no han definido los pulsadores así que no los puedo implementar, entre otras cosas porque Google no entendería que es. Cuando lo hagan lo incluiré.
Hola Enrique. Ante todo, enhorabuena por tus videos. Me encantan.
Ya tengo instalado y funcionando Homeware en raspberrypi.
Pero no doy con la tecla para programar correctamente mi esp8266. No consigo hacerlo funcionar, a pesar de que se crean correctamente los dispositivos y los puedo visualizar en el google home.
En Homeware-LAN el esp8266 se comunica con Homeware vía MQTT. ¿Has revisado el ejemplo del repositorio? Te has asegurado de que la electrónica está leyendo el tópic MQTT correcto.
Pero, cuales son las lineas del codigo que hay que configurar?
Solo he configurado ssid, password y mqtt_server.
No hay que añadir en ningun sitio el ID del nuuevo dispositivo?
Gracias
El ID es parte del topic MQTT o del paquete, en función del tipo de petición. Revisa los ejemplos del repositorio: https://github.com/kikeelectronico/Homeware-LAN/tree/master/ESP8266example
Hola, estoy trasteando con la api y en cuanto al código para el esp8266 te sugiero que hagas algún cambio. Es complicado, tal y como lo tienes hecho, abrir varias instancias para cada gpio. Hay que manejar tokens por cada dispositivo, por ejemplo. Si Google permitiera descargarse varios dispositivos a la vez sería más sencillo, supongo que lo podrá hacer pues hay fabricantes que tienen gateways para sus dispositivos y supongo que lo harán así. Se bajarán una casa entera con todos sus dispositivos……
Gracias
Buen dia Enrique,
Increíble tu tutorial, tengo 2 consultas, por un lado ¿donde puedo conseguir la librería del esp8266 para homware? ya que en github ya no se encuentra, y por otro lado, Al crear mas dispositivos en firebaseapp desaparecen los los que ya estaban, en si no desaparecen por que funcionan pero no los puedo visualizar en pantalla, todo lo hice con la ultima versión (v0.6.3)
saludos dese Argentina
Hola Santiago, revisaré el bug que comentas. La librería para el ESP8266 está en otro repositorio, se avecinan cambios interesantes en Homeware y para evitar confusiones la he sacado del repositorio de Homeware para Firebase. https://github.com/kikeelectronico/Homeware-for-ESP8266
hey eres un crack! me costó un poco por el lío del us-central1 pero ya esta todo ready. Tengo 3 preguntas para ti:
1- ¿no es mas facil poner todos los nombres de fabricante en default y solo configurar los importantes?
2- ¿Sería posible hacer el cms en angular?
3- Si cambio el estado del device en la base de datos, ¿se cambia el estado fisico del device?
1- Sí, es posible que en algún momento se autocomplete.
2- Sí, pero no sé nada de angular, así que está hecho de aquella manera. No soy desarrollador web .
3- Sí, en cuanto el dispositivo físico.haga una petición a la API este cambiará de estado al que tú le hayas dado manualmente en la BBDD.
Perdon , intente agregar otro dispositivo y se borro el que ya tenia, ¿ como arreglo ese problema? gracias y saludos
Actualiza la versión del Homeware que tienes desplegada. Esta es la última https://github.com/kikeelectronico/Homeware/releases/tag/v0.6.3 y aquí estan las instrucciones https://github.com/kikeelectronico/Homeware/wiki/Install-a-new-release
excelente tutorial, me ha salido a la perfección lo de la bombilla, como puedo poner diferentes dispositivos en un solo ESP82 al utilizar varios de sus pines
Usando varios objetos de la librería de HomeWare, cada uno con un id de dispositivo distinto.
gracias
Buenas tardes por consulta ya me funciono todo con el esp32, pero no muestra online el dispositivo por que no hay una cuenta de facturación en firebase pero en google cloud platform tambien me muestra el error(TypeError: Object(…).forEach is not a function) mis preguntas son: 1:El error de google cloud es por la cuenta de facturación de firebase?. 2:Existe la prueba de un año de google cloud usándola se activa la cuenta facturación en firebase o son dos temas muy distintos?. 3:Si fuera temas distintos, debería activar solo la facturación de firebase o también activar la prueba de google cloud?.… Leer más »
Buenos días, Enrique. Me podrías decir como solucionaste el error:’class WiFiClientSecure’ has no member named ‘setInsecure’ _client->setInsecure(); Con el esp32. Un saludo.
claro aunque no sé si después cause algún problema o inestabilidad en el programa.
Comente esa opción en la librería, es decir busque el archivo homeware.cpp; dentro de este busque «_client->setInsecure();» y lo deje asi «//_client->setInsecure();» .Saludos
me podrías ayudar para poder usar un ESP32, igual tengo planeado usarlo, saludos
Hola Enrique excelente tutorial. Tengo una duda en la cual quizás puedas ayudarme. Tengo una placa con chip esp32 traté de ejecutar tu programa modificando el #include del archivo homeware.h por #include que es el de la librería del esp32 pero al compilar me genera el siguiente error:» homeware.cpp:23:12: error: ‘class WiFiClientSecure’ has no member named ‘setInsecure’ _client->setInsecure();». Agradecería tu ayuda con la migración. Un saludo.
La librería está pensada para integrarse con las de EPS8266. No las he probado aún con el ESP32. Esto es tarea a futuro.
te lo agradeceria mucho, me interesa, yo ya probe tu tutorial y todo bien, ahora una pregunta ¿como agrego un sensor de temperatura, si no aparece en los actions de google.
Usando un termostato
gracias por responder, un saludo, esperando mas de tus tutoriales con esta API. mucho éxito
Usando un termostato. Solo se pueden crear los tipos de dispositivos de la lista de Google (por ahora).
Muchisimas gracias por el trabajazo!
Llevaba tiempo buscando soluciones para incluir un modulo ESP8266 directamente en google.
PD: Si al llegar al final de los pasos, todavía no se ha completado una cuenta de facturación para Firebase no funcionaría, pero no dá errores. Se debe ver en la pantalla de registros del panel de control de Firebase.
Saludos!
Gracias Arturo. ¿Lo conseguiste? ¿Qué versión de Homeware estas usando?
Si, conseguido! Version 0.6.1.
El siguiente paso será que cada pin de un único ESP8266 sea un dispositivo para google. Entiendo que declarando diferentes clientes, Homewares api con cada id será suficiente.
Publico el resultado. El objetivo es domotizar una regleta de enchufes para tener diferentes aparatos conectados a google.
Saludos
Has conseguido hacerlo? yo aun estoy muy verde para tanta modificación. Gracias.
Hola Juan,
Si, simplemente tienes que declarar varios objetos Homeware (api1, api2, api3…). Cada uno de ellos lo enlazas al id de dispositivo generado en la base de datos y realizas una lectura de cada parámetro por separado.
Con esta lectura vas encendiendo/apagando diferentes pines del ESP.
Saludos
No soy muy experto en este tema, me podrías para un sketch de ejemplo? gracias.
¿De qué parte?
Un sketch para grabarle el nodemcu donde pueda utilizar por ejemplo tres apis diferentes, no se como hacerlo, el ejemplo es sólo para uno.
Bingo!
buen dia, en primer lugar agradecer y felicitarte por tus tutoriales son muy buenos !!! queria hacerte una consulta con respecto al esp2866 para que funcione con google home tenemos que creas el homeware cierto?.( el cual es algo tedioso) pero luego de eso todo se simplifica, comparandolo con alexa vi por ahi que es mas sencillo implementarlo ya que su propia aplicacion hace la conexion al menos para un foco o bombilla, lo que queria consultarte es si el asistente de google ofrece alguna ventaja frente a esto? gracias. espero me deje entender xD
Cada ecosistema es distinto y para gustos los colores 🙂
La integración con Alexa es más sencilla en ciertos aspectos pero su presencia e integración en dispositivos móviles es muy baja.
Excelente, me llevó un rato porque el proyecto lo crea en us-east1 y entonces yo ponía eso en todas las cadenas de conexión y no funcionaba, finalmente los puse con us-central1 y funcionó perfecto. Me queda la duda de por qué si en el firebase dice que el proyecto está en us-east1 hay que dejar las cadenas con us-central1 pero luego lo averiguaré.
Una pregunta: ¿Cómo puedo enviar el estado que cambio de una bombilla a través de un pulsador en el ESP8266?
Lo de us-central1 es un error de documentación, lo tengo que corregir. Simplemente tienes que usar la zona en la que tienes desplegado la API.
Usando el método sendTrait() de la librería. Cuando tenga algo de tiempo, documentaré como se hace.
Una pregunta, se podrían controlar varias luces, por ejemplo tres, con sus correspondientes pulsadores con éste método? yo lo tengo programado pero como cliente web y me funciona bien, pero claro, google no me lo reconoce y tengo que usar IFTTT, gracias.
Claro, solo tienes que hacer que el ESP pregunte a la API por los datos de tres dispositivos distintos.
Muchas gracias, lo estudiaré bien
Buenos días, primero quiero agradecerte por el excelente trabajo que hiciste, pusiste a los creadores de dispositivos a la altura de las grandes empresas
Tengo una consulta, si es que entendí bien el código es posible que el ejemplo de Arduino ejecute la función read una vez por segundo? No es posible para reducir las invocaciones que firebase le mandé una alerta de cambio de estado de la base de datos y ahí recién pedir el json?
Saludos y gracias
Maximo
Es posible, pero para eso la API tiene que saber donde está la electrónica. Ahora mismo el ESP sabe donde está la API, pero no al revés.
hola muy buen trabajo tengo un problema necesito ayuda urgente quiero programar mi node mcu con el código que esta de ejemplo pero no puedo me salta error
error: ‘class WiFiClientSecure’ has no member named ‘setInsecure’
_client->setInsecure();
espero que me puedan ayudar muchas gracias
Esto es un error debido a no usar la librería para ESP8266 actualizada. Asseverate de tener actualitzada tanto las placas como las librerías desde el gestor de placas de Arduino. Yo uso ESP8266 by ESP8266 Community versión 2.6.1
perdonen por mi ignorancia pero quería saber como puedo montar el código de la API en windows descargue node.js pero no se como empezar montar
Yo también no sabia por donde comenzar, pero googleando(https://www.guru99.com/download-install-node-js.html) encontré como instalarlo vía windows y funciono si sigues todos los pasos, me quede instalando en la librería en el ide de arduino, pero me salio un error compilando la tarjeta esp32(cambie la librería ESP8266WiFi.h por wifi.h) este error salio:’class WiFiClientSecure’ has no member named ‘setInsecure’ _client->setInsecure(); un tema menor que seguro buscando podre solucionar, muchas gracias por compartir tus conocimientos yo solo quería prender un led por google asistant y llegue por acá.
saludos desde Peru.
Por favor, necesito tu ayuda!!.. he seguido todos los pasos pero a la hora de darle en [Test]Home no ocurre nada! no aparece el nuevo dispositivo. revisé los links de Auth y Token y están bien..y ya configuré la cuenta de facturación. En la sección de registros de Firebase me da el siguiente mensaje: Function Execution finished with Status code 302. ayudame por favor
¿Has habilitado el simulador en la consola de Actions on Google?
sii, le doy en start testing, sin embargo me hace dudar el hecho de que al pasar el cursor sobre el simbolo de cuenta, en la parte de test. Me dice: No account is linked to google, start a test conversation for account linking… creo que talvez tenga que ver con eso no lo se.
Desconozco el error que describes en el último comentario 🙁 Los errores de conexión por parte de Homeware ya están corregidos en la nueva versión en el repositorio.
Buenas tardes muchas gracias por tu gran trabajo;
he llagado a el punto Base de datos de la API el punto 5 y no encuentro
«Seleccionar Importar JSON desde el menú con 3 puntos verticales de la parte superior derecha.»
me puedes ayudar??
como continuo desde este punto tengo que repetir todo ??
mucha sgracias.
El menú de los tres puntos está dentro de la sección Database de Firebase. Aparecen un signo +, un signo – y el menú de los tres puntos.
Buenas, he conseguido que todo funcione hasta el flasheo del ejemplo «light». Revisando el puerto COM4 en Arduino IDE aparece continuamente el mensaje «0» y «deserializeJson() failed: InvalidInput». No se si puede ser un problema con ArduinoJson.h o otra. A que puede deberse? Seria posible disponer del proyecto con las librerías. Por otro lado observo que en la base de datos status > light, el valor online no se actualiza. Una vez se ha puesto en «true» si desconecto el ESP8266 no pasa a «offline». Si observo en alive se actualiza periodicamente el timestamp por lo que parece que si… Leer más »
Hola Tayso, tengo el mismo problema. Pudiste resolverlo?
Le ha pasado a varias personas y no parece haber respuesta, el chico de la página responde otros comentarios pero no este
Cada vez que el ESP se comunica con la API se actualiza su timestamp en la base de datos. El flag online se verifica cada vez que se ejecuta la función cron. Es decir, cada vez que se procesa la tarea cron de Google Cloud.
Por otro lado, si tenéis problemas con deserializeJson() es porque la API está respondiendo un mensaje que el código del ESP no entiende. Podéis ver el mensaje usando Serial.println(json_c); justo antes de StaticJsonDocument<200> doc;
Estimados…
Estoy poniendo en funcionamiento homeware, estoy haciendo las primeras pruebas.
Antes que nada decir que esta api esta genial.
Al principio tuve el error de «deserializeJson() failed: InvalidInput», el cual logre solucionarlo solo aumentando el tiempo de solicitud de las peticiones a la api en la linea:
if (millis() – time_value > 1000) . Yo le puse 3000 y con eso anda muy bien.
Buenas noches desde México, es muy interesante y mil gracias por compartir tus conocimientos. Ahora mismo tengo un problema con arduino. Me marca demasiados errores de compilación. ¿De casualidad tendrás alguna referencia para hacer esto?
undefined reference to `Homeware::getToken()
Y de nuevo felicidades!!!!
¿Has instalado la librería de Homeware en Arduino? La tienes en el repositorio https://github.com/kikeelectronico/Homeware
Gracias por tu respuesta.
Dentro de arduino lo que hice fue «Programa-> Añadir fichero». Es correcto?. Al final lo que hizo solo fue copiar la librería al directorio donde esta el ejemplo.
Saludos.
Sigo atascado con lo de «Function execution took 1316 ms, finished with status code: 200» ¿Le pasa a alguno mas?
¿Qué función es la que está generando este error?
Buenas tardes primero muchas gracias por la explicación es muy bueno pero todo lo tengo OK asta que intento que salga el dispositivo en Google Home, que no sale.
Verifica que las URL que estas escribiendo en Actions on Google son las correctas. Puedes ver las correctas desde la sección Funciones de la consola de Firebase.
Hola, tengo un problema con mi ESP8266, lo que pasa es que no me detecta ninguna red, como podría solucionar esto?
Gracias
Intenta usar alguno de los ejemplo de la librería del ESP8266 para verificar si el problema está en el código.
Hola lo siento por tanta molestias…pero lo he intentado varias veces con diferentes cuentas y móviles y siempre da el mismo error y no se a que se debe, el error en cuestión es el siguiente. 1:42:45.761 p. m. auth Function execution took 1459 ms, finished with status code: 302 1:42:44.302 p. m. auth Function execution started Lo veo en el registro de funciones de firebase. te adjunto una foto de las funciones que obtengo en firebase. Si necesitas mas información para descubrir el error no dudes en pedírmelo. ademas por lo que he leído en todos los comentarios es… Leer más »
Escríbeme desde http://contacto.rinconingenieril.es y lo vemos. Es un error que os ha ocurrido a varios y no consigo replicar.
lograron resolverlo? tengo el mismo problema
Mira si alguna de estas te soluciona el problema
https://www.rinconingenieril.es/homeware-faq/
Hola alguien me puede ayudar…. hice todo lo del tutorial pero cuando le doy a [test] home en la app de google home, me redirige a una pagina web (https://us-central1-[id].cloudfunctions.net) (el id si que se lo cambie), carga esta pagina y luego vuelve a la app de Google home la rueda azul que sale en el centro de la pantalla se pone roja y vuelve a la pantalla de gestionar cuentas.
Si tras ese proceso no te aparece en la aplicación la bombilla de ejemplo es por que ha fallado el proceso. Puedes ver que ha ocurrido desde la pestaña «Registros» del apartado «Functions» de la consola de Firebase.
si y me aparece esto:
7:57:06.622 p. m. auth Function execution took 19 ms, finished with status code: 302
7:57:06.603 p. m. auth Function execution started
Y en la parte de google cloud plataform me aparece esto…
TypeError: Cannot read property ‘undefined’ of undefined
at (/srv/index.js:178)
at
at process._tickDomainCallback (next_tick.js:229)
por favor si me puede ayudar y ya cree una cuenta de facturacion
Verifica en «functions» de Firebase que las URL de las funciones de auth y token corresponden empizan por us-central1-….
Si todo es bien lo he hecho como 10 veces jajaja y hasta con una cuenta distinta… por favor ayúdame en que puede estar si necesitas cualquier cosa pidemela para saber que pasa o que esta mal
hola creo que el problema esta en que se crea el proyecto en «us-east1» y tu tienes todas la funciones en «us-central1» en tu video pasa lo mismo y nose como evitarlo o cambiarlo
SImplemente pon las correctas en Actions on Google. En tu caso las que pone us-east1
hola, a mi me sucede que cuando le doy a [test] no me redirige a la pagina para vincular, que podría ser?
Es posible que la dirección no sea de us-central1. Puedes asegurarte en la sección «funciones» de firebase de que la dirección que has puesto en Actions on Google es la correcta.
En la configuración general del proyecto firebase aparece Ubicación del recurso de Google Cloud Platform (GCP): us-east1 pero luego en el apartado functions todas inician como https://us-central1-[id] .cloudfunctions.net/xxxx. ¿Como se modifican?. Se debería rehacer el paso 8 de Firebase CLI – Run it locally?
He vuelto a seguir todos los pasos nuevamente y ha enlazado, con exactamente las mismas rutas (las tenia en un Notepadd++ por eso se que es identico). No he localizado el problema
Hola Enrique, muchas gracias por compartir tus conocimientos, estoy siguiendo tus instrucciones al pide de la letra pero en el paso 8 de «configurar google Actions» en la sección de «client information» no me habilita el botón «next» por alguna razón, ya revise que el Client-ID y el Client Secret sean los mismos en la base de datos, te dejo una captura para ayudar en la explicación
Espero puedas ayudarme ya que llevo varios días sin poder lograrlo, Saludos desde México
Asegúrate de tener la URL de fullfilment y la configuración de account linking correcta. Si no es esto, no se me ocurre otra cosa.
Muchas gracias, con el video que acabas de subir pude resolver mi problema, era solamente error al colocar mi ID con corchetes (debe ir sin ellos).
Gracias de nuevo por compartir tus conocimientos.
Saludos desde México.
Sí, debe ir sin ellos.
Enrique un gusto conocerte y agradecer el compartir tus conocimientos, estoy tratando de seguir tus instrucciones pero tengo problemas para cargar el Json no aparecen los tres puntos no se exactamente donde esta, gracias
Échale un vistazo a este vídeo: https://youtu.be/CjlgHSNQfYE
Hola Enrique un Gusto.
Exelente tu explicación, me funciono, me llevo 3 noches pero lo logre. Lo único es que cuando quiero loguearme al CMS siempre me deja la misma pantalla, y no hace nada.
Saludos,
Abel
BsAs, Argentina
Fíjate si tienes la configuración de firebase en «Spark», cambialo a «Blaze». Lo puedes ver en la esquina inferior izquierda.
Muchísimas gracias por tu respuesta, me funciona perfecto. Llego el momento de crear!!!!!!!!!!!
Sigo atentamente todos tus videos.
Saludos,
Abel
BsAs, Argentina
Genial, cualquier idea que tengas. La puedes compartir.
Ha de ser una cuenta Blaze, no vale con Spark??? El plan de precios de pago por uso puede ser elevado
Lo puedes intentar, pero a algunas personas no le está dejando.
Me he atascado otra vez jejeje. He visto que ha habido gente que ha podido avanzar algo mas. Yo he completado los pasos del despliegue del CMS pero me sigue apareciendo lo mismo:
«Hello World!
This is my first Smart Home provider cloud service for Google Home»
El CMS está en https://[id].firebaseapp.com/cms/
Importante la última /
Perfecto ya estoy en la web!!
Pero he visto que al meter la aplicación en google home me dice que «algo ha ido mal en la autorización»
Desde la consola de Firebase, entra en: Desarrollo > Functions > Registros. Filtra por función y copiame el error que se haya producido.
Cuando lo hagas asegúrate de que no aparecen datos sensibles de tu proyecto.
Billing account not configured. External network is not accessible and quotas are severely limited. Configure billing account to remove these restrictions
Pues eso, tienes que configurar la cuenta de facturación desde la consola de Google Cloud
No entiendo porque tengo que poner una cuenta de facturación; pero he puesto una en esta web https://console.cloud.google.com/billing/projects y sigue apareciendo el mismo error en el log
He leido que el mensaje de la cuenta puede ser un warning, Además del mensaje de la cuenta sale este: «Function execution took 1316 ms, finished with status code: 200» ¿Puede ser que sea el que está afectando realmente?
He leido que el mensaje de la cuenta puede ser un warning, Además del mensaje de la cuenta sale este: «Function execution took 1316 ms, finished with status code: 200» ¿Puede ser que sea el que está afectando realmente?
Enrique, gracias por el tutorial y las respuestas. Te pido disculpas por mi español Funciona todo excepto en la app Google Home en mi mobile, cuando creo el new device puedo ver [Test]MyProject pero al seleccionar obtengo mensaje: Algo ha ido mal con la autorización. Creo esta relacionado con el error cuando ejecuta firebase deploy ( missing file .key.json ) Con la última versión del repo todavía hay error missing key.json cuando deploy. Si lo creo manualmente finaliza el deploy pero no estoy seguro si el formato del objeto es correcto, se ve asi: { «project-ID»: { «key»:»xxx», «id»:»xxxxx» }… Leer más »
Usa este release https://github.com/kikeelectronico/Homeware/releases/latest
En él ya está corregido el problema del json
Hola disculpa donde esta el ( missing file .key.json) y que es lo que creas manualmente…si me podrias ayudar gracias
Eso está corregido desde hace mucho tiempo. Para la versión actual de Homeware no necesitas el archivo.
Hola, en la seccion «Configurar el proyecto en Google Actions» punto 8 «Configurar la información de cliente», los parametros Client ID y CLient Secret, donde los puedo conseguir?
Client ID 123
Client Secret 456
Se configuran en elproyecto de Google Actions. Por defecto son los que pone en las instrucciones. Si más adelante los quieres cambiar, lo tendrás que actualizar tanto en Actions como en la base de datos (ruta: token > google)