En esta entrada te explico como he conseguido integrar auriculares bluetooth en Home Assistant para darles alguna función extra.
Índice
Alcance de la integración
Antes de nada, vamos a ajustar expectativas. Hasta donde yo sé no existe ninguna integración oficial ni ‘custom’ para integrar auriculares bluetooth en Home Assistant. No obstante, haciendo uso de los sensores del resto de nuestros dispositivos podemos agregarles estas funciones.
- Monitorización del estado de los auriculares (encendidos o apagados).
- Monitorizar el nivel de la batería.
- Automatizaciones en función de la persona y/o el dispositivo en uso.
- Iniciar automáticamente la reproducción de música.
- Notificación y apagado remoto de los auriculares, cuando me los dejo encendidos.
En mi caso he utilizado mis auriculares Sony WH-CH520, con los que estoy encantado. Disponen de bluetooth 5.2 por lo que pueden conectarse a dos dispositivos a la vez, y además puedo apagarlos de forma remota desde la aplicación móvil. No obstante, puedes incorporar estas funciones a cualquier auricular con las mismas características.
Monitorización del estado de los auriculares
Lo primero que vamos a hacer es crear un sensor que nos indique si los auriculares están encendidos o apagados. Esto será útiles para distintos fines, como veremos más adelante.
En tu dispositivo Android habitual debes tener instalada la aplicación de Home Assistant. Desde ella, accede a Ajustes > Aplicación complementaria > Administrar sensores > Sensores de bluetooth y activa el sensor «Conexión Bluetooth». Esto te va a generar una nueva entidad del tipo ‘sensor.DISPOSITIVO_bluetooth_connection’.
Esta entidad tiene como valor el número de dispositivos conectados, y lo que es más importante, cuenta con el atributo «connected_paired_devices» que identifica qué dispositivos son. Dentro de este atributo tienes que identificar el código que corresponde a tus auriculares.
Accede a tu fichero ‘sensors.yaml’ y pega el siguiente código. No olvides reemplazar el nombre de tu dispositivo y la dirección MAC bluetooth de los auriculares (la que aparecía junto al nombre de los auriculares en el sensor que has acabas de activar). Esto creará la entidad ‘sensor.auriculares’. Puesto que los auriculares se vinculan automáticamente con tu teléfono al encenderlos, este sensor te indicará si están encendidos o apagados.
- platform: template sensors: auriculares: friendly_name: "Auriculares" value_template: > {% if 'XX:XX:XX:XX:XX:XX (NOMBRE_AURICULARES)' in state_attr('sensor.DISPOSITIVO_bluetooth_connection','connected_paired_devices') %} on {% else %} off {% endif %} icon_template: mdi:headphones
Monitorizar el nivel de la batería
Qué duda cabe que monitorizar el nivel de la batería de nuestros auriculares resulta de gran utilidad. No obstante, al no estar integrados de forma nativa en Home Assistant no contamos con este dato por defecto.
No obstante, de nuevo vamos a poder tener acceso a este dato a través de los sensores de nuestro dispositivo Android vinculado. En esta entrada te explico en detalle cómo hacerlo.
Automatizaciones en función de la persona y/o el dispositivo
Es posible que no te haya dado tiempo a interiorizarlo, pero algo tan simple como lo que hemos hecho en el apartado anterior te permite crear automatizaciones en función de la persona que los está utilizando, o el dispositivo concreto que estés utilizando. Me explico mejor:
- Lógicamente, a un mismo dispositivo puedes conectar distintos auriculares. En mi caso utilizo los Sony WH-CH520 para escuchar música en el estudio, pero también tengo unos TOZO T10 que utilizo para salir a correr porque son más pequeños y cómodos para ello. De esta forma, puedo monitorizar qué actividad estoy haciendo y crear automatizaciones en consecuencia.
- Del mismo modo, un auricular puede vincularse con distintos dispositivos con su propio sensor bluetooth. Es decir, si los vinculo a mi teléfono aparecerán en mi sensor bluetooth de dispositivos conectados, pero si me pareja los conecta a su tablet, aparecerán en su sensor bluetooth. Así también puedo crear automatizaciones en función de quién los está utilizando.
Por supuesto, puedes crear combinaciones con los dos factores para crear distintas escenas simplemente con algo tan sencillo como encender unos auriculares.
Iniciar automáticamente la reproducción de música
Una de las funciones que más me gustan es que sólo tengo que encender los auriculares y automáticamente empieza a sonar música sin que tenga que hacer nada. La forma de conseguirlo depende de en qué dispositivo quieras iniciar la reproducción.
Reproducción en el ordenador
En mi caso utilizo los auriculares Sony WH-CH520 para escuchar música desde el ordenador en Spotify, por lo que esta es mi opción favorita. En esta entrada te explico en detalle como lo he hecho y además te dejo el código para que sólo tengas que copiarlo. No obstante, te adelanto que he utilizado la integración de mi PC con HASS.Agent, y que puedes lanzar cualquier programa que tengas instalado en tu ordenador cuando enciendas los auriculares.
Reproducción en dispositivos Android
También puedes iniciar la reproducción en el smartphone o tablet Android al que tengas vinculados los auriculares a través de las notificaciones con comandos. En mi caso, como ya te he comentado, utilizo mis auriculares TOZO T10 vinculados a mi teléfono para salir a correr. Ten en cuenta que antes tendrás que haberle dado permisos a la app de Home Assistant para mostrarse sobre otras aplicaciones y tener acceso a las notificaciones.
Para ello tendrías que crear una automatización de la siguiente forma:
- Desencadenante. En el disparador selecciona el tipo «Estado» y busca la entidad que hemos creado en el apartado anterior para saber si los auriculares están encendidos (‘sensor.auriculares_tozo’). En el campo «A» indica ‘on’. De esta forma la automatización comenzará cuando encendamos los auriculares.
- Acciones. Ahora vamos a establecer una secuencia de acciones para que se inicie la reproducción en nuestro dispositivo Android.
- «Despertar» el dispositivo. Para que los comandos tengan efecto necesitamos que el dispositivo esté activo, y si hace tiempo que lo usamos puede que este «hibernando».
- Lanzar Spotify (o la aplicación que tú quieras). Ahora que nuestro dispositivo está atento, vamos a pedirle que abra la aplicación que se va a encargar de reproducir la música.
- Iniciar la reproducción. Ya solo queda darle al «play» para empezar a disfrutar de la música.
El código completo de la automatización, tras reemplazar el nombre de tu dispositivo, sería el siguiente.
alias: Reproducción automática description: "Inicia la reproducción de Spotify al encender los auriculares Tozo" trigger: - platform: state entity_id: - sensor.auriculares_tozo to: "on" condition: [] action: - service: notify.mobile_app_DISPOSITIVO data: message: command_screen_on data: ttl: 0 priority: high - service: notify.mobile_app_DISPOSITIVO data: message: command_launch_app data: package_name: com.spotify.music - service: notify.mobile_app_DISPOSITIVO data: message: command_media data: media_command: play media_package_name: com.spotify.music mode: single
Notificación y apagado remoto de los auriculares
¿Alguna vez te has dejado los auriculares encendidos sin darte cuenta y se han quedado sin batería?¿o recibes una llamada pero no oyes nada porque el sonido sale por los auriculares? Al integrar auriculares bluetooth en Home Assistant esto tiene solución programando una notificación que te avise e incluso permita el apagado remoto.
Pero vamos por pasos. Primero voy a diferenciar varios casos, empezando por el más sencillo.
Unos auriculares conectados a un sólo dispositivo
El caso más sencillo es el de unos auriculares que siempre utilizo con el mismo dispositivo. Por ejemplo, mis auriculares TOZO T10 que siempre uso con mi teléfono para salir a correr. En este caso Home Assistant sabe si están conectados o no, pero no es capaz de diferenciar cuando me los he dejado encendidos por error.
Para ello hay que añadir una condición que le dé más información a HA, para saber que están encendidos por error. En el caso que he descrito puede ser, por ejemplo:
- Si están encendidos y se desvincula del teléfono mi reloj Garmin que utilizo para correr.
- Si están encendidos y entro en la zona geográfica de mi casa al volver de correr.
- Si están encendidos y mi teléfono se conecta al WiFi de casa al volver de correr.
Unos auriculares conectados a varios dispositivos
Si tus auriculares disponen de Bluetooth 5.2 o superior cuentan con la característica de poder conectarse a distintos dispositivos. Esto permite que uno de los dispositivos conectados (por ejemplo, tu teléfono) sea el que te informe de si están encendidos o apagados, y el otro sea el que te indique si se trata de un error (por ejemplo, tu ordenador).
Por ejemplo, como ya te he dicho utilizo mis auriculares Sony WH-CH520 para escuchar música en el ordenador. Adicionalmente utilizo la integración de Nmap para controlar si el ordenador está encendido o apagado. De esta forma HA sabrá que me los he dejado encendidos por error si el ordenador se apaga y los auriculares están encedidos.
Lanzar una notificación de aviso
Ahora que ya tenemos claro como detectar si nos hemos dejado encendidos los auriculares, sólo tenemos que crear una sencilla notificación que nos avise para que podamos apagarlos. De nuevo voy a diferenciar 3 casos:
- Apagado manual. Si tus auriculares son antiguos, podrás programar una notificación simple de aviso como esta para que puedas levantarte a apagarlos.
service: notify.mobile_app_DISPOSITIVO data: message: 🎧 Los auriculares están encedidos!
- Apagado remoto desde aplicación. Si tus auriculares tienen una aplicación que permite apagarlos desde ella (como sucede con los Sony WH-CH520), puedes programar una notificación accionable como esta que te avise y te ofrezca abrir la aplicación para apagarlos.
service: notify.mobile_app_DISPOSITIVO data: message: "🎧 Los auriculares están encendidos!!" data: actions: - action: "URI" title: "Vamos a apagarlos" uri: "app://com.sony.songpal.mdr"
- Apagado remoto automático. Si tus auriculares tienen una aplicación que permite apagarlos desde ella, y has conseguido identificar el ‘intent’ que permite ejecutar el apagado, podrás apagarlos directamente sin que requiera tu intervención.
¿Dudas?¿necesitas ayuda? entra aquí
Y si te ha gustado, compártelo! 🙂