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

Nouvelle Version V3.11 Linky
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



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/index.php/fr/2023/09/25/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é.

De même les 2 pistes entre le connecteur 230V et le Triac sont un peu faibles. On peut, en rajout, souder une couche de fil de cuivre.

Pour les grosse puissances à commuter, par exemple 3000W, on peut remplacer le Triac d’origine par un BTA40-800B en boitier RO91 qui dissipe beucoup mieux la chaleur et tient 40A 800V. On connecte les 2 pins en 230V directement au bornier du gradateur et par un petit fil soudé on connecte la gachette du Triac. Le Triac est fixé sur un gros dissipateur en aluminium.

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.

Le signal Zéro Crossing (courbe verte) fourni une impulsion au passage par zéro de la tension 230V (courbe rouge). Le Triac ne conduit plus à partir de cet instant. L’ESP32 compte le temps et rend le Triac conducteur au bout d’un retard entre 0 et 10ms, suivant le résultat du calcul interne sur la puissance consommée à l’entrée de la maison. Ici sur ce schéma, l’ouverture se fait à 50% du temps, soit 5ms. Le chauffe-eau ou chauffage reçoit de l’énergie jusqu’au prochain passage par zéro de la tension.

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.


Capture à l’oscilloscope du signal Zc (en bleu) et la tension secteur (jaune). Échelle : 2ms par carreau. Le signal Zc sur le front montant est en phase sur le passage à zéro du secteur.

Ci dessous 3 courbes qui montrent l’ouverture du Triac (courant en sortie en bleu) et la tension secteur en jaune avec une échelle de 10ms par carreau.

Ouverture du Triac à 33%
Ouverture du Triac à 50%
Ouverture du Triac à 100%

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.
Câblage alternatif. Un Triac pilote plusieurs dispositifs.

Il est possible de piloter / réguler plusieurs dispositifs (Chauffe-eau, chauffage etc.) avec un seul Triac et des relais branchés en sortie. Ainsi, de nombreuses combinaisons sont possibles en définissant des seuils de déclenchement Pw en Watt pour chacun. On peut également jouer sur les plages horaires. Attention, tous ces dispositifs seront sur la même phase du secteur et il ne faut pas dépasser la capacité du Triac.

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/index.php/fr/2023/04/13/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.
Schéma de principe contacteur et routeur en parallèle

Montage Routeur à un Chauffe-Eau

Chauffe-eau monophasé

Dans le schéma ci-dessous, on garde le contacteur Jour/Nuit et on installe en parallèle le routeur.
Remarque: le routeur ne coupe pas le neutre, mais la phase uniquement.

Chauffe-eau triphasé

Le schéma ci dessous montre le branchement du routeur à un chauffe-eau triphasé sans neutre cablé. Nous le devons à Ludovic qui a réalisé le routeur. Une phase est connectée au Triac, une deuxième est reliée à un relais, la troisième est laissée branchée en permanence. Toutes les interconnections sont ramenées dans la boite du routeur. Le contacteur Jour/Nuit d’origine est conservé. Le seuil de déclenchement du Triac (Dimmer) est à 0 (0W), le seuil de déclenchement (On) du relais est à -50 (-50W). Si la surproduction est faible, seul le Triac s’ouvrira suivant la directive du routeur. Si la surproduction est plus élevée (triac ouvert à 100%), le relais s’enclenche, le Triac se ferme. Si la surproduction augmente encore, le Triac va à nouveau réguler avec le relais sur On.

Branchement du routeur sur un chauff-eau triphasé sans neutre (triangle). Schéma de Ludovic.

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/index.php/fr/2022/12/03/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/index.php/fr/2023/02/09/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...

633 réponses

  1. Jean-Claude dit :

    Bonjour,
    Je vous lis depuis quelque temps. En début d’année, je me suis lancé aussi dans l’étude d’un routeur (avec ESP32) avec comme référence de calcul un compteur d’énergie SDM230 Eastron qui communique avec mon système via une ligne RS485 en Modbus RTU.
    Cela fonctionne plutôt bien, avec moins de 1% d’injection par rapport à l’énergie routée. J’ai d’ailleurs récupéré la partie commande SSR de votre routeur V2.
    J’avoue que votre idée d »utiliser les fonctions du Linky est géniale. Avez vous une idée du taux d’injection avec cette nouvelle version ?
    Merci, pour toutes vos idées et votre partage. Jean-Claude

    • F1ATB André dit :

      Jean-Claude

      Je n’ai pas encore assez de recul pour avoir des idées sur le taux d’injection résiduel. Après, c’est pas trés grave s’il en reste un peu.
      Cdlt
      André

  2. Crapaud28 dit :

    Bonjour & Bravo André,
    tj aussi impressionné par votre. travail.
    mon Linky Tri est déjà en mode Standard.
    il ne me manque que quelques composants et je me lance dans ce routeur modulaire.
    chapeau bas📢👍
    Merci

  3. Jean-Claude dit :

    Mon Linky se trouve à l’entrée de mon domicile, à environ 60 m de l’habitation. Une liaison filaire sans travaux importants est difficile. Vous qui connaissez bien le monde de la radio, pensez vous que l’on puisse trouver un module radio capable de transmettre les informations du linky au routeur ?
    Merci ! Cdt

    • F1ATB André dit :

      Je suppose que vous avez le 230V disponible à coté du Linky. Dans ce cas faite le montage que je propose et acheté un ESP32 avec une antenne externe pour améliorer la distance du WIFI. https://fr.aliexpress.com/item/1005005306335907.html
      Si cela ne suffisait pas, il faudrait une antenne directive 2.4GHz qui apporterait plus de gain.
      Cdlt

    • Koxx79 dit :

      Bonjour,
      Pour la partie radio communication arduino j ai déjà fait plusieurs systèmes avec des émetteurs hc-12 433mhz 10mw en liaison uart . une très bonne portée plusieurs km en champs libre et 200m avec obstacles mur de maison, arbres… mais la liaison n est pas securisé. Ça peut être une piste 🤷‍♂️

  4. Jean-Claude dit :

    Effectivement, j’ai une source d’alimentation à proximité. Bonne idée avec ce type d’ESP32 auquel je n’avais pas pensé.
    Je vais regarder ça d’un peu plus près. Encore merci ! Cdt

    • F1ATB André dit :

      J’ai vu sur Internet une personne qui a fait des liaisons entre 150 et 300m avec la petite antenne. Tout dépend aussi du dégagement de ces antennes. Probablement que celle coté Linky sera facile à mettre en extérieur, mais il y a aussi l’antenne de la box internet.
      Cela m’a donné l’idée de tester. J’ai commandé 2 ESP32 avec antenne séparée.
      Cdlt

  5. PICHON Jean-Pierre dit :

    Bonjour et félicitations pour cet article et la vidéo très claire qui l’accompagne. Vous citez la carte ESP32 (Development Board 2*19 pins) disponible chez Aliexpress ou celle 2*16 broches ESP 32 Wroom chez uPesy.fr. Hormis le nombre de broches quelles sont les différences fonctionnelles entre ces 2 cartes ?
    Cordialement

  6. ERIC RODRIGO dit :

    Bonjour André, Je rajoute mes félicitations à celles de mes collègues; cette dernière version est une véritable pépite!
    J’ai déja réalisé un montage avec un ESP8266 (Lolin D1 mini) pour récupérer les données de mon Linky . Est ce qu’on peut adapter votre code (notamment les GPIO) configuré pour un ESP32 et le passer sur mon ESP3266?
    Pour ma culture personnelle: vous créez un port RX2 et TX2 alors que ces ports existent en natif et qu’ils ne sont pas utilisés. Y a t-il une raison particulière?
    Encore merci

    • F1ATB André dit :

      Par défaut UART2 se trouve sur les GPIO 16 et 17, mais vos pouvez utiliser d’autres. Comme la partie droite de l’ESP est tournée vers le Triac et relais, j’ai préféré utiliser des entrées sur le côté gauche. Il n’y a pas d’autres raisons.
      Pour gérer le Triac, on a besoin de 2 interruptions :
      – une interruption toutes les 10ms au passage par zéro de la tension secteur. C’est le signal Zc qui la déclenche.
      – une interruption toutes les 100 micro secondes pour déclencher au bon moment l’ouverture du Triac. C’est une horloge interne à l’ESP32 qui la déclenche.

      Dans un ES8266, on a pas ces 2 modes d’interruptions.
      Cdlt

      • ERIC RODRIGO dit :

        Merci beaucoup André pour votre réponse. Donc je range mon Wemos D1 mini et je modifie la platine V2 (que j’avais pratiquement terminée) pour passer à la V3

  7. VU dit :

    Bonjour et merci bcp pour votre travail, par contre y a t-il un moyen de consulter la page web a l’extérieur de ma maison en 4G ?
    Et aussi je n’ai pas réussi a remonter les info dans mon Home Assistant.
    Merci pour votre aide.
    Cordialement.

    • F1ATB André dit :

      Pour avoir les infos en dehors de chez vous, il faut programmer votre box internet. Au chapitre NAT, vous pouvez transférer les messages. C’est comme un central téléphonique d’entreprise (autrefois). Tout ce qui arrive sur vote box à l’adresse IP (?) et port (ex 6000) est transféré sur le port 80 de l’ESP32 à l’adresse IP (numéros de téléphone) interne.
      Cela est facile si vous n’êtes pas chez Orange qui change l’adresse IP de votre box tous les quinze jours.
      Cdlt
      André

      • Samuel BURG dit :

        Bonjour,

        Attention, si vous ouvrez un port externe de votre box vers votre ESP32 via un NAT vous exposez votre réseau local, hors de ce que j’en sais la bibliothèque WebServer.h du ESP32/Arduino n’est pas sécurisé contre les attaques informatiques, et le code de la version 3.0 ne contient pas de contrôle d’accès pas mot de passe +/- MD5.
        Il me semble que ce point fait partie des limitation de plusieurs bibliothèques server web du ESP32.

        Cordialement,

        • F1ATB André dit :

          OK, il n’y a pas de protection particulière pour avoir une interface simple. Rien interdit d’en rajouter. Mais quel est le risque? Si quelqu’un lit vos données Linky ou modifie la programmation, c’est pas très grave et je pense que la probabilité que cela arrive est très faible. Il n’y a rien à gagner.
          Après, vous pouvez ne pas ouvrir sur l’extérieur ou mettre d’autres dispositifs comme un VPN.
          Cdlt

          • Samuel BURG dit :

            Bonjour,

            Tout juste pour le VPN, ceci semble la solution la plus raisonnable pour mettre en place un accès externe.

            Notez que dans les commentaire même de la bibliothèque WebServer / AsyncWebServer il est explicité que le système d’autentification n’est pas fait pour résister à une attaque et que les mots de passe sont accessibles car non protégé.

            Seul une utilisation de NVS + Espressif IDE permet de disposer d’une cryptographie pour conserver des données cryptés dans la mémoire du ESP32, ceci n’est pas accessible avec les outils des bibliothèques Arduino.

            Cordialement,

  8. ERIC RODRIGO dit :

    André, sans vous contraindre, pourriez vous m’apporter une réponse à mon message ci-dessus.
    Merci

  9. thierry dit :

    Bonsoir André,
    Etant parti pour faire une V2 je crois que je vais choisir la V3 car plus simple (pas de mesure de U/I) . Par contre pour l’opto ltv-814 avez vous éventuellement une équivalence à conseiller ?
    Merci a vous
    Thierry

    • F1ATB André dit :

      Je ne connais pas bien le marché des optos pour vous proposer des équivalents. Il coute très peu cher, quelques centimes mais il faut payer souvent d’importants frais de livraison. Essayer Google shopping ou e-Bay. Moi j’en ai commandé 100 pour 10€ en chine. 100 pour avoir une livraison en 12 jours.

      • Samuel BURG dit :

        Bonjour, pas mal de kit de démarrage pour ardiono/esp32 contiennent un ou deux optocoupleur 4N35 qui fait/font la même chose.
        J’en ai 1 que j’essairais dans quelques jours/semaines selon la vitesse de déploiement de mon installation.

        Cordialement,

        • F1ATB André dit :

          NON. ATTENTION
          Le 4N35 ne fonctionnera pas dans le cas du Linky. Il n’y a qu’une seule diode en entrée.Il ne fonctionne que dans un sens. Avec le Linky on a un signal alternatif, il faut conduire dans les 2 sens. Le LTV-814 avec ses 2 diodes en parallèle de sens opposé le fait parfaitement.
          Cdlt

          • Samuel BURG dit :

            Ah, super, merci pour cette explication !

            Cordialement,

          • Samuel BURG dit :

            et si je met un pont de diodes en entrée du 4N35 ? ça devrait permettre de redresser pour n’avoir plus que un sens non ?

          • F1ATB André dit :

            No,n vous allez rajouter du seuil de diode et près du passage à zéro en entrée, vous allez avoir une montée à 1 du signal de sortie.

  10. Manuel dit :

    bonjour
    je fais des tests de la V3 ,je vois pas dans le moniteur série de connexion au serveur MQTT j ai bien tous renseigné dans les paramètres
    j ai aussi un reboot toutes les 4 minutes environ?

    • Manuel dit :

      j ai ca dans le moniteur série

      E (138228) task_wdt: – Task_LectureLin (CPU 0)
      E (138228) task_wdt: Tasks currently running:
      E (138228) task_wdt: CPU 0: IDLE
      E (138228) task_wdt: CPU 1: IDLE
      E (138228) task_wdt: Aborting.

      abort() was called at PC 0x400f0529 on core 0

      Backtrace:0x400838b9:0x3ffbea9c |<-CORRUPTED

      ELF file SHA256: 0000000000000000

      Rebooting…
      ets Jun 8 2016 00:22:57

      • F1ATB André dit :

        Vous avez un Reboot car le système ne reçoit rien du Linky. C’est le watchdog qui fait son travail.Apparemment, vous faites des essais et n’êtes vous n’êtes pas branché.
        Si vous voulez ne pas être embêté par le watchdog, passé en commentaire toutes les lignes avec wdt_…
        Domoticz et MQTT recoivent des données si l’ESP32 a eu des messages valides du Linky.
        Je vais préciser cela dans la description du projet.

        • Manuel dit :

          c est pour ca que je n ai pas de remonté dans home assistant via MQTT?
          sur la V3 il manquerai une sonde DS18B20 pour avoir la température cumulus?

  11. jacques dit :

    Bonjour je ne trouve pas l’emplacement pour pouvoir mettre le ssid et le password comme sur la version précédente
    //WIFI
    const char* ssid = « ****** »; //Put here your WIFI SSID
    const char* password = « ***** »; //Put here the WIFI password
    pouvez vous me renseigner a ce sujet merci pour votre retour

    • F1ATB André dit :

      Il ne faut rien toucher dans le code. Au premier branchement c’est l’ESP qui va emettre. Ouvrez un smartphone ou un PC avec le WIFI. Connectez vous au réseau qui porte le nom Linky… Dans un browser rentrez l’adresse 192.168.4.1 et renseignez le nom (SSID) à utiliser.
      Sur le moniteur série de l’Arduino, va s’ecrire l’adresse IP qui a été donnée par votre Box à l’ESP. Ouvrez un navigateur sur votre réseau et connectez vous à l’adresse.
      Relisez la procédure sur le site au chapitre « Premier lancement du programme ».

  12. Alain dit :

    Bonjour et merci pour ce remarquable travail, j’utilise domoticz, mais je débute et n’ai pour le moment que des switchs tasmota de fonctionnels, et je ne sais pas trop quel type de matériel choisir dans la liste pour connecter le routeur, auriez vous un exemple de config domoticz?

  13. Stef D dit :

    Bonjour André
    Merci pour cette version plus simple et très aboutie.

    J’ai juste une question, est-ce possible de forcer l’ouverture du Triac à 100% ou de le fermer 0% via requête http ?

    L’idée étant de pouvoir piloter également le triac en tout ou rien via un logiciel de Domotique (comme domoticz dans mon cas)

    En vous remerciant encore

    • F1ATB André dit :

      Dans la version V3.00_Linky, c’est pas possible. Techniquement c’est facile mais il faut décider d’une règle. Que fait-on de la commande calculée en interne du Triac? Si Domoticz s’arrete.
      – on ignore
      – on ignore pendant un instant

      Différents scénarios sont possibles.
      Un scénario serait comme pour les autres actions d’avoir un mode « pas de contrôle » pendant une période horaire. qui accepterait alors les contrôles externes.
      Cdlt

  14. StefanDu30 dit :

    Bonjour,
    Pleinement satisfait de la v2 j’ai bien envie d’essayer la v3, j’aurais juste deux questions :
    – je suis chez EDF et quel numéro appeler pour passer du mode historique au mode standard ?
    – avez vous le lien pour commande de l’optocoupleur sur aliexpress, ou autre ?
    Merci encore pour ce partage et pour ce boulot au top dans lequel je n’aurais jamais eu un taux d’autoconsommation aussi élevé !!

  15. yannblanc dit :

    Bonjour,
    J’ai regardé vos vidéos avec intérêt. J’ai suivi ce tuto à la lettre pour programmer l’ESP32 et… super j’ai réussi. J’attends maintenant de recevoir le coupleur optique LTV-814 pour voir si les données remontent bien dans un premier temps.
    Merci pour toutes les explications

    • F1ATB André dit :

      Félicitations. Une remarque: l’ESP32 va se reseter toutes les 120s en l’absence de signal en provenance du Linky. C’est la fonction watchdog qui fait cela.
      Cdlt

      • yannblanc dit :

        Bonjour,
        Pour l’instant, je ne vois pas de Reset …Il ne donne pas l’heure du Linky et les valeurs affichées sont à 0; ce qui est normal vu que l’ESP n’est pas encore relié au compteur Linky.
        cordialement

  16. F5OYK Didier dit :

    Salut André
    Bravo. Cette version est effectivement très simple à réaliser. La V2 fonctionne à merveille chez moi et n’ayant pas encore de Linky, je suit ça de prêt. Je réaliserai la V3 quand ils me l’installeront ( j’en profiterais pour demander la prog  » standard »)
    Encore bravo et merci pour le job.
    73’s

    • F1ATB André dit :

      Vous pouvez garder la V2 qui marche bien. Dans quelque temps, je publierai une nouvelle version qui s’appellera V3.00_Sonde. Elle aura les mêmes fonctionnalités que le V3.00_Linky mais avec la sonde en capteur.
      La version avec la sonde qui effectue une mesure de puissance toutes les 40ms réagit plus vite que celle avec Linky qui fait une mesure de puissance que toutes les 2s environ.

  17. Stéphane Charrier dit :

    Bonjour André, merci et félicitations pour cette nouvelle réalisation que vous partagez. Certe cela demande beaucoup moins de mise au point que la V2, mais une régulation à 2 secondes ce n’est pas l’idéal.
    J’ai réalisé la V2 et j’en suis pleinement satisfait, le top du top serait la V3 + la régulation avec la pince ampèremétrique de la V2 😊.
    En tout cas merci et bravo pour ce travail.

    • F1ATB André dit :

      Comme vous pouvez le lire plus haut. C’est prévu, la V2 va évoluer en V3.00_Sonde. On y trouvera les fonctionnalités de la V3 avec une sonde plus rapide à réagir quand la consommation varie. Donnez-moi un peu de temps. La V3, avec 3000 lignes de code m’a demandé 3 mois de développement.
      Cdlt

      • Stef D dit :

        La « V4 » idéale serait d’avoir les mêmes fonctionnalités que la V3 mais avec 2 sondes : celle qui mesure le courant soustrait ou injecté et une sonde qui permet de suivre ce qui est envoyé au chauffe eau.

        Avec un pilotage débrayable en manuel qui se ferait via requête HTTP et ce serait royal ! 😊

        Pourquoi allez-vous me dire. Car je déleste sur pompe de piscine et sur chauffe eau. Parfois le temps de la journée fait en sorte que le CE ne reçoit pas beaucoup d’énergie. Mais en même temps, ma consommation d’eau chaude et l’emplacement / isolation de mon CE ne nécessite pas d’injecter de l’énergie en heure creuse pour le faire chauffer à 100%. Par conséquent, à l’heure actuelle je coupe la chauffe de ce dernier la nuit (via un interrupteur domoticz) et cela lui permet de ne pas chauffer donc de consommer de l’énergie qui n’est pas nécessaire.

        La chauffe se fait le lendemain quand la production solaire est meilleure. (oui, c’est ça la limite) mais ça permet aussi de couper la chauffe facilement lorsque nous sommes absents.

        De mon côté je suis toujours sur la V2 sur laquelle je vais tenter de mettre une sonde de mesure pour comptabiliser et envoyer vers Domoticz ce que l’on envoie au chauffe eau. Quand j’aurai un peu de temps

        • F1ATB André dit :

          Une deuxième sonde, il faut faire attention parce qu’avec 2 lectures analogiques en boucle pendant 10ms, on arrive à prélever environ 120 mesures. Il en faut 100 pour la mesure de I et de U. Une mesure de plus pour le courant de la sonde du ballon risque de ne pas passer, sauf à réduire le nombre d’échantillons prélevés.

      • StefanDu30 dit :

        Je vais attendre la v3.00_sonde du coup car le fonctionnement de la v2 est vraiment top !
        Pourriez vous éventuellement ajouter un relais supplémentaire sur cette version, en ce qui me concerne j’ai adapté la v2 avec 4 SSR et envisage un 5ème mais la v3 c’est un autre niveau de prog et je ne pense pas être capable de le faire, vous avez fait fort, très fort !!! 😅
        Merci encore !

        • F1ATB André dit :

          La version V3.00_Sonde aura comme la V3.00_Linky la possibilité de mettre des relais sur toutes les sorties GPIO libres. Cela donne de la marge.
          Avec un deuxième ESP32, vous pouvez encore en rajouter….
          @+
          André

  18. Damien dit :

    Bonjour André
    Toujours à pointe avec cette nouvelle version (compatible triphasée). Juste une question : je suis déjà équipé d’une TIC commercialisée par Lixee. Un avis dessus ? Elle publie via MQTT les infos … par contre j’ai vraiment l’impression que la latence est bien plus importante que 2s même en la réglant avec measurement_poll_interval à 2s (60s par défaut) et même elle n’est pas régulière !

  19. Samuel BURG dit :

    Bonjour André, bravo pour votre travail et surtout pour votre vitesse de réponse à toutes les questions, impressionnant !!!

  20. Olivier D dit :

    Bonjour André, merci pour cet excellent travail ! Me concernant, j’ai le Linky loin de mon ballon d’eau chaude et derrière un second tableau électrique. Par conséquent, je souhaiterais pouvoir mettre un module près du Linky pour relevé les valeurs, et le routeur près du ballon. Pouvez-vous m’expliquer et m’aider à réaliser la communication entre le module et le routeur ? Faut-il passer par un logiciel intermédiaire comme Home Assistant ?

    • F1ATB André dit :

      Relisez bien le texte. Tout est normalement expliqué. Vous mettez un ESP32 et le coupleur optique près du Linky. Vous mettez un deuxième ESP32 avec le Triac près du chauffe-eau pour le piloter. Les 2 ESP32 communiquent via le Wifi. C’est le même logiciel pour les 2. Dans la page paramètres du deuxième vous précisez d’aller chercher les données du Linky chez le premier.
      Cdlt

      • Olivier D dit :

        Entendu merci. C’est cette deuxième partie concernant le logiciel sur la partie routeur ainsi que le paramétrage logiciel qui n’était pas clair pour moi.

        • Olivier D dit :

          Bonjour, je rencontre un pb à la compilation. J’ai résolu celui du hwcrypto/sha.h ligne 42 grâce à vos conseils. Mais maintenant , je bute sur une autre erreur : Compilation error: unused variable ‘adresse_max’ [-Werror=unused-variable].
          Le programme surligne la ligne 768.
          Est-ce que cela vous parle ?

          • Olivier D dit :

            J’ai trouvé la solution, si cela peut servir à d’autres. Dans Arduino IDE, j’ai changé le niveau d’avertissement du compilateur à « Default » dans les préférences, et c’est passé.

          • F1ATB André dit :

            Merci pour votre remarque. J’ai noté que pour la prochaine version, il faut que je passe en mode verbeux pour enlever tous les avertissements de compilation avant de la publier.

  21. Samuel BURG dit :

    Bonjour,

    J’ai une question/remarque sur la sauvegarde des données/paramètres/log via EEPROM.h qui interface la partition NVS du ESP32.

    J’ai relu une bonne partie du code source du logiciel, mais je n’ai pas encore identifié à quel endroit est visible la fréquence des écritures des données dans la mémoire flash (il n’y a pas de EEPROM, EEPROM.h est seulement une encapsulation de NVS).

    Au vu de la description du système sur cette page web, je suppose que la sauvegarde est faite une fois par jour.

    Vu que vous n’effectuez pas de repartitionnement de la mémoire flash du ESP32, nous avons donc une partition NVS de 0x5000 bytes soit 20kb.
    Vu que la flash du ESP32 a une pagination de 256 bytes, la partition NVS a donc 80 pages.

    Comme vous utilisez EEPROM.h sur 4000 words 32bits, soit 0x4000 bytes pour sauver ~1500 words, nous obtenons au mieux un rafraichissement de la flash toutes les deux écritures (à condition que EEPROM.h ne perturbe pas le wear leveling de la NVS ce dont je ne suis pas du tout certain).
    Notez ici que EEPROM.h ne permet pas de réaliser des écritures unitaire bit à bit comme sur une « vraie » EEPROM, mais que les écritures restent à la taille de la page.

    Vu que la mémoire flash du ESP32 est qualifié pour 10000 cycles, aux conditions sus présentées, et à 1 écriture par jour, ceci donne une durée de vie très acceptable de 20000j soit 55 ans ;-)).
    Si le wear leveling NVS est perturbé par l’interface EEPROM.h ceci donne 27ans, sans problème particulier.

    Par contre si on passe à 1 écriture par heure on tombe à 1an et 1 mois, ce qui devient problématique.

    Ceci aboutit donc à deux questions :

    – quel est la fréquence d’écriture prévue dans le programme de cette version V3 ?

    – au vu du code, vous savez apparemment bien manipuler les bits en C/C++, pourquoi ne pas utiliser des fichiers binaires de x*256 octets sauvés dans une partition LittleFS qui donne accès au wear leveling sur 1.5Mo au lieu de 16ko, donc bcp moins de soucis d’usure de la flash ? en plus ceci vous permettrait de déposer les fichiers html des différentes pages web en format .gz sur cette même partition LittleFS pour les servir via la bibliothèque WebServer ou AsyncWebServer (le fait de supporter le format .gz n’est pas documenté mais est bien present dans le code source de la bibliothèque AsyncWebServer et c’est fonctionnel, je n’ai pas vérifier ce point pour WebServer) .

    Cordialement,

    • F1ATB André dit :

      Il n’y a qu’une sauvegarde en mémoire par jour à zéro heure des 2 compteurs en Wh (soutiré et injecté) du Linky pour ne pas abuser. Il y a également sauvegarde à chaque fois que vous changez les paramètres ou les actions.
      Après, pour le code HTML, la solution actuelle me plait bien pour modifier rapidement le contenu en phase de développement.
      Merci pour le don.
      Cdlt

  22. Bourst dit :

    Bonjour, vos travaux sont exceptionnels !! Merci de partager votre expertise ! Je suis novice et je souhaiterais avoir votre avis: j ai un linky triphasé et j ai fait une install de 3kC en mono. Est ce que ça fonctionnera aussi? merci

    • F1ATB André dit :

      Oui pas de souci. Le Linky fait la somme algébrique des 3 phases. On peut injecter sur une phase et soutirer sur 2 autres. Le routeur cherchera à avoir une somme nulle.
      Cdlt

  23. Samuel dit :

    Bonjour André, c’est vraiment un énorme travail que vous avez fait là !!

    Pensez-vous qu’il soit possible facilement d’ajouter une sonde de température dans le chauffe eau pour arrêter la chauffe à une température de consigne ?
    Encore merci pour le partage !

    • F1ATB André dit :

      Oui, on peut mettre un DS18B20. Pourquoi? Un chauffe-eau s’arrête avec son propre thermostat. Même si le Triac est ouvert, rien ne sera consommé une fois la température atteinte. L’intérêt est seulement si on veut changer la température et en mettre une plus basse que celle du thermostat du chauffe-eau.
      Cdlt

      • Samuel dit :

        Oui c’est pas bête je n’avait pas pensé au thermostat interne du chauffe eau… Pourquoi je pense à cela : car j’ai un chauffe eau thermo dynamique.
        L’idée est d’avoir ma PAC de paramétré sur 55°C et la résistance a 60°C.
        SI je chauffe pas assez, en heure creuse, la PAC compensera
        Si je chauffe jusqu’à 60°C (même avec une douche le soir) la PAC ne démarrera pas..
        Et avec le thermostat interne, ce n’est pas très précis …

        Ou puis-je mettre un « if, else » dans votre code ? Sous l’onglet Action » du fichier RouteurSolaire_V_3.00_Linky.ino ?

        • F1ATB André dit :

          A la ligne 188
          digitalWrite(pulseTriac, HIGH);
          vous interdisez l’ouverture du Triac.
          Mais attention, il ne faut pas envoyer un signal découpé par un Triac à un Chauffe-eau Thermodynamique. L’electronique va bugger.
          Cdlt

          • Samuel dit :

            Merci beaucoup ! Je vais déjà essayer de faire votre montage « d’origine » et ensuite peux être essayer de le personnaliser avec la sonde et une petite led verte quand le chauffe eau est « plein » ^^

  24. Riet Serge dit :

    Bonjour
    Super realisation V3 car je suis en tri avec le linky sur l’exterieur.
    j’ai un probleme pour recuper le fichier *.ino ca bloque a 29.6 ko ?

  25. serge Riet dit :

    bonjour
    Pour le téléchargement de la V3 sur le site j’ai résolu le problème j’ai utilisé OPERA

  26. Samuel dit :

    Bonjour André, votre montage fait parler de lui sur le forum suivant : https://www.abcelectronique.com/forum/showthread.php?p=1045594#post1045594

    Si vous vouliez bien nous rejoindre pour échanger sur le sujet, cela serait avec plaisir .

    • Samuel dit :

      Visiblement le contrôle des phases ne fonctionne pas et apparemment cela n’est pas aux normes (niveaux d’harmoniques).

      Ceci a été démontré sur la discutions précédemment cité par le bais d’une simulation électronique . (Je n’ai pas les compétences technique pour vous fournir une explication clair et précise .)

      • F1ATB André dit :

        Le contrôle des phases marche correctement (voir les courbes plus haut). Montez le système, branchez y une lampe à incandescence pour bien visualiser la concordance, luminosité et pourcentage d’ouverture du Triac. Encore mieux si vous disposez d’un oscilloscope vous visualiserez les courants et tensions.

        Pour les harmoniques, il est vrai qu’un Triac génère des harmoniques comme tout gradateur de lumière ou votre chargeur de smartphone, votre télévision avec son alimentation à découpage.. Regardez à l’oscilloscope le courant entrant chez vous ou les courbes publiées sur la version V2 du routeur.

        Lorsque le Triac du routeur cherche à annuler la puissance entrante ou sortante, on parle de puissances échangées sur le réseau qui sont faibles. Même si le taux d’harmoniques en pourcentage est élevé, en valeur absolue comme on est proche de zéro, c’est peu impactant.
        Quand on fait une simulation, il faut prendre en compte également la réaction des onduleurs en sortie des panneaux solaire. C’est le bilan global, consommation non sinusoïdale de nos appareils, découpe en triangle d’un Triac et réaction des onduleurs. En hiver quand on a des radiateurs bien résistifs qui consomme beaucoup, cela est plus propre en relatif.

        Le problème est complexe avec l’électronique rapide qui découpe le secteur.

        Cordialement

        • Samuel dit :

          Merci pour votre retour, même si je n’ai pas les compétences technique pour apprécier votre réponse, je pense fair le montage et lorsque le chauffe sera alimenté à X% par le triac, je mettrais ma pince ampérométrique sur l’arriver EDF…au moins je serais fixé

          Et dans le pire des cas, c’est pas le prix de l’investissement à faire, et cela est un montage cool a faire

        • Alain dit :

          Je suis allé voir un peu sur ce forum, comme tous les forums, il y à le modérateur qui sachons tout, et qui dit tout le temps que ce que font les autres, ce n’est pas bien, là, il y à un ayatollah de la norme, qui dit qu’il sachons… 🙂

          • F1ATB André dit :

            Oui critique facile, surtout quand on n’a pas monté le système…

          • Samuel dit :

            Bonjour Alain, oui ce n’est pas évident pour quelqu’un qui n’est pas électronicien comme moi de défricher tout ça. Bricoler un truc c’est bien mais comme on joue avec du 230V, c’est vrai que pour ma part j’ai tendance a vouloir être sure d’être sur ^^

            En tout cas c’est un énorme travail qu’a fourni André, et encore merci à lui de nous le partager…

  27. Alain dit :

    Cest ballot, Enedis viens de me passer la Tic en mode standard car je monte le Routeur V3, et du coup l’afficheur de la maisonnette ne fonctionne plus…
    j’essaye de modifier le soft de l’afficheur, mais je patine un peu.

  28. F1ATB André dit :

    Retournez sur la page de la maisonnette, il y a une version du logiciel adaptée au routeur V3.00_Linky

  29. VU dit :

    Bonjour André,
    Pouvez vous m’éclaircir sur la sortie 22 du pulse, car à présent je n’ai jamais réussir à faire ouvrir mon triac, même en le forçant à ON dans l’onglet action, et aussi dans mes donnée brute je n’ai pas la ligne énergie injectée.
    Cordialement.

  30. Thibaut dit :

    Bonjour,
    J’avais déjà réalisé la version précédente qui fonctionnait parfaitement, même avec la limitation d’injection de mon onduleur. Du coup, je me lance dans cette nouvelle version. Cependant, pour limiter l’encombrement, j’ai fait une carte sur mesure, comme j’avais fait sur la version précédente, en intégrant le module triac. Du coup, toujours pour minimiser l’encombrement, je souhaite intégrer un ventilateur, qui serait piloté par l’ESP32. Quelles sont les modifications à apporter au soft pour activer une sortie de l’ESP32 lorsque le triac devient actif? Le ventilateur sera connecté au GPIO32. Merci d’avance pour votre aide. PS : si ca intéresse quelqu’un, je vais avoir des cartes en trop car minimum de commande de 5 PCB.

    • F1ATB André dit :

      Il suffit :
      – delarer la pin dans le setup:
      pinMode(32, OUTPUT);
      – de faire un test sur la valeur de la variable retard

      if (retard==100){
      digitalWrite(32, 0); //Pas de ventilo
      }else {
      digitalWrite(32, 1); //Ventilo On s’il se commande par un 1
      }

      que l’on peut faire toutes les 2s par exemple après les 665 et 666
      if (tps – previousTimer2sMillis >= 2000) {
      previousTimer2sMillis = tps;
      –> Mettre le code ici

      Personnellement, je ne suis pas en faveur du ventilateur. Un jour, il va tomber en panne par usure et le Triac va suivre.

      Cdlt

      • Thibaut dit :

        Merci beaucoup pour votre réponse. J’ai augmenté la taille du dissipateur et le montage peut fonctionner sans ventilation. Mais je préfère baisser un peu la température pour fiabiliser.

  31. Quentin dit :

    Merci beaucoup pour le travail que vous réalisez et que partagez gratuitement!
    J’admire votre ce que vous faites, continuez ainsi.
    Bien à vous

  32. Marc dit :

    Bonjour,
    Sympa votre site.

    J’avais une question concernant le relevé Linky.
    J’ai fait basculer au mode standard mais j’ai vu que je n’avais pas l’option injection(cela m’aurait intéressé), j’ai que le soutiré (???). Pourquoi ? Je suis en BASE, pas d’heure creuse/pleine, et qu’un index.

    Merci par avance de votre retour.



    NGTF BASE <
    LTARF BASE F
    EAST 010089921 –
    EASF01 010089921 @


    IRMS1 002 0
    URMS1 227 E
    PREF 06 E
    PCOUP 06 _
    SINSTS 00427 S
    SMAXSN E230601170334 01390 5
    SMAXSN-1 E230526205557 02880 $

    • F1ATB André dit :

      Bonjour

      Vous êtes le deuxième qui me parle de ce problème d’absence de valeur injectée.
      Je suppose que le Linky n’a pas été configuré en tant que producteur.
      De mon côté, lorsque j’ai fait ma déclaration à ENEDIS, le lendemain, j’avais le P de producteur qui s’est affiché en dernière ligne du Linky.
      La déclaration à t’elle été faite?

      Cordialement

      • Marc dit :

        Bonjour,
        Merci pour votre retour.
        J’ai rappelé EDF qui ont appelé ENEDIS et ils m’ont dit qu’il faut souscrire à la revente énergie pour bénéficier de cette information (injection) (Dommage pour moi, je suis passé du mode historique au standard pour rien, même si le service est gratuit). Comme j’ai des stations solaires, je vais donc m’orienter vers une autre solution autre que le linky (par exemple votre routeur avec transfo et transfo de courant, je suis en train de réfléchir).

        Cordialement

        • F1ATB André dit :

          Je ne comprends pas. Je ne fais pas de la revente et je suis bien marqué P comme Producteur.
          Il est étonnant qu’Enedis, ne fasse pas marquer sur votre Linky un P de producteur pour des raisons de sécurité de leurs employés.
          Appelez ENEDIS directement.
          Cdlt

          • Crapaud28 dit :

            bonjour,
            j’ai beau lire et relire….il faut revendre pour être producteur 😭…
            c’est triste je ne veux rien vendre…je veux simplement consommer.
            cdlt

          • F1ATB André dit :

            Non, vous n’avez pas à être revendeur. Personnellement, je ne suis pas vendeur. Mon excédent est offert à Enedis gratuitement….

        • Jean-louis dit :

          bonjour, j’ai le même problème je ne suis pas producteur pour énédis pour ce linky , (j’ai d’autres installations comme prod en vente totale) .
          étant en triphasée c’était la solution .
          Question a André il y aurait-t-il une solution autre pour récupérer cette information sans passé par le linky vu que je n’ai pas de remontée, devrait-il pas avoir au minimum la consommation qui apparaisse sur votre routeur ?

          Dans l’attente de vos réponses
          Bonne journée

  33. Marc dit :

    J’ai fait ma demande à EDF pour le basculement Historique/Standard et ils ont fait la demande à ENEDIS (de mon côté, cela a été un peu compliqué et 1 semaine après…à minuit aujourd’hui, ils l’ont basculé)
    J’avais déclaré mon installation de panneaux solaire le 28 Mai auprès du site ENEDIS.

    • JMichel dit :

      Bonjour

      Marc: je suis un peu dans votre cas. Déclaration le 8 mai (sur le site racco enedis) pour mon installation photovoltaique, et mon statut est toujours « transmission de votre demande ». Par contre le passage au mode standart ( via mon fournisseur d’énergie) a été rapide (2jours).

      André: votre routeur V3 fonctionnera -t-il même si le mode producteur n’est pas « configuré » dans le linky?
      Merci

      • F1ATB André dit :

        JMichel

        Non, si le mode Producteur n’est pas configuré, cela ne marchera pas.
        Comme mentionné pour un autre utilisateur de mon routeur, il est étonnant qu’Enedis ne mentionne pas le P de producteur sur le compteur pour la sécurité de leur personnel.

        Cdlt

        • JMichel dit :

          bonjour
          un appel téléphonique a permis de débloquer la situation à « racco enedis » cela a débloqué mon statut « transmission de votre demande » et j’ai pu signer mon cacsi.
          Cependant une chose n’est pas claire pour moi: je suis en mode en standart, j’ai maintenant le cacsi OK, mais je n’ai pas le « P » sur le linky (mode TIC).
          Ceci veut-il dire que je ne suis pas configuré en mode producteur?
          ou bien que malgré l’absence de la lettre P le mode producteur est peut être activé?
          Merci

          • F1ATB André dit :

            Je ne comprends pas bien. Si vous avez signé un CACSI, cela veut dire que vous ne produisez pas sur le réseau Public (Sans Injection). C’est probablement le pourquoi de l’absence du P.

  34. Max dit :

    Bonjour,
    Je tiens à vous remercier pour le partage que vous faites de toutes vos expérimentations et le temps que vous prenez pour bien l’expliquer. Beau partage de savoir !
    Une question au passage de mon coté, j’ai un système domotique (Home Assistant) qui me permet de piloter mes chauffes eau (O/I en Zigbee) et de connaitre en temps réel les conso les chauffe eau, ma production solaire, ce que je soutire du réseau, et par déduction ce que j’exporte en temps réel (via la passerelle Enphase Envoy-S Metered en monophasée de mes panneaux solaires). Est-il possible d’utiliser votre système uniquement la partie pilotage du CE et en utilisant les données d’entrée venant de Home assistant et non du Linky? Et en définissant du coup la règle où si pas d’info en entrée, ouverture à 100% pour chauffer l’au (il vaut mieux chauffer l’eau plutôt que d’avoir la désagréable surprise d’un ballon d’eau froide …). Merci pour votre retour.

    • F1ATB André dit :

      Oui, c’est faisable, mais il faut des compétences en programmation pour re-ecrire le code d’acquisition des données de consommation.
      Cdlt

      • Max dit :

        J’ai cru comprendre qu’une version avec sonde est en cours de développement mais est-ce que plancher sur une version 4.0 orientée domotique sans capteur physique en amont serait-il envisageable ? La communauté HA apprécierait grandement…

        • F1ATB dit :

          Avec le linky. j’ai une info sur la conso toutes les 2s. Avec home assistant et en phase, j’aurais une info de conso toutes les 5mn. On peut alors réguler mais que très approximativement.

  35. Serge 11 dit :

    Bonjour,
    Dans vos exemples de configurations, vous précisez: »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). ».
    Comment les 2, ou 3 ESP ce synchronises? La même adresse IP pour les 3?
    Cette configuration est adaptable à la version 2?
    Cordialement.
    Serge

    • F1ATB André dit :

      Jamais la même adresse IP à 2 machines différentes. C’est comme donner le même numéro de téléphone à 2 postes différents;
      Un ESP 32 lit le LINKY. Pour les autres ESP ont indique dans les paramètres d’aller chercher les infos sur le premier ESP connecté au Linky en donnant son adresse IP.
      Pour la version 2, il y aura la même chose de faite cet été.

      Cdlt

      • Serge 11 dit :

        Je pensais bien que l’adresse IP ne peut être partagé.
        Mais là ou je ne suis plus c’est quand vous dites que c’est le même programme sur les différents ESP.
        Ou ce fait la distinction maitre/esclave?
        Cordialement.
        Serge

        • F1ATB André dit :

          Dans la page paramètre, vous choisissez la source des données. Soit le Linky branché à l’ESP, soit l’adresse IP de l’ESP qui est branché au Linky.
          Cdlt

  36. Thomas dit :

    Bonjour André
    je n’ai pas vu de réponse semblant correspondre à ma question, aussi je la pose..
    est il possible de remplacer le module gradateur par un SSR directement ?
    Car certains routeurs sont équipé de la sorte (avec un bon radiateur sous le ssr)
    Merci

    • F1ATB André dit :

      Les relais SSR ne permettent pas une ouverture fine pour ajuster la puissance. Le routeur présenté ici présente un gradateur pour une ouverture fine et des SSR en tout ou rien.
      Cdlt

  37. Olivier D dit :

    Bonjour André, j’aurais besoin de votre aide.
    Avant de découvrir votre site et donc votre routeur, j’ai acheté un module téléinfo sur tindie (https://www.tindie.com/products/hallard/wemos-teleinfo/) ainsi qu’un ESP32 S2 Mini, qui s’adapte parfaitement sur le module.
    Mais quand je téléverse votre programme RouteurSolaire_V_3.00_Linky.ino avec Aduino IDE, j’ai un message d’erreur « Compilation error: ‘Serial2’ was not declared in this scope ». Pensez-vous qu’il soit possible d’adapter votre programme au S2 mini ?

  38. Franck dit :

    Bonjour Andrè.

    Est il possible de rajouter c’est quelques lignes de codes pour avoir la température du ballon d’eau chaude?

    #include « OneWire.h »
    #include « DallasTemperature.h »

    OneWire oneWire(A1);
    DallasTemperature ds(&oneWire);

    void setup() { ds.begin(); // sonde activée
    }

    void loop() {
    ds.requestTemperatures();
    int t = ds.getTempCByIndex(0)
    }

    • F1ATB André dit :

      Oui c’est possible. Il y a de la puissance de calcul. Mettre cela dans une boucle de 5mn ou autre. Il n’est pas nécessaire de mesures toutes les secondes la température.
      Cdlt

      • Franck dit :

        Je pensais même à un lecteur toute les 15min, largement suffisant.

        La partie ds.request … est à placer dans la boucle void loop principal de votre programme je suppose?

  39. dacquignie dit :

    Bonjour André, est il possible de récupérer le signal depuis un smd120 comme utilisé par le routeur « le brulant » plutôt que depuis le linky, et si oui comment, bien à vous, MD.

  40. patrice dit :

    Bonjour, tout d’abord un grand merci pour vos partages qui sont très bien décris. je viens de terminer le routeur v3 linky et malheureusement je suis me suis rendu compte à la fin de la réalisation que je n’ai pas les données d’injection. Je viens de comprendre que c’est lié à mon type de déclaration (CACSI) qui ne permet pas d’avoir cette mesure sur le linky. Je vous propose de donner cette information en début de description car j’ai l’impression que plusieurs personnes ont eu le même problème et ne l’ont découvert qu’une fois lancée. Je vais me retourner sans doute sur la V2 du routeur même s’il est plus complexe et que je ne suis pas fan de mettre une sonde dans le tableau électrique ne sachant pas quels risques je prends à laisser de manière permanente une sonde « aliexpress » dans le tableau général de la maison. Peut-être pouvez-vous d’ailleurs m’éclairer sur ce point ?

    • F1ATB André dit :

      Dans votre cas, c’est la V2 plus approprié. Vous pouvez déjà la monter, cet été, je sortirai une version plus simple et plus complète comme la V3.00_Linky, elle s’appellera V3.00_Sonde.
      N’ayez aucune crainte avec la sonde. Il n’y a pas de branchement électrique avec le réseau, ni de puissance. Ce n’est qu’une bobine qui entoure le câble du secteur pour récupérer une partie du champ magnétique rayonnée par le courant qui passe.
      Vous avez raison, je vais mettre une note pour le CACSI

      Cordialement

      • patrice dit :

        Merci pour votre retour. Décidément, je n’ai vraiment pas bien compris car vous indiquez que l’on peut en cas de CACSI, utiliser le routeur avec un seuil de réglage au-dessus de zéro. Vu que mon montage était terminé avec le triac, j’ai essayé tout de même avec une simple lampe de 70 w et un seuil du triac à 10w dans la configuration du triac mais sans sucés bien que mes VA et W soutirés étaient à 0 grâce à un beau soleil.Je fais peut-être fausse route.

        • F1ATB André dit :

          mettez un seuil plus haut. essayez 100 ou 200w

          • patrice dit :

            J’ai regardé le code pour comprendre ce qui ne vas pas. Je pense que les infos de la trame que je reçois du linky ne sont pas suffisantes pour faire fonctionner le programme. En effet, je ne dispose pas dans la trame de la valeur de EAIT entre autres donc ca ne peut pas fonctionner à mon sens. Par exemple dans le code il y a ce test « if (EASTvalid && EAITvalid) {« . Merci de l’aide tout de même. C’est bien sympathique de répondre aux questions.

  41. F1ATB André dit :

    Vous avez raison, j’ai plus pensé au test EAITvalidr. Je suis pas chez moi et j’ai répondu de tête. Modifiez le code. Au début dans la déclaration mettez EAITvalide= true

    cdlt

    • F1ATB André dit :

      Je viens de modifier les explications sur le CACSI plus haut dans la page, pour contourner la difficulté.

    • patrice dit :

      Bonjour André, je vous fait un retour après une semaine de fonctionnement. Pour le contexte, j’ai une petite installation de 800w. Mon talon est d’environ 200/250w. Mon surplus est envoyé vers un chauffage d’aquarium de 300w qui me permet donc de récupérer la surproduction. Le routeur marche très bien avec la modification que vous proposez du code. J’ai mis un seuil à 10w sur le triac et ça me semble très satisfaisant. La régulation se fait correctement dès que j’ai un peu de surplus. Dés que l’ouverture du triac est trop élevée, la baisse est quasi immédiate pour retrouver une valeur de VA et W à 0. J’ai déjà constaté du gain sur la consommation journalière avec ce système. Tout watt est bon à prendre 🙂

      • F1ATB André dit :

        Merci pour ce retour positif dans une configuration type CACSI qui impose une modification d’une ligne de code.
        Vos poissons doivent vous remercier pour ce gain de température les jours de soleil…

  42. Patrick L. dit :

    Bonjour F1ATB André, un grand merci pour ce partage.
    Voulant travailler par petites étapes afin de maitriser le processus complet, pensez-vous qu’un ESP8266 soit assez rapide pour tester uniquement dans un premier temps le décodage des trames (que j’afficherai simplement dans la console).
    Oui, je n’ai pas encore pratiqué l’Arduino et je voudrai limiter les échecs trop décourageants !
    Merci et bonne journée.

  43. Olivier D dit :

    Bonjour André, je vous contacte car j’ai un problème avec la fonctionnalité Mqtt. J’ai téléversé le programme sur l’ESP32, j’ai configuré le Wifi comme recommandé avec la méthode point d’accès, j’ai configuré Mqtt sur l’interface, j’ai sauvegardé et j’ai fait le reset.
    J’ai bien des données du linky, en courbe, en tableau et en brut sur votre interface Web. J’ai lancé le remotedebugapp et sur la console je ne vois pas de message (bon ou mauvais) d’envoi Mqtt.
    J’ai aussi lancé un Mqtt Explorer sur le broker. Il y a des messages mais rien en provenance de l’ESP32 du linky. Là je sèche.
    Pouvez-vous m’aider ? Merci

    • F1ATB André dit :

      Avez vous rempli la page des paramètres avec une période de répétion en seconde, l’adresse IP etc…?

      • Olivier D dit :

        Oui j’ai bien rempli tous les paramètres, @ip, port, user, password. Je peux vous envoyer toutes les informations techniques et screenshot que vous souhaitez car je tiens vraiment à faire fonctionner votre routeur qui est juste top !

        • Olivier D dit :

          Bonjour André, je me suis permis d’ajouter des lignes de print serial pour voir les valeurs des paramètres mqtt. Je vois bien le port, le user, le mdp, et la fréquence. Par contre l’@ip a pour valeur 3232235816 .
          Est-ce normal ? Si oui que puis-je vérifier d’autre ?

          • F1ATB André dit :

            l’adresse IP au format 3232… est sous forme d’un entier et non formaté comme 4 octets séparés. c’est normal.

          • Olivier D dit :

            J’ai enfin trouvé la cause. Dans votre code, il y a une condition sur le fait que valeur de EAIT soit valide. Hors mes PV ne seront installés que début juillet. Mon compteur est donc encore en mode consommateur et dans ce cas, je n’ai pas d’étiquette EAIT émise par le Linky. Donc le programme ne rentre pas dans l’envoi MQTT. En retirant cette condition, l’envoi MQTT se fait correctement.
            Est-ce que la lecture à partir d’un autre ESP32 client (comme celui du chauffe-eau) fonctionne tout de même sans étiquette EAIT ?

  44. Guitou030 dit :

    Bonjour André

    Félicitation pour cette nouvelle version. J’ai la V2 qui tourne depuis 3 mois et cela fonctionne parfaitement. Du coup j’ai commencé à fabriquer le V3 avec le Linky et je rencontre une petit soucis je n’ai pas de remonté de la puissance injectée. Dans les données brutes je n’ai pas de ligne SINSTI. toutes les autres infos remontent bien. Avez vous une idées?
    Pour info je suis en autoconsommation sans revente du surplus.
    Merci pour votre aide
    Guillaume

    • Guitou030 dit :

      Je viens de lire les commentaires plus haut désolé pour le dérangement je vais attendre avec impatience la V3 avec sonde.
      Encore félicitation pour tout ce que vous développer et pour tous ces partages.

      Guillaume

    • F1ATB André dit :

      Vous devez avoir signé un. CACSI, les infos d’injection ne sont pas données. Voir article plus haut.

      • Guitou030 dit :

        Merci pour votre retour je n’avais pas lu les derniers commentaires j’avais tout préparé et attendait l’arrivé de mes otocoupleurs chinois j’ai testé direct sans venir relire les explications! Pour infos j’ai fait la modif « bool EAITvalid = true » cela fonctionne parfaitement pour le triac j’ai mis un Pw à 15w. En revanche pour le relai piscine je pense que c’est plus compliqué de faire fonctionner sans avoir des marche/arrêt successifs sauf de mettre de mettre le OFF à une puissance un peu élevée mais du coup on consomme chez EDF.

  45. F1ATB André dit :

    Content de voir que la modif EAITvalide=true fonctionne pour réguler avec le triac dans le cas d’un CACSI. Pour le relais de piscine, il faut que le seuil du Off – seuil du On soit supérieur à la consommation du moteur afin de ne pas rentrer en oscillations. Il faut même y rajouter une marge pour compenser l’appel de puissance au démarrage.

  46. JMichel dit :

    Bonjour
    à propos du coupleur Optique LTV-814, comment fait-on pour repérer les bornes indiquées « 1 »; »2″, »3″ et « 4 » sur votre schéma de montage?
    J’ai cherché sur le net, je suis tombé sur des datasheets (dur à décoder pour moi). Concrètement, il y a un petit disque gravé. Ce disque semble servir à repérer la bornes « 1 »… Ci dessous une tentative de dessin à défaut de photo. Le « o » représente le disque gravé sur le plastique noir.
    ———
    3 | | 2
    4 | o | 1
    ———–
    Alors ai-je bon??? Merci.

  47. HAZARD dit :

    Bonjour,
    Je me lance dans la réalisation de votre projet car j’avais commencé une étude similaire.
    Je suis en triphasé et je ne vois pas la variable SINSTS qui cumulerait les 3 phases mais SINSTS1,SINSTS2,SINSTS3.
    Par contre je vois bien SINSTI.
    J’imagine que vais trouver dans votre code où totaliser ces valeurs.

    En tout cas merci d’avoir publier votre projet et pour votre approche très didactique.
    Cordialement.

    • F1ATB André dit :

      Je ne comprends pas bien si vous parlez de mon programme ou des messages du LINKY décrits dans la documentation ENEDIS.
      Dans mon programme, les variables SINSTS et SINSTI sont déclarées aux lignes 98 et 99.
      Je n’utilise pas SINSTS1,SINSTS2,SINSTS3. Elles ne sont pas utiles au routeur.
      Cdlt

  48. StefanDu30 dit :

    Bonjour
    Ayant actuellement une offre tempo, je regardais s’il était possible de récupérer l’info de la couleur du jour, ça c’est bon, mais aussi celle du lendemain sur la trame, mais n’ayant plus de jours blanc ou rouge j’ai un peu de mal, à tout hasard auriez vous cette info ?
    Merci encore

  49. HAZARD dit :

    Bonjour,
    Savez-vous si en triphasé on voit systématiquement la puissance soutirée sur 1 seul variable ?
    De mon côté dans les données provenant du zlinky de lixee je vois 3 lignes :
    SINSTS1 Puissance apparente immédiate délivrée (phase 1)
    SINSTS2 Puissance apparente immédiate délivrée (phase 2)
    SINSTS3 Puissance apparente immédiate délivrée (phase 3)
    Je pense que la totalisation dans le sketch sera néanmoins à ma portée.

    Merci encore pour votre projet .

    Pierre HAZARD

    • F1ATB André dit :

      Le Linky donne la somme SINSTS, donc je ne traite pas les valeurs par phase. Elles sont néanmoins visibles dans la vue données brutes.

      Cdlt

  50. dacquignie dit :

    Bonjour André, j’ai terminé le montage, la bascule du mode historique au mode standard vient d’être réalisée par EDF, j’ai bien un signal depuis le linky, et les infos suivante :
    Energie active soutirée 8 316 Wh
    Energie active soutirée Fournisseur,
    index 01 460 115 Wh
    Energie active soutirée Fournisseur,
    index 02 309 060 Wh
    Energie active soutirée Fournisseur,
    index 03 30 899 Wh
    Energie active soutirée Fournisseur,
    index 04 30 775 Wh
    Courant efficace, phase 1 8 A
    Tension efficace, phase 1 3 V
    Puissance app. Instantanée soutirée 1 903 VA
    Puissance app. max. soutirée n 0 VA E 17/06/23 04h 44mn 37s
    Puissance app. max. soutirée n-1 NaN VA E 16/06/23 02h 46mn 3s
    par contre je n’ai pas fait de demande CACSI car j’ai un dossier de raccordement JPME en cours, mais je n’ai quand même pas de données dans injection, (je n’ai pas encore câblé le TRIAC sur la haute tension) et j’ai des valeurs dans le premier onglet qui me semblent anormales : puissance active du deuxieme tableau entre -1 million et 1 million et dans les données du troisième tableau, j’ai des grandes lignes jaunes les unes à la suite des autres entre -800.000 et +800.000 Wh/j sur un an alors que je l’ai branché ce matin, auriez vous une idée (je précise au cas ou que j’ai un tarif tempo)

    aussi, j’ai remarqué avec regret que mon délesteur shneider fip clic 3v-1z 15783 ne reçoit plus la téléinfo, c’est certainement qu’il ne connait pas le nouveau langage std du linky mais seulement le langage historique, du coup, ce délesteur ne m’indique plus les infos couleur jour sur mon regulateur d’ambiance et n’envoie plus le signale heure creuse à mon ballon, Je pense qu’il est important de remarquer ce type de désagrément possible à tous vos abonnée qui comme n’y connaissent pas grand chose en la matière et qui serai équipé avec le même type de matériel.
    Connaissez vous un autre délesteur/régulateur d’ambiance qui pourrais être compatible avec le signal standard du linky pour remplacer le mien ?
    pour mon ballon d’eau chaude, j’ai déjà pris l’initiative de commander sur AMZ un disjoncteur 20A connecté tuya afin de programmer par horaires plutôt que par signal EDF heures creuses.
    Encore merci pour votre aide, bien cordialement, MD.

    • F1ATB André dit :

      Dans un premier temps, débranchez le routeur du Linky pour voir si votre délesteur fonctionne bien. J’ai cherché un peu sur internet pour savoir si le modèle que vous utilisez est compatible du mode standard. Je n’ai pas trouvé de réponse mais j’ai vu que d’autres modèles ne l’étaient pas.

      Vu que certains chiffres sont non conformes, il y a un problème de cohabitation des 2 systèmes. Pour faire cohabiter les 2, augmentez la résistance de 1.5kohm en entrée.(2k, 3k ou 4k). Peut-être que pour une certaine valeur, cela fonctionnera correctement pour les 2 dsystèmes.

      Autre solution, vous débranchez votre délesteur et demandez au routeur avec des relais de faire les fonctionnalités du délesteur.

      Cdlt

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *