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. Ad Campos dit :

    Celà fonctionne. Retour d’expérience

    Box SFR dégagée (réception)
    ESP 32 avec antenne déportée à 4 m du sol

    Je vais attaquer l’autre projet d’André (Affichage à distance consommation ou surproduction électrique)

    Bravo !

  2. Romain (F4HTU) dit :

    Bonjour André,
    Bravo pour ce routeur, je suis « tombé » dessus en me renseignant sur le ZeroCross pour en faire justement un mais cela n’est plus la peine…
    La version linky fonctionne dans une résidence secondaire équipée de 4 panneaux avec micro-onduleur parfaitement.

    Je vois que « Boris » a déjà fait un PCB, donc pas la peine d’en développer un, mais cela vaut le coup de rajouter une ou deux entrées TOR, et une ou deux sorties pour l’avenir.
    Petite question, je voulais y rajouter un ou plusieurs boutons poussoirs et LED, ex:
    – Marche Forcé 2H du Triac en cas de pluie ou besoin d’eau chaude sans passer par un relais en //
    – Voyant pour surveiller l’état de sortie Triac (ON si triac>20% d’ouverture)

    Ayant chez moi une installation solaire composé d’un Victron RS Solar ( RS48/6000) avec une passerelle Cerbo GX, celui-ci fournit la totalité de la maison, gère la charge des batteries, et vient piocher de l’énergie sur son entrée secteur si pas assez de solaire ou de batterie. https://www.victronenergy.fr/inverters/inverter-rs-smart-solar

    Le routeur ne peut fonctionner correctement sans décoder les informations du bus de données CAN du Victron. Il a besoin de connaitre la puissance Grid, la puissance de sortie, l’état des batteries (charge ou décharge), et la puissance solaire.

    Pour cela, je vais m’atteler à écrire la fonction du décodeur CAN pour le protocole Victron,
    Une fois cela, fais-je vous l’enverrait pour en faire profiter la communauté.

    Cdlt
    Romain

  3. Michel Voisin (F1UVM) dit :

    Bonjour André
    EUREKA enfin problème résolu :)…..
    Bêtement je n’utilisait que la fonction ON/OFF dans la partie routage quand je mettait une valeur dans Seuil PW et Ouvre Max je terminais par ON ou OFF
    selon les cas et c’est pour cela que ça ne fonctionnait pas …..Je pense jamais personne n’a fait cette erreur sinon ça vous aurait interpellé….
    En tout cas je suis satisfait et très heureux de pouvoir enfin exploiter votre routeur qui est à mon sens le plus sophistiqué , bien pensé que je connaisse et qui correspond à ce que je recherche en matière d’autonomie technique puisque j’ai réalisé mon installation solaire moi même.
    Avec mes excuses pour le dérangement ,mes remerciement et mes 73 QRO
    Cdlt

  4. BADET Pierre dit :

    Bonjour André
    Merci pour ce partage. Bravo !
    J’ai réalisé et mis en service le montage. Je me pose toutefois une question : aujourd’hui il pleut et les panneaux solaires ne produisent pas, donc le triac ne va pas alimenter le chauffe-eau et demain matin je n’aurai pas d’eau chaude.
    Est ce que je me trompe ?
    Quelle est la solution pour alimenter le chauffe-eau ?
    Bien amicalement.
    Pierre

    • F1ATB André dit :

      Vous créer 2 périodes sur la journée en appuyant sur +. Dans la première période 0h à 6h vous forcez à On pour fabriquer de l’eau chaude si elle est froide. Dans la deuxième période de 6h à 24h vous mettez le Triac avec un seuil de 0 et une Ouverture max à 100.
      Cdlt

      • BADET Pierre dit :

        Super, merci beaucoup. C’était vraiment simple mais je n’avais pas tout compris.
        Je suis avec attention votre site pour les nouvelles mises à jour.
        Bien amicalement.
        Pierre

  5. Van Robaeys dit :

    Bonjour,
    Tout d’abord MERCI pour votre partage d’infos et de connaissances.
    Je suis en Triphasé donc votre système me convient parfaitement.
    Le montage est fait, il fonctionne comme il se doit avec une ampoule sur le triac, je vais connecter au chauffe-eau je ne prendrai qu’une seule résistance sur les trois, elle fait 5kW donc ~1650W par résistance, le triac en 24A devrait gérer, pour le refroidissement, je pense mettre un ventilo de 12V sur la sortie 5V de l’ESP, bonne idée ou pas? il tournera h24 mais en 5V il ne tournera pas vite donc moins d’usure, mais assistera au refroidissement, je l’ai déjà fait sur d’autres appareil avec succès.
    Je peux aussi le brancher sur un relais en GPIO17.

    J’ai toutefois une question:
    Étant en CACSI la LED jaune flash constamment du fait que je n’ai pas de SINSTI.
    Mon idée serait de remplacer SINSTI en ligne 425 et 542 de la Ver 3.11 par 0
    Donc si SINSTS >0 la jaune clignote
    Else c’est la verte qui clignote.
    Suis je dans le bon? Ou complémentent farfelu?

    Mon projet suivant s’il me reste des Watts a consommer une fois le ballon chaud, c’est de dévier le surplus sur la résistance de la pompe à chaleur pour lui filer un coup de pouce.
    S’il y a des avis, je suis preneur. Merci d’avance.

    Pour la petite histoire, j’ai 30m de câble CAT7 entre le Linky et le LTV814 cela semble fonctionner sans Mofset (j’ai essayé avec cela n’a pas fonctionné, erreur de câblage peut être) la valeur de la résistance sur I2 est de 1Kohm.
    Merci.
    Cordialement.
    Fred VR.

    • F1ATB André dit :

      Mettez votre ventilo sur un relais pour qu’il fonctionne que de jour. Ou mieux modifiez légèrement le programme si la variable retard <100 vous mettez à 1 leune sortie de GPIO.
      Attention que les ventilos un jour s'use.
      Vous pouvez modifier l'allumage de la Led.
      Merci pour l'info sur les 30m de câble CAT7
      Cdlt

  6. Van Robaeys dit :

    Merci pour votre réponse rapide.
    Bon Week end.
    Cordialement.

  7. Michel Voisin (F1UVM) dit :

    Bonjour
    je reviens ici pour vous indiquer que j’ai trouvé la cause très exacte de mes problèmes de modulation du triac avec mes ESP32 Vroom j’ai 2 modèles un en 32 pins et un en 38 pins .j’ai commencé ma config avec le modèle en 38 pins
    tout fonctionnait sauf le réglage « Ouvre Max » qui fonctionnait qu’en On/Off après avoir fait des tas d’essais et posé plusieurs questions pour résoudre mon problème j’ai refait un montage avec un ESP32 30 pin et la ça fonctionne…
    j’ai flashé 3 ESP32 38 pins qui n’ont jamais pu faire varier « Ouvre Max » .Ma conclusion j’abandonne l’utilisation du 38 pins…..çi ça peut aider… j’ai passé beaucoup de temps à chercher.
    Sur votre schéma c’est bien un 30 pin 🙂
    Cdlt

    • maurice dit :

      sur son schema c’est un 38 pins

    • F1ATB André dit :

      Non mes schémas électriques des routeurs sont des 2*19=38pins en général. J’ai occasionnellement utilisé des 2*16pins de uPesy. Il faut surtout respecter le nom des GPIO et pas leur position physique.
      Cdlt

  8. barreyre JP dit :

    Bonjour,

    Beau travail et très bien documenté. Mais je n’arrive pas à compiler le projet il me manque des bibliothèques (ESPmDNS.h, esp_task_wdt.h), j’ai essayé avec Arduino ide 1.8, arduino ide 2.0 et arduino iot cloud. Où peut-on trouver les librairies du projet ?
    Merci de votre aide.
    Cordialement,

  9. Regis ARNAUD dit :

    Bonjour à tous,
    Pour faire suite à mon commentaire du 17 Aout, j’ai installé la semaine dernière le triac BTA40 800B avec un bon radiateur de 100 x 100 x 100; il fonctionne parfaitement à la place du BTA 24 et, après 1h30 de fonctionnement sur un chauffe eau de 2.2kw on n’observe pratiquement pas d’échauffement.
    Je pense que ce triac (~12€) aura une bien meilleure durée de vie que le 24A qui chauffe un peu trop à mon goût.

    • F1ATB André dit :

      Interessant. Avec quel boitier pour le BTA40? Il y a différents boitiers sur le marché.
      Cdlt

      • Regis ARNAUD dit :

        Bonjour André,

        C’est un boitier RD91 qui a une résistance thermique de 0.9 degrés par watt ( contre 1.5 pour le BTA24 en boitier TO220 ).
        J’avais tout de même prévu un ventilateur sur mon radiateur, mais vu l’échauffement je l’ai arrêté et attends de recevoir un thermostat de 40 ° que je fixerai sur le radiateur pour commander le ventilateur au cas ou … .
        De plus le triac 40A a des connecteurs faston plus sérieux que les petites pattes du 24A.
        Si tu veux je peux t’envoyer des photos du montage.

        Cordialement

        • Regis ARNAUD dit :

          Mesure de température du triac

          Temp à froid= 24° Temp après 30 min de fonctionnement à 100% pour chauffe-eau de 2.2KW sans ventilateur = 36°.
          (mon radiateur du triac fait tout de même 100x100x100mm).
          Je n’ai pas pu laisser chauffer plus longtemps car le thermostat du chauffe-eau a coupé à 35 min mais la température était stable après environ 20 min de chauffe.
          J’ai ensuite mis le ventilateur du triac en route et la température est redescendue à 25° après 5 min.
          En partant de la temp max de 36° + le delta temp entre la jonction et le boitier d’environ 14° on a la jonction à 50° ce qui est très confortable le maxi étant donné à 125°.
          ( Le calcul du delta T est : résistance thermique (0.9) x chute de tension Anode1 Anode2 (1.55v) x intensité (10A) = 14° ).

          Cordialement

          • F1ATB André dit :

            Bon résultat. Je vais me commander des BTA40 800B pour essayer sur l’un de mes routeurs.
            Cdlt
            André

  10. Joel C dit :

    Bonjour André,

    Mon routeur Linky est enfin opérationnel et fonctionne très bien.
    J’ai maintenant une autre contrainte à résoudre.
    Voici ma configuration
    – Je possède deux batteries de 2400 Kwh (Pylontech US2000C)
    – L’onduleur est configuré en zéro injection
    – L’onduleur alimente la maison en priorité puis la charge des batteries
    – Si la puissance fournie par le PV + batterie n’est pas suffisante, il soutire du réseau

    Actuellement le routeur ne fait pas de différence entre PV et batteries, les batteries se vident donc pour alimenter le chauffe eau.
    Pensez-vous qu’il serait possible de prendre en compte un seuil de puissance fournie par les batteries (tel que cela est fait pour le réseau.) ?
    En effet, quand les batteries sont pleines, elles maintiennent une puissance assez faible vers la maison (environ 20 à 30W). Mon souhait serait donc de router vers le CE si :
    – La puissance soutirée est celle du seuil définit dans le routeur
    – ET si la puissance de la batterie est « sortante » entre 20 et 200W par exemple
    Il faudrait donc que je puisse capter la puissance de la batterie avec son sens. Pensez-vous que cela est possible ?

    Sinon, dans un 1er temps je limiterai l’ouverture du TRIAC et autoriserai le routeur à se déclencher à partir de 15h car cet hiver mon CE de 3000W va me vider mes batteries mais cette solution me paraît moins efficace, à tester…

    J’ai encore quelques défis techniques à franchir mais j’apprends doucement et c’est passionnant.

    Encore merci pour l’efficacité de vos réponses et du temps que vous prenez à nous répondre.

    Cordialement,

    • F1ATB André dit :

      Il faudrait une deuxième sonde de courant. Je prépare actuellement un système à 2 sondes que je diffuserai courant de ce mois.
      Cdlt

      • Joel C dit :

        Bonjour André,
        Je suppose que vous parlez de la version UxIx2 avec les deux sondes ?
        Cependant, le module JSY-MK-194T ne fait que des mesures de courant alternatif ?
        Pensez-vous qu’il est possible de faire deux mesures de puissance, une sur le réseau Enedis, l’autre sur la batterie en CC et router en considérant également la puissance entrante/sortante de la batterie au même titre que pour celui du réseau Enedis ?
        Avez-vous des retours d’expérience d’utilisateurs avec des batteries, comment gèrent-ils cela ?
        Encore merci pour tout.
        Cordialement

        • F1ATB André dit :

          Je connais mal le domaine des batteries.
          Oui, le module JSY-MK-194T ne fait que du AC. Il faudrait un capteur à effet Hall pour mesurer du DC.
          Cdlt

  11. Arnaud Longa dit :

    Bonjour et merci pour ce très bon boulot !
    Une chose me préoccupe ! mon Linky est sur un poteau loin de la maison et ensuite EDF et Telecom en sous terrain jusqu’à mon habitation et le problème de la com se pose!
    On va bientôt … avoir la fibre , j ai imaginé plusieurs solutions:
    1-quand on tirera la fibre dans le fourreau Telecom y adjoindre un cat 5 ou 6 et communiquer en ethernet avec un arduino a demeure cote linky
    2-meme idee mais en passant une fibre
    3-comuniquer avec une liaison radio style NRF24L01

    une autre solution ?
    merci
    Arnaud

    • F1ATB André dit :

      Essayez de réaliser le routeur UxI pour avoir tout installé près de votre tableau électrique.
      https://f1atb.fr/index.php/fr/2023/07/07/u-x-i-routeur-solaire-pour-gerer-la-surproduction-photovoltaique-diy/
      Cdlt

      • Arnaud Longa dit :

        Merci de la reponse mais je suis en tri !
        cdl
        Arnaud

        • F1ATB André dit :

          Dans ce cas passé un câble Ethernet et vous faites une transmission en différentiel en faisant une conversion TTL vers RS485 pui RS485 vers TTL pour attaquer l’ESP32.
          Vous pouvez utiliser l’alimentation fournie par le Linky, mais il faut faire un peu d’électronique.
          Cdlt

          • arnaud longa dit :

            Bonjour
            alors finalement avec un ESP avec antenne ( j ai mis un râteau ) et un répéteur avec aussi un râteau le wifi passe nickel ! 75 m ça c est fait !! j attend avec impatience qu Enedis me passe en standard !
            Pour l alim un petit panneau solaire avec batteries
            Par contre un truc me turlupine ! j ai deux chauffe eau un en mono et un en tri (que je peux passer en mono) tous les deux avec une régulation Electronique.
            Je vais commencer par le petit en mono (600w) je pensais garder l alimentation permanente et intercaler le triac entre la régulation et la résistance, bonne ou mauvaise solution ?
            encore merci pour ce projet bien abouti
            Arnaud

          • F1ATB André dit :

            Bien votre solution avec une antenne pour augmenter la portée. Cela ne consomme pas d’énergie et permet de longues distances.
            Le Triac entre la régulation électronique et la résistance ne devrait pas poser de problème.
            Cdlt

  12. Yanick dit :

    Bonjour
    Super boulot
    Mon chauffe eau étant en triphasé puis-je le piloter directement via un relais statique sans le contrôle du passage à zéro ?
    Merci

    • F1ATB André dit :

      Vous pouvez le piloter avec le Triac et 2 relais. Les relais feront des sauts importants de puissance, le Triac fera l’ajustement fin sur une des phases. Il faut bien ajuster les seuils.
      Cdlt

      • Yanick dit :

        Merci pour la reponse
        Je ne comprends pas bien la solution
        Un relais sur chaque sortie tout ou rien et une phase sur la sortie pwm via le triac ?

        • F1ATB André dit :

          Imaginez, vous avez un chauffe-eau avec 3 résistances de 1000W.
          Si 600W de surproduction sont disponibles, la phase avec le Triac recevra cette puissance.
          Si 1300W sont disponibles, un relais sera enclenché absorbant 1000W sur une phase. La phase avec le Triac absorbera 300W
          Si 2500W sont disponibles. Les 2 relais absorberont 2000W et les 500W restants sur la phase du Triac.
          Il faut bien positionner les seuils de déclenchement.
          Cdlt

          • yanick dit :

            merci
            go je me lance !!
            par contre j’ai deja un serveur wes connecte derriere ma sortie TIC pensez vous que je puisse brancher le routeur en plus sur la sortie TIC?

          • F1ATB André dit :

            Cela peut fonctionner, il faudra peut-être baisser ou augmenter la résistance R1 (1500ohm) d’entrée.
            Cdlt
            André

          • yanick dit :

            je viens de regarder le racordement de mon chauffe eau j’avais un petit doute
            le neutre n’est pas raccorde donc impossible d’alimenter une seule phase, rien ne se passera

          • Nutta dit :

            Si le neutre n’est pas raccordé, c’est qu’il s’agit d’un branchement en étoile.
            Dans ce cas il vous suffit de ramener le neutre au point milieux des 3 résistances.
            Attendez la confirmation d’André, tout de même.

          • F1ATB André dit :

            Si le neutre n’est pas disponible, cela ne fonctionnera pas. S’il est disponible sur le chauffe-eau le câbler au neutre de la maison.

          • yanick dit :

            merci pour votre support !!
            je vais regarder comment je peux faire j’ai un fil pilote qui arrive je vais voir si je peux l’utiliser ( section )ou retirer un fil (plus compliqué !!)
            autrement utiliser un relais statique triphase en pwm je sais pas ce que ca donnerai

          • F1ATB André dit :

            Il n’est pas impossible qu’un relais 3phases (type random) fonctionne, car le pulse envoyé est à 1 pendant toute la durée depuis l’instant d’ouverture au passage par zéro suivant.
            Mais n’étant pas en triphasé, je peux pas faire les essais.
            Cdlt

          • F1ATB André dit :

            null
            Voici un schéma de branchement intéressant proposé par Michel.
            Il faut mettre le seuil d’un relais égal à celui du Triac, par exemple 0.
            Mettre le seuil du deuxième relais à -50 par exemple pour qu’il s’enclenche après le premier.

            Cdlt

            PS: En y regardant de plus près, un seul relais suffit. On laisse une phase branchée en permanence.
            Attention le Triac de base est donné pour 600V, c’est un BTA16-600B. C’est limite pour du triphasé en 400v car en crête cela correspond à 565V. Comme il faut améliorer le refroidissement également, on peut remplacer le triac par un BTA40-800B en boitier RD91 qui est donné pour 800V. https://fr.aliexpress.com/item/1005001762265497.html?spm=a2g0o.order_list.order_list_main.5.2cc25e5bjXR0w2&gatewayAdapt=glo2fra#nav-specification

          • Guillaume dit :

            Merci pour le schéma avec le chauffe-eau alimenté en triphasé !
            Juste pour être sûr, on conserve le Dimmer Module de RobotDyn et on remplace le triac fourni par un BTA40-800B en boitier RD91, avec un refroidisseur adapté ?
            Par contre, je ne saisi pas trop pourquoi : « En y regardant de plus près, un seul relais suffit. On laisse une phase branchée en permanence. »
            Cordialement

          • F1ATB André dit :

            Oui un BTA40-800B me parait plus approprié, pas juste en limite. Il faut un bon refroidisseur. Le boitier RD91 diffuse mieux que le TO220.

            Pour le branchement, comme il n’y a pas de neutre dans le montage triangle, on a que 3 fils. Si on en branche 1 seul, il ne se passe rien. On contrôle l’ensemble avec un Triac sur une phase et un relais sur la deuxième et la troisième connectée en permanence.
            Cdlt

          • Guillaume dit :

            Certains relais SSR sont fournis directement avec un dissipateur thermique. Est-ce nécessaire ou recommandé ou superflu dans le cas du chauffe-eau triphasé (3000 W) ?

          • F1ATB André dit :

            Un dissipateur thermique est nécessaire, il y a quelques dizaines de W perdus en chaleur par le SSR.
            Cdlt

          • Nutta dit :

            Etes-vous certain qu’il s’agit d’un montage triangle ? (auquel cas chaque résistance serait en 380v).
            Un montage en étoile (même sans neutre) permet d’utiliser des résistances 230V et donc un passage en monophasé possible après modif du câblage et apport du neutre.
            Je ne sais absolument pas ce qui ce fait le plus couramment pour les chauffe-eaux – la deuxième solution me parait plus probable mais sans aucune certitude.

          • F1ATB André dit :

            Si le neutre est présent mais non câblé, c’est pour pouvoir utiliser ce chauffe-eau en monophasé 230V. Dans le cas ici, il n’y a que les 3 fils de phase utilisés. Triangle ou étoile ce n’est pas important.On en laisse un connecté en permanence et on passe via un relais et un triac pour les 2 autres.

          • Ludovic dit :

            Bonjour,
            Etant aussi en triphasé, je vais faire la même chose: connecter le neutre au centre de l’étoile et utiliser les relais SSR pour piloter les 2 autres phase en tout ou rien (la première étant contrôlée par le triac).
            Je me pose maintenant de questions sur le refroidissement du triac et des relais SSR, chacun pouvant faire passer 1000W.
            Pour les relais SSR, j’ai vu des radiateurs (50x50x80) qui ont le bon gout de se fixer sur le rail DIN d’un boitier électrique. L’ensemble restant enfermé dans le boitier modulaire, la dissipation est-elle suffisante?
            Pour le triac, je vois surtout des radiateurs externes au boitier modulaire; cela nécessite de dessouder le triac pour le déporter… Quelle taille de radiateur prendre?
            Si quelqu’un a une réalisation technique du refroidissement passif avec pour 1 triac et 2 SRR, je suis intéressé.

          • Bernard dit :

            Attention, en connectant le neutre au centre de l’étoile, le thermostat électronique ne coupe que 2 des 3 phases., ce qui signifie qu’une des résistance sera en permanence alimentée.

          • F1ATB André dit :

            Tout à fait, mais on peut avoir un montage étoile de résistances et le neutre non branché.
            Cdlt

          • Ludovic dit :

            En effet, si le thermostat ne coupe pas les 3 phases, mieux vaut éviter de brancher le neutre au centre de l’étoile, et piloter les 2 autres phases avec un triac et/ou un SSR comme vous le décrivez (une phase étant en permanence connectée).
            Le SSR ouvert, le triac pourra charger 2 résistances en consommant jusqu’à 1500W (mode d’alimentation entre 2 phases).
            Si la consommation passe en dessous du seuil de -50Watt du SSR, le SSR se fermera et le triac retournera aux alentours de 0% (avec possible évolution jusqu’à 100% pour atteindre 3000W)
            C’est bien ça?

          • F1ATB André dit :

            Oui c’est bien cela.
            André

          • Ludovic dit :

            Bonjour,
            Concernant la mise en oeuvre en triphasé, avec l’usage du triac et d’un seul relais SSR, j’ai fait le schéma de câblage ci-dessous:
            https://zupimages.net/up/23/38/7ey6.png
            La connexion de la phase « permanente » est faite dans le boitier du routeur, afin d’avoir au même endroit tous les branchements.

            Pour éviter d’avoir un câble d’alimentation supplémentaire (celle de l’ESP32), c’est plus pratique de se brancher sur une phase existante. Pour la protection, est-ce qu’un petit fusible (0.2A) est suffisant? (car il n’y a pas de disjoncteur 2A dédié dans ce cas).
            Les câbles 5g2.5 qui permettent les branchements en amont et aval du contacteur (contrôle visuel plus facile), ayant tous les 2 le neutre et la masse, je les connecte ensemble pour éviter la confusion (dans l’absolu, un seul neutre et une seule terre serait suffisant). Est-ce contre-indiqué?
            Le contacteur pourrait être supprimé, mais autant le conserver pour ceux qui l’ont déjà; on peut aussi le désactiver en coupant le disjoncteur 2A de commande, et éventuellement utiliser le routeur en marche forcée.

          • F1ATB André dit :

            Très bien votre petit schéma en triphasé.. Je le publierai dans une prochaine édition de la documentation. Le petit fusible de 0.2A est suffisant. Le câblage tout dans la même boite et raccordé les N et Terre. C’est très bien.

          • F1ATB André dit :

            Ludovic
            J’ai analysé à nouveau votre schéma. Le dimmer monté entre phase P2 et neutre ne fonctionnera pas. La phase n’est pas la même qu’entre P1 et P2. Il y aura un décalage.
            Il faut monter entre P1 et P2 le dimmer. Il faut mettre aussi un Triac 800V car on a du 400V efficace.
            Cdlt

          • Ludovic dit :

            Bonjour André,
            Avec un montage triphasé où le neutre est en référence du dimmer, le Zero Cross ne se fait pas lorsque la tension entre phases est à 0V, mais un peu avant ou un peu après en fonction des phases utilisées. On peut le voir sur les 2 figures ci-dessous:
            https://zupimages.net/viewer.php?id=23/40/vslv.png
            Les surfaces correspondent à la zone qui sert à router de l’énergie (entre « retard » et ZC/neutre); cette surface est mathématiquement calculable.

            Mais est-ce que cela a de l’importance de ne pas avoir 0V?
            Avec le triphasé on aura au mieux une phase qui commute à 0V, et le 2 autres ne le seront pas. Quel est l’inconvénient à couper le triac quand la tension n’est pas à 0V?
            Proposez-vous de mettre la seconde phase comme référence à la place du neutre? Dans ce cas, il faudrait vérifier que le composant de détection ZC supporte 565V au lieu des 400V.
            Ci-dessous un schéma de carte dimmer; on voit que le neutre ne sert qu’à la fonction de détection ZC.
            https://zupimages.net/viewer.php?id=23/40/ri3q.png
            Cordialement,

          • F1ATB André dit :

            Un triac à besoin de 0V entre les anodes pour s’arrêter de conduire. Même si vous avez 0V sur la gâchette, dès qu’il conduit suite à une impulsion sur la gâchette, il ne s’arrêtera que lorsque la tension entre anodes sera de 0V.
            Un système fournissant le Zc entre phase et neutre, et un système fournissant le Zc entre 2 phases, il y a Pi/6 de décalage. Si le triphasé est équilibré, avec un Zc pris comme on veut, il est possible par décalage dans le temps de recréer tous les Zc sur les autres phases. En pratique il est préférable de générer le Zc sur la même phase qu’utilise le Triac.

            Cdlt

          • Ludovic dit :

            Ok, je comprends mieux maintenant. Il faut donc avoir le ZC bien positionné pour arrêter le triac.
            J’ai refait le schéma pour tenir compte de ce changement:
            https://zupimages.net/viewer.php?id=23/40/anb3.png
            C’est plus simple que d’ajuster le retard par logiciel, surtout qu’on n’est jamais certain de l’ordre des phases; une erreur serait donc possible.

            Après les tests, je vous transmettrai des propositions d’ajout de fonctionnalités:
            – estimation de l’énergie totale routée dans la journée par calcul de puissance active sur 10ms, en fonction du retard
            – forçage du chauffe-eau en heures creuses si un seuil minimum n’a pas été atteint
            – accélération d’asservissement par calcul du retard à appliquer pour obtenir directement la consigne
            – l’activation du relais de la 3ème phase, remet le triac à 0% pour avoir une consommation sans à-coup.
            – contrôle du relais que si l’asservissement du triac est stabilisé
            – ajout d’une seconde voie (triac) en monophasé (pour un radiateur), moins prioritaire que la voie triphasé
            – ajout d’une sonde de température
            Cordialement,

    • yanick dit :

      Top !!
      j’etais justement en train de reflechir a une solution de ce type !!
      je commande mon optocoupleur pour faire le test si ca fonctionne avec 2 apareil sur la sortie TIC
      merci encore

  13. F1EYP Georges dit :

    Bonjour André,
    Merci pour tout.
    Je suis avec la version linky 3.11 qui fonctionne parfaitement après avoir trouvé une solution pour résoudre le problème de distance entre le linky et la maison (+100m) – CPL+PA wifi-. J’aurais aimer raccorder un esp32ethernet directement sur la CPL mais pour l’instant tout est stable et fonctionne parfaitemnt.
    L’ESP+dimmer dans la maison me remet en température un chauffe-eau en 3heures environ.
    J’aimerais avoir ton avis sur la meilleure solution pour charger le deuxieme chauffe eau de la maison qui est distant du premier.
    – un autre couple esp+dimmer mais comment vont se comporter les triacs ils vont se courrir après..HI. Comment leurs donner une priorité.
    – Je peux connaitre la fin de charge du premier chauffe eau (contact sec du double thermostat) mais comment récupérer l’info sur l’ESP ?
    Si tu trouves un moment pour me donner des idées……
    73

    • F1ATB André dit :

      Il faut simplement 2 ESP avec dimmers.
      Mettre le premier avec un seuil à 0W.
      Mettre le deuxieme avec un seuil de -20W.
      Ainsi le premier démarre quand il y a surproduction. Lorsque le premier chauffe-eau s’arrête, il y aura de l’injection et le deuxième relais va s’ouvrir à partir de -20W.
      On espace les 2 seuils de quelques watts pour s’affranchir du bruit de mesure qui pourrait faire démarrer le 2 avant le 1. À tester sur place.
      Cdlt

  14. Georges dit :

    Bonjour André,
    J’ai effectué une mise à jour de mes deux ESP32 de la version 3.00 à la version 3.11 pour me faire un protocole. Je constate un bug dans l’affichage du premier graphique. L’échelle en Y va de -1 à 1 et par conséquent les courbes hyper zoomées, sont incomplètes. Est-ce qu’une mise à jour nécessite un RAZ ou est-ce un bug déjà constaté ?
    D’avance merci !
    Cordialement,

    Contexte : Mon installation alimente un chauffe-eau de 3kW monophasé, depuis plusieurs semaines. C’est une version Linky en monophasé, constituée de deux modules ESP32 Wroom 32U qui communiquent leurs données. Pour supporter cette puissance (Imax=13A), j’ai adapté le gradateur Robotdyn en changeant et en externalisant le triac et le dissipateur. J’ai mis un Triac BTA25-600B au format RD91 monté sur un dissipateur externe de 100x150x28mm ; Rth = 1°C/W ; T°max surface dissipateur = 45°C à Ta = 25°C. Si vous le souhaitez, vous pouvez commenter ou questionner ces choix.

    • F1ATB André dit :

      D’autres ont également changé le Triac avec satisfaction. Par exemple le BTA40-800B en boitier RD91.
      J’en ai commandé pour faire l’essai.
      Cdlt
      André

  15. Georges dit :

    Je me réponds à moi-même car je pense avoir trouvé la cause : J’ai constaté des erreurs dans la lecture des données du Linky, ce qui fausse les calculs. Alors que tout fonctionnait parfaitement avant la MAJ avec une résistance R1 de 2500 ohms, il s’avère qu’en remettant R1 à 1500, tout fonctionne parfaitement. J’avoue ne pas comprendre le lien avec la mise à jour, mais c’est ainsi. Quelque chose a changé que j’ignore. Coté version, je suis revenu en v3.00 sans watchdog et avec RAZ des données. Je tenterai de refaire la MAJ en v3.11 sans watchdog dès que possible.

    • F1ATB André dit :

      Moi aussi, je ne comprends pas le lien entre la version logiciel et l’adaptation de l’entrée du Linky.
      Cdlt

      • Georges dit :

        Il n’y en a pas. C’est juste que la valeur de la résistance garantissant une bonne lecture des données du Linky a soudainement baissé sans que je comprenne encore pourquoi. Jusqu’à maintenant, le montage était sur une plaquette lab. Je viens de souder les composants sur circuit en vue de le mettre en boite. Les 1500 ohms sont toujours parfaits… A suivre !

  16. SUCHET Michel dit :

    Bonjour et merci pour ces excellentes informations
    Je possède des panneaux photovoltaïques en auto consommation, je viens d’augmenter la surface et j’envoie du surplus dans le réseau Enédis
    Votre tuto convient pour mon installation.
    Je viens de faire passer mon compteur Linky en mode « Standard » et de commander le matériel en Chine pour l’installation.
    Mais j’ai un doute sur le branchement de mon chauffe-eau triphasé (sans fil neutre eau chauffe-eau) avec contacteur jour et nuit.
    J’ai fait un schéma de mon interprétation des branchements, comment puis-je vous le faire parvenir
    Cordialement

  17. Antoine dit :

    bonjour, lors du transfert vers l’esp32 j’ai eu ce message
    RouteurSolaire_V_3_11_Linky.ino:30:10: fatal error: RemoteDebug.h: No such file or directory
    Il ne me manquerai des librairies par hasard ?
    Antoine

  18. dussossois dit :

    Bonjour
    j’ai ce défaut a la compilation du programme
    c:\Users\jmd\Documents\Arduino\libraries\RemoteDebug\src\utility\WebSockets.cpp:42:10: fatal error: hwcrypto/sha.h: No such file or directory
    #include il me manque une librairie ?
    ^~~~~~~~~~~~~~~~

  19. Patrick PUCHOIS dit :

    Bonjour André,

    Tout d’abord un grand merci pour le partage de tout ce travail.

    Une question technique: je vais devoir séparer mesure et action. Donc, 2 cartes avec liaison wi-fi. Sur A, les seules cartes vendues avec une antenne sont des cartes destinée à un usage vidéo, avec 16 broches. Ces cartes sont elles utilisables avec l’application que tu as développé ?

    Bien cordialement – Patrick

  20. Antoine dit :

    bonsoir, quelqu’un aurait une petite idée pourquoi j’ai ce message d’erreur au moment de televerser ?
    Changing baud rate to 921600
    Changed.
    WARNING: Failed to communicate with the flash chip, read/write operations will fail. Try checking the chip connections or removing any other hardware connected to IOs.
    Configuring flash size…
    Flash will be erased from 0x00001000 to 0x00005fff…
    Flash will be erased from 0x00008000 to 0x00008fff…
    Flash will be erased from 0x0000e000 to 0x0000ffff…
    Flash will be erased from 0x00010000 to 0x000f7fff…
    Compressed 18992 bytes to 13112…
    Writing at 0x00001000… (100 %)

    • Antoine dit :

      bon apparemment l’esp32 est hs j’ai teste sur un autre et j’ai pas de message d’erreur.
      par contre sur mon smartphone je vois bien le wifi linky-esp32-919220 mais impossible de me connecter avec 192.168.4.1
      Une idée ?

      • F1ATB André dit :

        Votre smarthone a t’il bien basculé sur le Wifi de l’ESP32? Il ne doit plus être connecté au Wifi de la maison.
        Cdlt

        • Antoine dit :

          quelquefois il ne faut pas chercher à comprendre.. sur mon smartphone impossible de me connecter alors que sur celui de ma femme j’accède à l’adresse IP 192.168.4.1 sans problème.
          de ce fait tout fonctionne à merveille encore merci pour votre travail