Il y a quelques jours, Zwindler a sorti un article pour flasher des thermomètres Xiaomi Mijia. J'ai les mêmes, dont certains flashés pour échanger via le protocole Zigbee, mais toujours trop consommateur à mon goût.

J'ai cherché alors comment revenir sur du Bluetooth LE (Low Energy). Voici un court article sur le sujet.

Tout d'abord, j'utilise Home Assistant depuis quelques années, mais je n'ai pas grand chose dessus. Je l'utilise principalement pour centraliser le suivi de température de mon logement. Pour cela, j'ai opté pour des thermomètres Xiaomi Mijia LYWSD03MMC, avec un très bon rapport qualité/prix, facile à utiliser & flasher pour l'intégrer dans Home Assistant.

J'avais d'abord paramétré les thermomètres avec le protocole Xiaomi BLE, puis basculé certains en Zigbee grâce notamment au firmware z03mmc. Vous trouverez suffisamment de tutos sur Internet si vous souhaitez basculer en zigbee.

Cependant, dans l'article de Denis il parle de BTHome v2, option que je n'avais pas avant (seulement Xiaomi BLE). J'ai donc décidé de tout migré sur ce protocole qui me semble plus standard et mieux supporté.

BTHome

Ci-après vous trouverez alors la procédure pour revenir de Zigbee à Bluetooth BLE, moins courrant que l'inverse 🙂

Home Assistant ZHA & OTA

Mon setup utilise Zigbee Home Automation, pour contrôler mes équipements Zigbee, et donc certains de mes thermomètres jusqu'à présent. J'ai pu voir d'autres setups utilisant du MQTT avec Zigbee2MQTT & Mosquito, ce n'est pas mon cas.

ZHA toolkit

Pour pouvoir flasher à nouveau les devices, il va falloir alors que je passe par de l'OTA (over-the-air). ZHA le supporte nativement. Cependant, pour accélérer le processus, on peut installer ZHA Toolkit :

  1. Installer Home Assistant Community Store
  2. Installer ZHA Toolkit

Je ne sais pas si cela est vraiment utile, mais "chezmoiçamarche".

ZHA Toolkit

Settings pour OTA

On va maintenant définir dans ZHA où le thermomètre devra aller récupérer le firmware. Une longue liste est disponible sur le dépôt GitHub de pvvx.

On édite le fichier /homeassitant/configuration.yaml (peut dépendre de votre installation) pour :

  1. Activer ZHA Toolkit
  2. Spécifier l'URL de la liste des firmwares à récupérer (pour moi : index_v55.json du dépôt GIT)
1zha_toolkit:
2
3zha:
4  zigpy_config:
5    ota:
6      enabled: true
7      z2m_remote_index: https://raw.githubusercontent.com/pvvx/ATC_MiThermometer/ef4b5a713d16acfe3f3183d72b7706c9fc697c86/zigbee_ota/index_v55.json

Puis on redémarre HomeAssistant pour la prise en compte.

Flash

Tout est prêt, reste maintenant à flasher ! 2 options possibles, soit vous forcez l'OTA avec la notification zha_toolkit, soit vous attendez...

Pour "trigger" un OTA, on va dans les "Outils de développement", puis "Actions", on sélectionne zha_toolkit.ota_notify et on choisit le thermomètre que l'on souhaite mettre à jour :

ZHA Toolkit Trigger

Après quelques instants, HomeAssitant propose une mise à jour !

ZHA OTA Notification

Note: on voit ici un "Entity not found", c'est parce que le screenshot a été pris après que j'ai supprimé le device, ne pas en tenir compte.

On lance l'upgrade, et on attend que ça se termine.

ZHA OTA Progress

Configuration Bluetooth

A partir de ce moment, on peut suivre la procédure de Denis sur son blog, en utilisant le flasher en ligne TelinkMiFlasher.

Intégration Home Assistant

Après la reconfiguration, le device sera détecté par HomeAssistant, reste plus qu'à le rajouter !

Detection BTHome

Suppression & Historique

Attention (c'est bien de lire jusqu'ici), si vous souhaitez conserver l'historique des températures, humidité & co, pensez à bien noter les identités de l'ancien device zigbee avant de le supprimer, et modifiez celles du nouveau device, pour mon cas :

  • temperature_humidity_sensor_1bbb_battery
  • temperature_humidity_sensor_1bbb_humidity
  • temperature_humidity_sensor_1bbb_temperature
  • temperature_humidity_sensor_1bbb_voltage

Sources

Comme je disais en début d'article, beaucoup de ressources pour basculer de bluetooth à zigbee, mais peu pour l'inverse. Ce qui m'a permis d'y arriver est surtout ce commentaire GitHub :

Maintenant vous pouvez utiliser correctement vos thermomètres en Bluetooth BLE !