Objectif
Ce tutoriel a pour objectif de remonter les informations fournis par les capteurs Mi Flora dans Gladys.
Pour cela, nous avons besoin :
- Un capteur Mi Flora
- Un raspberry Pi Zero W
- Une instance Gladys
Le raspberry pi zero servira de passerelle aux données : Il executera le script python de Thom Dietrich sous forme de service pour récupérer les données et les inscrire dans des topics MQTT accessible par Gladys.
Prérequis
Un serveur MQTT doit être configuré via Gladys (Cf. Intégration MQTT)
1- Gladys
Aller dans Integration > MQTT > Ajouter un périphérique
Nom : MiFlora Sensor - Basilic (exemple)
ID externe : mqtt:miflora:basilic
Note : L’ID externe doit obligatoirement commencer par mqtt:miflora: suivi du nom de la plante que vous allez utiliser plus tard pour configurer le script python.ID External : mqtt:miflora:[Nom de la plante]
Ensuite, ajouter les différentes fonctionnalités du capteur
Important : Les id externes des fonctionnalités sont à recopier tels que sur les impressions écrans, ils correspondent aux Ids du script python.
Gladys est maintenant capable de lire les informations du capteur Basilic sur le serveur MQTT.
Raspberry Pi Zero
La suite de ce tutoriel est une traduction avec adaptations du wiki de Thom Dietrich. La PR n’étant pas encore intégrer par Thom, j’utilise mon Git comme référence pour le script modifié pour Gladys.
Se connecter en ssh au raspberry
sudo apt install git python3 python3-pip bluetooth bluez
git clone https://github.com/Chouille/miflora-mqtt-daemon.git /opt/miflora-mqtt-daemon
cd /opt/miflora-mqtt-daemon
sudo pip3 install -r requirement.txt
Le daemon dépend de GATTTool, un outil externe fourni par le package bluez. Pour s’assurer que GattTool est bien installé
gatttool --help
Ensuite, nous créons le fichier de config nécessaire au script.
cp /opt/miflora-mqtt-daemon/config.{ini.dist,ini}
Récupérer l’adresse MAC de votre capteur comme ceci :
sudo hcitool lescan
4B:47:E2:DE:CE:9A (UNKNOWN)
84:C0:EF:46:B2:8A (UNKNOWN)
10:0B:F1:43:59:16 (UNKNOWN)
C4:7C:8D:62:40:29 FLOWER CARE
Editer le fichier de config, ci-après une config basique :
[General]
reporting_method = gladys-mqtt
adapter = hci0
[Daemon]
enabled = true
period = 3600 #1 hour
hostname = [IP Gladys]
port = 1883
keepalive = 60
base_topic = gladys/master/device
username=gladys
password=[Cf. Gladys setup]
Basilic@Salon=C4:7C:8D:62:40:29
Important : La déclaration de l’adresse MAC se fait par le nom de la plante que vous avez indiquer dans Gladys. La localisation du capteur (@Room) est optionnel.
Test
sudo python3 /opt/miflora-mqtt-daemon/miflora-mqtt-daemon.py
Depuis un client MQTT connecter au serveur MQTT de Gladys, vous devriez avoir ceci :
Après création d’une section dans le dashboard de Gladys, vous devriez obtenir ceci :
Enregistrer le script comme service
Important : Le mode Daemon doit être activé dans le fichier de config !
sudo cp /opt/miflora-mqtt-daemon/template.service /etc/systemd/system/miflora.service
sudo systemctl daemon-reload
sudo systemctl start miflora.service
sudo systemctl status miflora.service
sudo systemctl enable miflora.service
Maintenant que le monitorage de la plante se trouve sur Gladys, vous pourriez :
- Etre notifier si votre plante manque d’eau et/ou lancer une pompe pour l’arroser.
- Etre notifier si la température est trop haute/basse pour votre plante.
- Allumer une lampe de croissance d’appoint si elle manque de lumière.
- etc …