Note
Due to the French national energy meter, Linky, all of this is very French related. This is why this depot is not in English. However, except the Berry script for Tasmota firmware which connects Linky, all the other things can be easily re-used. The Python's inline comments are in English for better understanding of the inverter connection.
L'objectif est de surveiller une installation photovolatïque en auto-consommation individuelle. Nous avons donc 3 données à surveiller et à mettre en forme pour avoir un graphique de ce type :
- Puissance soutirée du réseau
- Puissance injectée dans le réseau
- Puissance produite par les panneaux
- Puissance routée dans le chauffe-eau
Un autre objectif, arrivé avec le changement d'offre de mon fournisseur d'énergie, est la surveillance des jours Tempo rouge.
Ce repo est autant un partage qu'un aide mémoire.
Nous avons deux appareils à surveiller de manière complémentaire : le compteur Enedis Linky et l'onduleur Huawei Sun2000. Le premier deviendra bavard via un Denky D4 proposé par Charles Hallard. Il permet de lire les données de la téléinfo et de les transmettre au serveur. L'onduleur est déjà connecté. Un script Python lira ses données pour les partager. La collecte des données est faite par EmonCMS et/ou PVOutput.org. Le diagramme ci-dessous permet de visualiser l'installation.
flowchart LR;
A(Linky)--serial-->B;
B(Denky D4)--PUI_SOUT & PUI_INJ-->C;
C([EmonCMS])-->D;
D([SolarPV App]);
E(Onduleur Sun2000)--modbus-->F;
F([sun2000_modbus.py])--PUI_PROD-->C;
F--PUI_PROD & Total_Energy-->G([PVOutput.org]);
F--Total_Energy-->H([BDPV.fr]);
I(Shelly Pro 3EM)--http-->J;
J([Shelly.py])--PUI_ROUTEE-->C;
Nous recyclons un vieux PC sur lequel sera installé Ubuntu Server 22.04 LTS. L'installation depuis une clef "Live-usb" se fait facilement. Voir là et là.
Le tutoriel openEnergyMonitor est à suivre à la lettre pour EmonCMS. Il permet d'arriver au bout de l'installation sans éccueil. Dès que les données arrivent, elles sont disponibles dans "Inputs" et il s'agit d'en faire des "Feeds". Ce sont les feeds qui alimentent les dashboards. C'est parfaitement expliqué sur la doc de SolarPV.
Matériel plutôt simple, il arrive prêt à fonctionner. Une mise à jour plus tard, il est opérationnel. Le tutoriel proposé permet d'activer le template Tasmota adéquat et d'ajouter le Berry Script qui transfère les données, dont nous avons besoin, vers EmonCMS. Mon script est proposé pour illustration. Il envoie toutes les 15 secondes les données lues sur le Linky.
Selon le mode de communication du Linky, il faudra activer le mode standard (9600 bauds) ou le mode historique (1200 bauds). Voir la doc.
En mode standard, la commande est energyconfig standard
, en mode historique, la commande est energyconfig historique
. La liste des étiquettes TIC fournie pour mémoire. Il est à remarquer que pour de l'autoconsommation, le mode standard est nécessaire.
Remarque : l'interface proposée par le Denky n'est pas conçue pour un mode en autoconsommation. Les données remontées peuvent être bizarres en apparence. Il remonte néanmoins correctement les données lues du Linky vers EmonCMS. Rien de grave, c'est juste à garder en tête. UPDATE: modifier l'interface est possible. C'est expliqué là. Il y a aussi l'alternative de Nicolas Bernaerts qui semble for intéressante.
L'onduleur Sun2000 de Huawei propose une interface ModbusTCP. Il faut l'activer depuis l'application FusionSolar pour qu'elle soit accessible par tous.
Le script proposé connecte l'onduleur et récupère les données pour les envoyer sur EmonCMS, BDPV et/ou PVOutput. Le fichier de configuration permet de l'adapter à votre installation.
L'installation est décrite via le fichier de documentation
Pour ceux qui souhaitent aller plus loin, la doc Huawei et ModbusTool a bien servi pour vérifier la lecture correcte des données via le script Python.
Pour améliorer l'auto-consommation, j'utilise un routeur d'énergie triphasé MK2PVrouter. L'énergie envoyée dans le ballon d'eau chaude est surveillée par un Shelly Pro 3EM. Sur le même principe que l'onduleur, un script Python est proposé pour envoyer les données vers EmonCMS. Le chauffe eau étant hybride photo-thermique / électrique, il faut surveiller la quantité d'énergie injectée et sa température pour désactiver le routage au besoin.
Pour générer des alertes lors des jours rouges, un script est posposé afin de générer un envoi de mail un peu enrichi. Il permet de régler la couleur de déclenchement de l'alerte et d'envoyer un email enrichi de la météo locale. Pratique pour anticiper...
Pour les autres types d'installation sur micro-onduleur, et ceux qui me l'ont demandé. Quelques liens proposés micro-onduleurs.md