google assistant

Integrar Google Assistant SDK en HA

En esta entrada vamos a integrar Google Assistant SDK en HA, para poder enviar comandos y notificaciones, entre otros. Es decir, con esta integración vamos a poder interactuar con nuestros altavoces de Google desde Home Assistant.

No confundir con el control de los dispositivos de Home Assistant con el asistente de Google, algo que ya explicamos de forma detallada en esta entrada. También hemos visto anteriormente cómo ejercer un control avanzado de Home Assistant y cómo crear diálogos “naturales”.

Por cierto, esta entrada la estamos realizando gracias a nuestro amigo y Patreon Óscar, que nos ha cedido una Google Home Mini para que juguemos con él 😄

Alcance de la integración

Para integrar Google Assistant SDK en HA vamos a hacer uso de la integración oficial, que nos va a permitir:

  • Enviar comandos al asistente de Google para controlar dispositivos soportados por Google Assistant, pero no por Home Assistant.
  • Reproducir notificaciones de audio en los altavoces de Google, sin interrumpir el contenido multimedia que se esté reproduciendo.
  • Reproducir las respuestas del asistente de Google en cualquier entidad multimedia.
  • Conversar con el asistente de Google a través de la integración oficial de conversación.

Integración con Home Assistant

Para integrar Google Assistant SDK en HA sigue estos pasos:

  1. Antes de nada vas a necesitar generar un ID de Cliente y el Secreto de Cliente en la Consola de Desarrolladores de Google, si no lo has hecho antes. Para ello accede a la consola y crea un nuevo proyecto.
  2. Si ya habías generado un ID de Cliente y el Secreto de Cliente previamente, salta al paso 10.
  3. Abre la barra lateral izquierda de la pantalla y accede a APIs y servicios > Pantalla de consentimiento de OAuth. En tipo de usuarios selecciona “Externo” y haz clic en “Crear”.
  4. A continuación indica un nombre para la aplicación (por ejemplo, Home Assistant) y selecciona tu correo electrónico en el campo “Correo electrónico de asistencia al usuario”. Indica el mismo correo en el último campo “Información de contacto del desarrollador”. Haz clic en “Guardar y continuar”.
  5. En las siguientes dos pantallas no hace falta que hagas nada, así que haz clic en “Guardar y continuar”, hasta llegar a la “Pantalla de consentimiento de OAuth”. En esta pantalla haz clic en volver al Panel de Control.
  6. Ahora localiza el título “Estado de publicación” y haz clic en el botón “Publicar la Aplicación”. Verás que el estado es ahora “En producción”.
  7. En el menú lateral izquierdo, haz clic en “Credenciales” y en el menú superior haz clic en “Crear credenciales” seleccionando la opción “ID de cliente de OAuth”. En tipo de aplicación indica “Aplicación web”. Asigna un nombre (por ejemplo, Credenciales Home Assistant).
  8. Agrega la siguiente direccion en el apartado “URI de redireccionamiento autorizados”y después haz clic en “Crear”.
https://my.home-assistant.io/redirect/oauth
  1. A continuación te aparecerá una ventana emergente con tu ID de cliente y Secreto de cliente. Cópialos y consérvalos.
  2. Ahora pulsa en el siguiente enlace y habilita la API de Google Assistant.
  3. En Home Assistant, ve a Ajustes > Dispositivos y servicios > Añadir integración > Google > Google Assistant SDK.
  4. En la ventana emergente indica el nombre de las credenciales creadas (en el ejemplo anterior, Credenciales Home Assistant) y el ID de cliente y Secreto de cliente que has obtenido previamente.
  5. En la nueva ventana tendrás que seleccionar tu cuenta de Google. Es posible que te salga un mensaje indicando que Google no ha verificado esta aplicación. No te preocupes por ello y continua hacia la página.
  6. Dale todos los permisos a Home Assistant y haz clic en continuar.
  7. Por último haz clic en “Link Account” y listo, acabas de integrar Google Assistant SDK en HA!

Enviar comandos al altavoz de Google

Como hemos comentado, la primera opción que nos permite integrar Google Assistant SDK en HA es enviar comandos al altavoz de Google desde Home Assistant (por ejemplo, “dime qué hora es”).

Para ello vamos a utilizar el servicio ‘google_assistant_sdk.send_text_command’ de la siguiente forma (puedes hacer la prueba desde Herramientas para desarrolladores > Servicios).

service: google_assistant_sdk.send_text_command
data:
  media_player: media_player.googlehome
  command: Dime qué hora es

Reproduce notificaciones de audio

También puedes utilizar tus altavoces de Google para emitir notificaciones de audio personalizadas, con el servicio ‘notify.google_assistant_sdk’. Haz la prueba!

service: notify.google_assistant_sdk
data:
  message: Esto es un mensaje de prueba

Por cierto, aunque puedes hacerlo de esta forma habrás observado que antes de reproducir la notificación indica que “hay un anuncio”. Para evitar este aviso y que vaya directamente “al grano”, añade la integración oficial de Google Cast desde Ajustes > Dispositivos y servicios > Añadir integración > Google > Google Cast. Hecho esto sólo tienes que utilizar el servicio de las notificaciones de audio como lo haces con otros altavoces.

service: tts.speak
target:
  entity_id: tts.google_es_es
data:
  cache: true
  media_player_entity_id: media_player.googlehome
  message: Esto es una notificación de audio

Reproduce mp3 personalizados

Al integrar Google Assistant SDK en HA no sólo puedes reproducir notificaciones de audio, también ficheros mp3 personalizados. Para ello utiliza el servicio ‘media_player.play_media’ de la siguiente forma.

service: media_player.play_media
target:
  entity_id: media_player.googlehome
data:
  media_content_type: "audio/mp3"
  media_content_id: "media-source://media_source/local/intro.mp3"
💡 Ten en cuenta que en el ejemplo anterior, el fichero "intro.mp3" se encuentra en la raíz del directorio "My media" accesible desde el apartado "Medios" del panel lateral (o la carpeta "media", si has accedido a traves del explorador de archivos). Si has creado subcarpetas deberás indicarlo en la ruta.

¿Dudas?¿necesitas ayuda? entra aquí
Y si te ha gustado, compártelo! 🙂
quieres mas
Send this to a friend