Intégration de Flukso dans Jeedom via MQTT

Classé dans : Jeedom | 0

Les produits Flukso

Il y a déjà quelques années de cela, bien avant l”explosion de l’IOT (Internet Of Things), je m’étais équipé d’un fluksometer. Mon but était d’avoir un suivi de la production de mes panneaux photovoltaïques (à une époque où les onduleurs n’étaient pas encore connectés au web) et, au passage, de la consommation de ma climatisation. Je voulais aussi un système simple qui ne nécessitait pas d’intervenir sur l’installation électrique et le système de pinces ampèremétriques de Flukso le permettait. En outre, Flukso offrait la possibilité de suivre aussi sa consommation de gaz et d’eau, deux modules que je n’ai toutefois pas installé (n’ayant pas le gaz et le compteur d’eau n’étant pas compatible car il faut un compteur à impulsions).

Le coeur de Flukso, toujours en vente d’ailleurs, est ce petit routeur intelligent qu’on connecte au réseau local et qui mesure et envoie les données de consommation/production vers les serveurs de Flukso.

Screen Shot 2020-03-01 at 08.29.01

Les données de production ou de consommation électrique sont récupérées par l’installation de pince ampèremétriques. Avec ces pinces, pas besoin de couper la ligne électrique pour y installer quoique ce soit. Il suffit de placer la pince autour du fil électrique et de raccorder l’autre extrémité au routeur Flukso.

Screen Shot 2020-03-01 at 08.28.44

Après quelques réglages et configurations (qui ne sont pas l’objet de cet article mais qui sont assez bien détaillés dans le manuel d’installation), les appareils Flukso prennent des mesures toutes les 5 minutes et envoient les informations vers les serveurs Flukso. On peut alors s’y connecter au travers du site web et visualiser ses données sous forme graphique. Ici, par exemple, on voit les productions de mes deux séries de panneaux photovoltaïques (en bleu et en vert) et la consommation de ma climatisation (en rouge).

Screen Shot 2020-03-01 at 08.26.30

J’en étais donc resté là, depuis des années, consultant de temps à autre les graphiques. Mais il me manquait deux choses essentielles :

  • La possibilité d’avoir une alerte en cas de non-production de mes panneaux
  • L’intégration de ces données dans mon système Jeedom

MQTT (Message Queuing Telemetry Transport)

Discutant avec un ami, il m’expliquait qu’il a connecté son Flukso avec son OpenHad via MQTT. C’était la bonne nouvelle : Flukso implémentait donc un protocole de communication, à savoir ici le MQTT = “Message Queuing Telemetry Transport”. Et je pourrais logiquement récupérer les données dans Jeedom.

Le site web de Flukso, de façon un peu cachée, confirmait d’ailleurs l’implémentation du protocole MQTT:

With the built-in MQTT broker the FLM provides an easy to use and easy to adapt capability to publish own sensor data beyond the FLM built in energy measurement.

MQTT est un protocole de communication sur IP, basé sur une architecture client/serveur et un mécanisme de souscription/publication. Il est léger, ouvert, simple, caractéristiques qui ont favorisées sa démocratisation dans la communication Machine to Machine (M2M) et l’internet des objets (IoT – Internet of Things).

Côté Jeedom, il suffisait de trouver un plugin, ce qui fût vite fait avec plugin, gratuit de surcroît : JMQTT 

L’installation de jMQTT sous Jeedom

L’installation du plugin jMQTTT sous Jeedom est la procédure classique d’installation des plugins, ce dernier étant sur le market officiel.

  • Aller dans Plugins / Gestion des plugins et puis choisir Market

Screen Shot 2020-02-25 at 07.44.01

  • Dans la zone texte de recherche, inscrire mqtt et cliquer sur la loupe. Cliquer ensuite sur jMQTT qui apparaît en jaune en dessous

Screen Shot 2020-02-25 at 07.44.32

  • Cliquer sur le bouton “Installer stable”

Screen Shot 2020-02-25 at 07.45.30

  • Répondre “Ok” pour aller sur la page de configuration du plugin

Screen Shot 2020-02-25 at 07.46.19

  • J’ai laissé l’installation par défaut, à savoir la case “Installer Mosquitto localement” cochée. Mosquitto est ce qu’on appelle un “Message Broker”, c’est-à-dire un programme qui va permettre de recevoir les messages (MQTT ici) et qui va les décoder. La documentation de jMQTT indique qu’il est plus facile d’installer le broker Mosquitto sur la machine Jeedom et puis ensuite de configurer ses modules MQTT pour qu’ils se connectent au broker Mosquitto. Avec Flukso, je pense que c’est facultatif mais, dans le doute, j’ai laissé cette option cochée. Cliquer ensuite sur le bouton “Activer” dans la zone “Etat”

Screen Shot 2020-02-25 at 07.46.34

  • Au besoin, lancer l’installation des dépendances (dans la zone “Dépendances”).

Flukso dans Jeedom via MQTT -

Paramétrer jMQTT dans Jeedom

  • Le plugin se trouve dans Plugins / Protocole domotique / jMQTT

Screen Shot 2020-02-25 at 07.53.42

  • Cliquer sur “+ Ajouter un broker”

Screen Shot 2020-02-25 at 07.53.55

  • Lui donner un nom, Flukso ici

Screen Shot 2020-02-25 at 07.54.05

  • On se retrouve dans la page de configuration. Il faut y indiquer :
    • L’objet parent : c’est optionnel mais si vous avez organisé vos objets pour les grouper par pièce par exemple, n’oubliez pas d’attacher cet équipement à son objet parent (qui est souvent la pièce où se trouve l’équipement)
    • Cocher la case “Energie” 
    • Cocher la case “Visible” (optionnel)
    • Cocher la case “Activer” (important)
    • Cliquer sur “Sauvegarder”

Screen Shot 2020-02-25 at 11.06.22

  • Cliquer ensuite sur “Broker” (à côté de “Equipement” et de “Commandes” dans l’écran ci-dessus). C’est ici que se configure la connection pour récupérer les données Flukso.

Screen Shot 2020-02-25 at 07.54.53

    • Le premier paramètre, c’est l’adresse IP du broker Mosquitto. Je suis parti du principe que ce serveur existait probablement sur le routeur Flukso. J’ai donc rechercher l’adresse IP de l’appareil Flusko sur mon routeur et je m’y suis connecté, via mon browser internet Safari, avec cette url pour vérifier que le flux MQTT était opérationnel.

Screen Shot 2020-02-25 at 08.07.31

    • Et, de fait, le flux MQTT fonctionnait bien et des données étaient envoyées très fréquemment (plusieurs par minutes)

Screen Shot 2020-02-25 at 08.07.37

    • C’est donc l’adresse IP de l’appareil Flukso que j’ai indiqué en paramètre dans “IP de Mosquitto”
    • Conserver le port par défaut 1883
    • Introduire le nom d’utilisateur Flukso dans “Identifiant de Connexion”. C’est le nom d’utilisateur qui est demandé pour se connecter, sur son réseau LAN, au Fluksmeter. Ce n’est pas le nom d’utilisateur que l’on utilise pour se connecter sur le site web de Flukso. Par défaut, c’est root.
    • Introduire le mot de passe Flukso dans “Mot de passe de Connexion (non obligatoire)”. Par défaut, c’est root.
    • Je n’ai pas rempli la zone “Compte de Connection (non obligatoire)”

Screen Shot 2020-02-25 at 08.57.42

    • Cliquer sur “Sauvegarder”. Le “Démon” Jeedom est alors relancé automatiquement.

Récupérer ses devices/capteurs Flukso

Une fois le broker configuré et opérationnel, il faut encore récupérer les capteurs et les mesures. Le plus facile est de le faire via la détection automatique appelée “Inclusion”

  • Cliquer sur le bouton “Inclusion”. Le mode inclusion lance la découverte et la création automatique des équipements. 

Screen Shot 2020-02-25 at 11.07.50

  • Après quelques instants, des appareils vont apparaître. 

Screen Shot 2020-02-25 at 11.08.02

  • Il y a tout d’abord l’équipement “device”. C’est en fait l’appareil Flusko principal, qu’on appelle le Fluksometer (qui ressemble à un routeur). On retrouve d’ailleurs cet appareil sur le site web de Flukso (site web où l’on peut voir aussi ses données de production/consommation).

Screen Shot 2020-02-25 at 11.08.39

  • Il y a ensuite, juste à côté, l’équipement “sensor”. Ici, on retrouve en fait les capteurs (qu’on retrouve aussi sur le site web de Flukso). En général, ce sont les pinces ampèremétriques et/ou les sondes pour la consommation d’eau ou de gaz. Dans mon cas, il y a trois pinces ampèremétriques nommées Climatisation, panneau 1, panneau 2. Les deux autres ne servent à rien.

Screen Shot 2020-02-25 at 11.08.45

  • Cliquer sur l’équipement des capteurs “sensor”. Lui donner un objet parent (optionnel), cocher “Energie”, cocher “Activer” et cocher “Visible”. Un paramètre important est la case à cocher “Ajout automatique des commandes”. Vérifiez bien que cette case est cochée car sinon vous n’aurez peut-être pas à disposition toutes les mesures des capteurs. 

Screen Shot 2020-02-25 at 11.09.56

  • Cliquer sur le tab “Commandes”. On trouve ici les commandes des capteurs et les mesures qu’ils peuvent récupérer.
  • Cliquer sur “JSON” (en haut à droite) pour accéder à toutes les commandes découvertes automatiquement (le mode Classic ne les montre en effet pas toutes). Il y a, par capteur Flukso, deux séries de données. La première série est exprimée en W, qui donne la consommation/production instantanée. La seconde série est exprimée en Wh et fournit la consommation/production cumulée (cette seconde série est en fait un compteur incrémental dont la valeur ne cesse d’augmenter au fil de la consommation/production).

Screen Shot 2020-02-25 at 11.12.30

  • Donner un nom de commande à chaque valeur à récupérer. Je vous conseille de prendre tout d’abord la série en W et de donner un nom de commande au capteur “Gauge(1)”. Ce faisant, on récupère la consommation/production instantanée et on peut la visualiser dans le dashboard. Indiquer le sous-type “Numérique” pour cette commande”. Cocher les cases “Historiser” et “Afficher”.

Screen Shot 2020-02-25 at 11.14.09

  • Je recommande de faire la même chose pour la série en Wh. Donner un nom de commande au capteur “counter(1)”. Ce faisant, on récupère la consommation/production cumulée et on pourra soit la visualiser dans le dashboard, soit faire un calcul simple pour récupérer la production/consommation par jour, semaine ou mois. Indiquer également le sous-type “Numérique” et cocher les cases “Historiser” et “Afficher”.
  • Appuyer sur le bouton “Sauvegarder”

Dans le dashboard, on voit maintenant la production instantanée (W) et le chiffre de la production cumulée (en Wh) pour mes deux pinces ampèremétriques connectées à mes deux séries de panneaux. On voit aussi la consommation instantanée de la climatisation.

Screen Shot 2020-02-25 at 16.54.41

On notera que la production cumulée n’apparait pas pour la climatisation. La raison est simple : j’ai oublié de mettre le type “Numérique” à la commande correspondante. Cette modification faites, les données sont apparues dans le Dashboard.

Aller plus loin avec un virtuel, des variables et un scénario

Comme on le voit sur l’écran ci-dessus, la valeur de la consommation/production cumulée en Wh est peu parlante. Un compteur qui a démarré à zéro il y a des années et qui n’a fait que s’incrémenter dans le temps, cela donne un long chiffre peu lisible. Cela serait nettement plus sympa d’avoir la consommation/production par jour. Et, tant qu’à faire, pourquoi ne pas mettre une couche d’abstraction supplémentaire par l’usage d’un virtuel. Car, au cas où je changerais d’appareil de mesure (j’aime bien Flukso mais sait-on jamais), je ne perdrais comme cela pas mon historique.

Un objet virtuel est un objet que l’on construit. Ici, l’idée est de définir un objet qui calculera la production par jour de mes deux séries de panneaux photovoltaïques (la production séparée de chacune des séries de panneaux m’importe peu) et un second qui calculera la consommation par jour de ma climatisation.

Pour ce faire, trois étapes sont nécessaires dans Jeedom :

  1. créer des variables pour pouvoir stocker la production/consommation par jour
  2. créer un scénario pour remplir les variable créées ci-dessus en faisant un simple calcul :  production à minuit et une minute – la production un jour avant. Ce scénario sera lancé à minuit et une minute, une fois par jour.
  3. créer un virtuel qui contiendra la valeur des variables et les historisera.

Créer les variables

  • Dans Jeedom : Outils / variables
  • Cliquer sur Ajouter pour créer autant de variable que nécessaire. Ici, j’ai créé trois variables à savoir, en fait, une par pince ampèremétrique. Il y a donc deux variables pour les deux pinces mises sur les deux séries de panneaux photovoltaïques et une variable pour la pince mesurant la consommation de la climatisation. Pour les valeurs, vous pouvez les mettre zéro puisque c’est le scénario, à l’étape suivante, qui s’occupera de les calculer.
  • Au début, la zone texte “Utilisée dans” sera vide. Mais, une fois que vous aurez effectué la création de votre scénario (l’étape décrite ci-dessous), Jeedom indiquera que la variable est utilisée dans le scénario.

Screen Shot 2020-03-02 at 17.13.14

  • Cliquer sur “Sauvegarder”

Créer le scénario

  • Dans Jeedom: Outils / scénarios
  • Cliquer sur “Ajouter”

Screen Shot 2020-03-02 at 17.16.05

  • Donner un nom au scénario et cliquer sur “OK”

Screen Shot 2020-03-02 at 17.16.24

  • Cocher “Actif” et cocher “Visible”. Choisir “Programmé” comme mode de scénario
  • Cliquer sur le point d’interrogation derrière programmation et configurer le scénario pour qu’il soit exécuté de façon récurrente, une fois par jour à 00h01

Screen Shot 2020-03-02 at 17.18.00

  • Cliquer sur le tab “Scénario”

Screen Shot 2020-03-02 at 17.19.27

  • Cliquer sur “Ajouter bloc”
  • Choisir un bloc “Action” et cliquer sur “Enregistrer”

Screen Shot 2020-03-02 at 17.20.22

  • Cliquer sur “+ Ajouter” au niveau du bloc qui vient d’apparaître et choisir “action”

Screen Shot 2020-03-02 at 17.20.41

  • Dans la première zone de texte, inscrire “variable”. Dans la seconde zone de texte, à savoir “Nom”, indiquer le nom des variables créées à l’étape précédente. Dans la troisième zone de texte, à savoir “Valeur”, mettre la formule de calcul. Pour Flukso, sachant qu’on est sur les mesures de production/consommation cumulée en Wh qui ne font qu’augmenter dans le temps (ou rester au même niveau s’il n’y a pas eu d’activité), je choisis la formule MaxBetween de mon capteur flukso sur la période entre maintenant (soit 00H01 vue que c’est l’heure à laquelle tourne le scénario) et la veille à 00h01. Et je retranche de cette valeur la valeur de la formule MinBetween du même capteur sur la même période. Cela donne :

MaxBetween(#[Cave Garage][capteurs][Panneau 1 – Production Wh]#,yesterday 00:01, now) – MinBetween(#[Cave Garage][capteurs][Panneau 1 – Production Wh]#,yesterday 00:01, now)

Screen Shot 2020-03-02 at 17.21.40

  • Cliquer sur “Sauvegarder”

Vous pouvez tester le calcul dans Outil / Testeur expression. Le résultat apparait 

Screen Shot 2020-03-02 at 17.26.55

Créer le virtuel

  • Après avoir installé un autre plugin Jeedom, à savoir le plugin “Virtuel”, la création du virtuel se fait dans Plugins / Programmation / Virtuel.
  • Cliquer sur “Ajouter”
  • Donner un nom, donner un objet parent (optionnel), cocher “Energie”, cocher “Activer” et cocher “Visible”.

Screen Shot 2020-03-02 at 07.29.34

  • Cliquer sur le petit point d’interrogation à côté de “Auto-actualisation (cron)”. Comme le calcul doit se faire une fois par jour, choisir “Récurrent”, “Jour” et “00h01”. Puisque les variables ne sont remplies qu’une fois par jour, il serait en effet inutile de demander au virtuel un rafraîchissement plus fréquent.

Screen Shot 2020-03-02 at 07.30.57

  • Cliquer sur Commandes
  • Cliquer sur “Ajouter une commande virtuelle”
  • Lui donner un nom, choisir le sous-type “Numérique”. Dans “Valeur”, faire simplement la somme des deux variables créées ci-dessus 

Variable(ProductionJournalierePanneau1)+Variable(ProductionJournalierePanneau2)

Screen Shot 2020-03-02 at 17.06.29

  • Cocher “Afficher” et “Historiser”
  • Cliquer sur “Sauvegarder”

Ce que cela donne dans le Dashboard

Dans le Dashboard Jeedom, le virtuel est visible sous l’objet parent défini et affiche maintenant la production de la veille.

Flukso dans Jeedom avec MQTT -

Quand on clique sur le virtuel, on a obtient un beau graphique avec la production totale des panneaux photovoltaïques, jour par jour.

Flukso dans Jeedom avec MQTT -

Conclusion

Avec Flukso, on a une façon pas trop coûteuse et simple (pas besoin d’intervenir sur les circuits électriques) de mesurer finement ses consommations/productions électriques. Grâce au protocole MQTT et au plugin jMQTT, l’intégration dans Jeedom se fait aisément…et le nombre de possibilités offertes devient presque infinie. Je recommande ce matériel d’excellent qualité et qui tourne chez moi depuis des années sans le moindre soucis.

 

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.