enez

enez

enez est un ensemble d'outils permettant d'enregistrer tous type de données au format json issues de capteurs, puis de restituer celles-ci, sous forme de graphiques ou d'exports ou à travers une API. Il s'agit d'un système de dataloging autonome fonctionnant en réseau local, qui n'a pas besoin de connexion Internet.

Mode de fonctionnement

Sur un ordinateur, disons un Pi (Raspberry, Orange, ou n'importe quoi en fait), sont installés les services suivants :

  • Base de données pour la persistance des données. Ici, il s'agit de PostgreSQL.
  • Service MQTT pour la circulation des données, dans les 2 sens. Mosquitto en l'occurence.
  • Service enezDiaz écrit en python pour récupérer les flux de données et les enregistrer.
  • Le service web enezKreiz écrit en python permet de paramétrer le service précédent (enezDiaz) et de servir les historiques de données, soit en les affichants basiquement sur un graphique, soit sous forme d'export. enezKreiz fournit une API, particulièrement utilisable par Node-Red.
  • Service Node-red pour gérer d'autres affichages et pour éventuellement déclencher et envoyer des commandes.
  • D'autres services peuvent être dédiés à la récupération de certaines données afin de la publier. Il y a par exemple le service enezEeunTredan qui se charge de lire les données de téléinformation issues des compteurs électronique Enedis de type Linky par exemple.

A noter que ces différents éléments peuvent se trouver sur des machines différentes.

Toutes les données de tous les capteurs doivent impérativement passer par le service MQTT. C'est une condition qui permet de simplifier grandement les choses, d'avoir une souplesse incomparable et d'être relativement universel au niveau des capteurs. C'est donc du réseau Ethernet. Ensuite, que ce soit du filaire, du WiFi ou autre n'a aucune importance.

Il faut donc que les capteurs aient une certaine autonomie, en terme de connexion. Il est possible d'utiliser des Arduino, avec une carte Ethernet. Cela fonctionne en filaire (je n'aime pas trop les ondes). L'inconvénient est que cela ne se configure pas facilement, il faut pratiquement un programme pour chaque installation. Une autre carte bien plus pratique est l'ESP8266 ou l'ESP32, éventuellement configurable via un écran de configuration, mais fonctionnant en WiFi. Un Arduino (et certainement un ESPxx) est capable de lire les trames téléinfos et de les traiter afin de pousser sur le réseau les informations utiles, formatées en json (je n'ai pas encore eu l'occasion de tester le mode standard de la téléinfo, à 9600 bps). Il est ainsi possible d'avoir des capteurs connectés à des Arduino nano, eux mêmes connectés en USB à un Rasberry qui lui pousse les infos sur le réseau Ethernet filaire. Idem pour les impulsions. L'Arduino traite les impulsions et envoie toutes les x minutes la consommation en Wh. Si la communication se passe via le port USB, c'est le service enezLusk qui réceptionne ces données afin de la publier en MQTT. D'autres modules, des capteurs environnementaux, fonctionnent sur le même principe, ainsi que des systèmes de suivi de production de chaleur solaire par exemple, … A noter que enez est capable de traiter les données envoyés par Tasmota, qui est un système alternatif open source installable sur de nombreux dispositifs, comme les Sonoff ou les Shelly.

Résumé des étapes

Donc, pour résumer, de la machine à la base de données, les différentes étapes sont :

  • Le capteur physique : Compteur Linky, capteur de température, humidité, puissance, particule fine, concentration chimique, …
  • Lecture du capteur et envoie des données vers un serveur MQTT (Mise en réseau) : ESPxxx, Pi, Arduino avec son Shield Ehternet ou connecté à un Pi...
  • Service MQTT pour centraliser les données, installé sur un Pi ou tout autre ordinateur sous Linux
  • Services enez pour traiter les données, qui peuvent aussi être le même matériel que pour l'étape précédente si c'est au moins un Pi.
  • Base de données, qui peut encore être le même matériel que pour l'étape précédente (Pi)

Les services

  • Le premier de ces outils est enezKreiz
  • Un service un peu particulier : enezNTP

Licence

Ces outils sont disponibles selon la licence (CC BY-SA 4.0) :

Licence Creative Commons


enez de finizi est mis à disposition selon les termes de la licence Creative Commons Attribution - Partage dans les Mêmes Conditions 4.0 International.
Fondé(e) sur une œuvre à https://framagit.org/enez