Capteur de température et d’humidité 2.0
Dans la première version, j’utilisais un Weemos D1 Mini avec un capteur DHT22. Cette solution reste correcte, mais comporte les problèmes suivants :
- Chaque capteur nécessite une alimentation 5V
Ce que limitent les possibilités de placement du capteur - Pas d’affichage
Les données sont consultables uniquement via HA ou l’interface Web - Le WAF
Le DIY a ses limites…
J’ai trouvé une meilleure solution sur YouTube et c’est donc celle-ci que je vous partage.
Principe
Les capteurs Xiaomi Mijia sont des capteurs qui fonctionnent en Bluetooth : ils envoient en broadcast leurs informations à intervalle régulier. Ce capteur possède un écran et fonctionne grâce à une pile LR03 (AAA).
Pour récupérer ces informations, on va fabriquer un pont qui d’une part, récupère les trames Bluetooth de broadcast, et d’autre part, les retransmet en IP sur notre LAN (pour les avoir sur Home Assistant !).
Je réalise cela grâce à l’ESP32 (Wi-Fi & Bluetooth) d’un NodeMCU (n’importe quelle autre carte de développement avec un ESP32 fera l’affaire) que je vais flasher avec ESPHome.

Installation
L’installation se fait en deux parties. Dans la première, on va faire le nécessaire pour récupérer les adresses MAC Bluetooth des capteurs. Ensuite, on pourra donc spécifier à notre pont quelles informations prendre en compte pour la transmission sur notre serveur domotique.
Configuration du pont
Vous trouverez ci-dessous la configuration (à ce stade) de mon pont Bluetooth, adaptez-le à votre configuration.
|
|
Ayant déjà détaillé l’utilisation d’ESPHome sur mon article d’introduction à l’IoT, je ne m’attarde pas sur la procédure de première compilation.
Vous remarquez qu’ici, je mets une adresse statique. Je fais cela par principe (car je considère un pont comme un serveur) et aussi pour que la (re)connexion Wi-Fi soit plus rapide en cas de problème sur le sans-fil.
Récupération des adresses MAC BT
On peut alors consulter les logs du pont (sous ESPHome (“SHOW LOGS”) ou sur son interface Web). On devrait alors récupérer les informations comme ici (à condition d’avoir mis une pile dans le capteur ! ヽ(ヅ)ノ) :

Notez donc l’adresse MAC et répétez l’opération pour tous vos capteurs. Si vous ne voyez rien dans les logs vous pouvez forcer l’envoi des trames en appuyant sur le bouton derrière le capteur.
Configuration finale du pont
On ajoute donc le contenu suivant (exemple pour deux capteurs) en éditant la configuration du NodeMCU sur ESPHome (en l’adaptant bien sûr) :
|
|
Intégration à Home Assistant
L’intégration se fait, comme pour tous les modules, dans le menu “Intégration”. Une fois cela fait, on peut ajouter les sensors sur Lovelace :

Commentaires
Ce pont peut-être en plus pour d’autre projet. D’ailleurs, si vous avez déjà des ESP32 connectés chez vous, vous pouvez simplement juste ajouter le nécessaire pour qu’ils fassent pont Bluetooth.
L’utilisation du pont ne décharge pas plus rapidement les piles des capteurs. En effet, le pont ne fait qu’écouter ce qui se trame (joli jeu de mots).
L’auteur du tutoriel que j’ai suivi a mis en place un reboot du pont tous les jours (à 4h) car il a eu des problèmes (surement dû à des bugs sur le driver Bluetooth). Voici le code à mettre si vous en avez la nécessité :
|
|
Bonus : trackeur Bluetooth
En même temps que l’achat de ces éléments, j’ai aussi pris un petit trackeur BLE (Bluetooth Low Energy), le NUT F6.
La configuration sur le pont :
|
|
Ce qui donne le résultat suivant sur HA :

Quand mon trackeur n’est plus visible par le pont, la valeur passe sur “Off”.