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. André dit :

    Bonjour André,
    Est-il possible d’auto ajuster l’ouverture Max du Triac de telle sorte que ce %age s’ajuste en fonction du surplus et de la conso?
    Car si on y met exemple 30% cela fonctionne super bien, conso Linky 0 mais si je mets 40% je vois que la courbe 10 min est en dent de scie. J’en tire comme conclusion que ce %age doit varier en fonction de la valeur du surplus qui, forcément, fluctue. Je me trompe ou c’est plus subtile?
    Bonne journée.

    • F1ATB André dit :

      Non, montez l’ouverture à 100% et diminuez la réactivité à 5 par exemple. Vous n’aurez plus une consommation en dents de scie due à un routeur trop nerveux (qui réagit trop fort).
      Cdlt

      • André dit :

        Oui, c’est correct mais le 100% (ou 75%) n’est pas bon pour toute la journée – pas le même soleil – ou je me trompe?
        Cdlt.

        • F1ATB André dit :

          On laisse toujours à 100% sauf cas particulier avec 2 Triac pour ne pas envoyer toute la surconsommation sur un seul, mais répartir entre plusieurs.
          Le niveau d’ensoleillement n’est pas à prendre en compte.

        • JMichel dit :

          Bonjour
          je vous fait part de mon expérience. Chauffe eau 1600W sur triac.
          Mes meilleurs résultats semblent être si
          réactivité = 2 à 4 (très petit!!).
          Ouverture 100% *
          Pw= -100W **
          * puisqu’il le faut…(pourtant l’effet que vous décrivez, à savoir ouverture plus petite = meilleur résultat je l’avais observé).
          ** je ne suis pas sûr que la valeur négative de -100W soit judicieuse mais j’ai imaginé (!) qu’en choisissant Pw=0W le triac dépassait plus facilement la valeur interdite de puissance active (en dessus on paye!!!) avant de réagir pour repasser sur une puissance active négative.
          Même avec ces paramètres lors de la chauffe du chauffe eau la courbe ressemble très souvent à des dents de scies et d’autant plus que la production solaire est faible.
          Pour valider les effets de mes réglages, je vérifie le lendemain sur le site énedis la « conso » par tranche de 30min aux horaires ou seul le routeur fonctionnait (+ talon mais là…) Avec ce réglage je suis souvent à une puissance moyenne appelée de 0,08kW sur 30min contre 0,20kW lorsque la réactivité était de 20 ou plus.
          Bref ça fonctionne plutôt bien mais j’essaye encore d’affiner les réglages , c’est long… Par ex il me faudra retester avec Pw=0W.
          Voilà…

          • F1ATB André dit :

            C’est bien vous avez bien compris l’influence des réglages. -100W c’est pas idiot pour baisser le peu que l’on soutire lors des changements de conso en attendant que le routeur réagisse.

  2. lrigolo dit :

    Bonjour André, merci pour ce montage et ce tuto.

    Est-il possible de gérer une sonde de température avec l’ESP32 (thermostat) afin d’arrêter le SSR quand l’eau est chaude ?

    • F1ATB André dit :

      Pas actuellement.
      Ce sera dans une prochaine version mais normalement votre chauffe eau coupe au delà d’une certaine température.
      Cdlt

      • lrigolo dit :

        Non car c’est une pompe à chaleur (résistance d’appoint), seul le thermostat de sécurité réglé à 95°C coupe la résistance.

  3. Ad Campos dit :

    Bonjour André
    je suis sur table (pas connecté au Linky)
    Après avoir rentré identifiant et mot de passe il me renvoie le message « basculez vers le réseau Wifi . Linky-ESP32-9175452 »

    MErci

    • F1ATB André dit :

      Faites ce qu’il vous dit, vous allez sur votre réseau Wifi et vous vous connectez à l’adresse IP qui est apparue sur le port USB connecté à votre PC/Arduino

  4. Ad Campos dit :

    j’ai ce message sur arduino ide port série

    load:0x40078000,len:13964
    load:0x40080400,len:3600
    entry 0x400805f0
    Booting
    Linky-ESP32-15455744
    cle : 1234567890
    Fin adresse lecture;1580
    SSID:Linky-ESP32-9145452
    Pass:1234567890
    Wifi Begin : Linky-ESP32-9145452
    .6.6.6.6.6.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1Can not connect to WiFi station. Go into AP mode.
    Access Point Mode. IP address: 192.168.4.1
    Connection Failed! #0
    Niveau Signal WIFI:0
    WIFIbug:1
    Charge Lecture Linky en ms – Min : 0 Moy : 0 Max : 0
    Charge Boucle générale en ms – Min : 0 Moy : 0 Max : 0
    ESP32 ON depuis : 0.00 heures

  5. Ad Campos dit :

    ça marche !

  6. gilles dit :

    bonjour est ce que pour le « mode casci  » une amélioration sera faite pour un meilleur controle de la regulation , pour avoir un systeme qui regule mieux « autour de zero watt  » merci

    • F1ATB André dit :

      Non. Avec le CACSI, on ne peut détecter la potentielle surproduction. Le système qui contrôle le CACSI, bride la surproduction. Le routeur ne peut pas la détecter. Il faut être au-dessus de zero en seuil pour s’apercevoir qu’il y a de la surproduction potentielle.
      Cdlt

  7. Montvalt dit :

    Bonjour et d’abord merci pour ce site remarquable. je pense installer très prochainement une puissance de 2,5 kWc sur une installation en triphasé et compte sur le routeur linky pour consommer le surplus produit sur mon ballon eau chaude en tri . la question que je me pose est la suivante: faut il travailler sur chaque phase pour éviter le renvois d’énergie ou est ce que le linky ne considère que la puissance totale réinjectée. Dans un premier temps je vais récuperer les infos en provenance du compteur et les renvoyer à la maison qui se trouve à 40m, donc 2 ESP32.
    Cordialement D.L

    • F1ATB André dit :

      Le Linky fait la somme algébrique des 3 phases. On peut avoir 100, -50, -20 pour les 3 phases. Le résultat sera – 30W. Donc, l’ESP voit bien le global de pa puissance. Côté chauffe eau si c’est un triphasé, il faut mettre le Triac sur une phase et 2 relais sur les autres phases. Ensuite mettre des seuils de déclenchement légèrement décalé. Pax esemple 0 pour le Triac et -50 et -100 pour les 2 autres phases.
      Cdlt

      • Ludovic dit :

        Bonjour,
        J’ai la même configuration. Pour clarifier, faut-il simplement utiliser le signal de commande du triac comme signal de commande des 2 relais des 2 autres phases?
        Confirmez-vous qu’il faut des relais en mode « random »?
        Est-ce que cela changerait quelque chose si on utilisait 3 relais? (ie, un relais à la place du triac)
        Cordialement,

        • F1ATB André dit :

          Comme c’est montré sur le schéma électrique, vous avez un relais piloté par le GPIO22 et 2 autres relais, GPIO2 et GPIO17. En fait pour les relais, vous pouvez choisir n’importe quelle sortie de libre. Le Triac permet de piloter finement, le relais, c’est du tout ou rien. En combinant bien les seuils de déclenchement, on peut varier l’ouverture finement sur une large plage de 0 à 3.
          Je ne sais pas ce que vous entendez par relais random.
          Cdlt

          • Ludovic dit :

            Un relais SSR random s’ouvre immédiatement (pas d’attente de passage à zéro); il permet de faire un découpage de la sinusoïde.
            Certains routeurs solaires n’utilisent pas l’information de passage à zéro, et découpent à n’importe quel moment (ce qui génère plus d’harmoniques). Je ne connais les avantages/inconvénients des différentes architectures.

            Mon chauffe-eau étant en triphasé (branchement de 3 résistances d’1KW en étoile), je pensais qu’il serait possible de découper directement les 3 phases de manière synchrone; la première phase étant commandée par la carte triac et les 2 autres par un relais SSR (qui fonctionnerait donc à la cadence de commande du triac). L’avantage est que la puissance se retrouve bien répartie sur les 3 phases en même temps, et le mode triphasé fonctionnerait correctement (pas de déséquilibre entre les phases).
            Peut-on utiliser un relais SSR pour découper les 2 autres phase de manière synchrone avec la première?

            Avec le schéma proposé, les 2 relais fonctionnent de manière indépendante en tout ou rien. La séquence de régulation de puissance sur la première phase (avec le triac), couplée à la séquence d’ouverture des relais, doit probablement être complexe à décrire (à chaque fermeture de relais, on va avoir une consommation supplémentaire de 1KW, non?). Avez-vous un exemple de fonctionnement pour illustrer le comportement de la régulation en triphasé?

            Pour compliquer les choses, je prévois d’être en CACSI, et donc de travailler sur un seuil de consommation à 100W par exemple.
            Une commande en tout ou rien sur des résistances consommant 1KW, va donc créer de fortes variations de consommations. La régulation sur le triac ne risque-t-elle pas d’osciller?

            Cordialement,

            PS:
            Petit erreur de type dans Actions.cpp, ligne 216:
            if (OrdreOff.indexOf(« init ») >= 0) On = true;
            C’est probablement « OrdreOn »

          • F1ATB André dit :

            Oui, je pense qu’avec 2 relais SSR random, on pourrait piloter les autres phases. Il y aura toujours pour les faibles ouvertures du déséquilibre, car ouvrant au même instant la tension n’est pas la même sur toutes les phases.
            Avec des relais classiques, il faut 2 seuils pour chaque relais espacés de plus que la consommation pour éviter les oscillations. Après, quand un relais passe à On, le Triac qui était à 100% va retomber à zéro. Les relais sont des sauts de valeurs entières de puissance (1kW dans votre cas). Le Triac fait les décimales. Il faut bien ajuster les seuils.
            En 216, je pense que c’est OK.

            Cdlt

  8. Joel C dit :

    Bonjour André,
    Mon Linky vient de passer en mode standard (constaté sur ce dernier) et j’essaie de mettre en place la partie mesure.
    Sur la page d’accueil, je n’ai aucune information qui remonte du Linky.
    Mon optocoupleur est un PC814 dont les caractéristiques sont les mêmes que le LTV814.
    Pour R1, j’ai essayé 500, 1000, 1500 et 3000 ohms.
    Les fils entre le Linky et l’ESP32 font une dizaine de cm.
    J’ai essayé avec un autre optocoupleur en vain.
    Malgré tous mes tests, je suis sec 🙁
    Encore merci pour le temps que vous prenez pour vos réponses.
    Cdt,

    • F1ATB André dit :

      Désolé, mais je ne vois que l’erreur de câblage.
      Cdlt
      F1ATB

      • Joel C dit :

        Merci pour votre réponse.
        J’ai tout revérifié, recâblé mais en vain.
        Mis à part l’optocoupleur qui n’est pas le même, je ne vois pas d’où cela peut venir.
        Mon ESP32 est un DOIT ESP 32 DEVKIT V1.
        Comment savoir si le Linky envoie bien des infos ? Parfois le symbole « <-" apparaît sur le Linky, cela veut-il dire qu'il fait une transmission ?
        J'ai remarqué que sur votre copie d'écran, c'est le symbole "<-P" qui apparait, cela fait-il une différence ?
        Je fais mes tests sur une plaque d'essai et j'ai peut-être mis i1 et i2 en court-circuit. Ces sorties ne sont pas si fragiles ?
        Désolé pour toutes ces questions et encore merci pour vos réponses.
        Cdt,

        • F1ATB André dit :

          Vous avez peut-être un problème de masse (GND) non câblé. Certaines cartes , on m’a rapporté, n’ont pas les pins GND reliées entre elles.
          Ensuite regardé la page des données brutes ou il y a le tableau sans traitement de tout ce qui est reçu.
          Cdlt

    • Michel Voisin (F1UVM) dit :

      Bonjour
      essayez avec un autre ESP, j’ai eu le meme problème dans mon cas cela à fonctionné …..
      Personnellement j’avais controlé les signaux à l’oscillo sur la broche de l’ESP et ça semblait bon….
      je pense qu’il est judicieux d’avoir un deuxième ESP programmé en cas de panne où de dysfonctionnement (vu leur prix très abordable.).
      J’utilise des PC814Sharp mon câble blindé 2 paires fait 12metres vers la maison + 7metres vers mon « labo » et la lecture du Linky se fait correctement sur mes ESP. je suis en cours de mise au point de l’installation avec 2 ESP VROOM 32 30 pins et 2 ESP Vroom 38 pins
      Cordialement….

      • Joel C dit :

        Merci pour vos réponses.
        @André : je n’avais qu’une seule masse de cablée mais hélas en cablant la deuxième c’est identique mais je retiens la leçon.
        Au niveau des données brutes, je n’ai que les données de l’ESP32 mais rien au niveau du Linky.
        @Michel : j’ai essayé avec un autre ESP32 même modèle mais c’est pas mieux.
        J’ai un autre modèle ESP32 en commande, je le testerai.
        Heureusement j’arrive à faire fonctionner la version UxI mais j’aimerai comprendre pourquoi je n’arrive pas à faire fonctionner cette version.
        Je n’ai aucun moyen d’analyser ce qui arrive au niveau de la GPIO26, je me demande si je ne vais pas investir dans un oscillo numérique.
        Encore merci.

        • Joel C dit :

          Bonjour André,
          Je viens de recevoir les LTV814 et me suis empressé de tester à la place du PC814 et ça marche !
          Pourtant le PC814 fonctionne pour Michel V. (F1UVM). J’en avais aussi testé plusieurs modèles.
          L’ESP32 a rebooté plusieurs fois, je vais chercher pourquoi. Je suis pressé d’assembler tout ça et de le faire fonctionner.
          Encore merci.
          Cordialement,

          • F1ATB André dit :

            L’ESP32 reboot s’il ne reçoit rien du Linky. C’est le watchdog. Si vous ne voulez pas etre embçeté passez en comentaire // les lignes contenant esp_task_wdt…
            Cdlt

          • Joel C dit :

            Bonjour André,
            Je n’ai plus de reboot depuis que les composants sont soudés.
            Je me pose des questions sur le déport du triac. Les trous où était soudé ce dernier sont vraiment petits. Quel genre de cable avez-vous utilisé ? je ne pense pas que du multibrin 1,5 mm2 puisse passer, ce qui semble être le minimum ?
            Avez-vous repercé des trous plus grands car je ne suis pas outillé avec des forets aussi petits.
            Merci.
            Cordialement,

          • F1ATB André dit :

            Oui pour le Triac, j’ai percé plus gros pour les 2 fils sur les 3 qui transportent la puissance en 230V. Pour le fil si vous montez à plus de 2000W, mettez plutôt du 2.5mm². Le 1.5mm² est OK pour les puissances inférieures à 2000W ou 10A.
            Cdlt

          • Nutta dit :

            Pour le déport du triac, j’ai juste soudé la gachette avec un fil fin puis les deux autres pattes sont câblées directement sur le bornier (sur « L » et sur « LOAD ») sans passer par le circuit imprimé.

          • F1ATB André dit :

            C’est une bonne solution.

          • Joel C dit :

            Bonjour,
            @Nutta : merci pour votre réponse, c’est finalement ce que j’ai fait en suivante cette vidéo :
            https://youtu.be/9NCN-5LjdzM?si=akxZE9DoPvPvEHKf
            Cordialement,

  9. landemaine dit :

    Bonjour André
    J’ai finalisé l’installation :
    panneaux solaires 750 w + 350 w = 1100 w
    routeur seuil Pw = 10w, réactivité 50% , ouverture max 100%
    chauffe-eau avec résistance 2400w à 6 bornes

    J’ai un talon de 350w donc potentiellement 750w à injecter dans le chauffe-eau.
    Quelle est le câblage le plus efficace des résistances du chauffe-eau ?
    – 2 ou 3 résistances en parallèle ?
    – 2 ou 3 résistances en série ?
    – une seule résistance ?

    Mon chauffe-eau fait 300 litres mais sur des journées bien ensoleillées sans prélèvement, je devrais avoir la température ECS qui augmente ?
    Merci
    Alain de Touraine

    • F1ATB André dit :

      Le câblage des résistances doit être indiqué dans la documentation du chauffe-eau pour un montage monophasé ou triphasé.
      Si vos panneaux fournissent 800W pendant 4h, pour le chauffe-eau de 300L, cela fait une augmentation de température 9.2°.

  10. guy dit :

    Bonjour André,
    je suis intéressé par ta réalisation qui sort des routeurs ordinaires .
    si on a un émetteur quel est le nombre maxi d’actionneurs et par actionneur combien de triacs et de relais au maxi ?

    • F1ATB André dit :

      Un triac par actionneur (ESP32) et pour les relais autant que de pin de libre sur l’ESP32. Le nombre d’actionneurs n’a pas vraiment de limite, mais cela charge le WIFI de la maison.
      Cdlt
      André
      F1ATB

  11. Regis ARNAUD dit :

    Bonjour André.
    Toute mes félicitations pour ce tutoriel très intéressant et instructif qui a dû te demander beaucoup de temps.

    Mes panneaux solaires (3 KW) ne seront installés que début septembre, mais je me suis déjà lancé dans la réalisation de ton montage (Routeur Solaire avec un Linky V3.11).
    Mon compteur Linky se situe en bordure de route à une bonne vingtaine de mètres de la maison.
    Comme je n’étais pas très « chaud » pour ajouter un point d’accès wifi qui soit accessible de l’extérieur, j’ai décidé de tirer un câble entre le compteur et mon garage.
    Cable Ethernet cat 6 qui fait 27m et comme tu le signales, la longueur est un gros andicap.
    J’ai donc galérer pas mal afin d’obtenir un signal correct et sans erreur.
    Toutefois j’ai réussi a obtenir une liaison fonctionnelle qui n’a plus d’erreur depuis plus d’une semaine.

    J’ai dû ajouter à l’interface avec l’opto coupleur un transistor à effet de champ comme on trouve sur internet (BS170), mais le résultat était toujours chaotique.

    D’autre part le signal 50kHz est bien déformé sur le front descendant aux environs du zéro, j’ai ajouté une charge de 33 K entre la borne A et I1 et un condensateur de 0.47 µF en parallèle avec une résistance de 220k entre la borne I1 et le gnd du ESP32 (le 0v).
    En effet le signal du compteur est totalement « flottant » ce qui ne plait visiblement pas trop au microcontrôleur malgré la présence de l’opto .

    La résistance d’entrée de l’opto est passée à 750 ohms.

    La sortie de l’opto attaque le gate du BS170 avec une résistance de 3,3k de rappel au 0v en parallèle avec un condensateur de 1 nF.
    Ce condo est utile car l’opto bien qu’excité sur les alternances positives et négatives du 50KHz n’a plus de signal au passage du zéro de l’alternance, le petit condo bouche le trou.

    Le drain est rappelé au + 3,3v par une résistance de 4,7K quant à la source elle est reliée au 0v (gnd)

    Enfin j’ai ajouté (par habitude) un chimique de 10µF entre la borne 5v et le zéro de l’ESP32 ainsi qu’un 10 µF en parallèle avec un 0,1µF entre le 3,3v et le 0v.

    Très important également de relier le blindage du câble Ethernet à la terre et au zéro du microcontrôleur . Ne pas relier le blindage du câble coté compteur.
    Autre point important, utiliser une paire du câble pour les fils I1 etI2, pour le A utiliser un autre fil et pour les 5 fils restant les relier également au zéro.

    Je ne savais pas comment t’envoyer le schéma sinon mon message aurait été plus court !!!.

    J’ai 2 autres ESP32, un pour la chaufferie et l’autre pour la piscine. Tous ce petit monde communique sans problème.
    Par contre le triac pour le chauffe-eau me parait chauffer un peu trop malgré le gros radiateur sur lequel je l’ai installé. ‘chauffe eau de 2,2KW).
    Je viens de commander un triac BTA40 800B qui a un boitier capable de dissiper plus de chaleur et a des cosses faston pour les connexions…A suivre.

    • F1ATB André dit :

      Parfait et intéressant.
      Si tu as un schéma électrique de ton entrée, tu peux me l’envoyer à f1atb.fr@gmail.com
      Je le publierai pour aider des personnes dans ton cas.
      Cordialement
      André
      F1ATB

  12. Gilles dit :

    Bonjour André merci pour cette solution simple qui a l’avantage de marcher en triphasé. Mon probleme: j’ai plus de 80m entre mon linky et mon tableau et chauffe eaux situés en sous sol. Y a t’il une solution ? Puis je utiliser une liaison filaire au lieu du wifi ?

    • F1ATB André dit :

      80m c’est important… Une liaison WIFI serait facile avec des antennes bien dégagées.
      Pour du filaire, j’ai publié sur le site le montage de Régis A. qui a fait du bon travail sur une longueur de 27m. Cela pourrait fonctionner avec 80m.
      Une autre solution serait de décoder près du Linky en utilisant un câble Ethernet pour passer l’alimentation et le signal décodé. Mais cela nécessite un oscilloscope et de la compétence en électronique.
      Cdlt

  13. landemaine dit :

    Bonjour
    Parmi tous les lecteurs du site d’André, quelqu’un connait-il un projet de suiveur solaire en DIY (genre routeur linky !) ?
    merci

  14. JC dit :

    Bonjour ! super travail !
    J’étais en train d’essayer un autre routeur (tignous), mais compliqué à mettre en place chez moi.
    Un esp32 en stock programmation ok, commande en cours sur Ali pour le reste j’ai un ssr en stock mais j’ai commandé un RobotDyn au cas où ! je verrai lequel sera plus facile à mettre en place, linky à 20M antenne déporté obligatoire !👍

  15. Michel Voisin (F1UVM) dit :

    Bonjour André
    Je me permet de vous solliciter
    depuis 3 mois j’ai intégré à mon installation votre routeur en version 3.0 avec un ESP Vroom (38 pin)
    et cela commute l’Energie sur le chauffe-eau mais tout le temps à 1,8Kw si le solaire fait moins de 1,8KW le complément d’énergie est pris sur le secteur ou sur la batterie selon le paramétrage de mon Victron MPII.
    Il n’y à jamais de modulation de la puissance envoyée.
    J’ai réalisé un 2° montage avec un autre ESP Vroom (30 pin) derrière je mets une charge de 1KW .Pour l’anecdote en faisant des tests le radiateur d’origine et le triac ce sont dessoudés seuls. mais toujours pas de variation de puissance. J’ai contrôlé à l’oscillo les signaux de commande du Robodyn ,le signal ZC est bien présent 3v positif au passage à 0 du secteur mais le PWM ne varie jamais.et reste positif aves des pulsations fixes à OV étroites de 1
    microsecondes cycliques
    que je règle la valeur Ouvre Max à 25 ou 50 ou 100 cela ne change rien il n’y à que ON-OFF qui agit.
    j’ai ce problème depuis le début et j’ai reflashé mes ESP de version 2.2.0.0 à 2.4.0.0 mais cela n’à rien changé.
    Au début de l’utilisation de mon système solaire j’avais installé un variateur à triac +potentiomère que je shuntais avec un relais quand j’avais suffisamment de puissance. Mais votre solution est bien plus performante je voudrais bien la finaliser. Au départ j’ai été bluffé par la compilation qui était nickel surtout quand on voit le nombre de lignes de code et la quantité de bibliothèques qui ne plantent pas. Je suis loin d’etre un expert en C++ et depuis 10 ans que je pratique L’Arduino j’ai passé plus de temps à régler les problèmes de bibliothèques qu’à adapter du code:] .
    Lorsque j’ai passé la commande de mon installation (faite par mes soins)chez Oscaro solaire j’avais commandé un routeur solaire Fronius qui ne fonctionnait pas avec mon chauffe-eau stéatite (Alim 15KHZ). j’ai pris 4 panneaux Solaires en remplacement ce qui me fait 4,8 KW + 4,8KW de batteries Pylontech.
    Mon souhait est d’avoir un installation optimisée et d’étre indépendant pour me dépanner
    Merci d’avance
    Cordialement

    • F1ATB André dit :

      Déjà passé à la version 3.11 du routeur Linky.
      Ensuite regardez les valeurs de puissance active moyenne en page d’accueil. Verifiez quelles vous semble cohérente avec la consommation de la maison.
      Laissez ouvert à 100% le Triac
      Mettez le seuil du Triac à zéro si vous n’avez pas de CACSI. C’est-à-dire que vous avez des valeurs injectées qui s’affichent.
      Si vous avez signé un CACSI ou que vous n’êtes pas déclaré producteur, mettez le seuil à 100

      Cordialement

      • André dit :

        Bonsoir,
        J’ai essayé – je suis CACSI – d’obtenir par téléphone puis mail d’avoir la seule information SINSTI impossible ce n’est pas légal ……
        Franchement je ne vois pas ce qui pourrais créer un problème puisqu’on a déjà le réinjecté total.

        Quelqu’un à la connaissance de cette loi sur l’information SINSTI. Bien sûr, je comprends parfaitement que le fait de passer producteur soit bien règlementé …….
        CDLT.

      • Michel Voisin dit :

        Merci pour la réponse rapide
        Je fais de l’auto consommation au maximum et revente du surplus
        Je vais faire la mise à jour 3.11, continuer la mise au point et mettre en place un accès distant sécurisé à ma configuration.
        Cldt

  16. Michel Voisin (F1UVM) dit :

    Bonjour André
    j’ai fait la mise à jour en version 3.11 et le problème est le meme sur mes 5 ESP32 testés
    par contre j’ai contrôlé le signal pulseTriac sur la broche 22 a l’oscillo il est quasiment
    toujours à l’état haut avec de rares impulsions à l’état bas, ce qui explique que le triac est
    conducteur.
    en cochant/déchochant la case titre et en sauvegardant on observe une modulation de largeur d’impulsion qui
    est majoritairement haute après 5 secondes, expliquant pourquoi la puissance envoyée au chauffe eau est toujours maximale
    je suppose que c’est lié aux l’ESP32 achetés sur Aliexpress.
    Sauf erreur de ma part je pense qu’il faudrait dans ce cas inverser le paramètre pulseTriac où ajouter un transistor pour inverser le signal..
    .ou encore remplacer l’ESP32 par le meme que le votre.Upesy
    Dautre part pourrait on ajouter un paramètre pour activer le chauffe-eau l’hiver au tarif de nuit au une heure déterminée ?
    ce que je faisait avant avec un relais shuntant l’ancien variateur avec une horloge et un relais
    je vous ai envoyé une petite vidéo via swiss transfert
    merci d’avance pour votre avis
    Bonne journée
    Cldt
    MVOISIN

    • F1ATB André dit :

      En premier dans la page Action, testez différentes programmation.
      Triac On : mettez une lampe à filament ou un sèche-cheveux qui consomme bien pour vérifier que c’est bien On
      Triac Off : vérifiez que l’objet en sortie s’arrête
      Programmez l’ouverture avec un seuil légèrement au-dessus de votre consommation actuelle et vérifiez l’ouverture à quelque % du Triac.

      Les ESP32 viennent tous de Chine. Ils sont désignés et fabriqués là-bas. J’en utilise des dizaines sans problème.

      On peut programmer des actions spécifiques, comme mettre ON la nuit. Dans la page Action cliquez sur le + pour rajouter une plage horaire.

      Cdlt

      • Michel Voisin (F1UVM) dit :

        Bonjour et merci de votre réponse

        test sur une deuxième configuration identique à celle en service avec un décapeur thermique de 2000W

        1° Triac On : mettez une lampe à filament ou un sèche-cheveux qui consomme bien pour vérifier que c’est bien On >>OK= FAIT
        2° Triac Off : vérifiez que l’objet en sortie s’arrête >> >OK c’est bon
        3° Programmez l’ouverture avec un seuil légèrement au-dessus de votre consommation actuelle
        et vérifiez l’ouverture à quelque % du Triac. >> le triac ne fonctionne qu’en tout ou rien >>> pas de variation de largeur d’impulsion quelque soit le %.
        pas de variation de puissance de sortie >> le décapeur On ou OFF sans variation de puissance..

        quelque soient les manip que je fais depuis le début du projet la largeur des impulsions n’a jamais varié…
        la seule variation qui se produit est celle que l’on voit dans la vidéo d’oscillogramme que je vous ai envoyé.
        +——————————————————————————————
        ça a toujours fonctionné en puissance maxi (triac ouvert a fond),mais si la production solaire était inférieure à 2000W le complément était d’abord soutiré des batteries
        et si les batteries étaient désactivées cela soutirait depuis le secteur .

        Sur la partie chauffe-eau j’ai installé un compteur d’Energie ou la puissance instantanée n’est jamais inférieure à 1800W = puissance du chauffe-eau

        J’ai ,sur ma configuration de test modifié et inversé pour la valeur digitalWrite(pulseTriac) tout ce qui etait LOW je l’ai passé à HIGH et inversement.
        Dans ce cas la largeur des impulsions sur le triac varie mais plus rien n’est cohérent dans le ON/OFF de l’interface web.

        à ce jour je ne sais plus quoi faire sauf à espérer que quelqu’un ai le meme problème .

        actuellement la production solaire est relativement élevée et toute l’énergie est envoyée au chauffe-eau donc pas besoin de moduler la puissance injectée
        je programme le système pour injecter à partie de 10H30.

        Cordialement
        MVOISIN

        • F1ATB André dit :

          Vous n’auriez pas la sonde de courant monté à l’envers? Faites lui faire un demi-tour pour passer le câble de phase dans l’autre sens.
          Cdlt

          • Michel Voisin dit :

            « Vous n’auriez pas la sonde de courant monté à l’envers? Faites lui faire un demi-tour pour passer le câble de phase dans l’autre sens. »

            Bonjour
            probablement la réponse se destinait à une autre personne :)….

            Je n’ai pas de sonde de courant puisque c’est une V3.11
            Cldt

          • F1ATB André dit :

            Pardon avec le Linky vous n’avez pas de sonde. Les valeurs du Linky sont elles correctes. Dans la page données brutes, vous avez un grand tableau blanc avec toutes les données brutes. Il faut qu’elles soient cohérentes et qu’il n’y ait pas d’erreur de transmission / décodage de la trame du Linky.
            Cdlt

  17. JMichel dit :

    bonjour
    dans la partie « réalisation / exemple » vous indiquez et illustrez comment un combo Linky +ESP32 (tout seul, non branché sur un triac ou un relais!!!!!!) permet par liaison Wifi d’indiquer à un autre ESP32 distant les infos du linky. Ce que je ne vois pas et n’arrive pas comprendre à coup sur c’est cela:
    soit un ESP32 ( que je nomme ESP1) connecté par fil au linky et pilotant un triac (pour le chauffe eau) , cet ESP1 peut-il servir de relais wifi à un autre ESP distant (ESP2) ? ESP2 disposerait donc de son alim + un relais ou un triac par exemple.
    Espérant avoir été assez clair, merci par avance.

    • F1ATB André dit :

      Oui tout a fait, vous pouvez avoir ESP1 connecté au Linky avec un Triac et ESP2 connecté à ESP1 (par Wifi) pour avoir les infos du Linky et qui pilote également un Triac ou un relais.
      J’ai cette configuration chez moi avec ESP2 qui pilote le réchauffeur Piscine.
      Cdlt

  18. Jean-Claude MOTTIN (F6AAM) dit :

    Bonjour André
    Tout d’abord félicitations pour toutes vos réalisations.
    J’ai réalisé la version linky qui fonctionne parfaitement. Néanmoins dans la page « Actions » je n’ai qu’une seule fenêtre « actions de routage » et dans la page « Accueil » je ne vois pas l’affichage correspondant à l’action de routage qui devrait apparaître sous le pourcentage d’ouverture du triac.
    Avez-vous une petite idée ?
    73 Jean-Claude

    • F1ATB André dit :

      C’est normal. Si vous la remplissez avec les données demandées, une nouvelle action vierge sera créée.
      Cdlt

      • F6AAM Jean-Claude dit :

        Merci pour votre réponse qui est tout à fait logique, car il faut au moins renseigner la sortie GPIO qui est concernée et comment elle doit agir.
        Cdlt Jean-Claude

  19. Olivier D. dit :

    Bonjour André, j’ai enfin mon contrat de producteur et j’ai enfin mis en place le module distant sur mon chauffe-eau. Ayant un gros ballon de 300 L et donc 3000 W, j’ai déporté le triac sur un gros refroidisseur comme préconisé. J’ai tout câblé et j’ai forcé le triac en ON pour tester. Cela fonctionne mais au bout de 2 mn, le radiateur devient bouillant au point de ne pas pouvoir laisser la main dessus. J’ai donc préféré arrêter le test avant que le triac ne brûle.
    Est-ce que quelqu’un a déjà réalisé ce montage avec un ballon de 3000W et si oui avec quel triac ? Sinon que dois-je faire ? Juste changer le triac par un plus puissant ? Pour info, le module que j’utilise est le Robodyn de 24A et le dissipateur est un 40x40x100mm.

    • F1ATB André dit :

      J’ai fait le test avec mon réchauffeur de piscine dont la description se trouve sur le site. Il fait 3000W, je l’ai poussé au max durant 15mn, la température est montée à 85° au niveau de l’attache du Triac sur le refroidisseur qui est plus grand que le vôtre. C’est trop…
      Moi aussi je dois augmenter encore le refroidisseur. En attendant, je limite l’ouverture du Triac.

      Cdlt

    • Alain dit :

      J’ai eu le même problème avec le réchauffeur piscine 3kw, j’ai augmenté la taille du radiateur, car la dissipation du triac (j’ai mis un dimmer de 24A) à puissance maxi est d’environ 30/50 watts ce qui chauffe beaucoup, de plus pendant la période chaude, le local piscine était à 32°et le petit radiateur dépassait les 90° après cinq minutes, ce qui était dangereux, après l’ajout (un peu bricolé ) du gros radiateur, la température de l’ensemble ne dépasse pas 53° en pleine charge. J’ai aussi mis des câbles de 2.5mm2 car les 1.5mm2 chauffaient aussi.
      Les photos sont sur ce lien : https://e.pcloud.link/publink/show?code=kZ3HY2Zp67RQXTDFxBfJ5XnfIj8a4xxsTNX
      Pour le routeur de chauffe eau, un radiateur plus modeste suffit.
      Mais c’est un point important à prendre en compte pour éviter des accidents.

      • F1ATB André dit :

        Bien votre installation de réchauffeur et le refroidisseur. J’ai récupéré votre photo pour le site.
        Cdlt

        • Olivier D. dit :

          Bonjour André, j’ai eu une idée pour améliorer le refroidissement mais j’aurai besoin de vos compétences pour le code.
          J’ai utilisé un radiateur de 40x40x100. Sur les faces de 40, il y a des trous pour visser un ventilateur.
          L’idée serait de relever la température du radiateur par une sonde type Dalas DS18B20, et lorsque la température dépasse un certain seuil, déclencher le ventilateur afin de baisser la température.
          J’ai tout ce qu’il faut pour tester et pour mesurer la température avec un sonde K.
          Je pense que cela pourrait aussi servir à tout ceux qui veulent alimenter un CE à 3000W.
          Merci

          • F1ATB André dit :

            La version sur laquelle je travaille actuellement dispose de cette fonctionnalité. Je pense la publier courant Septembre.
            Cdlt

      • Georges dit :

        Bonjour Olivier,

        J’ai le même chauffe-eau que vous (300L, 3kW alimenté en 240V monophasé). Pour dissiper les 13W du triac traversé par un courant de 13A à ouverture 100%, il m’a fallu également dessouder et déporter celui-ci sur un dissipateur externe au boitier. Pour info, j’ai utilisé un triac BTA25-600B en RD91. Le triac est branché avec des cosses femelles isolées au bout de deux fils souples de 2,5mm² directement reliés au bornes L et Load du Robotdyn. Ainsi le courant fort ne passe plus par les pistes et je peux ouvrir la boite sans risque. Quant à la gâchette, elle est reliée par un petit fil soudé à la carte du Robotdyn + une cosse femelle coté triac.

        Concernant le dissipateur, compte tenu de l’emplacement de mon installation, je m’étais fixé pour objectif de ne pas dépasser 40°C en surface lorsque la température ambiante est de 25°C (poussière de bois et projection de copeaux de sciure) . Les calculs de dissipation me donnaient une Rth(sa) de 0.5°C/W. Voici les dissipateurs que j’ai testés en mesurant la température entre les ailettes ainsi que sur le triac, entre les cosses. J’ai estimé leur Rth approximative à l’aide de ce calculateur en ligne : Thermal Resistance Calculator for Plate Fin Heat Sink (myheatsinks.com)
        Je précise également que je ne souhaitais pas avoir de ventilateur à cause de l’atmosphère parfois poussiéreuse du lieu.

        1) Rth=2°C/W : 50x70x40 ; socle 10 ; 5 lames de 5mm
        2) Rth = 1,7°C/W : 50x150x28mm ; socle 6mm ; 15 lames de 3mm
        3) Rth = 1°C/W : 100x120x18 ; socle 2mm ; 20 lames de 1mm
        4) Rth = 0,94°C/W : 100x100x26mm ; socle 4mm ; 12 lames de 4mm
        5) Rth = 0.55°C/W : 200x160x40mm ; socle 11mm ; 16 lames de 4mm

        Les 4 premières sont issus de mon stock de récupération. Hélas, j’ai dû acheter celui qui a convenu, c’est à dire le dernier de la liste à 0,55°C/W comme l’indiquaient les calculs.
        Avec ce dernier, la température dans les ailettes atteint 36°C à T°ambiant = 22°C et la température du triac ne dépasse pas 46°C lorsque le courant traversant est maximum durant plus d’une heure (100%). Je l’ai trouvé chez RS : Dissipateur thermique RS PRO 200 x 160 x 40mm, 0.55K/W | RS (rs-online.com).
        Mais c’est un gros morceau qui pèse pas loin de 1kg et qui nécessite un boitier adapté. J’ai utilisé celui-ci chez TEMU : Pb-4x, 9,21 * 6,92 * 2,79 Pouces, 1 Pièce, Boîte De Jonction En Plastique Montée En Surface, Ventilation Et Dissipation Thermique, Ouverture De Porte Latérale, Boîte De Courant Faible, Boîte De Distribution Dalimentation – Maison Intelligente – Temu France

        Dans un autre contexte, le n°4 (100x100x26mm) aurait pu convenir. Sa température en surface atteignait 46°C à Ta=25°C, mais les autres étaient trop bouillants.

        J’ajoute que j’ai utilisé de la pâte thermique en très très fine couche entre le triac et le dissipateur pour gagner quelques degrés.

        Loin de moi l’idée de détenir la vérité. C’est une approche quasiment empirique mais je souhaitais la partager et je suis preneur de toutes remarques.

  20. Michel Voisin (F1UVM) dit :

    Bonjour
    Merci d’avoir répondu
    j’ai vérifié le décodage du linky qui est parfait, les valeurs sont cohérentes et coïncident avec l’interface de mon Victron
    j’ai d’ailleurs 2 ESP32 programmés sur la meme ligne filaire dont les données brutes en temps réel sont parfaitement synchrones..
    la puissance injectée apparait bien.

    Si vous vouliez plus d’informations il serait possible de prendre la main sur ma configuration via un pc dédié et UltraViewer

    en aparté::
    Pour le refroidissement du radiateur j’ai utilisé du code trouvé sur internet sur un ESP8266 sur un Wemos Mini D1 pour piloter un thermostat avec capteur D1820 Voila un lien:
    https://martinius96.github.io/WiFi-termostat/en/
    Cdlt