Guía definitiva: Integra el Xiaomi Temperature and Humidity Monitor 3 en Home Assistant con firmware personalizado

En este tutorial aprenderás a integrar el Xiaomi Temperature and Humidity Monitor 3 (modelo MJWSD05MMC) en Home Assistant, utilizando el firmware alternativo PVVX. Gracias a esta modificación, el sensor podrá transmitir datos en formato BTHome v2 mediante Bluetooth Low Energy (BLE), lo que permite una integración directa, sin necesidad de gateways, y añade funciones avanzadas como personalización de pantalla, cambio de unidades y transmisión de largo alcance.

Tal y como os comenté en el análisis del Xiaomi Temperature and Humidity Monitor 3 (modelo MJWSD05MMC) que publicamos la semana pasada, hoy os traigo un sencillo tutorial paso a paso para poder utilizarlo con Home Assistant.

Antes de comenzar, es importante tener en cuenta que, aunque el proceso es bastante sencillo, vamos a modificar el firmware del dispositivo, lo que conlleva cierto riesgo de dañar el sensor si algo sale mal.


👉 Sigue esta guía bajo tu propia responsabilidad.

Una vez dicho esto, ¡vamos al lío!


Paso 1: Obtener las claves de activación

💡 Nota importante:
En principio, puedes intentar flashear el dispositivo sin sacar las claves de activación (BLKey y Token).
Sin embargo, en mi caso personal, no funcionó hasta que extraje estos datos previamente con la herramienta.
Por eso recomiendo hacerlo desde el principio para evitar errores más adelante.

Para que el nuevo firmware pueda activarse correctamente, primero necesitamos obtener unas claves únicas de nuestro dispositivo desde la nube de Xiaomi.

  1. Descarga la herramienta Xiaomi Cloud Tokens Extractor.
  2. Ejecútala. Te pedirá tu nombre de usuario o email de la cuenta de Xiaomi, y después, tu contraseña.
  3. A continuación, deberás elegir el servidor. Si estás en Europa, el código correcto es 'de' (Alemania).
  4. La herramienta te mostrará un listado de todos tus dispositivos.

🔑 Busca el Xiaomi Smart Temperature and Humidity Monitor 3 y apunta cuidadosamente el BLkey y el token. ¡Los necesitaremos en un momento!

Captura de pantalla de una terminal de comandos que muestra la salida de la herramienta Xiaomi Cloud Tokens Extractor. En la lista de dispositivos, se destaca la entrada para el "Xiaomi Smart Temperature and Humidity Monitor 3", del cual se obtienen la dirección MAC, la clave BLE KEY y el TOKEN, aunque los valores están pixelados para proteger la privacidad.

Paso 2: Preparar el navegador y el sensor

Para que la web de flasheo pueda comunicarse por Bluetooth, necesitamos activar una función experimental del navegador.

En Chrome o Brave:

Pega lo siguiente en la barra de direcciones:
chrome://flags/#enable-experimental-web-platform-features
Activa la opción (Enabled) y reinicia el navegador.

Captura de pantalla de la página de "flags" de un navegador, mostrando la opción "Experimental Web Platform features" resaltada en amarillo. El menú desplegable a la derecha está configurado en "Habilitado", indicando que la función ha sido activada.

En Microsoft Edge:

Pega:
edge://flags/#enable-experimental-web-platform-features
Activa la opción y reinicia.

Poner el sensor en modo emparejamiento

Pulsa el botón inferior del dispositivo hasta que veas que el icono de Bluetooth empieza a parpadear en la pantalla.


Paso 3: ¡A flashear!

Con el sensor parpadeando, abre la siguiente página en tu navegador:
👉 https://pvvx.github.io/ATC_MiThermometer/TelinkMiFlasher.html

  1. Marca la opción  Get Advertising MAC
  2. Haz clic en el botón azul Connect.
  3. En la ventana que aparece, busca tu dispositivo (MJWSD05MMC) y pulsa Conectar.
  4. Una vez conectado, pulsa Do Activation.
Ventana emergente de emparejamiento Bluetooth del navegador que dice "pvvx.github.io quiere emparejarse". Se muestra una lista de dispositivos Bluetooth cercanos, con el dispositivo "MJWSD05MMC" seleccionado, listo para pulsar el botón "Emparejar".

Introducir las claves

Ahora es el momento de usar las claves que apuntamos antes, como ya mencioné, puedes intentarlo sin ponerlas, si te falla, ponlas:

  • Pega el BLkey en el campo Mi Bind Key.
  • Pega el token en el campo Mi Token.
  • Pulsa Login. Si todo ha ido bien, podrás continuar con el Flasheo.
Captura de pantalla de la sección de activación de la web Telink Flasher. Se ven los botones "Do Activation" y "Login", junto con tres campos de entrada: "Device known id", que muestra un ID pixelado, y los campos vacíos "Mi Token" y "Mi Bind Key".

Seleccionar el firmware

  • En el menú Custom Firmware, selecciona la versión más reciente disponible (por ejemplo, BTE_v52.bin).
  • Pulsa Start Flashing.
  • Verás arriba el progreso. No cierres la pestaña ni alejes el sensor hasta que llegue al 100 %.
Captura de pantalla de la interfaz de Telink Flasher durante el proceso de flasheo del firmware. La línea de estado superior indica el progreso, mostrando "17% done", mientras que la línea inferior muestra los datos del sensor en tiempo real: temperatura de 31.2°C, humedad del 49% y voltaje de 3035 mV.

✅ ¡Listo! Tu sensor ya tiene el nuevo firmware.
Por defecto, ya viene configurado para emitir en formato BTHome v2, que Home Assistant detectará automáticamente, mostrándote una notificación para empezar a usar el dispositivo.


Configuración y nuevas funciones

El flasheo no solo lo hace compatible, ¡sino que le añade funciones!

Nueva interacción

Para cambiar lo que se muestra en la pantalla (hora, temperatura, etc.), ahora debes dejar pulsado el botón durante tres segundos.

El modo emparejamiento ahora pasaría a ser el botón superior.

Para personalizar los ajustes, vuelve a la página del Telink Flasher, pulsa Connect y busca el nuevo nombre del dispositivo (en mi caso cambió a BTE_AE1574).


Personalización de la pantalla

  • Show on device screen: Envía manualmente un valor y símbolos personalizados a la pantalla, anulando la visualización normal. Se mostrará durante el tiempo que definas (por defecto, 600 segundos).
  • Screen Off: Apaga la pantalla por completo para ahorrar batería.
  • Temperature: Cambia entre °C y °F.
  • 12-hour clock: Cambia al formato de 12 horas (AM/PM).
  • T&H 2 decimal places: Muestra dos decimales para temperatura y humedad.
  • Show WeekDay: Muestra (o no) el día de la semana junto a la hora.
Captura de pantalla completa de la página de configuración del firmware en la web de Telink Flasher. La interfaz muestra numerosas opciones para personalizar el sensor Xiaomi, incluyendo ajustes para la pantalla, modos de consumo de energía y parámetros de transmisión Bluetooth. Se puede ver que el "Advertising type" está configurado como "BTHome v2" y el "Advertising interval" en 5000 ms.

Información adicional que puedes mostrar:

  • Time: Hora actual
  • Temperature / Humidity: Uno de estos dos datos
  • Battery %: Porcentaje de batería restante
  • Battery V: Voltaje exacto de la batería
  • ExtNumber&Symbols: Permite que Home Assistant (u otro sistema externo) envíe datos personalizados a la pantalla.

Ajustes de funcionamiento

  • Sensor in «LowPower mode» / Tx measures:
    LowPower mode es el estado normal.
    Tx measures activa la transmisión continua (consume muchísima batería, úsalo solo para pruebas).
  • BT5+ PHY (LE Long Range):
    Activa el modo de largo alcance de Bluetooth 5.0. Solo funciona si tu receptor también es compatible con BT 5.0 o superior, si usas Raspberry Pi 4, como es mi caso, no podrás activarlo.

Advertising Type: el «idioma» del sensor

  • BTHome v2: Opción recomendada para Home Assistant
  • ATC1441 / PVVX (Custom): Formato propio del firmware
  • MIJIA (MiHome): Formato original de Xiaomi, por si quieres volver a usar la app Mi Home o un gateway Xiaomi
Menú desplegable 'Advertising type' del firmware personalizado, con la opción BTHome v2 seleccionada, que es la recomendada para Home Assistant

Ajustes adicionales

Comfort parameters: Define tu rango ideal de temperatura y humedad para que el dispositivo muestre una carita feliz 😊 o triste ☹️ según el nivel de confort.

Sensor Settings: Permite aplicar un offset para calibrar temperatura y humedad si notas desviaciones.

Espero que esta guía te haya resultado útil y que ahora tengas tu sensor funcionando a pleno rendimiento con Home Assistant. Como has podido ver, deja de ser un simple termómetro para convertirse en una herramienta de domótica increíblemente versátil gracias al trabajo de la comunidad.

Te animo a que explores todas las opciones de configuración que hemos visto y las adaptes a tus necesidades. La verdadera magia de Home Assistant está en la personalización, y ahora tienes un dispositivo más para hacer tu casa verdaderamente inteligente.

Si te ha gustado el tutorial, te animo a compartirlo. Y si tienes cualquier pregunta, sugerencia o simplemente quieres contarnos qué uso le estás dando, la sección de comentarios está abierta para todos.

También podría interesarte SwitchBot Meter Pro: análisis completo del sensor de temperatura y humedad con pantalla grande y sensor exterior

También podría interesarte