Solution pour faire communiquer

un module de comptage d'injection

ConsoSpy

avec un compteur

LINKY


INTRODUCTION


Si vous avez un module ConsoSpy pour enregistrer votre consommation électrique et un autre module ConsoSpy pour enregistrer votre production photovoltaïque, vous avez été surpris de constater qu'après le passage sous LINKY votre module de production ne fonctionnait plus du tout. La petite LED rouge clignotait tout le temps sur le module et l'application ConsoSpy signalait que votre module n'arrivait plus à communiquer avec votre compteur. 

Peut-être avez-vous pu également constater que votre module de consommation fonctionnait encore mais que vous aviez un pic de consommation anormal le jour du changement de compteur. 

Ce site web décrit une solution qui vous permettra de retrouver un environnement fonctionnel, à peu de frais, moyennant un peu de votre temps pour la partie injection du problème dans un premier temps.

Ci-dessous, quelques captures d'écran obtenues juste après le changement de compteur


  • Ecran ConsoSpy production_02
  • Ecran ConsoSpy production_01

ORIGINES DU PROBLEME


Lors du changement de compteurs, le technicien ENEDIS a remplacé 2 compteurs de gestion de l'injection d'énergie par un seul compteur LINKY. Il a configuré ce nouveau compteur LINKY de production en mode STANDARD. Du coup, le module ConsoSpy de comptage de production ne fonctionne plus et vous n'avez plus de statistiques.

En complément, il a dû paramétrer le compteur LINKY de consommation en mode HISTORIQUE si vous avez des délesteurs voire d'autres équipements qui utilisent la téléinformation. Si ce n'est pas le cas, il est possible qu'il ait paramétré votre compteur LINKY de consommation en mode STANDARD, auquel cas, vous avez la double peine car vos relevés de consommation ne fonctionnent plus et vraisemblablement les autres appareils qui s'appuyaient sur la téléinformation. 

Qu'est ce qui change entre le mode HISTORIQUE et le mode STANDARD ?
- au niveau physique : "presque" rien de ce côté-là, modulation d'amplitude tout ou rien (ASK) avec un signal alternatif de 50 khz (kilo hertz), logique inversée. Pour un 0 logique (zéro) à envoyer sur la ligne le compteur envoie le signal alternatif, si c'est un 1 logique (un) il n'envoie rien. On est dans les deux cas sur une transmission 1 bit de start, 7 bits de données, parité paire, 1 bit de stop. PAR CONTRE les débits sont différents !!! En mode STANDARD on discute à 9600 bauds alors qu'en mode HISTORIQUE on est à 1200 bauds.
- au niveau liaison : Les informations envoyées en mode STANDARD sont bien plus riches qu'avec le mode HISTORIQUE. De plus, bien que toujours organisé en trames, chaque groupe au sein d'une trame n'est plus codé de la même manière et les groupes sont différents.

Tout savoir sur la téléinformation : la spécification LINKY


PRINCIPE DE LA SOLUTION


Récupérer le signal de téléinformation émis par le Linky en mode standard (9600 bauds) et le transformer en mode historique (1200 bauds) en effectuant au passage les changements nécessaires.

Effectuer également une correction d'index pour avoir une continuité cohérente de l'historique de production au cours des années passées et à venir. On évite ainsi des pics de production artificiels sur les statistiques annuelles, mensuelles, journalières le jour où le compteur a été changé.


BILAN PROVISOIRE


Le premier prototype fonctionne depuis quelques semaines, sans erreur. J'ai également retrouvé de jolies courbes et des données statistiques utilisables.

Cette solution ne demande qu'à évoluer au grès de votre imagination en fonction de vos besoins. Elle très certainement perfectible et vraisemblablement transposable à d'autres situations. 

Vous pouvez poster vos commentaires (bienveillants), suggestions (constructives) sur le site ci-dessous qui sert de point d'entrée à ce post :

Forum Photovoltaique - ConsoSpy - Demande d'améliorations - Post : Mise à disposition d'une solution pour votre module ConsoSpy fâché avec LINKY


PRESENTATION GLOBALE DE LA SOLUTION


Vous trouverez ci-dessous un lien vers une présentation vidéo in situ de la solution. J'espère que cela vous donnera une bonne idée générale de la solution avant de poursuivre votre lecture puis commencer vos travaux pratiques ;-).

>>> Présentation en vidéo <<<


MATERIEL NECESSAIRE


- 1 arduino UNO (Arduino c'est quoi/qui ?)

- l'environnement de développement arduino (Environnement de développement ARDUINO)

- une breadboard

- des fils (jumpers) pour breadboard

- 1 résistance de 2,2 kohms

- 1 résistance de 4,7 kohms

- 1 résistance de 33 kohms

- 1 cable USB OTG si vous utilisez votre tablette ou votre mobile pour faire quelques tests (recommandé)

- le cable USB généralement fourni avec l'arduino (au bout duquel vous placerez éventuellement l'adaptateur OTG)

- 1 SFH620a-3 (Je n'ai pas testé de SFH620a-1 ou SFH620a-2)

- un peu de matériel électrique que vous avez sans doute déjà chez vous (dominos, fils électrique...)

- un logiciel du genre "Serial USB Terminal" que vous pouvez récupérer sur Google Play. Tout autre logiciel est ok à condition que vous puissiez paramétrer les caractéristiques de la liaison série, ce qui est généralement le cas.

- un chargeur pour mobile 5V 2A mais 1A ça devrait passer.

OTG c'est quoi ? un premier pointeur .... et hop, soyons fous, un second pointeur



LIENS UTILES


Merci à tous les passionnés qui ont pris le temps de publier beaucoup d'informations et de partager leurs expériences et passions.

Secrets of Arduino PWM

ATmega328P datasheet - Chapitre 18 : 8-bit Timer/Counter2 with PWM

Les Timers

Gammon Forum - Interrupts

AltSoftSerial Library

Fritzing - Pour vos schémas

Modulations de base dont ASK et plus encore


ETAPE 1 - "Réception du signal envoyé par le Linky"


Dans cette étape nous allons vérifier que vous êtes en mesure de récupérer correctement les trames de téléinformation envoyées par le Linky.

Schéma :

Schéma

TestEntreeTeleinfo-01_bb

20171022_163727

1- réalisez le montage tel que décrit sur le schéma et illustré sur la photo.

2- récupérez le programme, compilez et téléchargez le binaire dans votre arduino.

3- allez auprès de votre compteur Linky de production et connectez votre montage aux bornes I1 et I2 de votre compteur

4- utilisez votre cable USB et l'adaptateur OTG pour connecter votre mobile ou tablette à l'arduino.

5- votre arduino doit maintenant être alimenté (led rouge ou verte ou ... allumée)

6- lancez l'application "USB Serial Terminal" (ou équivalent) si ce n'est déjà fait

7- vérifiez dans "settings" que votre liaison série est bien configurée sur : baud rate 9600, stop bit 1, parity even, réception newline CR+LF

8- repassez sur l'écran de visualisation

9- laissez défiler 1 ou 2 minutes

10- enregistrez sur votre mobile les traces obtenues, vous pourrez les regarder si il n'y a rien à la télé ;-). Plus sérieusement vous pouvez voir votre index de production, exprimé en wh (et pas en kwh !!!)

Si tout s'est bien passé vous avez vu défiler les informations envoyées par le Linky. Exemple ci-dessous.

Note 1 : les timestamps ont été ajoutés par l'application "USB Serial Terminal" à la réception de chaque ligne et à ma demande. Vous ne les aurez pas forcément.

Note 2 : On ne voit pas dans les traces les tabulations qui séparent les champs d'un goupe, ni les caractères de début de trame (STX), fin de trame (ETX), début et fin de groupe.

17:42:26.771 ADSC031764580327;

17:42:26.791 VTIC02J

17:42:26.803 DATEE171021174223=

17:42:26.828 NGTF PRODUCTEUR .

17:42:26.853 LTARF INDEX NON CONSO0

17:42:26.881 EAST000000000O

17:42:26.902 EASF01000000000"

17:42:26.922 EASF02000000000#

17:42:26.943 EASF03000000000$

17:42:26.963 EASF04000000000%

17:42:26.985 EASF05000000000&

17:42:27.004 EASF06000000000'

17:42:27.025 EASF07000000000(

17:42:27.046 EASF08000000000)

17:42:27.070 EASF09000000000*

17:42:27.090 EASF10000000000"

17:42:27.111 EASD01000000000

17:42:27.131 EASD02000000000!

17:42:27.152 EASD03000000000"

17:42:27.172 EASD04000000000#

17:42:27.193 EAIT000567710_

17:42:27.213 ERQ1000000000;

17:42:27.229 ERQ2000007971T

17:42:27.250 ERQ3000067550T

17:42:27.270 ERQ4000000003A

17:42:27.287 IRMS10064

17:42:27.299 URMS1238G

17:42:27.315 PREF03B

17:42:27.328 PCOUP03\

17:42:27.340 SINSTS00000F

17:42:27.356 SMAXSNE171021090645000233

17:42:27.385 SMAXSN-1E17102009024300022I

17:42:27.422 SINSTI01333F

17:42:27.438 SMAXINE17102114582002414+

17:42:27.467 SMAXIN-1E17102014531402445J

17:42:27.500 UMOY1E1710211740002380

17:42:27.529 STGE002A0301<

17:42:27.549 MSG1PAS DE MESSAGE <

17:42:27.590 PRM02491316831999B

17:42:27.614 RELAIS000B

17:42:27.627 NTARF01N

17:42:27.639 NJOURF00&

17:42:27.655 NJOURF+100B

17:42:27.672 PJOURF+100008001 NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE9


ETAPE 2 - "Finalisation du montage & Personnalisation du programme"


Félicitations ! Le plus gros du travail a été fait !!!! Nous allons maintenant finaliser le montage et personnaliser votre programme.

1- vous êtes de retour devant votre PC, votre arduino est connecté au PC avec son cable USB, mobile dans la poche, la breadboard toujours reliée à votre arduino

2- effectuez les connections suivantes avec les cables jumpers :

- relier 1 et 2

TestEntreeTeleinfo-02_bb

3- récupérez le programme "Teleinfo.ino" ci-dessous :

4- stoppez votre logciel ConsoSpy puis faites une sauvegarde de votre base de donnée ConsoSpy

5- vérifiez ensuite que votre module ConsoSpy est alimenté.

6- lancez le logiciel ConsoSpy pour que celui-ci récupère tous les enregistrements et remette le dispositif à la bonne heure. Dans les traces (onglet Informations) vous ne devriez avoir que des erreurs.

7- revenez sur l'IDE arduino. Repérez la variable "offset" en début de programme et remplacez la valeur présente par la valeur qu'avait votre compteur lorsque le technicien ENEDIS a procédé au changement de compteur. Il a dû la noter sur un dossier qu'il vous a remis. Elle est exprimée en KWH, vous devez la transformer en WH (exemple: 67855 kwh -> 67855000 wh). A défaut, vous pouvez la récupérer dans la dernière courbe de statistiques journalière correcte en passant le curseur sur le dernier point de la courbe.

8- repérez ensuite l'instruction :

group += "ADCO 030928276866 ";

9- remplacez "030928276866" par la valeur qu'avait votre précédent contrat et qui est affichée dans votre logiciel ConsoSpy dans un des onglets relatifs à votre compteur de production. Vous aurez une autre valeur, du genre :

group += "ADCO 03XYZTTTTUYU ";

ATTENTION: ConsoSpy n'affiche pas le premier 0 mais il nous le faut. Ne retirez pas le blanc après le 12 eme chiffre, ni le guillement, ni le point virgule.

10- compilez et téléchargez dans votre arduino.


ETAPE 3 - "Installation et mise en service"


1- allez auprès de votre compteur Linky de production

- connectez votre montage aux bornes I1 et I2 de votre compteur

- reliez le fil bleu de votre entrée ConsoSpy à la pin 11 de l'arduino

- reliez le fil marron de votre entrée ConsoSpy à la masse (directement sur une pin GND libre ou sur la carte breadboard au niveau de la patte 3 du SFH620a-3).

Note : sur la photo ci-dessous la couleur des fils ne respecte pas celle du schéma précédent.

20171028_162647

2- branchez votre cable USB à l'arduino

3- branchez l'autre extrémité au chargeur de téléphone mobile

4- c'est l'étape de vérité, branchez le chargeur et attendez que la lumière rouge clignotante sur le ConsoSpy cesse de battre. Il faut compter moins d'une minute.

Pour information, voici la trame de téléinformation qui est envoyée en mode historique :

ADCO 031764580327 E            //valeur forcée dans le code au numéro de votre précédent contrat

OPTARIF BASE 0                      //valeur forcée dans le code

ISOUSC 15 <                             //valeur forcée dans le code pour les installations de 3 kwc

BASE 019051009 $                   //valeur = ancien index + nouvel index

PTEC TH.. $                              //valeur forcée dans le code

IINST 000 W                              //valeur forcée dans le code

IMAX 090 H                               //valeur forcée dans le code

PAPP 00000 !                            //valeur forcée dans le code

HHPHC A ,                                //valeur forcée dans le code

MOTDETAT 000000 B              //valeur forcée dans le code

Deux cas :

a- plus de lumière rouge ...c'est le cas :-) => foncez sur le logiciel ConsoSpy et vous devriez voir des données arriver. Merci de m'indiquer que ça a fonctionné.

b- toujours une lumière rouge... c'est le cas :-( => tentez un RESET de l'arduino (petit bouton à côté du connecteur USB de l'arduino), vérifiez vos branchements, revérifiez et si ça ne suffit pas contactez moi.

Bon bricolage ! :-)


QUELQUES ECRANS


Quelques captures d'écran récapitulant presqu'un mois de fonctionnement sans erreur !!! :-)

La journée du 4 octobre est absente car ENEDIS a procédé à une coupure secteur pour travaux. Comme je n'avais et n'ai pas encore pris le temps de remettre des piles dans mon module, la date et l'heure ont été perdues et les données n'ont pas été stockées par le module. Donc, statistiques journalières du 4 octobre absentes car pas calculables sur cette journée.


  • Ecran ConsoSpy production_05
  • Ecran ConsoSpy production_06
  • Ecran ConsoSpy production_07
  • Ecran ConsoSpy production_04

ANNEXE

"Dans les entrailles du module ConsoSpy"


On peut voir que l'optocoupleur utilisé est un 6N138 qui ne tire parti que d'une alternance sur 2 du signal d'entrée.

Le fil marron du cordon du module ConsoSpy est connecté à la patte 3 du 6N138, patte qui pour nous sera reliée à la masse de l'Arduino UNO..

20170914_075031

compteur.js.php?url=yVjGlD8QOTI%3D&df=E0