Intégration domotique OpenPlantBook, gratuite et open source

Base Open Plantbook : seuils idéaux d'humidité, de lumière et de température par espèce.
Cette intégration amène dans Gladys la base de données de plantes Open Plantbook : pour chacune de vos plantes, les plages idéales d'humidité du sol, de température, de lumière et d'humidité de l'air de son espèce. Combinez-les avec vos propres capteurs (sonde d'humidité du sol, capteur de température ou de luminosité) pour savoir quand une plante a besoin d'eau, de lumière ou d'un endroit plus chaud.
Elle fonctionne dans le cloud : elle a besoin d'une connexion Internet et d'un compte OpenPlantBook gratuit.
Ce que vous obtenez
- Un appareil par plante, avec huit fonctionnalités en lecture seule : le minimum et le maximum d'humidité du sol (%), de température (°C ou °F), de lumière (lux) et d'humidité de l'air (%). Utilisables sur le tableau de bord et dans les conditions de scène.
- Des déclencheurs de scène, des actions de scène et des widgets, décrits plus bas (Gladys 5.1 ou plus récent).
Obtenir vos identifiants OpenPlantBook
- Créez un compte gratuit sur open.plantbook.io.
- Ouvrez la page API keys et générez une clé : vous obtenez un client ID et un client secret.
Configuration
- Ouvrez l'onglet Configuration de l'intégration.
- Collez le client ID et le client secret.
- Cliquez sur Tester la connexion pour les vérifier.
- Trouvez vos plantes avec le bouton Rechercher une plante : tapez un nom
commun ou scientifique (
monstera,basilic,rose...). La réponse liste les identifiants OpenPlantBook, commemonstera deliciosa. - Copiez les identifiants dans le champ Plantes, séparés par des virgules
(30 plantes au maximum), par exemple
monstera deliciosa, ficus lyrata, ocimum basilicum. - Choisissez la langue des noms de plantes (anglais, français, allemand ou espagnol), l'unité de température et, si vous le souhaitez, l'intervalle de rafraîchissement (24 heures par défaut : les seuils changent rarement).
- Enregistrez, puis ajoutez les plantes depuis l'onglet Découverte.
Les seuils sont gardés dans un cache local : après un redémarrage, ou si OpenPlantBook est injoignable, les appareils gardent leurs dernières valeurs.
Astuce : ne placez pas un appareil plante dans une pièce. Il porte des plages de température et d'humidité, pas des mesures.
Actions
- Tester la connexion : vérifie les identifiants.
- Rechercher une plante : cherche dans la base OpenPlantBook et liste les identifiants à copier dans le champ Plantes.
- Actualiser toutes les plantes : relit toutes les plantes sans attendre l'intervalle de rafraîchissement.
Scènes
L'intégration ajoute ses propres cartes à l'éditeur de scènes, dans la catégorie Intégrations.
Déclencheurs
- Seuils d'une plante mis à jour : les plages idéales d'une plante ont été
lues pour la première fois ou ont changé dans OpenPlantBook. Choisissez
éventuellement la plante. Les actions suivantes peuvent utiliser
{{triggerEvent.data.plant_name}},{{triggerEvent.data.min_soil_moisture}},{{triggerEvent.data.max_temperature}}et les autres seuils. - Échec de synchro OpenPlantBook : la lecture d'OpenPlantBook a commencé à
échouer (identifiants refusés, quota atteint, identifiant de plante inconnu,
service injoignable). Un événement par panne, pas un par tentative.
Variables :
reasoneterror.
Actions
- Vérifier les conditions d'une plante : compare des mesures aux plages
idéales d'une plante. Remplissez seulement les mesures dont vous disposez ;
chaque champ accepte une valeur ou une variable de scène, par exemple le
résultat d'une action précédente « Récupérer la dernière valeur d'un
appareil ». La température est dans l'unité configurée. Elle renvoie :
in_range: vrai quand toutes les mesures sont dans leur plage idéale ;status:ok,too_dry(trop sec),too_wet(trop humide),too_cold(trop froid),too_hot(trop chaud),too_dark(pas assez de lumière),too_bright(trop de lumière),air_too_dry(air trop sec),air_too_humid(air trop humide) ouno_data(aucune mesure) ;issues_count: le nombre de mesures hors plage ;message: une phrase prête à envoyer, par exemple « Monstera : sol trop sec (8 %, min 15 %). »
- Lire les plages idéales d'une plante : expose le nom, le nom scientifique, la catégorie et tous les seuils d'une plante aux actions suivantes.
- Actualiser les données OpenPlantBook : relit toutes les plantes maintenant.
Exemple : notification « arrose-moi »
- Déclencheur : tous les jours à 18 h.
- Action : récupérer la dernière valeur de votre capteur d'humidité du sol.
- Action Vérifier les conditions d'une plante : choisissez la plante, mettez la variable de l'étape précédente dans Humidité du sol.
- Condition :
in_rangeest faux. - Action : envoyer un message avec la sortie
message.
Tableau de bord
- Fiche plante : la photo et les quatre plages idéales de la plante choisie dans les réglages du widget, avec un bouton Actualiser.
- Mes plantes : toutes les plantes suivies avec leur photo ; touchez une plante pour voir ses plages. Un bouton Tout actualiser relit tout.
Dépannage
- « OpenPlantBook a refusé les identifiants » : générez une nouvelle clé sur la page API keys et recollez les deux valeurs.
- Une plante reste sans données : vérifiez son identifiant avec Rechercher une plante ; c'est le nom scientifique en minuscules.
- « Too many requests » : l'API gratuite est limitée. Réduisez le nombre de plantes ou augmentez l'intervalle de rafraîchissement.
- L'intégration journalise tout ce qu'elle fait : consultez ses logs depuis
l'interface de Gladys, avec
LOG_LEVEL=debugpour le détail complet. Les secrets ne sont jamais journalisés.
Les données et photos des plantes proviennent d'Open Plantbook (https://open.plantbook.io/), un projet communautaire.
Paramètres de configuration
Voici les paramètres demandés par OpenPlantBook dans son écran de configuration dans Gladys.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| Connexion à OpenPlantBook | section | Non | Créez un compte gratuit sur open.plantbook.io, puis générez une clé d'API (client ID + client secret) sur la page API keys et collez-les ci-dessous. Listez les plantes à suivre par leur identifiant OpenPlantBook (le nom scientifique, ex. monstera deliciosa) : le bouton « Rechercher une plante » plus bas les trouve pour vous. |
| Client ID | string | Oui | |
| Client secret | secret | Oui | |
| Plantes | string | Non | Identifiants OpenPlantBook de vos plantes, séparés par des virgules (30 au maximum). Un appareil Gladys est créé par plante. |
| Langue des noms de plantes | select | Non | Noms communs, noms des appareils et des fonctionnalités, et messages de scène utilisent cette langue. |
| Unité de température | select | Non | |
| Intervalle de rafraîchissement (heures) | number | Non | Fréquence de relecture des seuils de chaque plante. Ils changent rarement : une fois par jour suffit. |
Comment installer OpenPlantBook dans Gladys
- Dans Gladys, ouvrez Intégrations : OpenPlantBook apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
- Cliquez sur Installer. Gladys télécharge l'image Docker (
ghcr.io/gboulvin/gladys-openplantbook:1.0.0), la démarre dans un bac à sable isolé du cœur, et génère l'interface de l'intégration (appareils, découverte et configuration). - Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
- Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/gboulvin/Gladys-Openplantbook.
OpenPlantBook nécessite Gladys >=5.1.0. Le catalogue dans Gladys se rafraîchit toutes les heures : une nouvelle version est donc disponible au plus tard une heure après sa sortie.
Vous n'utilisez pas encore Gladys ? C'est gratuit et open source : suivez le guide d'installation pour démarrer.
À propos des intégrations externes
OpenPlantBook est une intégration externe : une intégration communautaire empaquetée dans un conteneur Docker et publiée sur GitHub, que Gladys installe en un clic et exécute dans un bac à sable isolé de son cœur. Elle est publiée et maintenue par gboulvin, et non par l'équipe cœur de Gladys.
- Parcourir toutes les intégrations, natives et communautaires
- Créer et publier votre propre intégration externe
- Code source sur GitHub — source de cette documentation