language
keyboard_arrow_up
language

Description

Plugin permettant de récupérer les informations des Xiaomi Plants ou MiFlora ainsi que des Parrot flower power et Parrot flower pot

Les Xiaomi Plants sont des sticks Bluetooth de la marque Xiaomi permettant de mesurer l’hygrométrie, la température, la lumière, l’engrais d’une plante. Nul besoin d’autre chose qu’une connexion Bluetooth, y compris via un appareil déporté.

Le Parrots flower est la version originale de Parrot du stick MiFlora, le Parrot Pot est un pot de fleurs avec les fonctionalités du Parrot flower.

Market

Retrouvez le sur le Market Jeedom ici

Prévisualisation

scrennshot1

Forum

Lien vers le forum ici

Chat

Lien vers le chat ici

Ecran général du plugin

L’écran principal du plugin ce présente de la façon suivante :

remote1

Ajouter

Permet l’ajout d’un nouvel équipement

Lancer Scan

Permet de lancer une recherche des équipement MiFlora présent en Bluetooth mais pas encore présent dans Jeedom

Configuration

Permet la configuration générale du plugin

Antennes

Permet de définir des antennes distantes pour collecter les données des équipements

Santé

Permet d’avoir une vision globale du fonctionnement du plugin et de tous les équipements

Ajouter

Cet écran permet l’ajout d’équipement Miflora. Il se présente de la façon suivante :

remote1

Nom de l’équipement MiFlora

Ce champ est saisi lors du lancement de la fonction. Il peut être modifié par la suite si on le souhaite

Objet parent

Ratache l’équipement à un objet Jeedom

Activer Visible

Active et/ou rend visible/invisible l’équipement

Miflora Bluetooth mac add

Champ obligatoire il doit contenir la mac adresse de l’équipement. Cette mac adresse peut etre obtenue via l’écran de Scan (voir plus bas)

fréquence de récupération des données

Permet de fixer une valeur différente de la valeur par défaut du plugin pour cet équipement spécifiquement

Antenne

Permet de définir quel controleur bluetooth va collecter les donées de l’équipement les valeurs suivantes sont possibles

local

Permet d’indiquer que c’est le controleur local de Jeedom (voir configuration) qui sera utilisé

Auto

Permet de laisser le plugin choisir l’antenne la plus adaptée à la collecte. Pour ce faire toutes les heures le plugin va scanner le réseau sur tous les controleurs disponnible (Local et remote ) Pour chaque équipement défini en mode automatique l’antenne avec le signal Bluetooth le plus fort sera choisie.

(choix des remotes)

les choix suivants correspondent aux différentes antennes qui ont été définie dans ce cas seule cette antenne sera utilisée pour les collectes

Humidité Minimum

Permet de définir un seuil d’alerte pour l’humidité minimum de l’équipement. Si la valeur de l’humidité est inférieure à cette valeur alors la commande HumMin est positionnée a 1 (ce qui permet de déclancher des scénario etc …) Attention la mesure n’est faite que lors des collectes il ne s’agit pas d’une mesure “temps réel”

Nom de la plante, Firmware, Batterie, dernière collecte et Type d’objet

Ces champs sont remplis lors des collectes

Lancer le Scan

Cet écran permet de visualiser l’ensemble des équipement MiFlora actifs en Bluetoth et qui ne sont pas définis comme des équipements dans le plugin cela permet entre autre de récupérer les mac adresse pour la fonction Ajouter

il se présente de la façon suivante

remote1

Type

Donne le type de Miflora (remontée par l’équipement lors du scan) les équipements bluetooth qui ne sont ni des MiFlora ni des Parrots sont pas affichés

Mac

Indique la mac adresse de l’équipement détecté (les équipements déja déclarés ne sont pas affichés )

Antenne

Indique l’antenne qui a détecté l’équipement remarque: on peut retrouver le même équipement détecté par des antennes différentes c’est normal cela permet de choisir l’antenne qui a la meilleure réception

RSSI

indique la puissance du signal de réception plus le chiffre est petit moins le signa est bon (donc un signal a -75 est meilleur qu’un signal à -96)

Attention: la majorité des plugins Bluetooth monopolisent le controleur, le scan ne trouvent aucune antenne quand un autre plugin bloque le controleur. Pour avoir un resultat fiable il faut dédier un ‘adaptateur Bluetooth’ à MiFlora, celui integré à un raspberry PI ou un dongle par exemple.

Configuration

La partie configuration du plugin permet :

  • de choisir la fréquence de relevés des informations du MiFlora, de toutes les 5, 10, 15, 30 minutes, toutes les heures, jusqu’à toutes les 12 heures,
  • de choisir le dongle/port Bluetooth (hci0 en général, hciconfig permet de lister ceux disponibles sur votre système),
  • de choisir le niveau de sécurité de la communication Bluetooth (high sauf si ce n’est pas supporté par votre système),
  • de choisir entre un mode local et un mode déporté.

Pour chaque équipement, il faut rentrer l’adresse Bluetooth de l’équipement.

Il est possible de trouver celle-ci en utilisant les commandes :

bluetoothctl
scan on

Les adresses des MiFlora apparaissent comme ci-dessous:

[NEW] Device C4:7C:8D:xx:xx:xx Flower mate
[NEW] Device C4:7C:8D:xx:xx:xx Flower care
scan off
quit

La fréquence de lecture des données est par défaut celle de la configuration globale. Elle peut être modifié pour chaque équipement.

Utilisation en déporté

Il est possible que Jeedom pilote des appareils déportés qui se chargeront de la communication Bluetooth avec les MiFlora.

Dans ce cas, il faut renseigner les paramètres de connexion SSH entre Jeedom et cet appareil déporté :

Le choix déporté active la partie configuration qui permet de saisir une adresse IP, un port, un nom d’utilisateur ainsi que le mot de passe associé pour l’appareil distant. Le plugin va alors se connecter en SSH à l’IP saisie précédemment et récupérer les informations du MiFlora en Bluetooth grâce à la commande gatttools

Aucun Jeedom n’est nécessaire sur l’équipement distant.

Prérequis

Il faut installer le Bluetooth et s’assurer que gatttool --device=hci0 -b _macAddMiFlora_ --char-read -a 0x35 --sec-level=high fonctionne sur l’appareil cible (selon le choix local ou déporté).

Configuration avancée

hci : permet de choisir le dongle Bluetooth pour ceux qui en ont plusieurs.

niveau de sécurité : permet de choisir le niveau de sécurité Bluetooth, high semble bien dans la majorité des cas, cependant changer le niveau de sécurité semble résoudre certains problèmes de connexions.

Mode debug

Le mode debug permet de lancer en permanence (toutes les minutes), la récupération des données MiFlora. Il convient de limiter son utilisation au debug. Laisser le mode debug en permanence va affecter la durée de vie du support de stockage, spécialement les cartes SD et vider plus rapidement la pile de l’appareil.

Antennes distantes

Description

Cette page permet la récupération des données des équipements distants via des antennes déportées

Peuvent être utilisé comme antenne toute machine linux sur laquelle la commande gatttool fonctionne et sur laquelle le ssh est possible.

Les Xiaomi Plants sont des sticks Bluetooth de la marque Xiaomi permettant de mesurer l’hygrométrie, la température, la lumière, l’engrais d’une plante. Nul besoin d’autre chose qu’une connexion Bluetooth, y compris via un appareil déporté.

Ecran de base

L’écran de base ce présente comme ceci

remote1

ajout d’une antenne

L’écran ce présente comme ceci

add

nom

indique le nom de l’antenne

ip

indique l’adresse ip de l’antenne distante

User

indique le nom du user qui sera utilisé pour lancer les commandes distante (attention ce user doit disposer du droit de lancer des commandes sudo)

Password

indique le mot de passe du compte ‘User’

port

indique le port pour la commande ssh (en général port = 22)

Device

indique le nom du device bluetooth qui sera utilisé sur la machine distante (valeures possibles de hci0 a hci3 )

Santé

Cet écran permet de visualiser l’état du plugin et des équipements

il se présente de la façon suivante

remote1

Image

L’icone sera grisé si l’équipement n’est pas activé (voir écran d ajout)

Module

Donne les informations sur l’équipement (objet et nom)

id

Indique l’ID Jeedom interne

Mac

Indique la mac adresse de l’équipement

Fréquence mini

indique la fréquence de collecte des données (permet de voir si l’équipement utilise la valeur par default ou une valeur specifique )

Status

en vert indique que la derniere collecte s’est bien déroulée en rouge indique qu’il y a eu une erreur lors du dernier essai de collecte

Batterie

Donne l’état de la pile de l’équipement

Antenne

indique quelle antenne à été indiquée dans la configuration de l équipement (local, Auto, nom de l’antenne deportée)

Antenne réelle

Indique si la configuration de l’antenne est à Auto l’antenne la plus puissante qui a été trouvée et qui est utilisée

derniere collecte

Indique la date et l’heure de la derniere collecte de donnée

FAQ

Quelle est la différence entre MiFlora et BLEA

MiFlora ne gère que les plantes, BLEA est un plugin pour tous les objets Bluetooth LE, il est donc beaucoup plus complexe, il nécéssite des dépendances, a un systeme de démon, il est adapté pour gérer une multitude de types d’objets Bluetooth LE mais nécéssite plus de suivi et de maintenance, principalement les démons et dépendances lors des mise à jour

Est-ce que ce plugin s’appuie sur des API tiers ?

Le plugin utilise le Bluetooth pour récupérer les informations du MiFlora. Il faut installer le Bluetooth et s’assurer que gatttool -b macAddMiFlora --char-read -a 0x35 fonctionne sur l’objet cible.

Est ce que ce plugin monopolise le Bluetooth ?

Non pas du tout, il a besoin du Bluetooth pour chaque relevé, cf question suivante pour plus de détails sur le nombre de relevés par jour.

Combien de fois par jour les mesures sont-elles récupérées ?

C’est défini dans la configuration globale du plugin, pour tous les objets : de toutes les 15 minutes à toutes les 12 heures. Il est possible de configurer une fréquence differente par MiFlora, defaut permet d’utiliser la frequence globale.

J’utilise le modulo de l’heure actuelle avec la fréquence saisie en paramètre. + Attention: en mode debug, les données sont récupérés en permanence indépendamment de la configuration.

Les informations statiques (batterie, nom de l appareil, version du firmware) sont récupérées toutes les 12 heures : à minuit et midi.

Avec quelle version de firmware ce plugin est-il compatible ?

Il est compatible avec toutes les versions connues à ce jour (2.9.2) depuis la version 1.0 du plugin.

Je possède un RPI3, J’ai dû désactiver le Bluetooth interne pour ne pas avoir d’interférence avec le Zwave (razberry). Est-ce qu’il faut toujours garder le Bluetooth interne désactivé pour résoudre ce souci ? Sinon est-ce que n’importe quelle clef USB BT fait l’affaire pour être compatible avec les MiFlora et le RPI3 ?

Dans ce cas il faut prendre un dongle BLE. Le problème avec le razberry c’est seulement si on utilise le contrôleur interne.

Je souhaite contribuer à l’amélioration de ce plugin, est ce possible ?

Bien sur, le code est sur GitHub : rjullien/plugin-MiFlora, vous pouvez soumettre des pull requests.

gatttool est instable et se bloque sur RPI

Il y a beaucoup de configuration qui peuvent générer ce problème. Avec Pixel il faut faire attention d’avoir un seul gestionnaire de bluetooth. BlueZ est incompatible avec blueman (sudo apt-get remove blueman)

Comment voir les MiFlora dans l’app Jeedom?

Dans la configuration du plugin mobile Jeedom, il faut chercher Miflora et cocher la case activer, configurer la température avec Info/Température et l’hygrometrie avec Info/Humidité, les autres avec Aucun. Les informations remontent ensuite toute seule dans la partie objets de l’app Jeedom

Pourquoi ai je le message: Objet inconnu: xxx?

MiFlora gere les Parrots Flower et MiFlora. Le plugin les differencie en utilisant les addresses MAC reservés à ces deux societés. La Mac address saisi ne correspond pas. Si c’est bien un de ces deux objets, il faut faire une demande de support ou une PR sur GitHub.

Le plugin fonctionne bien: que puis je faire avec ?

Les valeurs d’humidité, de fertilité, de luminosité et de températures sont accessible depuis des scénarios.

Il est possible de lire ces valeurs, de les comparer à un seuil et d’alerter en cas de dépassement du seuil, par exemple pour arroser une plante.

Les alertes peuvent être données par du ‘text to speech’ (plugin playTTS par exemple), par notification sur smartphone (plugin pushbullet), par SMS …

Les seuils peuvent être trouvés en utilisant la base de plantes de Xiaomi ou celle de Parrot à défaut un seuil entre 14 et 16 semble convenir à une majorité de plantes d’intérieur.

Il est aussi possible de réguler un arrosage automatique, MiFlora semble bien résister aux intempéries

Changelog

Version 3.0.1 - 10 Fevrier 2019 Stable

  • Ajoute un nouveau range de MacAdd pour les Parrots
  • clarification les erreurs/warnings
  • ajout de questions a la FAQ
  • Correction de l’erreur de mesure Lux Parrot, suite à un commentaire sur le forum

Version 3.0.0 - 14 Mai 2018 Bêta - 30 Juin Stable

  • Gestion d’antennes déportés
    • Possibilité de créer des antennes
    • Possibilité pour chaque objet de spécifier par quelle antenne il va être lu
    • Attention:
      • le plugin a maintenant des dépendances à lancer, elles permettent de s’assurer que les packages nécessaires sont bien présents. Il n’est pas indispensable de les lancer si tous les packages sont présents.
      • il peut être nécessaire de le désactiver puis de l’activer pour bien mettre à jours les nouveaux champs, les données sont conservées lors de ce processus.
      • le mode déporté est supprimé au profit des antennes. J’ai prévu la création d’une antenne nommée deporte pour gérer la migration.
  • Onglet santé permettant de voir de manière synthétique l’état des MiFlora.
  • Onglet scan qui permet de trouver la liste des objets pas encore déclarés dans MiFlora. Le résultat du scan n’est pas fiable à 100%, si une antenne est occupée tous les objets vus seulement par cette antenne ne seront pas détectés
  • Ajout d’un helper dans le menu add permettant de lancer le scan et d’ajouter un objet en cliquant sur la liste des MAC adresses plutôt que de les saisir à la main.
  • Ajout de valeurs par défaut pour l’alerte batterie faible pour chaque objet si rien n’est défini au niveau global Jeedom
  • Vérification des batteries par rapport au seuil du plugin et aux seuils globaux Jeedom si rien n’est défini dans le plugin.
  • Ajout de la fonctionnalité refresh et passage du minimum de 5 à 15 minutes.
    • Cette fonctionnalité est utilisable depuis un scénario ou en cliquant sur le widget en mode desktop.
    • Attention de bien mettre une fréquence d’au moins 15 minutes pour vos objets existants.
  • Gestion du Parrot flower de la même manière que les MiFlora

Version 2.0.6 & 2.0.5 - 7 Mai 2018

  • Mise a jour du lien pour la doc

Version 2.0.6 - 23 Avril 2018 Bêta

  • Correction du warning dans http.error

Version 2.0.5 - 18 Avril 2018

  • Correction d’un bug du rafraîchissement par objet

Version 2.0.4 - 14 Avril 2018

  • Gestion du rafraîchissement par objet:
    • Le rafraîchissement par objet vient en complément de celui global dans la configuration du plugin
    • Le rafraîchissement par objet a une valeur supplémentaire défaut, dans ce cas la valeur globale est prise en compte
    • Chaque MiFlora a sa fréquence de rafraîchissement qui remplace la valeur globale quand elle n’est pas à la valeur défaut
    • En mode debug, tous les objets sont lus toutes les minutes indépendamment de ces valeurs

Version 2.0.3 - 6 Avril 2018

  • Suppression du lien PayPal dans la documentation afin que le Plugin ne soit plus classé obsolète

Version 2.0.2 - 2 Avril 2018

  • Gestion du rafraîchissement global inférieur à une heure
  • Amélioration de la documentation ainsi que du Readme

Version 2.0.1: Mars 2018

  • Amélioration du code sans changement fonctionnel
    • Déplacement du script python dans ressources
    • mise en place de travis-ci
    • correction des warnings lint python
    • Correction de la documentation

Version 2.0.0: Mars 2018

  • Migration de la documentation au format markdown et intégration dans le template Jeedom-Plugins-Extra

Version 1.2.5: 31 Mai 2017

  • correction d’un bug sur la fertilité (récupération des 2 octets au lieu d’un seul)
  • Changement de l’icône pour respecter la charte Jeedom

Version 1.2.4: 18 Mars 2017

  • Inversions du change log pour plus de lisibilité
  • Gestion du firmware 2.9.2 - inversion du test seul 2.6.2 est géré avec l’ancienne méthode

Version 1.2.3: 16 Janvier en Bêta

  • Amélioration de la gestion des erreurs de lecture

Version 1.2.2:

  • Correction du bug du script python

Version 1.2.1: 7 janvier 2017

  • Correction des températures négatives (pull request de frederic34)

Version 1.2: 5 janvier 2017

  • multiple corrections orthographiques
  • migration de la récupération des données vers le script python
  • amélioration de la FAQ

Version 1.1: 11 décembre 2016

  • Utilisation du paramètre hci et sec-level pour le firmware 2.6.6 et 2.7.0. (modification du script python)

Version 1.0.1: 11 décembre 2016

  • Correction du bug pour les nouveaux firmware en mode local

Version 1.0 : 10 décembre 2016

  • Support du firmware 2.6.6 et 2.7.0 en mode local et déporté
  • Choix du no de hci dans la config, très utile si le hci0 est affecté à un plugin exclusif ou s’il ne gère pas le Bluetooth BLE
  • Choix du niveau de sécurité Bluetooth afin de résoudre les problèmes de certains dongles qui ne gèrent pas le niveau high
  • le hci et niveau de sécurité n’est pas pris en compte pour le firmaware 2.6.6 et 2.7.0. (modification du script python pas encore testées)

Version 0.8 : 9 décembre 2016

  • Affichage des items de Configuration en champ lecture seul.
  • Widget desktop et mobile dédié.
  • ajout de la date de dernière collecte
  • forcer la récupération du firmware s’il est vide
  • Le mode debug provoque une collection de données toutes les minutes, attention à ne pas le laisser en permanence surtout si vous êtes sur une carte SD
  • Définir les nouveaux équipements en visible et activés par défaut
  • Ajout de l’unité pour ‘fertility’, ce champ mesure en fait la conductivité ce qui permet de déduire la fertilité du sol

Versions 0.1 … 0.7: 24 Novembre 2016 - 2 Décembre 2016

  • Version initiale du plugin.

Idées pour les versions suivantes :

  • Ajouter le test des config : hci et sec-level doivent être rempli
  • Choix du log erreur ou info en cas de problème de connexion au bout de 4 essais
  • Tester que la macadd est <> entre les Équipements (erreur de copie colle)
  • Tester l’état du Bluetooth et le redémarrer en cas de problème (sudo hciconfig hci0 down,sudo hciconfig hci0 up) par exemple l’erreur connect error: Connection refused (111)

Cette liste de questions provient essentiellement de vos questions sur le fil de discussion MiFlora du forum.