Présentation Blazing Conso
Blazing Conso permet d'afficher sous différentes formes la consommation électrique de ma maison.
Ci-dessous, voici le schéma de mon installation.
En préambule : Il n'y a qu'un seul serveur physique. Je l'ai éclaté en plusieurs pour afficher un schéma plus clair.
- Premier Service : un Raspberry PI3 connecté au compteur Linky via un dongle USB conçu par M. Charles Hallard. Sur ce Raspberry tourne un programme écrit en Python dont la fonction est de lire par le port série les trames fournies par le compteur Linky et de les transmettre via le protocole MQTT à un broker Mosquitto.
- Second Service : wsUpdateDbLinky. Il s'agit d'un programme écrit en C# .NET 9 dont la fonction est de lire
le topic publié par le Raspberry et de mettre à jour différentes tables d'une base MariaDB.
Toutes les requêtes de mises à jour ou d'interrogation sont des procédures stockées et quelques triggers.
Pour ce programme, j'utilise les librairies Dapper et mySQLConnector. - Troisième Service : WebAPIConso : Il s'agit d’un web service écrit en C# .NET 9 sous la forme d’un Minimal API.
Ce service propose une bonne quinzaine de requêtes permettant d'interroger les tables de la base et d'en mettre quelques unes à jour.
Pour ce programme, j'utilise les librairies Dapper et mySQLConnector. - Quatrième Service : BlazingConso : Il s'agit d’une application écrite en C# avec le framework Blazor .NET 9 version "Server".
C'est ce programme qui est exécuté actuellement.
Pour ce programme, j'utilise les librairies Syncfusion (grid, chart, dialog), MudBlazor (navigation, bouton, selecteurs) et EPPlus (génération Excel).
Architecture du Serveur
Il s'agit d'un NUC Intel sous Proxmox, système de virtualisation de serveurs (en version gratuite). C'est l'équivalent de l'environnement VM Ware.
Sur ce serveur, j'ai plusieurs VM et conteneurs.
Il m'a suffit d'installer .NET 9 SDK pour pouvoir faire fonctionner ces applications écrites en C#.
Elles s'exécutent sous forme de service Linux.