Capteur Linky pour routeur photovoltaïque

Un routeur Photovoltaïque a besoin de connaitre avec précision la puissance échangée avec le réseau public en entrée de maison. Nous avons deux situations :

  • de la consommation avec de la puissance ou énergie soutirée
  • de la surproduction avec de la puissance ou énergie injectée

Pour mesurer le niveau de puissance et connaitre son sens de transfert, il faut connaitre à tout instant la tension électrique et le courant électrique derrière le disjoncteur principal.

Le compteur Linky installé dans les foyers français fait cela très bien en monophasé et triphasé. 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.


Branchement à la prise TIC du Linky

Il faut retirer le boitier jaune et la prise TIC se trouve dans la partie inférieure droite. 3 sorties la composent : A pour alimentation, que nous n’utiliserons pas, et I1 et I2 qui fournissent une sortie série asynchrone.

Le Linky à 2 modes de fonctionnement :
– historique : liaison à 1200 bauds, équivalent à d’anciens compteurs
– standard : 9600 bauds, plus riche en informations.

Le mode standard est impératif pour ce projet. Vous pouvez afficher le mode en cours sur votre Linky. Pour en changer, appelez votre fournisseur d’électricité, le changement est gratuit et prend 1 ou 2 jours.

Le signal fourni est de 0V pour un 1, et une sinusoïde à 50kHz 25Vmax pour un 0.

Format des données en mode standard

Pour chaque donnée envoyée par le Linky, il y a un formatage facile à comprendre et décoder. Il y a un nom, la valeur, et un check-somme. La séquence démarre par le caractère ‘STX’ et termine par ‘ETX’. Le document ENEDIS décrit parfaitement les messages.

Le routeur proposé permet de visualiser toutes les données du Linky en monophasé ou triphasé. Nous nous intéresserons principalement aux 4 données ci-après qui sont des valeurs entières :

Messages LinkySoutiréInjecté
Puissance Apparente : SSINSTS
VA
SINSTI
VA
Puissance Active PNON fourni
W
NON fourni
W
Energie Totale : EEAST
Wh
EAIT
Wh
Nom variable / Unité

Le Linky donne toute les 2s, la puissance instantanée apparente soutirée SINSTS, la puissance instantanée apparente injectée SINSTI, mais ce qui nous intéresse le plus, c’est la puissance active en W qui n’est pas fournie. Néanmoins, en analysant l’énergie en Wh, EAST et EAIT, on a une mesure de la puissance active moyenne sur une longue période.

Avec SINSTS et SINSTI, on voit immédiatement si on consomme ou injecte de la puissance, ce qui est le plus important pour le routeur même si on ne connait pas la puissance active avec exactitude. Il y a également un paradoxe avec SINSTS et SINSTI, car une puissance apparente est le produit de la tension efficace par le courant efficace qui ne tient pas compte de la phase ou du sens de transfert (soutiré ou injecté). Cette distinction faite par le Linky nous sera utile.

Par la suite, pour le pilotage des actions, on utilise la variable Pw qui correspond à la Puissance Active Moyenne Soutirée – Puissance Active Moyenne Injectée.
Pw > 0 on soutire de l’énergie en provenance dEnedis
Pw < 0 on injecte de l’énergie vers le réseau public Enedis

Remarque CACSI

Attention, si vous avez signé un CACSI (Convention d’Autoconsommation Sans Injection) ou vous nêtes pas déclaré producteur auprès d’ENEDIS, vous n’aurez pas les valeurs injectées (SINSTI et EAIT). La nouvelle version du programme V3.10_Linky détecte ce cas et 8s après la mise en route vous fournit les valeurs de consommation (soutirée) uniquement.

Il est impératif dans ce cas avec CACSI, d’utiliser le routeur avec un seuil de réglage au-dessus de zéro, par exemple la consommation talon de votre maison : 200W. Si vous passez en dessous de ce seuil et à condition que le système qui bride la sortie d’énergie vers ENEDIS ne soit pas encore actif, les W commenceront à être envoyés à votre chauffe-eau ou tout autre dispositif.

Micro-Calculateur ou Microcontrôleur

ESP32 – Development Board

Pour lire la trame de données en sortie du Linky, un microcontrôleur ESP32 est adapté à notre besoin. Il comprend :

  • des entrées analogiques pour mesurer des tensions,
  • des entrées/sorties numériques pour actionner un relais ou un triac si besoin,
  • une bonne capacité de calcul
  • une liaison WIFI pour faire du reporting à distance sur une page web ou un système de domotique.

La partie logicielle et le pilotage du Triac font l’objet d’un autre article sur ce blog.

Matériels

Raccordement au Linky

Suivant la longueur du câble vers le Linky, R1 =1200 ohm est plus adapté.

Au niveau du Linky connectez 2 fils sur les broches I1, I2. Fils assez gros pour rester coincé. Si vous avez une longueur de plusieurs mètres vers l’ESP32, utilisé du fil torsadé de téléphone ou mieux du fil de réseau informatique torsadé et blindé en reliant le blindage à la masse (Gnd). En entrée du système, une résistance R1 de 1.5kΩ permet de respecter la charge recommandée par ENEDIS > 1kΩ et le courant nécessaire au coupleur optique (LTV-814) pour bien démoduler en 0 le signal à 50kHz. Après quelques essais avec un oscilloscope, c’est cette valeur qui me fournit un bon signal en sortie du coupleur vers l’ESP32 dont une résistance de 10kΩ rappel le signal au +3.3V quand le coupleur ne conduit plus.

Schéma de Regis A. adapté à une très grande longueur de câble.

L’opto coupleur étant composé de 2 diodes en parallèle de sens opposé, il conduit sur la phase positive ou négative du signal d’entrée. Ainsi, durant toute la durée des oscillations à 50kHz on a un signal de sortie à zéro.

Schéma d’entrée alternatif, trouvé sur le Web

Certains réalisateurs avec une longue ligne capacitive vers le Linky ont descendu R1 jusqu’à 500Ω pour avoir des messages cohérents en entrée.

Personnellement après plusieurs mois avec une résistance R1 de 1500Ω, j’ai constaté quelques erreurs parfois. En decendant R1 à 1200Ω, ces erreurs semblent avoir disparu.

Van R. avec un câble ethernet CAT7 de 30m et une résistance d’entrée de 1000 Ω a fait fonctionner l’étage d’entrée.

Regis A, avec un câble long de 27m (type Ethernet CAT6) ont amélioré l’étage d’entrée en y incluant un Mosfet.

Si le Linky est chargé par d’autres appareils, on peut diminuer la charge imposée par notre interface en remontant la résistance R1 à 4.7kΩ et en rajoutant un Mosfet pour amplifier comme proposé sur différents schémas sur le web.

Raccordement à l’ESP32

La lecture de la trame série reçue du Linky se fait sur la broche GPIO26 de l’ESP32. La sortie TX est sur le GPIO27 mais n’est pas utilisée. A laisser libre.

Schéma pour collecter uniquement les données du Linky

2 Leds vertes et rouges, sur les GPIO 18 et 19 renseignent sur le fonctionnement du système.

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.

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

Liste de Courses

Code Source et installation du logiciel

Pour télécharger le code source, le compiler puis le transférer dans l’ESP32, allez sur la page : Routeur photovoltaïque simple à réaliser

Si vous utilisez également l’affichage distant de la « maisonnette », pensez à mettre à jour le logiciel :
https://f1atb.fr/affichage-a-distance-consommation-ou-surproduction-electrique/

Maquette 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.

Données brutes du Linky

La page Web de l’ESP32 permet d’afficher l’ensemble de la trame de données envoyée par le Linky.

EAST : Enegie Active Soutirée Totale en Wh
EAIT : Energie Active Injectée Totale en Wh
SINSTS : Puissance apparente INSTantanée Soutirée Totale en VA
SINSTI : Puissance apparente INSTantanée Injectée Totale en VA

Si EAIT et SINSTI n’apparaissent pas dans le tableau, c’est que vous n’êtes pas producteur pour Enedis ou vous avez signé un CACSI.

Unités en photovoltaïque

Si vous n’êtes pas à l’aise avec les Watt, Watt crête, Volt Ampère etc. , la vidéo ci-dessous peut vous aider à mieux comprendre.

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...

44 réponses

  1. Philippe Chauvet dit :

    Bonjour André et encore merci pour tes travaux; Personnellement j’ai réalisé ton routeur solaire qui fonctionne à merveilles depuis quelques mois. A présent je dois faire toutes les démarches administratives de conformité. J’ai déjà l’autorisation de la mairie. A présent je souhaiterais faire la démarche auprès d’Enedis et donc faire un choix entre injecter ou pas le surplus de production. Ma question est la suivante: si je paramètre mes iQ7A en zéro injection, cela ne va t’il pas perturber le fonctionnement de mon routeur solaire et du coup baisser mon rendement global.?

    • F1ATB André dit :

      À moins d’avoir des puissances à injecter au-delà de 3kVA, il n’est pas nécessaire de brider.
      Si vous bridez, le routeur sera perturbé. Au lieu de mettre le seuil de régulation à 0W, il faudra le mettre à 100W par exemple afin qu’il détecte que l’on s’approche de l’injection avant que le bridage soit actif.
      Cdlt

  2. Philippe Chauvet dit :

    Merci pour la réponse, il faut donc que je passe une convention avec injection de surplus ?

  3. Degphi dit :

    Bonjour,
    Une très belle réalisation, claire et précis. Les différentes versions (modulable ou complète) sont intéressantes.
    Par contre, pour l’ESP32, on pourrait avoir un lien pour commander le même modèle ? Car il existe des ESP-32 30P, ESP-32 38P, ESP32 WROOM 32D, ESP32 WROOM 32U, … Comme je suis une truffe, un lien vers le même modèle serait sympa.
    Merci encore pour tout le travail.
    Cordialement.

  4. yanick dit :

    bonjour,
    ayant deja un serveur wes utilisant ma sortie linky elle se trouve perturbee par l’ajout du routeur en montage avec seulement l’optocoupleur LTV814.
    j’ai donc essaye en utilisant le montage qui ajoute un mosfet BS170.
    je n’arrive pas a obtenir le TIC.
    j’ai donc fais plusieurs mesures en debranchant mon entree TIC et en simulant le signal en reliant:

    *** (2) teleinfo a GND et (1) teleinfo au +3.3v
    j’obtiens la valeurs suivante:
    3.2 V sur la gache du mosfet
    0V en entree D26

    *** (2) teleinfo a GND et (1) teleinfo a GND
    0 V sur la gache du mosfet
    j’obtiens 0.6 V entree D26

    j’ai beau avoir controle et refais mon montage plusieurs fois c’est toujours pareil
    pouvez vous me confirmer que je devrais bien avaoir 3.3 V en entrre D26 au lieu des 0.6 V ?
    d’ou cela peut il venir ?
    merci

  5. Patrice dit :

    Bonjour André
    J’ai installé votre routeur version 4 sur une installation alimentée en triphasée avec des panneaux solaires en monophasé et un ballon d’eau chaude 3x800W dont j’utilise une résistance de 800W pour le routeur et 2x800W la nuit en complément si besoin en heures creuses. Je remonte les infos via linky et j’ai signé un cacsi donc je n’ai pas les infos des valeurs injectées. J’ai essayé différentes valeurs seuils de déclenchement du triac (200, 400, 600W) mais je n’arrive pas à obtenir une consommation à 0 en période de surproduction solaire. Où me conseillez vous de placer le curseur de réactivité pour la charge de 800W ?
    D’autre part, ne serait t’il pas possible de faire un montage mixte avec les infos du linky de consommation triphasé qui sont fiables et une mesure type UxlX2 pour la production solaire et par la différence des 2, piloter le triac précisément sans paramétrage d’un talon de consommation qui est variable.
    J’ai vu que vous aviez développé une version 5 pour les micro onduleurs enphase. J’ai hésité d’acheter ceux si mais j’ai finalement pris des Hoymiles HM800 avec un DTU Pro Hoymiles. Je ne sais pas si vous envisagez de développer quelque chose sur ce produit ?
    Encore merci pour le partage de votre travail.
    Cordialement
    Patrice

    • F1ATB André dit :

      Il faut mettre le seuil à 50W par exemple. Ce qui veut dire que vous n’aurez jamais 0 mais toujours autour de 50W de consommé. Cela est je pense inférieur à votre salon.
      50W de consommé pendant 8h de soleil, cela fait 0,4kWh, donc environ 0.10€. Cela n’est pas bien grave et vous contournez le problème du CACSI. Ou vous changez votre seuil de CACSI en laissant une légère injection. Enedis vous en voudra pas.

      Pour l’instant, je n’envisage pas d’extraire les données d’autres onduleurs.

      Cdlt

      • Patrice dit :

        D’accord, je vais essayer 50W, j’avais compris qu’il fallait mettre la valeur de la consommation talon.
        Pour le réglage du curseur de réactivité du triac vous me conseilliez quoi ?
        Concernant l’idée d’utiliser un tore de mesure sur la production solaire mixé avec les données linky de consommation, vous en pensez quoi ?
        Cordialement

        • F1ATB André dit :

          La réactivité devra je pense être autour de 10.

          Meme si vous rajoutez une mesure de production photovoltaïque, celle ci va être bridée par votre onduleur en raison de la limitation CACSI. Cela n’apportera rien.

          Cdlt

  6. Tallon Jean dit :

    Bonjour André, je commence mon installation (6Kwc) et je suis en triphasé + ejp. Jusque là pas de pb, Je souhaite réaliser votre routeur photovoltaïque à partir de la prise TIC du linky. Mais fournissez vous le code source à injecter dans l’ESP32. Je n’ai pas trouvé . Merci pour toute votre expérience mise à disposition.

  7. Jean-Louis dit :

    Bonjour J’arrive bien a télécharger la version ljnky V3 mais impossible avec la version V5 ? une idée merci

  8. Tallon Jean dit :

    Bonjour André, je vais finaliser ce routeur avec linky car je suis en tri et celà parait être la meilleure solution. Par contre je ne suis pas habitué à IDE Arduino mais bon je m’en suis sorti.
    Je suis avec VS code et PlatformIO et je galère un peu avec les librairies et les #include
    Si quelqu’un passe par là et à dejà fait ce portage, je suis preneur. Si je finalise je partagerai
    En tout cas merci pour tout

  9. Phill dit :

    Bonjour André,

    Mes valeurs sur la page web restent a zéro. pourtant j’ai bien une tension qui bouge de 1.2v ~~1.6v sur la PIN26.

    Quesque je peux vérifier a ton avis ?

    • F1ATB André dit :

      Il faut changer la valeur de R1. En général la baisser si vous avez un long câble entre le Linky et l’ESP32. 1.2kohm ou 1kohm.

      • Phil dit :

        André, je suis a 30cm pour faire les tests, je viens de mettre la dernière version même résultat.

        j’ai plus l’heure quand je configure le wifi, j’ai le message « Attente de l’heure par internet »

        j’ai plus d’idée là

      • Phil dit :

        D’accord je vais essayer.

        dans données brutes pas de grand tableau !
        juste ça :
        ESP On depuis : 0h 00mn
        Source des mesures : Linky
        Niveau WiFi : -64 dBm
        Point d’accès WiFi : xxxxxxxxxxxx
        Adresse MAC ESP32 : xxxxxxxxxxxxxxxx
        Réseau WiFi : HUAWExxxxx
        Adresse IP ESP32 : 192.168.1.102
        Adresse passerelle : 0.0.0.0
        Masque du réseau : 255.255.255.0
        Charge coeur 0 (Lecture RMS) Min, Moy, Max : 1, 2, 358 ms
        Charge coeur 1 (Calcul + Wifi) Min, Moy, Max : 0, 0, 15 ms
        Espace mémoire EEPROM utilisé : 41 %
        Nombre d’interruptions en 15ms du Gradateur (signal Zc) : Filtrés/Brutes : 0/0

        • F1ATB André dit :

          Vous n’avez pas rentré l’adresse de la passerelle qui permet à l’ESP de savoir par où sortir sur internet et chercher l’heure.
          La passerelle, c’est en général l’adresse IP de votre box internet. Chez vous je pense que cela doit être 192.168.1.1 ou 192.168.1.254.

  10. mchlbgs dit :

    Bonjour,
    Merci pour cette belle réalisation !
    Je parviens à lire les trames linky ( je teste uniquement ce module). Mais je suis surpris de voir cette ligne dans le source Solar_Router_V6_01_RMS
    ligne 523
    if (Source == « Linky ») {
    LectureLinky();
    PeriodeProgMillis = 2;
    }
    ne serait ce pas 2000 plutôt que 2 ? ( en tout cas je n’arrive à lire les trames TIC que toutes les 2s)
    bien à vous
    MB

  11. Pascal dit :

    Bonjour André, merci pour votre excellent travail et votre partage.
    J’ai réalisé il y a quelques mois votre « Affichage Linky » qui a parfaitement fonctionné.
    Comme je dois récupérer mes panneaux solaires cette semaine, j’ai réalisé le « Routeur solaire simple avec Linky ».
    Après téléversement j’ai eu le message suivant :
    « … Wrote 1173664 bytes (712687 compressed) at 0x00010000 in 12.4 seconds (effective 755.2 kbit/s)…
    Hash of data verified.
    Leaving…
    Hard resetting via RTS pin… »
    J’ai donc effectué le reset manuellement et j’ai placé l’ESP dans sont boitier.
    L’initialisation c’est bien passé, elle est connecté à mon réseau wifi.
    Par contre, dans l’onglet Acceuil je n’ai pas de données (Courbe plate et données à 0)
    Dans l’onglet données brut, tout à l’air d’être correct, mais j’ai ESP on depuis 0h00mn, 0h01mn ou 0h02mn, ça ne va pas plus loin même ça repart à 0h00
    Le câblage du boitier semble correct car j’ai fait un test croisé avec l’ESP32 de « l’Affichage Linky » qui fonctionne parfaitement dans le boitier du « Routeur solaire simple avec Linky ».

    Je suis probablement passé à coté d’un truc, mais j’ai beau le tourner dans tous les sens je n’y arrive pas !
    Avez-vous une idée sur ce qui peut bloquer ?

    Merci d’avance

    Bien à vous
    Pascal

    • F1ATB André dit :

      L’affichage Linky, fonctionne avec le Linky en mode historique.
      Le routeur, pour avoir les valeurs injectées, fonctionne en mode standard. Le débit est plus rapide et le message totalement différent. Il faut que votre compteur soit dans le bon mode. A demander à votre fournisseur d’électricité.
      Cdlt

      • Pascal dit :

        Merci André, cela me rassure de ne pas avoir fait d’erreurs. Je vais attendre que Enedis ait validé ma demande pour des panneaux en autoconsommation. Et si ça ne fonctionne toujours pas je verrai avec EDF…
        Bien à vous
        Pascal

  12. JF72 dit :

    bonjour André ,
    merci pour tout ce développement et tutos, simplicité et efficacité,
    je souhaite utiliser une alim non USB , je peux envoyer du 5Volt sur la pin 5V?
    bonnes fêtes de fin d’année a tous

  13. yanick dit :

    bonjour,
    et bien voila c’est fait… impossible de raccorder le routeur en plus mon serveur wes ( j’ai egalement le module aditionel d’edf pour le tempo sur la sortie TIC).
    j’ai essaye les differnets montage idem.
    j’ai commande le montage de Pitinfo V1.5 de Charle Hallard mais impossible d’avoir une trame correct sur le wes et le routeur. ( j’ai investi dans un oscilloscope rien que pour ca ).
    dommage, je vais voir si je tente la version shelly 3em.
    en tout cas super boulot.
    yanick

  14. Jean-baptiste dit :

    Bonjour André, merci pour ton travail incroyable.

    Je souhaite utiliser ton routeur avec deux cumulus et compteur linky. Est ce possible de router avec deux SSR contrôle 3-32vdc ? Je les ai en stock ( avec radiateur ). Tout passe sur un seul esp32 de ce que j’ai compris ?

    Cette solution me semble vraiment bien dans mon cas 🙂 Merci.

  15. Durand Roland dit :

    Bonjour et Bravo! J’ai un SmartMeter CHNT DTSU666 qui communique avec mon onduleur Solax triphasé 6kW. Je vois qu’il a un bornier de sortie « S+, S- Pulse Constant »: Est-ce que je peux m’éviter l’achat d’un Shelly 3EM, et connecter ces 2 bornes à un ESP32? Je ne sais pas comment utiliser l’information qui sortirait et je ne trouve rien sur internet.. Merci si par hasard vous connaissez (aussi!) cet appareil! Sinon je me tournerai vers le Shelly car mon Linky est plombé hélas, le TIC n’est pas accessible sans enlever le plomb..

    • F1ATB André dit :

      Je ne connais pas ce Smartmeter.
      Etonnant votre plombage du Linky. C’est vrai qu’il y a une cosse en premier niveau . Mais je pense qu’elle n’est pratiquement jamais utilisée pour pouvoir accéder à la TIC. Une fois le couvercle jaune enlevé, qui donne acceès à la TIC, il y a un deuxième niveau avec un plomb à ne pas toucher.
      Regardez les videos sur youtube
      Cdlt

  16. Mengué georges dit :

    Bonjour
    je souhaite me lancer car je vais installer des panneaux mais j’ai 2 pb à résoudre :
    – un problème de raccordement au compteur Linky car celui-ci est à 105m de chez moi et entre lui et moi il y a une construction, de plus j’y suis raccordé par un câble 4×16 et un câble 4×1,5 (pilote EJP) dont seuls 2 fils sont utilisés.
    – je n’utilise pas de modules Enphase mais des APSYSTEMS (DS3-H) avec une passerelle ECU-C, je pense qu’il existe un plugin ou une routine qui permet d’en récupérer les donnes.
    Auriez vous quelques conseils à me donner pour que je puisse avancer ?
    Merci

    • F1ATB André dit :

      A ma connaissance, avec l’ECU-C, on n’arrive pas à extraire la puissance toutes les secondes. À ce jour, je n’ai trouvé que des valeurs rafraichies toutes les 5mn.

      Prenez un Shelly ou un UxIx2 pour mesurer la puissance à votre entrée de maison et non le Linky. À moins que sur les 105m vous ayez déjà des appareils qui consomment.

      Cdlt

      • Mengué georges dit :

        Bonjour
        Merci pour votre réponse, que pensez vous de ce module « Courant Porteur en Ligne KQ-130F » de chez Aliexpress, il y a un truc qui m’interpelle dans la description: -> « Débit en bauds d’interface: 9600bps, le vrai débit en bauds est 100bps » qu’est ce qu’ils entendent par là.

  17. Yann dit :

    Correction du texte sans les fautes (désolé j’ai cliqué un peu vite)
    Bonjour,

    Superbe travail, encore bravo pour tout ce développement.

    Pour valider, avant montage définitif, j’ai monté une plaque de test, juste la partie communication avec le Linky.

    Un jeu de résistances de 1K + 470Ω avec un câble électrique de 2×0,75mm² d’1m50 côté Linky.

    Mais j’ai les messages suivants :

    Erreur checksum code : EAST 781,-1
    Erreur checksum code : EAST 314,-1
    D’où pourrait venir le problème ? (Je suis informaticien, pas électronicien, du coup, je ne sais pas trop s’il faut que je change la valeur des résistances ou s’il s’agit d’un problème de câble)

    D’avance merci de votre retour.

Laisser un commentaire

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