Integrar el Xiaomi BT Speaker en Home Assistant

Integrar el Xiaomi BT Speaker en Home Assistant

En esta entrada vamos a integrar el Xiaomi BT Speaker en Home Assistant, para utilizarlo como altavoz local y entidad multimedia.

¿Por qué integrar el Xiaomi BT Speaker en Home Assistant?

Antes de nada, quiero dejarte claro que el proceso que vamos a seguir en esta guía es aplicable a muchos otros altavoces que tengas por casa y cumplan estos requisitos (de hecho, si tienes alguno viejo te animo a que lo aproveches en lugar de comprar otro). Los motivos por los que yo he elegido este altavoz de Xiaomi son los siguientes:

  • En primer lugar, quería utilizar un altavoz que actualmente estuviera en el mercado. De esta forma, si no tienes ninguno disponible en casa puedes seguir las instrucciones que verás a continuación y utilizar los accesorios que voy a diseñar específicamente para encajar con este modelo.
  • Como casi todos los productos de Xiaomi, tiene una excelente relación calidad/precio.
  • El altavoz funciona con una entrada de 5V, que es la que va a proporcionar nuestra placa ESP.
  • Aunque esto es subjetivo, personalmente creo que es bonito, sencillo y elegante.
  • Es fácil de desmontar y tiene suficiente espacio en su carcasa para alojar nuestras placas y sensores.
altavoz xiaomi
*Algún precio puede haber cambiado desde la última revisión

Requisitos previos

Tanto si has decidido integrar el Xiaomi BT Speaker en Home Assistant, como si vas a utilizar cualquier otro que tengas por casa, previamente necesitas lo siguiente:

  • Haber instalado ESPHome en Home Assistant.
  • Una placa ESP32 (en mi caso voy a usar una esp32-wroom-32d, pero te sirve cualquier modelo).
  • Un cable USB de datos para instalar el firmware en la placa (no sirve un cable de carga). Si no tienes ninguno a mano, puedes comprarlo muy barato en Aliexpress.
  • Un amplificador MAX98357A, que nos va a servir para enviar el audio desde Home Assistant.

*Algún precio puede haber cambiado desde la última revisión
💡 Si te estás preguntando qué diferencia hay con la entrada para integrar cualquier altavoz en HA, es que en aquella utilizamos un DAC para crear un 'gadget' externo que nos permite conectar cualquier altavoz mediante un cable Jack 3.5 (lo cuál resulta muy útil para poder cambiar de altavoces cómodamente).

En este caso sin embargo vamos a utilizar un amplificador que colocaremos en el interior del altavoz, de forma que externamente no se apreciará nada distinto (además, no todos los altavoces tienen salida Jack 3.5).

Desmontar el altavoz

Lo primero que vamos a hacer para integrar el Xiaomi BT Speaker en Home Assistant es desmontarlo, siempre con cuidado. Esto se realiza levantando la parte superior donde se encuentra la membrana (la primera vez cuesta un poco más, ya que tiene un poco de pegamento). En este video puedes ver cómo desmontarlo por completo.

Cuando llegues a la base, desconecta con delicadeza los cables del altavoz y el micro. A partir de ahí pudes quitar tanto la batería recargable, como la placa y el resto de accesorios. El objetivo es dejar el habitáculo vacío para poder aprovecharlo al máximo.

Esquema de conexión

El siguiente paso es conectar nuestro amplificador MAX98357A a nuestra placa ESP32. Como siempre, para el cableado conviene que busques en Google alguna imagen del ‘pinout’ o relación de pines de tu placa, para saber a qué corresponde cada uno.

Por ejemplo, esta es una imagen del pinout de una placa esp32-wroom-32d, que es exactamente el modelo que estoy utilizando en esta ocasión.

pinout

Por otro lado, nuestro amplificador MAX98357A tiene el siguiente aspecto.

amplificador

He marcado con colores los pines que vamos a utilizar para conectar cualquier altavoz a Home Assistant, a saber:

  • VIN (rojo), irá conectado al pin de alimentación de la placa 5V.
  • GND (negro), irá conectado a uno de los pines de tierra de la placa GND.
  • Los pines WSEL (naranja), DIN (marrón) y BCLK (verde) van a proporcionar los datos del sonido y pueden ir a cualquier pin libre de tu placa. En mi caso van a ir conectados, respectivamente a los pines 32, 33 y 25 (por pura conveniencia en su colocación).
💪 Por cierto, ya habrás notado que para realizar las conexiones al amplificador vas a necesitar soldar (no dejes que te intimide! en internet puedes encontrar muchos videos explicativos). Básicamente necesitas un soldador y un poco de estaño.

Realizadas las conexiones, los componentes quedarán de la siguiente forma.

Lo siguiente que vamos a hacer es cortar el extremo de los cables que van al altavoz, para quitar el adaptador de plástico, pelar un poco los cables y conectarlos al amplificador por los dos orificios de la pieza verde (previamente soldada en su lugar). Para ello sólo tienes que introducirlos en el lugar correspondiente (el cable rojo al orificio positivo ‘+’, y el negro al negativo ‘-‘) y apretar el tornillo superior.

Ahora ya puedes colocar todos los componentes dentro del habitáculo. Por cierto, te recomiendo que conectes un cable a la placa ESP32 para fijar la posición de carga y lo fijes con una pistola de silicona. De esta forma no se moverá si en algún momento desconectas el cable y no te obligará a desmontarlo de nuevo.

💡 Como ves tienes espacio de sobra para meter otros sensores y convertir el altavoz en un multidispositivo.

Hecho esto ya puedes volver a montar el altavoz por completo.

Instalación y configuración en ESPHome

Ahora vamos con la parte del ‘firmware’ que necesitas para conectar cualquier altavoz a Home Assistant. Para llevarlo a cabo, sigue estos pasos:

  1. Conecta tu placa ESP32 a tu ordenador y «flashéala» con ESPHome (si es tu primera vez, en esta entrada tienes las instrucciones detalladas).
  2. Hecho esto, accede desde Home Assistant al complemento de ESPHome y pulsa sobre «EDIT» en el bloque correspondiente a la placa que acabas de añadir. Al final del código, añade estas líneas correspondientes al componente I²S Audio Media Player de ESPHome, observando lo siguiente:
    • En ‘i2s_lrclk_pin‘, identifica el pin con la conexión al pin ‘WSEL’ (naranja) del amplificador.
    • En ‘i2s_bclk_pin‘, identifica el pin con la conexión al pin ‘BCLK’ (verde) del amplificador.
    • En ‘i2s_dout_pin‘, identifica el pin con la conexión al pin ‘DIN’ (marrón) del amplificador.
captive_portal:
i2s_audio:
  i2s_lrclk_pin: GPIO32
  i2s_bclk_pin: GPIO25
media_player:
  - platform: i2s_audio
    name: ESPHome I2S Media Player
    dac_type: external
    i2s_dout_pin: GPIO33
    mode: stereo
  1. Cuando termines de editar el código, pulsa en «SAVE» e «INSTALL«. Espera a que el código termine de compilarse y se instale en tu placa.
  2. Ahora ve a Medios > Text-to-speech y selecciona cualquiera de tus motores para probar tus altavoces. Sólo tienes que seleccionarlos en el desplegable que aparece en la esquina inferior derecha, escribir un mensaje en el cuadro de texto y pulsar en «Decir».
  3. Esto es todo, enhorabuena! Ya puedes conectar cualquier altavoz a Home Assistant!

Notificaciones de audio personalizadas

Recuerda que ya te expliqué cómo recibir notificaciones de audio desde Home Assistant, por lo que ahora ya puedes enviarlas a cualquier altavoz que tengas por casa, de forma totalmente local!

Con tus renovados altavoces, la función de notificaciones de audio y el diseño de un buen ‘template’ vas a poder crear notificaciones dinámicas y totalmente personalizadas. Por cierto, en esta entrada también te cuento cómo personalizar la voz de Home Assistant!

🥑 Por cierto, si te interesa entender cómo funcionan los templates y aprender a crear los tuyos, te recomiendo que veas el taller de la academia, es gratis!

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