
Integracion de Google Home en Home Assistant (Actualizado 14/02/2019)
En este tutorial vamos a ver como integrar Google Home en nuestro Home Assistant sin morir en el intento y sin pagar la cuota mensual de la nube de HA.
Requisitos indispensables:
- Instalacion de Home Assistant funcionando
- Tener activada la seguridad HTTPS y una DNS externa siguiendo el tutorial de @DawiES
- Google Home integrado en el WiFi, actualizado y funcionando (a veces sin dispositivo no aparece la opción de control de casa, si te aparece sin él adelante.)
- APP de Google Home
Una vez tenemos todo, vamos a empezar!!
Creación del proyecto en la nube de Google
Primero accedemos a la consola de administración de acceso de Google, hacemos login con nuestra cuenta de Google que tenemos vinculado el Google Home (si lo solicitase) y hacemos click en Add/Import Project

Ponemos el nombre que queramos en mi caso se llamara “Edis”,y seleccionamos idioma y región:

Una vez creado (tarda un poco), seleccionamos “Home Control”

Y dentro SmartHome

Ahora entramos pulsamos actions:

Y pulsamos “add you first action”

Y nos pide una IP, bien, esa IP es la IP externa, el dominio que usamos para acceder desde el exterior a nuestra instalación, hay que poner lo siguiente:
https://DOMINIOEXTERNO:PUERTO/api/google_assistant
y pulsamos DONE, si ha ido bien tendremos esto:

Si nos aparece esa ventana, volvemos al inicio para continuar, pulsamos en “Overview” y a continuación en “Setup account linking”

Y la configuración es la siguiente:



Tanto el Client ID como el Client Secret es:
https://oauth-redirect.googleusercontent.com/
Como hemos puesto anteriormente la IPEXTERNA y el puerto es el acceso desde el exterior.

Añadimos esas palabras, “email” y “name”, con el botón “ADD SCOPE” añadimos una línea, una vez hecho, pulsamos NEXT.

Aquí introducimos lo que queramos y pulsamos save.
Una vez guardado, nos vamos a “Simulator” en el panel de laizquierda, dentro del apartado “Test”
Seleccionamos Spanish y damos a START TESTING

Seleccionamos la versión Draft, es la única que nos debeaparecer, y pulsamos done.

Si todo ha ido bien aparecerá esto:

Bien, la aplicación web ya ha sido creada, ahora toca la APIde sincronización, con ella podremos sincronizar los dispositivos con GH si los vamos integrando en HA poco a poco.
Para ello vamos a la consola de administración de la nube de Google
Y arriba pulsamos en “seleccionar un proyecto” y nos aparecerá el nuestro

Hay que apuntar el nombre completo que marco en rojo, suele ser el nombre del proyecto seguido de un guion y una combinación de 5 números y letras, lo necesitaremos mas tarde.
Una vez seleccionado el proyecto le damos a abrir.
Nos aparecerá lo siguiente:

Pulsamos en Habilitar.
En caso de que no te aparezca, entras en “biblioteca” en el menú de la izquierda y en el buscador escribes “HomeGraph” y pulsas en el resultado que aparece.
Una vez instalado nos vamos al menú de “Credenciales” que apare en la izquierda
Pulsamos en crear credenciales y seleccionamos “Clave de API”

Esto nos generara una API:

Esta API es necesaria para la configuración de HA, con lo cual la copiamos también.
Vale, hasta aquí ha sido todo configuración en Internet, ahora toca configurar Home Assistant para que se enlace con la nube de Google, necesitaremos la calve API que hemos generado y el nombre interno del proyecto que vimos antes.
Configuración de Home Assistant
Bien, ahora nos vamos al configuration.yaml en caso de que tengas toda la configuración de HA en ese archivo y ponemos un nuevo apartado con la siguiente configuración:

Si queremos mostrar todo guardamos y reiniciamos HA para que la configuración se aplique, en caso que querer filtrar seguimos leyendo.
Filtrar los dispositivos que se sincronizan.
Si no queremos que todos los dispositivos se sincronicen con GH, podemos filtrarlos, de la siguiente manera:
Añadimos debajo del "api_key" el campo "entity_config" así:
entity_config: !include dispositivosGH.yaml
Ahora creamos el archivo dispositivosGH.yaml y lo editamos, y añadimos los dispositivos que no queremos mostrar así:

Recomiendo hacer esto antes de ejecutar la primera sincronizacion, de todas maneras, si lo haces posteriormente y sincronizas, se eliminaran los que has añadido a la lista, pero se han dado casos en los que no. Una vez añadidos todos reiniciamos HA, y miramos que no aparezca ningún error en el log.
Vinculación en Google Home
Ahora vamos a la aplicación Google Home y pulsamos añadir y seleccionamos “Configurar dispositivo” y la segunda opción

Ahora veras que arriba del todo aparece una aplicación nuevaque empieza por [test], el nombre va variando, tarda en replicar un tiempo, con lo cual normalmente aparece como “mi aplicación de prueba” pulsamos y nos logueamos con nuestras credenciales de acceso a HA.
Si todo ha ido correctamente nos aparecerán los dispositivos:

Vais asignando cada uno a una habitación y ya tenéis enlazado Google Home con home Assistant.
Y hasta aquí todo! Espero que... Como? Sincroque? Ah si, la sincronizacion de dispositivos!
Sincronización de dispositivos
Para sincronizar los dispositivos con la nube de Google, nos vamos al panel de Servicios de HA y llamamos al nuevo servicio que ha debido de salir llamado "google_assistant.request_sync"

En un par de minutos tendremos todos los dispositivos sincronizados, ya solo queda decir las palabras mágicas... "OK Google, Sincroniza mis dispositivos" y te responderá amablemente que va a ello.
Hay que tener en cuenta que tiene una limitación este método, y es que cada X tiempo la conexión se rompe, no para usarlo, pero si para sincronizar, nos aparecerá una serie de errores en el log de HA, la única solución hasta el momento es borrar el enlace de la aplicación Google Home y volver a añadir la aplicación, y volver a meter cada cosa en su sitio, pero esto falla solo en el modo de sincronización, la utilización funciona, porque por algún motivo se pierde la "confianza" y no te deja sincronizar. Estoy a la búsqueda de un método mas factible para que no pase eso, o una solución que no sea tener que re-vincular, los que tenemos muchos dispositivos es un poco pesado.
Actualización (14/02/2019)
Organización de dispositivos en estancias automáticamente
Hasta ahora, cuando agregábamos dispositivos ya sea la primera vez o actualizando los ya existente o también agregando alguno nuevo a un proyecto ya creado aparecían en una estancia abajo del todo esperando a ser asignados, bies, pues eso ya no es necesario, ahora desde HA podemos decirle a que estancia corresponde cada dispositivo.
Para empezar, es necesario tener el archivo dispositivoGH.yaml con los dispositivos que queremos exponer, es decir los que aparecerán en GH al conectarle el proyecto, a cada dispositivos tenemos que añadirle el atributo "room" seguido del nombre de la estancia y lógicamente el atributo "expose" debe estar en true para mostrarlo en GH, el atributo "name" nos dirá como se llamara en GH. Una vez configurado todo quedaría así:

Simplemente es necesario actualizar para colocarlos en su sitio, hay que tener en cuenta que si ya tenemos habitaciones (estancias) creadas en GH el nombre debe ser exactamente el mismo con tildes y todo, sino al sincronizar se crearan las estancias automáticamente, en caso de no tener ninguna lo mejor es no crearlas y directamente con la sincronizacion se crearan.
Como siempre, si tenéis cualquier duda, dejad vuestros comentarios en la web o en el grupo de telegram de @Domology
Si quieres conocer otros artículos parecidos a Integracion de Google Home en Home Assistant (Actualizado 14/02/2019) puedes visitar la categoría Configuraciones HA.
Deja una respuesta
Me ha dejado de funcionar...He hecho los cambios que se tienen q hacer a partir de la version 0.80, pero siempre que intento hacer el Test de simulacion me aparece este error: "GoogleFulfillment 'actions.fulfillment.devices' is not supported". ¿A alguien más le pasa?