Empieza a usar tu voz para controlar Home Assistant con el asistente de Google, desde tu móvil, tablet, altavoz, reloj, televisor…
Requisitos previos
Para poder controlar Home Assistant con el asistente de Google previamente debes cumplir los siguientes requisitos:
- Disponer de un dispositivo que incorpore el asistente de Google. A día de hoy son muchos los dispositivos que traen el asistente de Google incorporado de serie, más allá de los altavoces inteligentes. Además, puedes instalarlo en cualquier teléfono compatible con su aplicación.
- Habilitar el acceso desde el exterior a Home Assistant y un certificado SSL. Si aun no lo tienes habilitado, en esta entrada te explico cómo hacerlo como varias capas de seguridad.
Integración con Home Assistant
Para llevar a cabo la integración del asistente de Google, sigue estos pasos:
- Accede a la consola de acciones de Google y crea un nuevo proyecto, haciendo clic en el botón «New Project». En la ventana emergente acepta los términos de servicio (primera casilla) y cumplimenta el resto como prefieras. Luego haz clic en «Agree and continue».
- Indica un nombre para tu proyecto (por ejemplo, ‘Aguacatec’), selecciona tu idioma y tu país, y haz clic en «Create project».
- En la siguiente pantalla selecciona el bloque «Smart Home» y haz clic en el botón «Start Building».
- Bajo el apartado «Quick setup», haz clic sobre el enlace que indica «Name your Smart Home action» e indica el nombre que quieres que aparezca en la aplicación de Google Home (por ejemplo, ‘Home Assistant’) y haz clic en el botón «Save».
- Vuelve a la pestaña «Overview» a través del menú de la parte superior. Selecciona ahora «Build your Action» + «Add Action(s)». En la siguiente pantalla cumplimenta al campo Fulfillment URL con el siguiente texto, reemplazando el dominio que utilizas para acceder desde el exterior (sin indicar el puerto al final) y haz clic en «Save».
https://[TU-DOMINIO]/api/google_assistant
- Vuelve de nuevo a la pestaña «Overview» y, bajo el apartado «Quick Setup», haz clic sobre «Setup account linking». En la siguiente pantalla cumplimenta los siguientes campos.
- Client ID. Indica ‘https://oauth-redirect.googleusercontent.com/r/[TU-PROYECTO]‘, reemplazando la identificación del proyecto que has creado en el primer paso. Si tienes dudas sobre como escribirlo, la encontrarás en la propia barra de direcciones de la pantalla en la que te encuentras.
- Client Secret. Escribe cualquier cosa, ya que este campo no es necesario pero tiene que estar cumplimentado.
- Authorization URL. Indica ‘https://[TU-DOMINIO]/auth/authorize‘, reemplazando tu dominio como en el paso 5.
- Token URL. Indica ‘https://[TU-DOMINIO]/auth/token‘, reemplazando tu dominio como en el paso anterior.
- Al acabar haz clic en «Next» y en «Save«.
- Baja por la pantalla hasta encontrar la opción «Configure your client» y haz clic. En el campo «Scopes» escribe ‘email’ y pulsa «Add scope». Ahora escribe ‘name’ y pulsa «Add scope» de nuevo. NO marques la casilla que indica ‘Google to transmit clientID and secret via HTTP basic auth header’. Al terminar pulsa el enlace que indica «Test» y verifica que te devuelve «Test now enabled».
- Accede ahora a la Plataforma de Google Cloud y selecciona el proyecto creado. En el apartado «Quick access» (acceso rápido) selecciona la opción «APIs & Services» (APIs & Servicios).
- Selecciona la opción «Credentials» (credenciales) en el menú lateral de la izquierda, y después haz clic sobre «+ CREATE CREDENDTIALS» (crear credencionales) / «SERVICE ACCOUNT» (cuenta de servicio). Indica un nombre para el servicio en el primer campo (por ejemplo, ‘Home Assistant’) y haz clic en «CREATE AND CONTINUE» (crear y continuar).
- En el siguiente paso, haz clic sobre el desplegable «Select a role» (selecciona un rol) y busca ‘token’ para seleccionar la opción «Service Account Token Creator» (creador de token de cuenta de servicio), y haz clic en «CONTINUE» (continuar) y en «DONE» (listo).
- En la parte inferior de la siguiente pantalla «Service Accounts» (cuentas de servicio) encontrarás la cuenta que se acaba de crear. Haz clic en el icono del lápiz para editar.
- Selecciona la opción «Keys» (claves) en el menú superior, luego busca la opción «Add key» (agregar clave) y «Create new key» (crear clave nueva). En la ventana emergente selecciona ‘JSON’ y pulsa «Create» (crear). Automáticamente se nos descargará un fichero que tenemos que renombrar a ‘SERVICE_ACCOUNT.JSON‘.
- Haz clic sobre el logo de Google Cloud para volver a la pantalla de inicio y en el buscador de la parte superior introduce «Homegraph API». Selecciónala y luego habilítala (‘enable’).
- Ahora tienes que subir el fichero creado en el paso 12 dentro de la carpeta ‘config’ de Home Assistant. Puedes hacerlo a través de File Editor o Samba Share.
- Después accede al fichero ‘configuration.yaml’ de HA y pega el siguiente código, reemplazando la id de tu proyecto (ver paso 6). Bajo el apartado ‘exposed_domains’ tienes que indicar el tipo de dispositivios a los que quieres que tenga acceso Google Assistant (por ejemplo, ‘light’ para luces o ‘switch’ para enchufes). Al terminar reinicia HA.
google_assistant: project_id: ID-TU-PROYECTO service_account: !include SERVICE_ACCOUNT.JSON report_state: true exposed_domains: - switch - light
- Ahora en tu dispositivo móvil abre la aplicación de Google Home, o instálala si aun no la tienes. Crea un perfil para tu casa haciendo clic sobre «Añadir casa».
- Ve al apartado de «Dispositivos» y pulsa en «Añadir» (o en su defecto, en el símbolo «+»). Luego en «Funciona con Google». En el listado mostrado, busca el proyecto que has creado en los pasos anteriores. El nombre empezará por [test].
- Selecciónalo y pulsa en «Continuar». Esto debe redirigirte a la entrada de Home Assistant para que hagas login con tu usuario y contraseña.
- Espera unos segundos, y ya tendrás tus dispositivos disponibles para controlarlos con el asistente de Google.
Configuración adicional
En el paso 15 del apartado anterior has visto la configuración básica para darle acceso a Google Assistant a tus dispositivos. Sin embargo, puedes personalizar algunos aspectos de la configuración.
- Oculta entidades. A lo mejor quieres, por ejemplo, exponer todos los enchufes inteligentes salvo uno que funciona en automático. Puedes añadir una línea en la configuración para que esta entidad no quede expuesta. En este ejemplo, se oculta el enchufe correspondiente a la entidad ‘switch.controlador’.
google_assistant: project_id: ID-TU-PROYECTO service_account: !include SERVICE_ACCOUNT.JSON report_state: true exposed_domains: - switch - light entity_config: switch.controlador: expose: false
- Cambia el nombre de las entidades. A lo mejor quieres asignarle un nombre, o varios, a algún dispositivo para poder llamarle de esta manera y que el asistente de Google te entienda. En este ejemplo, el enchufe que enciende la impresora puede identificarse directamente como «Impresora» o «Printer».
google_assistant: project_id: ID-TU-PROYECTO service_account: !include SERVICE_ACCOUNT.JSON report_state: true exposed_domains: - switch - light entity_config: switch.impresora: name: Impresora aliases: - Printer
- También puedes tener un control más avanzado con el asistente de Google para poder lanzar automatizaciones.
¿Dudas?¿necesitas ayuda? entra aquí
Y si te ha gustado, compártelo! 🙂