Table des matières
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.
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.
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).
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 mes box domotiques: Jeedom et Home Assistant
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 les box domotiques
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).
Flusko et Home Assistant
Home Assistant est une box domotique puissante et qui, par conséquent, permet de récupérer les messages MQTT.
Le modèle Flukso dont je dispose est un modèle datant de 2012 : le FLM02B. Maintenant, c’est une version plus récente qui est en vente.
Installation de MQTT
MQTT peut s’activer facilement dans Home Assistant. Dans Paramètres / Appareils et services, on clique sur le bouton bleu “+ Ajouter une intégration” en bas à droite et on recherche MQTT.
Pour faire fonctionner MQTT et Home Assistant, il faut choisir un courtier (broker en anglais). L’option la plus simple consiste à installer Mosquitto lorsque l’installation de MQTT le suggère. Cela se fait en choisissant « Utiliser le module complémentaire officiel Mosquitto Mqtt Broker ».
Après quelques minutes, l’installation est terminée et on peut appuyer sur « TERMINER ».
Configuration de Mosquitto
On doit maintenant modifier la configuration de Mosquitto afin de pouvoir le configurer séparément dans un fichier à créer dans le répertoire /config.
Dans Paramètres / Modules Complémentaire, choisir « Mosquitto broker » et sélectionner le tab « Configuration » du menu supérieur. Au niveau de « Customize » on indique « true » et on clique sur « Enregistrer ».
On accepte ensuite de rédémarrer Mosquitto dans le message de confirmation.
Flukso dans HACS
Par défaut, on ne trouve pas Flukso dans HACS. Il faut, au préalable, cliquer sur les trois points en haut à droite et choisir « Dépôts personalisés ».
Dans la fenêtre qui s’affiche, on indique l’URL https://github.com/bertouttier/flukso-hacs et « Intégration » comme type
On clique ensuite sur « AJOUTER » à l’écran suivant:
Maintenant, quand on recherche Flukso dans HACS, il apparaît et on peut le « Télécharger »
La version actuelle est la 1.0.13.
Un redémarrage de Home Assistant est nécessaire, comme rappelé au niveau des paramètres:
Configuration du bridge MQTT
Maintenant, il faut le configurer le bridge MQTT pour se connecter au broker MQTT de Flukso. Cela de fait avec l’outil FileEditor (en n’oubliant pas d’avoir enlevé l’option « Enforce basepath » dans sa configuration, comme expliqué dans cet article à la section FileEditor).
Dans FileEditor, on choisit le répertoire racine (on sort donc du répertoire HomeAssistant pour aller dans le répertoire racine où l’on voit les répertoires /dev, /bin,…). On sélectionne le répertoire « share » et on clique sur « New folder ». Le nom à donner au répertoire est « mosquitto ».
Dans le nouveau répertoire « mosquitto », on clique sur « New file » et on lui donne le nom de « Flukso.conf ». Dans ce fichier, on ajoute cette configuration (le mot de passe et le nom d’utilisateur sont, par défaut, root) et puis on redémarre à nouveau Mosquitto.
connection flukso01
address <adresse_IP_Flukso>:1883
remote_username <nom d’utilisateur>
remote_password <mot de passe>
remote_clientid flukso01bridge
cleansession true
restart_timeout 5
topic # in 0
Dans le journal de Mosquitto Broker, on vérifie que le fichier de configuration qu’on vient de créer a été chargé:
Dans Paramètres / Appareils et service / MQTT, on clique sur « Configurer ». On choisit ensuite d’écouter le sujet « # » avec « 1 » comme paramètre QoS. Après avoir cliquer sur « COMMENCER A ECOUTER », on voit apparaître les messages Flukso des capteurs
Pour configurer Flukso via l’intégration HACS, il est nécessaire d’avoir le hash de l’appareil Flukso (et non pas ceux des capteurs comme ci-dessus). Pour le récupérer, on choisit d’écouter sur « /device/# ». Le hash est alors affiché : il commence par e400 chez moi. C’est ce hash qui sera à utiliser dans la suite de ce tutorial.
Configuration du Flukso dans HACS
On réalise l’intégration de Flukso dans Home Assistant à partir de cette URL : https://my.home-assistant.io/redirect/config_flow_start/?domain=flukso que l’on peut copier-coller dans le navigateur internet.
On clique sur « OK » pour démarrer la configuration.
On fournit maintenant le hash de l’appareil Flukso, qu’on avait récupéré auparavant
Si tout se passe bien, un message de confirmation de bonne exécution est affiché.
Dans Paramètres / Appareils et services, on voit qu’une intégration Flukso est visible avec un appareil:
Au niveau de l’appareil Flukso, on a accès à toutes les capteurs associés:
Plan B : configuration manuelle
Si la configuration Flukso dans HACS n’a pas fonctionné, on peut passer à la configuration manuelle. Avec File Editor, on édite le fichier configuration.yaml et on lui ajoute ceci (en remplaçant les étoiles par les identifiants des capteurs (et non pas celui du device donc) que l’on avait noté auparavant:
# Flukso
mqtt:
sensor:
– name: « Flukso Panneaux 1 Prod Instantannee »
state_topic: « /sensor/c61c396c7c435****/gauge »
device_class: power
unit_of_measurement: W
value_template: ‘{% if is_state(« sun.sun », « below_horizon »)%}0{%else%}{{ value_json[1] }}{%endif%}’
– name: « Flukso Panneaux 1 Counter »
state_topic: « /sensor/c61c396c7c435****/counter »
value_template: ‘{{ value_json[1] }}’
state_class: total_increasing
unit_of_measurement: Wh
device_class: energy
Dans cette configuration, on fait une petite correction des productions instantannées pour forcer la valeur à zéro quand c’est la nuit (car les pince ampèremétriques de Flukso remontent tout de même une petite production). On utilise aussi les state_class pour indiquer à Home Assistant comment calculer les consommations journalières ( « total_increasing » indiquant une valeur qui augmente en permanence).
On redémarre Home Assistant
L’installation de jMQTT sous Jeedom
Installer le plugin jMQTT
Côté Jeedom, il suffisait de trouver un plugin, ce qui fût vite fait avec plugin, gratuit de surcroît : JMQTT
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
- Dans la zone texte de recherche, inscrire mqtt et cliquer sur la loupe. Cliquer ensuite sur jMQTT qui apparaît en jaune en dessous
- Cliquer sur le bouton « Installer stable »
- Répondre « Ok » pour aller sur la page de configuration du plugin
- 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 »
- Au besoin, lancer l’installation des dépendances (dans la zone « Dépendances »).
Paramétrer jMQTT dans Jeedom
- Le plugin se trouve dans Plugins / Protocole domotique / jMQTT
- Cliquer sur « + Ajouter un broker »
- Lui donner un nom, Flukso ici
- 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 »
- 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.
-
- 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.
-
- Et, de fait, le flux MQTT fonctionnait bien et des données étaient envoyées très fréquemment (plusieurs par minutes)
-
- 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) »
-
- Cliquer sur « Sauvegarder ». Le « Démon » Jeedom est alors relancé automatiquement.
Récupérer ses devices/capteurs Flukso dans Jeedom
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.
- Après quelques instants, des appareils vont apparaître.
- 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).
- 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.
- 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.
- 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).
- 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 ».
- 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.
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 :
- créer des variables pour pouvoir stocker la production/consommation par jour
- 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.
- 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.
- Cliquer sur « Sauvegarder »
Créer le scénario
- Dans Jeedom: Outils / scénarios
- Cliquer sur « Ajouter »
- Donner un nom au scénario et cliquer sur « OK »
- 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
- Cliquer sur le tab « Scénario »
- Cliquer sur « Ajouter bloc »
- Choisir un bloc « Action » et cliquer sur « Enregistrer »
- Cliquer sur « + Ajouter » au niveau du bloc qui vient d’apparaître et choisir « action »
- 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)
- Cliquer sur « Sauvegarder »
Vous pouvez tester le calcul dans Outil / Testeur expression. Le résultat apparait
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 ».
- 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.
- 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)
- 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.
Quand on clique sur le virtuel, on a obtient un beau graphique avec la production totale des panneaux photovoltaïques, jour par jour.
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, l’intégration dans les box domotiques se fait sans trop de problèmes…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