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
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