Usa Home Assistant con Google Home

Dentro de las grandes tecnológicas existe una fuerte apuesta por los asistentes digitales, y lo cierto es que se nota el esfuerzo. Tanto Amazon con Alexa como Google con su Google Assistant lideran esta tendencia gracias a la gran cantidad de dispositivos que pueden manejar, pero también por la facilidad con la que el usuario es capaz de controlar esos dispositivos tras unos pocos pasos.

Nosotros creemos que no es necesario renunciar a esta tendencia, y por eso os presentamos este tutorial que da respuesta a una de las preguntas más buscadas dentro de la comunidad domótica: Cómo integramos Home Assistant para usarlo dentro de la aplicación Google Home y poder controlar nuestras entidades usando la voz a través del asistente de Google.

Lo haremos como de costumbre, paso a paso y con indicaciones visuales para que os sea más fácil, aportando siempre algo más que os sirva para comprender porqué realizamos cada paso.

Opciones de integración

Para los que tengan prisa: Esta guía no es para vosotros. Existe una opción de integración cómoda y sencilla a través de Nabu Casa. No es un servicio gratuito, pero tampoco es un coste excesivo.

La otra opción que vamos a desarrolar requiere un poco más de trabajo por nuestra parte, pero tiene la ventaja de ser gratuita, y de paso podemos aprender cómo configurar internamente un servicio en la nube como el que usaremos.

Requisitos previos

Siestás leyendo los requisitos para seguir esta guía, entendemos que ya conoces un poco sobre Home Assistant. Los requisitos serán los siguientes antes de empezar:

Si tienes dos monitores mejor, pues a partir de ahora lo ideal es dejar visibles tanto esta guía como las páginas donde iremos realizando cada paso.

Paso 0. Overview

Este paso 0 es necesario para no perdernos, pues coviene tener claro cuando empieces el seguimiento de esta guía verás que existen pasos en 4 emplazamientos diferentes, y siempre os indicaremos dónde estamos tocando en cada momento:

  • Google Actions Console
  • Google Cloud Platform
  • Home Assistant
  • Aplicación móvil Google Home

Paso 1. Creación de un proyecto

Actions es la manera que Google tiene para integrar en su famoso asistente virtual. Las conversaciones que luego tengamos con dicho asistente podrán llegar desde cualquier dispositivo habilitado: el móvil, un altavoz ineligente o desde un reloj inteligente por ejemplo.

Para crear el Action tendremos primero que dar de alta un proyecto en Google Actions Console: https://console.actions.google.com/.

Tendremos primero que pasar por el trámite de la aceptación de condiciones y establecer las opciones de comunicaciones:

Le daremos un nombre representativo. Nosotros lo hemos llamado HomeAssistantProject, y hemos elegido idioma y país que corresponde a nuestra ubicación:

De entre los varios tipos de acciones que podemos realizar, elegiremos «Smart Home» y seleccionaremos «Start Building«:

En la configuración rápida (Quick setup) es donde vamos a facilitar la información básica que tendrá toda acción: Un nombre y un enlace al elemento que tendrá que gestionar los comandos.

En primer lugar establecemos un nombre para la acción. Esta denominación es importante, pues nos servirá para invocar con la voz o tecleando.

Elegid un nombre no muy común y corto que pegue. Nosotros hemos elegido «asistente» para esta guía, y guardaremos esta configuración con botón «SAVE«:

Para regresara la pantalla anterior, debemos usarla opción del menú Overview. No uséis el retroceder típico del navegador, pues os saltará a otra pantalla:

Necesitaremos dar los datosde nuestro sistema Home Assistant, en la opción Build Action > Add Action:

Y el único campo que tendremos que rellenar por ahora es nuestra URL de acceso externo a nuestro sistema Home Assistant seguido del directorio donde se guardarán los ficheros necesarios para la aplicación de Google (/api/google_assistant ) .

En nuestro caso queda como https://mihomeassistant.duckdns.org:8123/api/google_assistant , pero recordad sustituir con vuestra propia URL y puerto antes de guardar (SAVE):

Este primer paso lo completaremos copiando el Project ID que Google nos ha asignado. Para ello iremos a la configuración del poryecto creado (en la esquina superior derecha) y elegiremos Settings para entrar en su configuración :

No abandonemos todavía la consola de Google Actions, pues en ella seguiremos con el segundo paso…

Paso 2. Enlazando la cuenta

En el paso anterior hemos defnido el proyecto. Ahora vamos a configurar la relación con el sistema Home Assistant desde la misma web de Google Actions Console.

Tras pulsa en Overview nos encontraremos de nuevo en la pantalla principal y elegiremos Setup account linking, donde configuraremos el sistema que usa Google (y muchas otras) para que dos sitios intercambien información sin tener que identificarse: OAuth2:

En el campo Client ID deberemos introducir:

https://oauth-redirect.googleusercontent.com/r/homeassistantproject-xxxxx

Deberéis reemplazar homeassistantproject-xxxxx por vuestro propio Project ID que hemos anotado en el paso 1

Authorization URL será la parte que recepcione el código OAuth2. En nuestro caso:

https://mihomeassistant.duckdns.org:8123/auth/authorize

Por último con Token URL especificaremos el lugar donde se almacenará el Token intercambiado:

https://mihomeassistant.duckdns.org:8123/auth/token

Como siempre, recordad reemplazar https://mihomeassistant.duckdns.org:8123 por vuestra propia url de acceso externo y puerto usado.

Lo vemos todo en el siguiente pantallazo:

El siguiente paso opcional, lo saltaremos pues no queremos establecer la autorización usando una aplicación desde móvil:

Llegamos finalmente a la zona de configuración del cliente. Aquí vamos a establecer los permisos necesarios para usar el servicio de Google Assistant con el estándard OAuth. Añadiremos email y name con el botón «Add Scope«, pasaremos a la siguiente pantalla con Next y guardaremos con Save:

Paso 3. Generando la aplicación Test

Seguiremos trabajando desde la Google Actions Console para activar el borrador de aplicación (llamado Test). Esta opción gratuita de prueba generará una aplicación Test que es la que usaremos.

Este borrador para realizar pruebas nos durará 30 días, pero luego os explicaré cómo extenderlo indefinidamente.

En la pantalla de Google Actions Console seleccionaremos la pestaña Test para activar el entorno de pruebas, y en la opción de Settings (botón a la derecha de la pantalla) nos aseguramos que esté seleccionada la opción «on device testing»:

Nota: Tras 30 días, como hemos comentado, se deshabilitará el entorno de pruebas. La solución es muy sencilla: Tendremos que volver a entrar en Google Actions Console, seleccionar nuestro proyecto e ir de nuevo a la pestaña Test, tras lo cual sincronizaremos nuestros dispositivos desde la aplicación Google Home y ya no tendremos que realizar más este paso.

Paso 4. Creación de servicio en Google Cloud

El objetivo de este paso es conseguir unas credenciales (clave y email) que posteriormente tendremos que incluir en el fichero de configuración de Home Assistant.

Para conseguir esas credenciales iremos a https://console.cloud.google.com/apis y nos debe aparecer en la parte superior el proyecto que hemos creado anteriormente con Actions. Si no es así lo seleccionaremos en el desplegable:

Tendremos que crear unas credenciales para nuestro proyecto, desde el menú Credenciales > Crear Credenciales, y seleccionamos crear una cuenta de servicios:

Tendremos que darle un nombre a la nueva cuenta de servicio que estamos creando (nosotros la hemos llamado HA-cta-serv), una descripción opcional y seguir con el siguiente paso. La ID de la cuenta no tendremos que tocarla, pues la formará a partir del nombre que le demos a la cuenta:

En el siguiente paso tendremos que decirle qué funciones usaremos al conectar con nuestro proyecto. Buscaremos «Cuenta de servicio» y dentro de esta opción seleccionaremos «Creador de tokens de cuenta de servicio«. Cuando lo tengamos seleccioamos CONTINUAR y LISTO.

Con esta configuración ya hemos terminado de crear el servicio que podrá crear credenciales del tipo OAuth2:

El siguiente paso será generar la clave. Desde el menú principal de Google Cloud, navegaremos hasta Credenciales y pincharemos en nuestra cuenta de servicio recién creada:

En la pestaña CLAVES, estará la opción desplegable llamada AGREGAR CLAVE, donde elegiremos «Crear clave nueva» y nos dejará descargar las credenciales en formato JSON en la ventana que nos mostrará:

La información importante está en dicho fichero descargado. Podemos abrir el fichero y anotar el contenido, pero es más cómodo usar directamente el fichero descargado al configurar Home Assistant. Lo veremos en el paso de configuración de Home Assistant.

Paso 5. Habilitar HomeGraph

El último paso dentro dela plataforma Google Cloud será habilitar la API de HomeGraph, necesaria para realizar llamadas a procedimientos remotos (RPC).

Tendremos que navegar en el menú lateral seleccionando Biblioteca:

Buscaremos la API Homegraph, la abriremos y la habilitamos:

Hasta aquí hemos terminado ya con los servicios de Google y empezaremos a configurar en nuestro Home Assistant.

Paso 6. Configuración en Home Assistant

El fichero json descargado en el paso anterior tiene un nombre asignado automáticamente (en nuestro caso «homeassistantproject-66ed3-5f0b10342226.json».

Recomendamos renombrar este fichero a algo más legible, pues lo usaremos en nuestro fichero de configuración de Home Assistant. Le llamaremos por ejemplo cuenta-servicio.json.

Copiaremos este fichero json en el directorio Config de Home Assistant (por ejemplo usando Samba), y modificaremos nuestro fichero configuration.yaml para introducir la siguiente sección:

google_assistant:
  project_id: homeassistantproject-66ed3
  service_account: !include cuenta-servicio.json
  report_state: true

Recordad sustituir el project_id por el vuestro obtenido al final de paso 1.

Con la opción report_state: true estaremos actualizando cualquier cambio de estado de las entidades en Home Assistant.

Tras la modificación del fichero tendremos que resetear Home Assistant para que tome la nueva configuración.

Paso 7. Enlazar con la aplicación Google Home

Instalaremos y abriremos la aplicación Google Home en nuestro móvil:

Google Home

Elegiremos nuestra cuenta de Google:

Y tendremos que dar acceso a la ubicación… como si Google no supiera ya dónde estamos en cada momento:

Para añadir nuestro «dispositivo» seleccionaremos el símbolo + en la esquina:

Seleccionamos «Configurar dispositivo«:

Y de las dos opciones que nos aparece elegiremos «Funciona con Google«:

Casi hemos acabado. Tendremos que buscar entre los muchísimos servicios posibles de conexión nuestra Action (si recordáis la llamamos asistente en esta guía), precedido de la palabra [test] y un icono de nube.

Podéis usar el buscador tecleando simplemente las primeras letras de test hasta que os aparezca. Este será nuestro dispositivo:

Nos pedirá confirmación pidiendo usuario y clave para acceder a Home Assistant.

Con esto tendremos ya integrados nuestro Home Assistant en Google Home, y podremos controlarlos usando el asistente de Google directamente:

Desde aquí podéis investigar un poco todas las posibilidades de Google Home, su asistente virtual Google Assistant y su activación por voz. Espero que lo disfrutéis.

Mejores dispositivos para Google Home

No quedaría completo este artículo sin una selección de los mejores dispositivos preparados para integrarse en Google Home:

Deja un comentario