enezKreiz - La tour de contrôle
enezKreiz est un service présentant un site web permettant :
- De configurer les données à enregistrer.
- D’afficher les données enregistrées.
- Proposer une API permettant à d’autre services d’accèder aux données et aux différents paramètres de fonctionnement.
C’est un service fonctionnant en réseau local qui permet de configurer l’enregistrement de tout type de données au format json.
Le code est écrit en Python et se veut assez modulaire et ouvert.
Bien que ce service puisse être installé sur tout type de machine, il est possible de le faire fonctionner sur une carte OrangePiZero, qui peut servir de HotSpot WiFi, avec un SSD de 120Go par exemple. Le coût ne dépasse pas les 60 €.
Coté logiciel, il y a une base de données PostgresQL, un service MQTT (Mosquitto), et évidemment un peu de code pour certains services et le site web.
Les sources de ce service sont disponibles sur Codeberg selon la licence CC BY-SA 4.0.

Origine des données
Pour les capteurs, la seule contrainte est qu’ils puissent envoyer leurs données vers le service MQTT. Un ESP8266 à quelques euros fait cela très bien. On peut imaginer des capteurs directement reliés à l’OrangePi, mais leurs données passeront systématiquement par le service MQTT, service utilisé notamment par la base de données, le site web, Node-red et d’autres outils. Le service MQTT est le point central de circulation des données, le hub. Le but est que tous les fournisseurs de données poussent leur données vers le service MQTT, et que tous les consommateurs des données courantes s’adressent à ce service pour les obtenir.
Il y a effectivement 2 types de données :
- Les données courantes, ou la dernière donnée lue par le capteur, qui passent par le service MQTT
- Les données historiques, l’ensemble des données du mois dernier par exemple, qui seront fournies par un service lié à la base de données
Les données courantes
Les fournisseurs de données courantes peuvent être divers:
- Un compteur d’électricité Linky
- Un compteur d’énergie par impulsion
- Un service tiers, par exemple associé à la base de donnée pour fournir une donnée agrégée, comme le consommation électrique des dernières 24 heures, ou l’écart entre consommation et production d’électricité sur les 10 dernières minutes, …
- Un capteur température / hygrométrie
- Une girouette / anémomètre
- etc…
Les consommateurs de données courantes seront :
- Une (ou plusieures) base de données qui enregistrera tout ou partie des données
- Un service d’analyse (ou plusieurs), Node-RED par exemple, permettant de déclencher des actions en fonction des données, ou de présenter ces données de façon plus ergonomique.
- Des page web affichant en temps réel les données issues des capteurs
- Un service qui permet de sortir les données vers Internet
- N’importe quel autre service qui serait intéressé par les données
Les données historiques
Les données historiques seront accessibles via un service web interrogeant la base de données.
Une API est disponible pour obtenir ces données.


