Réalisez un Routeur Solaire avec un Linky (DIY)

Version V3.11 Linky remplacé par la version V4.00_RMS
Pilotage depuis un SmartPhone ou un PC (navigateur Web)

Avec les panneaux solaires, dans une installation en autoconsommation, il est fréquent d’avoir de la surproduction d’énergie dont on ne sait que faire et qui est envoyée sur le réseau public. Une solution pour ne pas gaspiller cet excédent est de l’envoyer à un chauffe-eau électrique, un chauffage, une pompe de piscine…

Mais, pour un chauffe-eau ou un chauffage, gros consommateur d’énergie, il arrive de ne pas avoir assez d’excédent disponible pour couvrir à 100% leurs besoins.

Ici, nous allons réaliser un système qui envoi uniquement la puissance excédentaire au chauffe-eau ou chauffage en surveillant la puissance qui entre ou sort de la maison afin qu’elle soit nulle en exploitant les informations du compteur Linky installé dans les foyers français. Il est équipé d’une sortie d’informations numériques, couramment appelée TIC (Télé-Information Client). Celle-ci donne au client la possibilité de se renseigner en temps réel sur sa consommation électrique.

Le système de routeur proposé fonctionne avec une installation en monophasé ou en triphasé.

Tableau des Versions

Différentes versions de routeur ont été décrites :

VersionMesure courant / puissanceActionneursModulaireDomoticzMQTT / Home AssistantDescription
1Sonde Ampèremétrique
Monophasé
RelaisNonOuiNonRouteur Solaire. Mesure de Puissance avec un ESP32
2Sonde Ampèremétrique
Monophasé
Triac + RelaisNonOuiNonRéalisez un Routeur Solaire pour gérer la surproduction
3.04_UxISonde Ampèremétrique
Monophasé
Triac + RelaisOuiOuiOuiU x I : Routeur Solaire pour gérer la surproduction photovoltaïque
3.11 LinkyLinky
Monophasé ou Triphasé
Triac + RelaisOuiOuiOuiRéalisez un Routeur Solaire avec un Linky
Voir à présent la version V4.00_RMS



Schéma du routage de l’énergie excédentaire vers un chauffe-Eau ou un chauffage

Le routeur solaire, à l’aide d’un Triac, agit comme une vanne qui s’ouvre pour laisser passer la surproduction en surveillant le courant en entrée de la maison afin qu’il soit nul.

Modularité

Le système se décompose en trois fonctions :
– la mesure de puissance au niveau du Linky,
– le traitement à l’aide d’un microcontrôleur ESP32,
– les actionneurs avec un triac et des relais pour alimenter différentes charges.

Il peut s’éclater en différents modules pour s’adapter à des distances élevées entre le Linky et les équipements à alimenter. De simples relais pilotables par Wifi peuvent être contrôlés.

Système modulaire éclaté dans différents lieux de la maison.

Pour les détenteurs de serveurs de domotique comme Home Assistant ou Domoticz, les informations principales du Linky peuvent être envoyées pour y être traitées.


Vidéo explicative

Réalisation

Branchement à la prise TIC

Le branchement à la prise TIC (Terminal Information Client) est détaillé sur la page https://f1atb.fr/capteur-linky-pour-routeur-photovoltaique/

ESP32

La lecture de la trame série reçue du Linky se fait par le micro-calculateur ESP32 sur la broche GPIO26. L’ESP32 est un micro-calculateur très puissant. Il dispose de 2 cœurs de calcul que nous utiliserons dans ce projet, de la mémoire RAM, ROM ainsi que du WiFi.

2 Leds vertes et rouges, sur les GPIO 18 et 19 renseignent sur le fonctionnement. Un clignotement simultané indique la recherche d’une connection WiFi. La verte clignote seule à chaque arrivée de trame du Linky en cas d’injection. La rouge ou jaune clignote en cas de consommation à chaque arrivée de trame du Linky.

Actionneur Gradateur / Triac

Gradateur/Triac modifié
Gradateur/Triac d’origine

Pour ajuster le courant à injecter vers un chauffe-eau ou un chauffage, on utilise un gradateur de chez RobotDyn composé d’un Triac et d’un système de détection du passage à zéro de la tension qui permet d’envoyer à l’ESP32 un signal de synchronisation avec le secteur pour caler en temps l’instant d’ouverture du Triac. Il existe en 16A ou 24A et est disponible chez Aliexpress.


Attention, le refroidisseur d’origine du Triac est largement sous-dimensionné si vous avez une charge de plus de 1000W, sachant qu’il devra fonctionner pendant plusieurs heures. Remplacez-le par un plus-grand. Vous dessoudez le Triac et le montez sur un gros refroidisseur. Pensez à raccorder le refroidisseur à la terre du secteur pour la sécurité.

Pour en savoir plus sur le gradateur : https://f1atb.fr/triac-gradateur-pour-routeur-photovoltaique/

Attention, ce système, permettant d’ajuster finement la puissance disponible, ne fonctionne que pour les chauffe-eaux électriques ou chauffages classiques dans lesquels se trouvent une résistance électrique et un thermostat électro-mécanique pour contrôler la température. Pour les autres, il faudra utiliser un relais en tout ou rien comme décrit ci-dessous.

Schéma d’un système collectant les données du Linky par Wifi et non optocoupleur, et commande des actionneurs Triac et Relais.

Actionneur Relais

Ce projet permet l’ajout de relais sur les GPIOs libres de votre choix (sauf le 27) pour commander un ou plusieurs dispositifs suivant l’état de consommation ou injection de puissance au niveau de la maison. Sur le schéma plus haut, ils sont en GPIO17 et GPIO2.

Vous pouvez connecter un relais solide (SSR) ou un relais mécanique. Il en existe de nombreux de 10, 25 ou 40A. Ils doivent être commandables en 3.3V.


Schéma électrique global

Le schéma complet avec toutes les options se trouve ci-dessous. Il y a peu de composants.

Dans le cas d’une grande distance entre le Linky et les équipements, on peut couper par module. Un coupleur optique et un ESP32 uniquement près du Linky (comme dans le premier schéma plus haut), un ou plusieurs autres ESP32 avec un Triac et des relais près des équipements. On peut même de n’importe quel ESP32 commander des interrupteurs/relais pilotables par Wifi. Voir le chapitre du logiciel plus bas.

Scéma électrique complet. Entré du Linky et Actionneurs.

Pages Web

Le code installé sur l’ESP32 comprend un serveur Web qui permet d’afficher sur plusieurs pages, les différentes mesures et les paramètres de configuration. Il suffit de rentrer l’adresse IP ou le ‘hostname.local ‘ de l’ESP32 dans le champ d’adresse de votre navigateur web.

Page principale

En haut, une zone de menus pour choisir la page.

En dessous l’heure fournie par le Linky, précédée d’un E en été et d’un H en hiver.

Un tableau donne les valeurs Soutirées et Injectées :
– la puissance apparente instantanée en VA
– une estimation par calcul de la puissance active en W
– l’énergie active depuis 0h en Wh
– le compteur d’énergie active cumulée en Wh

Un deuxième tableau, donne l’état courant des actionneurs. Ici l’ouverture du Triac à 37% du temps. La régulation est en cours pour ajuster la puissance consommée/injectée de la maison autour de 0W. Un relais connecté à l’ESP pour piloter un chauffage est Off. Un relais distant piloté par Wifi a enclenché la filtration de la piscine.

Un premier graphe donne la puissance active en rouge et la puissance apparente en bleu-vert durant les 10 dernières minutes. Entre 0 et -2mn on est en phase de régulation, la puissance active est proche de zéro. Entre -2 et -8mn on est en surproduction malgré une ouverture de Triac à 100%. Entre -8 et -10mn, on est en régulation avec une puissance active proche de zéro. On remarque que durant les phases de régulation, la puissance apparente est très importante et chahutée. C’est un comportement normal. Durant une demi-sinusoïde de 10ms, on consomme et on injecte de la puissance pour avoir un bilan nul de puissance active. Cela se traduit par de la puissance apparente élevée. Il n’y a pas de somme algébrique signée, c’est une somme de carrée. Voir la vidéo sur les unités électriques https://youtu.be/xHhURisycmA

Plus bas sur la page, deux autres graphes donnent la puissance active (Soutirée-Injectée) sur 48H et l’énergie quotidienne (Soutirée-Injectée) en Wh sur un an. Ce dernier est stocké en mémoire ROM de l’ESP32 pour ne pas être perdu en cas de coupure de courant.

Page données brutes

Cette page, regroupe les données brutes sans traitement, telles que fournies par le Linky.

Un premier tableau, donne les principales valeurs pouvant vous intéresser pour le suivi de votre consommation. Il donne, par exemple, les pointes de consommation et d’injection des derniers jours. Ce tableau est plus fourni en triphasé, il donne certaines valeurs par phase.

Un deuxième tableau est la recopie du dernier message série reçu du Linky. Se reporter à la documentation d’Enedis, téléchargeable plus haut, pour décoder le message.

Un dernier tableau, fourni des informations sur l’ESP32, pour suivre son fonctionnement.



Page paramètres

Une page est dédiée principalement aux paramètres réseau.

L’adresse IP de l’ESP32 est définie par votre box internet (cocher la case DHCP) ou elle est fixée par vous-même.

Si pour obtenir les données du Linky, vous n’avez pas le coupleur optique branché sur cet ESP, mais un autre distant, cochez la case ESP Linky Externe et rentrez l’adresse IP de ce dernier.

Si vous souhaitez envoyer des données à Domoticz, mettez une période de répétition autre que 0 et remplissez les champs. Domotiz recevra la dernière puissance Active Pw (Soutirée – Injectée) connue.

Si vous souhaitez envoyer des données à Home Assistant via un broker MQTT, mettez une période de répétition autre 0 et remplissez les champs. MQTT recevra plusieurs topics :
– « linky/pva » la puissance apparente en VA
– « linky/pw » la puissance active en W signée
– « linky/pws » la puissance active soutirée en W
– « linky/pwi » la puissance active injectée en W
– « linky/easj » l’energie active soutirée du jour en Wh
– « linky/eaij » l’energie active injectée du jour en Wh

Et en option s’ils sont activés :

– « linky/triac  » l’ouverture du Triac entre 0 et 100%

–  » linky/action1″ état binaire 0 ou 1 de l’action1 ,action2 etc..


Extrait fichier mqtt.yaml
- state_topic: "linky/pva"
  name: "Linky PVA"
  unique_id: linky_pva
  unit_of_measurement: VA
  device_class: apparent_power
- state_topic: "linky/easj"
  name: "Linky E Soutirée Q"
  unique_id: linky_easj
  unit_of_measurement: Wh
  state_class: total_increasing
  device_class: energy
- state_topic: "linky/eaij"
  name: "Linky E Injectée Q"
  unique_id: linky_eaij
  unit_of_measurement: Wh
  state_class: total_increasing
  device_class: energy
- state_topic: "linky/pw"
  name: "Linky Power"
  unique_id: linky_pw
  unit_of_measurement: W
  device_class: power
- state_topic: "linky/pws"
  name: "Linky PW Soutirée"
  unique_id: linky_pws
  unit_of_measurement: W
  device_class: power
- state_topic: "linky/pwi"
  name: "Linky PW Injectée"
  unique_id: linky_pwi
  unit_of_measurement: W
  device_class: power
- state_topic: "linky/triac"
  name: "Linky Triac"
  unique_id: linky_triac
  unit_of_measurement: '%'
- state_topic: "linky/action1"
  name: "Linky Action1 Relais"
  unique_id: linky_action1

Attention, Domoticz et MQTT ne recevront des messages que si des données valides ont été reçues du Linky.

Lorsque l’on apporte des modifications à ces paramètres. Il ne faut pas oublier de les sauvegarder dans la mémoire ROM de l’ESP32 puis faire un ESP32 Reset pour que le système soit relancé avec les nouveaux paramètres.


Page actions

Cette page permet de configurer les actionneurs et de définir un planning de routage. Elle offre une grande flexibilité de configuration pour s’adapter aux divers besoins.

La première des actions est réservée au pilotage du Triac. Cocher la case pour l’activer. En cliquant sur + ou – on peut ajouter ou enlever des plages horaires. En déplaçant la souris horizontalement, on peut modifier les heures. Pour une plage horaire donnée, il y a 3 types d’action possible :

  • Triac forcé à Off
  • Triac forcé à On (100%)
  • Triac s’ouvre entre et 100% si Pw (puissance active en entrée de maison) < Seuil à définir, Off si supérieure au Seuil. Seuil en général à 0.

Après chaque mesure reçue du Linky, le logiciel augmente ou diminue la durée de conduction du Triac. Cela permet après plusieurs mesures de s’approcher de l’équilibre pour avoir une consommation/injection au niveau de la maison proche du Seuil (en général 0W) que l’on a fixé. Quand on augmente de 10% la durée d’ouverture, l’effet ne sera pas le même si vous avez une charge de 500W max connectée ou une charge de 3000W. Un curseur permet d’augmenter ou de réduire le gain de l’asservissement ou la réactivité de l’ensemble. En regardant l’historique de 10mn, on voit si la réaction à toute variation de consommation est lente ou trop rapide, engendrant une oscillation de la puissance active (courbe rouge).

SonOff Mini R2

Les autres actions permettent de piloter des relais branchés sur les sorties GPIO disponibles (sauf le GPIO27) ou de piloter un relais distant comme le SonOff Mini R2 https://f1atb.fr/sonoff-mini-installer-son-firmware-simplement-par-le-wifi/

Il faut remplir les différents champs :

  • Host: mettre « localhost » sans les «  » si le relais est connecté à cet ESP32 ou l’adresse IP du relais distant
  • Port: en général 80 pour une communication suivant le protocole http
  • On : pour un relais local mettre « gpio=17&out=1 » si l’on souhaite mettre à 1 la sortie GPIO 17. Pour un relais externe distant, mettre la commande demandée par le constructeur
  • Off: pour un relais local mettre « gpio=17&out=0&init=0 » si l’on souhaite mettre à 0 la sortie GPIO 17 et l’inialiser à 0 à la mise en route
  • Répet: répétition périodique en s si besoin de la commande. Avec 0 la commande est envoyée une seule fois au franchissement du seuil.

Pour chaque plage horaire, il y a 4 types d’action de routage :

  • Pas de contrôle: il ne se passe rien.
  • Off : on force l’état Off du relais
  • On: on force l’état On du relais
  • Pw< et Pw> : si la puissance active est inférieure à un seuil, le relais passe à On. Si la puissance active est supérieure à un autre seuil, le relais passe à Off. Attention, il faut que le seuil(off) – seuil(on) soit supérieur à la consommation de l’équipement connecté pour éviter un risque d’oscillation toutes les 2s.

En fin de configuration, ne pas oublier de sauvegarder.

Chaque fois que vous sauvegardez, une nouvelle action vierge est proposée. Pour enlever une action, videz les champs.

Réalisation

La réalisation est très simple, à la portée d’un bricoleur, il y a peu de composants à interconnecter.

Si vous souhaitez mettre uniquement la partie mesure et le traitement près du Linky, une boite d’électricien fait l’affaire pour y implanter :
– un coupleur Optique LTV-814
– 2 résistances
– un ESP32 – Development Board
– une alimentation 5V/1A ou 0.5A avec une sortie micro-USB ou USB-C
– 2 LEDs de couleur

ESP 32 – Development Board
Maquette complète avec le capteur optique, un ESP32, 2 LEDs, un Triac, un relais solide et une alimentation 5V/1A.
Gradateur Triac 16A ou 24A de chez Robotdyn

Exemples

Configuration complète regroupant Linky et chauffe-eau

Configuration avec Linky séparé du chauffe-eau et liaison Wifi entre les ESP32. Le même programme est implanté dans les 2 ESP32.

Configuration avec Le linky, le chauffe-eau et un moteur de piscine piloté par un relais/Wifi séparé. Le même programme est implanté dans les 2 ESP32. L’ESP32 du Linky pilote le relais/Wifi du moteur.

Le relais/Wifi du moteur peut être remplacé par un troisième ESP32 avec le même programme et un relais mécanique ou SSR (relais solide).

Longue distance

Pour ceux qui sont sur un grand terrain avec le Linky loin du routeur WIFI, l’utilisation d’un ESP32 avec une antenne déportée permet de doubler la portée du WIFI. On peut typiquement faire du 50m, là où votre smartphone ne captera plus le Wifi.

La sortie antenne sur connecteur SMA permet d’y rajouter une rallonge coaxiale pour placer l’antenne dans un endroit dégagé.

ESP32 avec antenne déportée et Triac. Refroidisseur remplacé permettant de piloter des charges de maximum 1500W.
Important refroidisseur pour gérer une charge de 3000W.

Approvisionnements pour une configuration complète

  • La carte ESP32 (Development Board 2*19 pins) chez Aliexpress ou plus rapidement une carte 2*16 broches ESP 32 Wroom chez uPesy.fr)
  • Une alimentation 230V – 5V 1A DC pour l’ESP32
  • Un gradateur 16A ou 24A de RobotDyn suivant la puissance du chauffe-eau (Aliexpress)
  • Résistance R1 1500 Ω 1/4 ou 1/8W
  • Résistance R2 10000 Ω 1/4 ou 1/8W
  • Résistances R4 et R5, 330Ω à 820Ω 1/4 ou 1/8W
  • 2 LEDS en face avant
  • 1 coupleur optique LTV-814 (Chine ou demandez à Google)
  • Du fil de câblage et une plaque à trou pour le montage
  • Un ou plusieurs relais SSR (solide) ou mécanique pilotable en 3.3V et supportant le courant demandé par la charge connectée

Exemple Routage

Maquette complète d’un routeur avec le capteur optique, un ESP32, 2 LEDs, un Triac, un relais solide et une alimentation 5V/1A. Le soleil est très changeant. Un autres routeur est connecté simultanément pour alimenter un chauffe-eau derrière un Triac et une pompe de piscine derrière un relais.

Diode rouge clignotante = Consommation sur le réseau public
Diode verte clignotante = Injection vers le réseau public
Lampe du haut en tout ou rien avec un relais
Lampe du bas (100W) alimenté par le Triac. Regardez le filament.

Code Source

L’ensemble du code est écrit en utilisant l’IDE Arduino. C’est le même code quelle que soit la configuration modulaire choisie. Il est injecté dans un premier temps par la liaison série, puis une fois en place, on peut le modifier si besoin par le Wifi (voir le détail ici). Il faut, dans les préférences de l’IDE, faire appel au gestionnaire de carte de « Espressif » qui développe l’ESP32. Allez dans Fichier / Préférences et mettez l’adresse : https://dl.espressif.com/dl/package_esp32_index.json

Le code source est composé de 9 fichiers installés dans le même dossier :
– Actions.cpp
– Actions.h
– pageHtmlActions.h
– page HtmlBrute.h
– pageHtmlMain.h
– page HtmlPara.h
– RouteurSolaire_V_3.10_Linky.ino (le programme principal)
– Stockage.ino

Le code source est disponible ici:

Dézipper l’ensemble et ouvrez dans l’IDE Arduino (version 2.xx) le fichier RouteurSolaire_V_3.10_Linky.ino.
Vérifiez que vous avez les bibliothèques installées sur votre IDE Arduino :
– RemoteDebug
– NTPClient
– PubSubClient
Pour la compilation du fichier RouteurSolaire_V_3.10_Linky.ino, veuillez sélectionner la carte ESP32 Dev Module ainsi que le port de COM de Windows sur lequel est branchée la carte par le port série. Avec certaines cartes, si le téléversement du code dans l’ESP32 ne se fait pas, il faut presser sur le bouton boot au début de la tentative de téléversement.

Premier lancement du programme

Au premier lancement du programme dans l’ESP32, le logiciel ne connait pas le nom et le mot de passe de votre réseau Wifi. Il va passer le WiFi en mode point d’accès. Sur votre Smartphone ou PC portable, regardez la liste des WiFi disponibles. Connectez-vous à celui qui porte le nom Linky-ESP32….., il n’y a pas de mot de passe. Ouvrez un navigateur web et rentrez l’adresse 192.168.4.1 qui correspond à l’ESP32. Il va vous renvoyez une page vous demandant le nom du WiFi auquel se connecter à l’avenir et le mot de passe.

Page permettant d’indiquer le réseau Wifi auquel doit se connecter l’ESP32 à l’avenir.

Regardez, le moniteur série de l’Arduino, vous trouverez l’adresse IP sur votre réseau Wifi qui a été attribuée par la box (DHCP) qui gère le réseau. Appuyez sur Reset si besoin pour relancer le démarrage de l’ESP32 et sa connexion au réseau WIFI que vous lui avez indiqué. Rentrez cette adresse IP dans un navigateur Web connecté à votre réseau et vous serez connecté à l’ESP32. Il n’y a rien à modifier dans le code comme dans la version V2.

Au démarrage ou après un « Reset », les 2 LEDs clignotent simultanément lorsque l’ESP32 cherche à se connecter au réseau WIFI.

Adresse IP Fixe

Si vous souhaitez fixer vous-même l’adresse IP, allez faire un tour auprès de votre box à la rubrique réseau / DHCP, vous trouverez le champ des adresses dynamiques. Par exemple, souvent les Livebox d’Orange attribuent des adresses dynamiques DHCP entre 192.168.1.10 et 192.168.1.150. Il vous reste alors un champ libre pour attribuer vos propres adresses entre 192.168.1.151 et 192.168.1.253. Fréquemment, les .254 et .255 sont réservés à autre chose. Vous pouvez ainsi donner comme adresse 192.168.1.200 à l’ESP32 si aucune autre machine sur le réseau occupe déjà cette adresse.

IPAddress gateway correspond à l’adresse IP de votre box. C’est elle qui fait la passerelle (gateway) avec le monde extérieur. Chez Orange, c’est en général 192.168.1.1. Chez Free, c’est plutôt 192.168.0.254. Les trois premiers chiffres 192.168.0 ou 192.168.1 doivent être les mêmes pour la box et votre ESP.

Arduino OTA

Le code inclut la possibilité de le mettre à jour non pas par la liaison série entre le PC et l’ESP mais via le Wifi. C’est la fonction Arduino OTA (On The Air). Dans l’IDE Arduino, allez à Outils/Port/Réseau Port vous y trouverez mentionné la carte ESP32 du routeur. Sélectionnez là et le téléchargement se fera via le Wifi et non plus le port série. L’IDE Arduino vous demande un mot de passe lors de la compilation. Répondez n’importe quoi, 1 lettre minimum. Cette fonctionnalité est bien utile, une fois le routeur implanté probablement loin de votre PC.

Remarques

Si vous regardez les premières lignes du programme, il y a 2 constantes :

#define HOSTNAME « Linky-ESP32-« 

#define CLE_Rom_Init 1234567890

La première définie le début du nom de votre ESP sur le réseau, le deuxième est une clé qui permet de tester si le programme a déjà tourné. Au premier lancement, la mémoire de stockage en ROM est virginisée, par la suite, elle contiendra tous les paramètres de configuration et l’état des compteurs d’énergie en Wh chaque jour à 0h. Si vous voulez, virginiser à nouveau la mémoire, changé la constante. Attention, votre ESP32 repartira en mode point d’accès, puis une fois le réseau WiFi connu, il aura une adresse IP obtenue par la box internet (DHCP).

Debug en ligne

Si vous êtes branché par le port série à l’ESP32, les messages de debug sous la forme Serial.print(…) ou Serial.println() sont disponibles sur le moniteur de l’IDE Arduino à 115200 bauds.

Si vous êtes branché uniquement en Wifi, le debugger de Joao Lopes est implanté dans le logiciel. Il est accessible par le navigateur web. Téléchargez le code ici: https://github.com/JoaoLopesF/RemoteDebugApp , décompressez le zip dans un dossier quelconque et cliquez sur index.html. Rentrez l’adresse IP de l’ESP32 pour obtenir les messages Debug.print() ou Debug.println(…) .

Bugs Soft

Attention, si vous n’arrivez pas à communiquer entre votre PC et l’ESP32, c’est qu’il vous manque le driver pour l’interface USB. En général, c’est le CP2102 qui se trouve sur la carte ESP32. De nombreux Tutos sur internet expliquent comment l’installer. Exemple: https://techexplorations.com/guides/esp32/begin/cp21xxx/

Sur certaines configurations, lors de la compilation, il y a une erreur de librairie inexistante :…..include <hwcrypto/sha.h>
Avec un éditeur de texte, ouvrez le fichier dans vos bibliothèques Arduino C:/Users/Utilisateur/Documents/Arduino/libraries/RemoteDebug/src/utility/Websockets.cpp

Le début de l’adresse peut changer suivant l’utilisateur. Retrouvez le dossier Arduino pour localiser le fichier dans les sous-dossiers.

A la ligne 42, remplacez :
#include <hwcrypto/sha.h>
par
#include <esp32/sha.h>

Ne me demandez pas pourquoi, sur mon PC de bureau, je n’ai pas besoin de faire cette modification, sur mon PC portable, j’ai besoin.

Diagramme fonctionnel

L’ESP32 est un processeur bi-coeur. Le coeur 0,collecte les données du Linky. Le coeur 1 gère les communications Wifi.

Watchdog

Le fonctionnement de l’ESP32 est surveillé par un watchdog (chien de garde). Si aucun message n’est reçu du Linky local ou distant pendant 120s, l’ESP32 se reset. Si vous ne voulez pas être embêté par cela durant des essais, passez en commentaire //les lignes ou il y a ..wdt..

Comparaison Routeur à sonde ampèremétrique / Routeur avec un Linky

La version V2 du routeur utilise une sonde ampèremétrique ( https://f1atb.fr/realisez-un-routeur-solaire-pour-gerer-la-surproduction/) . La principale différence entre les 2 versions vient de la vitesse de réponse de la boucle d’asservissement en cas de variation de consommation dans la maison. La sonde ampèremétrique permet une mesure du courant et de la puissance toute les 40ms. Le routeur avec le Linky, mesure la puissance toutes les 2 secondes. Il mettra plus de temps à rejoindre l’équilibre. Par contre il est un peu plus simple à réaliser et fonctionne en triphasé.

Exemple de routage et régulation à Zéro Watt

Courbes Tension (rouge) et Courant (vert) en entrée de maison lors d’une régulation autour de 0 Watt.

Dans cet exemple, l’ouverture du triac vers le chauffe-eau est d’environ 50% du temps (5ms). Le système se régule pour avoir une puissance échangée avec le réseau public autour de 0W . Sur une durée d’une demi sinusoïde de 10 ms, on a une première période où l’on injecte de l’énergie puis le Triac s’ouvre, on consomme de l’énergie sur le réseau.En faisant une centaine de mesures du produit U*I sur la période de 20 ms on a un résultat proche de zéro en Watt. Par contre, pour la puissance apparente qui est le produit de la tension et du courant efficaces qui ne tient pas compte du signe (voir vidéo ci-dessous), on a une valeur importante en VA.

Votre fournisseur d’électricité vous facture en fonction des W ou Wh et non pas sur le VA (puissance apparente).

Affichage distant

Si on souhaite afficher la puissance consommée ou injectée en temps réel dans un endroit de passage de la maison, il existe un afficheur très simple qui s’allume lorsque l’on passe à côté. https://f1atb.fr/affichage-a-distance-consommation-ou-surproduction-electrique/

Sécurité

En travaillant sur ce projet en 230V, vous acceptez d’assumer la responsabilité de votre propre sécurité et de prendre toutes les précautions nécessaires pour éviter les accidents électriques.

Responsabilité

Articles sur le photovoltaïque

F1ATB André

Radio Amateur - Domotique - Photovoltaïque

Vous aimerez aussi...

819 réponses

  1. JP BARRES dit :

    Voilà la page données brutes

    Routeur SOUYRI
    Fichier non trouvé URI: /ajax_dataRMS Method: GET Arguments: 1 idx: 0

    Données distantes
    Données ESP32
    ESP On depuis : 0h 01mn
    Source des mesures : Externe (undefined)
    192.168.1.206
    Niveau WiFi : -22 dBm
    Point d’accès WiFi : 34:27:92:AF:6E:44
    Adresse MAC ESP32 : 08:D1:F9:9A:4C:54
    Réseau WiFi : Freebox-48F3E3
    Adresse IP ESP32 : 192.168.1.164
    Adresse passerelle : 192.168.1.254
    Masque du réseau : 255.255.255.0
    Charge coeur 0 (Lecture RMS) Min, Moy, Max : 2, 4, 1631 ms
    Charge coeur 1 (Calcul + Wifi) Min, Moy, Max : 1, 2, 1601 ms
    Espace mémoire EEPROM utilisé : 40 %
    Nombre d’interruptions en 15ms du Gradateur (signal Zc) : Filtrés/Brutes : 2/2

    Routeur Version : 4.04_RMS
    F1ATB.fr

  2. Thomas dit :

    Bonjour et merci pour ces supers tutos. Voilà plusieurs jours que je n’arrive pas à avoir de remonté du Linky, j’ai bien fais passé mon Linky en mode standard, revérifier les branchements, essayer plusieurs valeurs de résistance pour la résistance R1, la page « données brutes Linky en mode standard » reste vierge. Comment pourrais-je m’assurer que l’info du Linky arrive bien à l’ESP32 ?
    Je vous remercie pour votre aide

  3. Jean-Michel Pillone dit :

    Bonjour André,
    J’en suis à ma troisième version de routeur et le fonctionnement est parfait.
    Mon problème vient du fait que je n’ai pas de box et que c’est mon téléphone qui me sert de PA internet ce qui m’engendre des PB d’adresse IP qui change tout le temps même si j’ai choisi une adresse fixe comme le propose le tableau des paramètres , celle-ci n’étant pas toujours compatible avec le nouvel IP choisi par le téléphone.
    Est il envisageable de laisser l’ESP en PA , de ne pas entrer de SSID et PASSWORD et d’utiliser L’IP 192.168.4.1 sur le mon réseau local pour continuer de bénéficier de la communication en wifi sachant que je n’ai nul besoin d’aller sur internet pour communiquer mes mesures à Domoticz ou Home ….
    Je ne maitrise pas bien du tout le protocole de communication WIFI et ne me sens pas du tout les compétences pour aller bidouiller dans votre code.
    de même est il imaginable de modifier les temps d’enregistrement des courbes ou d’avoir le choix de les afficher ou pas.
    En tout cas chapeau bas pour votre travail, votre pédagogie, la perfection de vos vidéo et de vos explications. Je ne sais pas comment vous trouvez le temps de faire tout cela et de répondre à toutes les personnes qui vous interpellent. Un modeste don vous à déjà été adressé en remerciement il y a quelques semaines.
    Milles bravos, très respectueusement et admirativement.

    Jean Michel dans les Hautes Alpes

    PS : il me semble que vous avez abordé quelques explication sur les cartes ESP à relais qui ne sont pas équipées de circuit permettant le télé versement.
    Si c’est bien le cas dans quel article ou vidéo parlez vous de ces cartes de développement que j’aimerais utiliser pour une application totalement différente.
    D’avance merci .

  4. cpatrice35 dit :

    Félicitaion encore pour votre travail remarquable.
    J’ai une question certainement idiote à vous poser. En étudiant la version Linky du routeur, je constante que vous utilisez le GPIO26 pour l’entrée de communication TIC du linky. Pourquoi n’utilisons pas l’entrée GPIO3 (RX) de l’ESP32. ( je me dit qu’il doit y avoir une bonne raison, mais laquel ( je ne connais pas très bien ce modul). Merci pour votre réponse

    • F1ATB André dit :

      GPIO1 et GPIO3 sont utilisés par le port Série (TX,RX) qui sort vers l’USB. Mais l’ESP32 a 2 autres ports série disponibles sur les GPIO de votre choix.
      Cdlt

  5. Thomas dit :

    Bonjour André,

    Voilà plusieurs semaines que je réalise votre routeur linky, j’ai eu pas mal de difficultés communiquer avec le Linky (j ‘ai racheté un ESP chez un autre fournisseur puis OK). J’étais tout prêt à raccorder sur mon CE jusqu’à ce que je découvre qu’il est doté d’un thermostat électronique avec un système anti corrosion. Ce routeur est-il tout de même utilisable sur ce type de CE ? Auriez-vous un schéma de câblage pas trop compliqué ?

    Je vous remercie d’avance

    • F1ATB André dit :

      Il faut brancher le triac après le thermostat électronique. Certains ont mis des schémas sur le forum photovolatïque.
      Cdlt

  6. Laurent dit :

    Bonjour André,

    Je vous remercie pour le partage que vous proposez, c’est très utile et instructif.

    J’envisage de réaliser le routeur que vous proposez cependant, j’ai une question préalable svp :

    Est il possible d’alimenter des charges non inductives avec ce routeur, en effet j’aimerai pouvoir piloter lors de surplus la mise en marche d’une clim réversible. (air/ air) .


    Autre question svp :

    Est il possible d’ajouter 2 routeurs sur une même installation, cela afin de piloter une clim par exemple et le second routeur solaire serait destiné à une autre charge.

    Cordialement,

    • F1ATB André dit :

      Si vous voulez piloter une clim réversible. Cela ne peut se faire qu’en tout ou rien avec un relais. La clim ne va pas accepter du courant haché en entrée comme une simple résistance. Il y a de l’électronique dedans.

      On peut utiliser plusieurs routeurs pour différentes charges. Un seul se charge de la collecte des données de puissance et la distribue aux autres.

      Cdlt

      • Laurent dit :

        Ok, donc pour piloter l’alimentation d’une clim en ON / OFF on passe par un relais, ensuite il faut un scénario pour envoyer des codes IR adaptés à l’unité intérieure pour qu’elle démarre selon le besoin souhaité.

        Quel type de relais faut il prévoir pour cela ?

        Si on veut avoir plusieurs routeurs comme vous le proposez j’imagine qu’on utilisera pas le même code pour programmer l’ESP ?
        avez vous des versions de codes différentes pour ce type d’usage ?

        En vous remerciant,

        • F1ATB André dit :

          Il faut un relais pilotable en 3.3V . S’il n’est pas assez puissant pour votre clim, attaquez un autre relais plus costaud.

          Tout les routeurs on le même logiciel. C’est dans les pages web Paramètres et Actions que vous définissez ce qu’il faut.

          Cdlt

          • Laurent dit :

            Que se passerait-il si on commande un relais pour piloter une clim lorsque le surplus est de par exemple 3A et que soudain la clim demande plus de courant, par exemple 8A ?

            le courant requis pour le fonctionnement d’une climatisation n’est pas toujours constant, du coup je voudrais savoir comment se comporte le routeur dans cette situation.

            – – –

            Est ce que le routeur solaire offre la possibilité de limiter / plafonner le courant qu’il délivrera, je pense notamment à l’usage de recharge d’un véhicule électrique.

            Peut on paramétrer le routeur solaire pour alimenter la recharge d’un véhicule lorsque le surplus atteint un seuil mais limitera le courant délivré à un second seuil , cela afin de rester dans la courbe de la production solaire sans avoir à soutirer un complément d’énergie sur le réseau électrique qui serait alors facturé ?

            Cordialement,

          • F1ATB André dit :

            Le routeur n’envoi à la charge que le surplus disponible. Les Watt en trop qui partiraient sur le réseau Enedis.
            S’il n’y a pas de surplus, il n’envoie rien. Mais on peut le programmer pour qu’à certaines heures, on force l’ouverture à 100% (exemple : charge au tarif de nuit).
            Cdlt

  7. Didier dit :

    Bonjour André

    Bravo et merci pour tout ce travail.

    J’avais 2 questions:
    – pour utilisation avec Linky, pourquoi la valeur de PeriodeProfMillis est à 2? Une valeur plus grande ne suffirait-elle pas?
    if (Source == « Linky ») {
    LectureLinky();
    PeriodeProgMillis = 2;
    }
    – j’ai également fait des essais avec JSY-MK-194T. Parfois celui-ci ne réponds plus, avez-vous déja eu ce problème? Je suis obligé de couper son alimentation, le watchdog de l’ESP32 fait bien redémarrer le processeur, mais je pense que c’est mon module qui est planté. Je vais peut-etre voir pour pouvoir couper son alimentation en cas de reset…
    Encore merci
    Didier

    • F1ATB André dit :

      Pour le Linky, c’est lui qui impose son rythme de sortie des infos sur le port série. Le message dure plusieurs dizaines de ms. 2ms après avoir reçue le dernier message on retourne voir s’il n’y a pas autre chose qui arrive pour ne rien perdre.

  8. COMBES SERGE dit :

    Bonjour, merci pour votre travail, je n’ai pas trouvé mieux. Vous êtes passionnant pour un non initié.
    J’ai mis en place votre routeur en utilisant les panneaux plug and play de mon voisin pour le tester.
    J’ai branché le routeur sur la prise TIC du Linky.
    J’ai un module ESP32 wifi connecté au linky et un module ESP32 wifi connecté au tableau électrique (à10 m) avec le TRIAC sur le ballon d’eau chaude.
    J’ai un abonnement EDF 18 KVA en triphasé.
    Je voudrais à présent acheter 10 panneaux de 430 W et un onduleur monophasé 3K pour rester dans le cadre de la règlementation limitant à 3K une installation en auto consommation. ;
    Vous signalez dans une de vos explications que le linky peut redistribuer l’excédent de production d’une phase sur les autres phases.
    Si c’est bien le cas, et si j’ai bien compris, il me semble que mon projet peut être pertinent.
    Le but est d’éviter d’investir dans un onduleur triphasé, très coûteux pour une petite installation en autoconsommation.

    Merci

    • F1ATB André dit :

      Oui avec le Linky si vous injectez sur une phase et consommez sur les autres, il prend cela en compte en faisant la somme algébrique des puissances.

      Cdlt

  9. COMBES SERGE dit :

    Merci, ça me rassure

  10. FredVR dit :

    Bonjour André,
    Meilleurs Voeux pour 2024.
    Le router fonctionne à merveille 98% du temps, et je vous remercie encore pour ce travail et partage de connaissance.
    Mais depuis peu….
    Petit souci, de temps à autres, ma courbe de Puissance Active moyenne en W affiche des valeurs negatives délirante, ie -40 000W!!! la puissance apparente (ligne bleue) par contre reste positive.
    L’effet pervers, c’est que le router pensant qu’il y a une injection massive met le Triac à fond, même s’il n’y a pas de surplus d’énergie, d’où une consommation importante non justifiée.
    Je suis en EJP et j’ai remarqué que cela se produisait plutôt ces jours là, un ami en Tempo qui a installé votre routeur et qui est en système Tempo, se retrouve parfois dans la même situation en Jour Rouge.
    Je pense qu’il faudrait ajouter quelques ligne de prog, afin de s’assurer que le % du router reste à 0 quand le Puissance Active moyenne en W devient négative. Version 3.11
    Nous sommes tous deux en CACSI
    Je n’ai aucune idée pourquoi la ligne rouge passe en valeurs négative ÉNORMES, puis progressivement rattrape le ZÉRO et redevient normale.
    Une idée?
    Merci d’avance.
    Fred.

    • F1ATB André dit :

      Ce bug, dû à un échange d’une variable mal calculée entre les coeurs a été corrigé. Installez la dernière version V6.02_RMS pour prendre en compte les bugs corrigés. Cela n’a rien à voir avec le tarif Tempo qui n’est pas pris en compte dans ce code.

      Cdlt

  11. andre tornier dit :

    Bonjour André,
    j’ai fait le montage Linky qui marche super bien 👌 en V7 et j’ai vu des photo avec des options Actions suivant les heures Tempo , je suis en EJP , et j’ai rien trouvé dans le paramétrage pour cette option, Possible sur cette version?,
    Bien Cordialement,

  12. Romain dit :

    Bonjour, peut on remplacer le LTV 814 par un EL816C? Car pour moi les specs sont similaires

    • F1ATB André dit :

      Non, si vous regardez bien, il n’y a qu’une seule diode (un sens de courant) et non pas 2 (double sens) pour traiter les 2 1/2 alternances du signal sinusoidale.

      Cdlt

  13. Raff dit :

    Bonjour André,

    Je souhaiterais récupérer certaines informations de la zone données brutes . Telles que LTARF, infos sur les HC HP et surtout STGE.

    Comment puis-je procéder ?

    Merci

    • F1ATB André dit :

      Comment vous voulez les récupérer? Vous les avez dans les messages MQTT.
      Vous les avez en réponse dans /ajax_data

      • Raff dit :

        Ok je vais mettre en place MQTT pour récupérer sur mon Jeedom.
        Merci

        • Raff dit :

          J’ai ajouté manuellement le topic « linky/ajax_data »
          Mais rien n’arrive

          Les autres topics sont du genre « linky/pva » et fonctionnent bien.

  14. Raff dit :

    Erreur de ma part. J’ai une ancienne version. Je mets à jour.
    Désolé

  15. Patrice PFEUTY dit :

    J’ai enfin réussi à faire fonctionner le routeur solaire pour chauffer mon ballon d’eau chaude d’une puissance de 3000W. Les premiers essais avaient été fatals au triac mal refroidi. J’ai vu dans la dernière version le triac préconisé pour les forte charges. Le boitier présente une surface d’échange thermique nettement plus grande ce qui fait que le triac ne claque plus. Bravo encore pour cette superbe réalisation.

  1. 17 mars 2024

    […] : 9600 bauds, plus riche en informations qui est décrit sous forme plus complète de routeur ici. Dans sa version minimum avec le même harware qu’ici, il fournit toutes les informations en […]