# \[TUTORIEL\] Monitorer ses plantes avec les capteurs Mi Flora

**URL:** <https://community.gladysassistant.com/t/tutoriel-monitorer-ses-plantes-avec-les-capteurs-mi-flora/6257>\
**Category:** Tutoriels\
**Created:** [Avril 11, 2021, 2:38 UTC](https://community.gladysassistant.com/t/tutoriel-monitorer-ses-plantes-avec-les-capteurs-mi-flora/6257 "2021-04-11T14:38:51Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![glasserre](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/g/b5e925/32.png) [@glasserre](https://community.gladysassistant.com/u/glasserre)\
**Post date:** [Avril 11, 2021, 2:38 UTC](https://community.gladysassistant.com/t/tutoriel-monitorer-ses-plantes-avec-les-capteurs-mi-flora/6257/1 "2021-04-11T14:38:51Z")

</div>

# 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](https://github.com/ThomDietrich/miflora-mqtt-daemon) sous forme de service pour récupérer les données et les inscrire dans des topics MQTT accessible par Gladys.

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/d/d479ed8befdd9af1574fc8c05228f08492f9fc8c.png)

## Prérequis

Un serveur MQTT doit être configuré via Gladys (Cf. [Intégration MQTT](https://gladysassistant.com/fr/docs/integrations/mqtt))

1- Gladys

Aller dans Integration \> MQTT \> Ajouter un périphérique  
Nom : MiFlora Sensor - Basilic (exemple)  
ID externe : mqtt:miflora:basilic

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/0/00532b9ec7e0c04cc0d700fe1a3fad6855d69bb8.png)

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

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/4/4d140c88e7818c6088281804b8ea305e044dafe6.png)  
 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/8/8ca2a41ab424273b984c704810f03293cb111239.png)  
 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/b/b65700c3f07d90a8ca43aeb4d961c467a121297d.png)  
 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/3/32f6b62b81e10ac38b601d03d517af7963fc3b1a.png)  
 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/a/a651e265d51e30fcb9b2a7068b7314ca24f16724.png)

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

```plaintext
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é

```auto
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 :

```ini
[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 :

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/f/fc869691d22532acb6387de75a990056aa6fa5a0.png)

Après création d’une section dans le dashboard de Gladys, vous devriez obtenir ceci :

 ![image](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/0/0ca8fce37297af0e465767680b4107c4d0b63c78.png)

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

---

<div class="post-metadata">

**Author:** ![Jean34](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/jean34/32/3349_2.png) [@Jean34](https://community.gladysassistant.com/u/Jean34)\
**Post date:** [Avril 13, 2021, 1:05 UTC](https://community.gladysassistant.com/t/tutoriel-monitorer-ses-plantes-avec-les-capteurs-mi-flora/6257/2 "2021-04-13T13:05:47Z")

</div>

Salut et un grand merci à toi pour le tutoriel 👍

Je ne l’ai pas fini, car je rencontre une erreur et je patauge un peu … Puis j’ai aussi rencontré quelques difficultés à avancer dans le tuto :

Il faut exécuter ces commandes en **sudo** sinon on avance pas, donc :

```auto
sudo git clone https://github.com/Chouille/miflora-mqtt-daemon.git /opt/miflora-mqtt-daemon

```

```auto
sudo cp /opt/miflora-mqtt-daemon/config.{ini.dist,ini}

```

Sinon moi j’en suis à tester le fichier `miflora-mqtt-daemon.py` … quand je lance la commande  
`sudo python3 /opt/miflora-mqtt-daemon/miflora-mqtt-daemon.py`

je reçois ceci :

```
[2021-04-13 14:46:20] Configuration parameter reporting_mode set to an invalid value

```

Pourtant, dans le fichier de config j’ai bien :

`reporting_method = gladys-mqtt`

Je ne sais pas si j’ai juste, mais on dirait que gladys-mqtt n’est pas déclarée dans le fichier `miflora-mqtt-daemon.py` ?..

---

<div class="post-metadata">

**Author:** ![glasserre](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/g/b5e925/32.png) [@glasserre](https://community.gladysassistant.com/u/glasserre)\
**Post date:** [Avril 13, 2021, 5:17 UTC](https://community.gladysassistant.com/t/tutoriel-monitorer-ses-plantes-avec-les-capteurs-mi-flora/6257/3 "2021-04-13T17:17:13Z")

</div>

Salut Jean.  
Si tu as clone mon repo, la variable reporting\_method doit être déclarée.  
Tu peux vérifier dans miflora-mqtt-daemon.py que tu as bien entre ligne 349 et 365 ceci :

```
elif reporting_mode == 'gladys-mqtt':
print_line('Announcing Mi Flora devices to MQTT broker for auto-discovery ...')

for [flora_name, flora] in flores.items():
    topic_path = '{}/mqtt:miflora:{}/feature'.format(base_topic, flora_name.lower())
    data = OrderedDict()
    for param,_ in parameters.items():
        data[param] = flora['poller'].parameter_value(param)
    mqtt_client.publish('{}/mqtt:battery/state'.format(topic_path),data['battery'],1,True)
    mqtt_client.publish('{}/mqtt:moisture/state'.format(topic_path),data['moisture'],1,True)
    mqtt_client.publish('{}/mqtt:light/state'.format(topic_path),data['light'],1,True)
    mqtt_client.publish('{}/mqtt:conductivity/state'.format(topic_path),data['conductivity'],1,True)
    mqtt_client.publish('{}/mqtt:temperature/state'.format(topic_path),data['temperature'],1,True)

sleep(0.5) # some slack for the publish roundtrip and callback function
print()

```

Et entre ligne 440 et 443 :

```
elif reporting_mode == 'gladys-mqtt':
        print_line('Publishing to MQTT topic "{}/mqtt:miflora:{}/feature"'.format(base_topic, 
        flora_name.lower()))
        mqtt_client.publish('{}/mqtt:miflora:{}/feature'.format(base_topic, flora_name.lower()), 
        json.dumps(data))
        sleep(0.5) # some slack for the publish roundtrip and callback function
```

---

<div class="post-metadata">

**Author:** ![Jean34](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/jean34/32/3349_2.png) [@Jean34](https://community.gladysassistant.com/u/Jean34)\
**Post date:** [Avril 13, 2021, 8:25 UTC](https://community.gladysassistant.com/t/tutoriel-monitorer-ses-plantes-avec-les-capteurs-mi-flora/6257/4 "2021-04-13T20:25:49Z")

</div>

Enfaite il fallait aussi ajouter gladys-mqtt dans la partie check de ton fichier 🙂

```
    # Check configuration
if reporting_mode not in ['mqtt-json', 'mqtt-homie', 'json', 'mqtt-smarthome', 'homeassistant-mqtt', 'thingsboard-json', 'wirenboard-mqtt', 'gladys-mqtt']:
```

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [Avril 14, 2021, 4:50 UTC](https://community.gladysassistant.com/t/tutoriel-monitorer-ses-plantes-avec-les-capteurs-mi-flora/6257/5 "2021-04-14T04:50:34Z")

</div>

Merci beaucoup pour le tuto, je cherchais justement un moyen de surveiller mes plantes et arrêter de tous les tuer 😆

Vous savez quels sont les métriques à surveiller et quand s’alerter ?

---

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [Avril 14, 2021, 6:54 UTC](https://community.gladysassistant.com/t/tutoriel-monitorer-ses-plantes-avec-les-capteurs-mi-flora/6257/6 "2021-04-14T06:54:01Z")

</div>

Je me pose les même question ^^ j’ai pas la main verte et si cela peut m’aider je vais pas dire non xD

---

<div class="post-metadata">

**Author:** ![glasserre](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/g/b5e925/32.png) [@glasserre](https://community.gladysassistant.com/u/glasserre)\
**Post date:** [Avril 14, 2021, 9:09 UTC](https://community.gladysassistant.com/t/tutoriel-monitorer-ses-plantes-avec-les-capteurs-mi-flora/6257/7 "2021-04-14T21:09:57Z")

</div>

Exacte ! 🙂

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [Avril 14, 2021, 9:20 UTC](https://community.gladysassistant.com/t/tutoriel-monitorer-ses-plantes-avec-les-capteurs-mi-flora/6257/8 "2021-04-14T21:20:25Z")

</div>

Généralement c’est l’exposition, humidité et température ambiante. Et ça dépend des plantes 😅.

Faudrait peut être créer un topic dédié avec les valeurs hygrométriques qui fonctionnent par type de plante non ? Bizarrement j’ai trouvé très peu d’informations sur le net. Les jardiniers ne sont pas geek ?

---

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [Avril 14, 2021, 10:38 UTC](https://community.gladysassistant.com/t/tutoriel-monitorer-ses-plantes-avec-les-capteurs-mi-flora/6257/9 "2021-04-14T22:38:34Z")

</div>

Ça pourrait être très intéressant !

---

<div class="post-metadata">

**Author:** ![Jean34](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/jean34/32/3349_2.png) [@Jean34](https://community.gladysassistant.com/u/Jean34)\
**Post date:** [Avril 15, 2021, 6:51 UTC](https://community.gladysassistant.com/t/tutoriel-monitorer-ses-plantes-avec-les-capteurs-mi-flora/6257/10 "2021-04-15T06:51:51Z")

</div>

Ce genre là ?

> **[GitHub - vrachieru/plant-database: Plant database with information regarding...](https://github.com/vrachieru/plant-database)**
>
> Plant database with information regarding classification, features and maintenance. - GitHub - vrachieru/plant-database: Plant database with information regarding classification, features and maint...

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [Avril 15, 2021, 7:04 UTC](https://community.gladysassistant.com/t/tutoriel-monitorer-ses-plantes-avec-les-capteurs-mi-flora/6257/11 "2021-04-15T07:04:41Z")

</div>

Génial ! Evidemment, intégrer ce genre de projets serait l’idéal, mais c’est pas vraiment la priorité 😛

---

<div class="post-metadata">

**Author:** ![glasserre](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/g/b5e925/32.png) [@glasserre](https://community.gladysassistant.com/u/glasserre)\
**Post date:** [Avril 15, 2021, 7:12 UTC](https://community.gladysassistant.com/t/tutoriel-monitorer-ses-plantes-avec-les-capteurs-mi-flora/6257/12 "2021-04-15T19:12:31Z")

</div>

Il y a également la fertilité du sol (présence de nutriments). Cela s’obtient en ajoutant de l’engrais ou facilement / gratuitement avec du compostage à base de lombric, mais il faut être un peu patient ^^

[https://illustrascience.fr/le-compost/](https://illustrascience.fr/le-compost/)

L’avantage est que tu réduis tes déchets. Ceux qui ont la chance d’avoir un jardin peuvent construire un composteur à base de palettes, pour ceux en appartement (avec ou sans balcon) :

> **[Testé pour vous : le lombricomposteur sauce krisprolls - Oui ! Le magazine de...](https://magazine.laruchequiditoui.fr/teste-pour-vous-le-lombricomposteur-sauce-krisprolls/)**
>
> Dorothée est étonnante : elle conjugue beaucoup de choses avec la particule « CO ». Ainsi elle CObutine et COvoiture avec ses COllègues dans deux et bientôt trois ruches alsaciennes. Citadine CO-responsable, elle a décidé de se lancer...

On peut ajouter un monitorage de composteur dans Gladys d’ailleurs 🙂

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [Avril 16, 2021, 9:31 UTC](https://community.gladysassistant.com/t/tutoriel-monitorer-ses-plantes-avec-les-capteurs-mi-flora/6257/13 "2021-04-16T09:31:26Z")

</div>

Mais ça dégage une sacré odeur un lombricomposteur par contre 😉

---

<div class="post-metadata">

**Author:** ![Jean34](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/jean34/32/3349_2.png) [@Jean34](https://community.gladysassistant.com/u/Jean34)\
**Post date:** [Avril 16, 2021, 11:35 UTC](https://community.gladysassistant.com/t/tutoriel-monitorer-ses-plantes-avec-les-capteurs-mi-flora/6257/14 "2021-04-16T11:35:12Z")

</div>

@lmilcent @spenceur, vous avez testé ?

Perso n’ayant pas de raspberry pi zero, j’ai tenté sur un raspberry pi 3b+ et ça ne fonctionne pas, il trouve bien mon capteur mais n’arrive pas à récupérer les infos, pourtant sur github ça dit que le raspi 3 est compatible…

Je n’ai pas réellement de message d’erreur si ce n’est un timeout, je vois bien qu’il se connecte au flower care par sa led, mais ça se coupe au bout de 2 scintillements, à chaque essai.

J’ai vu ton issue @glasserre, je pense que je suis bon pour acheter un ptit raspberry zéro

---

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [Avril 16, 2021, 12:14 UTC](https://community.gladysassistant.com/t/tutoriel-monitorer-ses-plantes-avec-les-capteurs-mi-flora/6257/15 "2021-04-16T12:14:54Z")

</div>

Je reçois mes capteurs semaine pro (oui j’ai craqué quand j’ai vu le tuto :-p )

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [Avril 16, 2021, 1:23 UTC](https://community.gladysassistant.com/t/tutoriel-monitorer-ses-plantes-avec-les-capteurs-mi-flora/6257/16 "2021-04-16T13:23:29Z")

</div>

Je n’ai pas encore acheté de capteur, mais ça viendra un jour, l’envie ne manque pas 😉  
Surtout que je compte plus les cadavres de plante que j’ai du jeter 😅

---

<div class="post-metadata">

**Author:** ![glasserre](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/g/b5e925/32.png) [@glasserre](https://community.gladysassistant.com/u/glasserre)\
**Post date:** [Avril 17, 2021, 7:18 UTC](https://community.gladysassistant.com/t/tutoriel-monitorer-ses-plantes-avec-les-capteurs-mi-flora/6257/17 "2021-04-17T07:18:58Z")

</div>

Oui, j’ai eu beau chercher (mise à jour de btlewrap/bluepy, tester avec bluegatt) pas de données.  
Après je suis pas expert du tout, j’ai surement raté quelque chose.

---

<div class="post-metadata">

**Author:** ![glasserre](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/g/b5e925/32.png) [@glasserre](https://community.gladysassistant.com/u/glasserre)\
**Post date:** [Avril 17, 2021, 7:19 UTC](https://community.gladysassistant.com/t/tutoriel-monitorer-ses-plantes-avec-les-capteurs-mi-flora/6257/18 "2021-04-17T07:19:40Z")

</div>

Je vais en prendre d’autres également, c’est bientôt les french days 🙂

---

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [Avril 17, 2021, 7:47 UTC](https://community.gladysassistant.com/t/tutoriel-monitorer-ses-plantes-avec-les-capteurs-mi-flora/6257/19 "2021-04-17T07:47:15Z")

</div>

n’y a t’il pas moyen d’ajouter la découverte de @Jean34 dans un service mi flora ?  
Comme ça l’utilisateur pourra si possible réaliser des scènes en fonction d’un référentiel non ?

> [@\[TUTORIEL\] Monitorer ses plantes avec les capteurs Mi Flora](https://community.gladysassistant.com/t/tutoriel-monitorer-ses-plantes-avec-les-capteurs-mi-flora/6257/10):
>
> Ce genre là ?

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [Avril 17, 2021, 7:57 UTC](https://community.gladysassistant.com/t/tutoriel-monitorer-ses-plantes-avec-les-capteurs-mi-flora/6257/20 "2021-04-17T07:57:45Z")

</div>

Je verrai plus un truc générique ( pas lié directement à un service) avec les scènes .

On affecterai des capteurs à une plante et ça gèrerai les conditions d’alerte tout seul. ( basé sur la découverte de @Jean34)

[Page suivante](https://community.gladysassistant.com/t/tutoriel-monitorer-ses-plantes-avec-les-capteurs-mi-flora/6257.md?page=2)
