Le script Python MiFlora-MQTT-Deamon développé par Thomas Dietrich disponible sur GitHub ici permet de récupérer les mesures renvoyées en bluetooth par le Xiaomi Mi Plant ou Xiaomi Mi Flora
Sommaire
Installer le projet MiFlora-MQTT-Deamon sur Raspberry Pi
sudo apt install git python3 python3-pip bluetooth bluez
git clone https://github.com/ThomDietrich/miflora-mqtt-daemon.git /opt/miflora-mqtt-daemon
sudo hcitool lescan
après quelques secondes
LE Scan ...
70:56:81:CF:9B:65 (unknown)
C4:7C:8D:65:XX:XX (unknown)
C4:7C:8D:65:XX:XX Flower care
Configurer le script Python
Copiez le modèle de fichier de configuration qui se trouve dans le répertoire /opt
cd /opt/miflora-mqtt-daemon
sudo cp config.ini.dist config.ini
Paramètres disponibles
- hostname, adresse IP du broker MQTT. localhost s’il est sur le même poste que le script Python
- period, 300 secondes d’attente entre deux acquisition par défaut. Attention, si vous êtes trop gourmand, vous allez drainer la batterie très rapidement…
- username et password si une protection par utilisateur/mot de passe existe sur le broker Mosquitto
- base_topic, l’entête du topic MQTT. Par défaut, ce sera miflora.
- Ajoutez le capteur Mi Plant dans la section [sensors] à la fin du fichier. Il est possible de récupérer les mesures de plusieurs capteurs. Indiquez l’adresse MAC précédemment trouvée. On peut spécifier une localisation en utilisant @ comme séparateur. Par exemple
miplant2018@salon = C4:7C:8D:65:XX:XX
Lancez le script python avec la commande suivante
sudo python3 miflora-mqtt-daemon.py
Sans authentification
mosquitto_sub -h localhost -t miflora/miflora
Avec authentification
mosquitto_sub -h localhost -t miflora/miflora -u utilisateur -P motdepasse
Les premières mesures
pi@raspberrypi:~ $ mosquitto_sub -h localhost -t miflora/miplant2018
{"moisture": 51, "battery": 99, "temperature": 20.7, "light": 297, "conductivity": 1078}
Lire le tutoriel complet sur le blog