Demodulateur teleinformation EDF

Un article de MicElectroLinGenMet.

Sommaire

La liaison téléinfo

(Source: [GESTIONNAIRE D'ÉNERGIE])

Les compteurs électroniques EDF possèdent deux bornes de téléinformation à disposition du client. Sur celles-ci, il est possible d'y lire des données informatiques sur la consommation électrique du client.

L'utilisation de ces bornes est surtout destinée aux gestionnaire d'energie disponible dans le commerce. Mais il est aussi possible d'exploiter ces données sur un PC.

Ces informations sont émises cycliquement sous forme de messages composés d’une étiquette d’identification suivie généralement d’une valeur. Le signal est modulé à 50 KHz : la présence de modulation correspondant à un 0 logique, l’absence à un 1 logique.

Il est donc nécessaire de démoduler ce signal. Après quoi on obtient une suite de caractères ASCII émise à 1200 bits/s, 7 bits/caractères, parité paire, 1 bit de stop.

Chaque information débute par le caractère LF (0A hexa), suivie de l’étiquette, de la valeur associée et se termine par le caractère CR (0D).


Autres sources d'informations sur le sujet:

[Domotic's]

[CompteurEdf - MacodaWiki]


Détail des trames téléinformation

(Source: [GESTIONNAIRE D'ÉNERGIE] et [Teleinfo])

Les infos sont transmises cycliquement sur la ligne, modulées en ASK à 50kHz, ce qui correspond en gros à : soit aucune tension présente, soit un signal à 50kHz de 10V CC environ. Le 0V équivaut à un 1 logique, le 50kHz à un 0 logique.

Pour être exploitées, ces infos doivent être démodulées pour être aux formats TTL ou RS232.

C'est donc une liaison série qui délivre des caractères ASCII suivant le protocole suivant :

  • 1200 bits/s
  • 7 bits/caractères
  • parité paire
  • 1 bit de stop

Un groupe de messages complet constitue une trame qui débute par le caractère STX (code ASCII = 02), et se termine par ETX (03).

Chaque message composant la trame comprend :

LF (0x0A) Etiquette (4 à 8 caractères) SP (0x20) Données (1 à 12 caractères) SP (0x20) CC (caractère de contrôle) CR (0x0D) 


Ces différents messages donnent les indications suivantes en fonction de l'abonnement souscrit :

  • n° d'identification du compteur, étiquette: ADCO (12 caractères)
  • option tarifaire (type d'abonnement) : OPTARIF (4 car.)
  • intensité souscrite : ISOUSC ( 2 car. unité = ampères)
  • index si option = base : BASE ( 9 car. unité = Wh)
  • index heures creuses si option = heures creuses : HCHC ( 9 car. unité = Wh)
  • index heures pleines si option = heures creuses : HCHP ( 9 car. unité = Wh)
  • index heures normales si option = EJP : EJP HN ( 9 car. unité = Wh)
  • index heures de pointe mobile si option = EJP : EJP HPM ( 9 car. unité = Wh)
  • index heures creuses jours bleus si option = tempo : BBR HC JB ( 9 car. unité = Wh)
  • index heures pleines jours bleus si option = tempo : BBR HP JB ( 9 car. unité = Wh)
  • index heures creuses jours blancs si option = tempo : BBR HC JW ( 9 car. unité = Wh)
  • index heures pleines jours blancs si option = tempo : BBR HP JW ( 9 car. unité = Wh)
  • index heures creuses jours rouges si option = tempo : BBR HC JR ( 9 car. unité = Wh)
  • index heures pleines jours rouges si option = tempo : BBR HP JR ( 9 car. unité = Wh)
  • préavis EJP si option = EJP : PEJP ( 2 car.) 30mn avant période EJP
  • période tarifaire en cours : PTEC ( 4 car.)
  • couleur du lendemain si option = tempo : DEMAIN
  • intensité instantanée : IINST ( 3 car. unité = ampères)
  • avertissement de dépassement de puissance souscrite : ADPS ( 3 car. unité = ampères) (message émis uniquement en cas de dépassement effectif, dans ce cas il est immédiat)
  • intensité maximale : IMAX ( 3 car. unité = ampères)
  • Puissance apparente : PAPP ( 5 car. unité = Volt.ampères)
  • groupe horaire si option = heures creuses ou tempo : HHPHC (1 car.)
  • mot d'état (autocontrôle) : MOTDETAT (6 car.)

Nota : le compteur peut être configuré en mode "veille" et n'émettre que l'étiquette ADCO. Pour avoir accès au jeu d'informations complet, il suffit de le faire paramétrer en conséquent par EDF.


Le bornier téléinformation est situé dans mon cas en haut à droite du compteur électronique (Borne I1 - I2).

La liaison vers l'utilisation se fait par un câble 2 conducteurs avec écran relié à la terre.



Shéma du démodulateur

Shéma repris du site [GESTIONNAIRE D'ÉNERGIE], redessiné sous Kicad (version Linux).

Shéma PDF: teleinfo.pdf


Partie démodulateur seul avec sortie TTL

La led a été rajoutée pour visualiser la réception. Celle-ci clignote rapidement à la réception des trames.



Montage démodulateur seul sur plaquette d'essais
Montage démodulateur seul sur plaquette d'essais


Montage sur ci
Montage sur ci


Adaptateur TTL/RS232

Shéma à base du circuit Max232 pour la connexion à un port RS232 de PC.


Test du montage sur un PC Linux


  • Réception des trame sous minicom

Minicom est un programme de communication par port série sous Linux/Unix.


Bienvenue avec minicom 2.2

OPTIONS: I18n 
Compilé le Jan  7 2007, 18:00:43.
Port /dev/ttyS1

               Tapez CTRL-A Z pour voir l'aide concernant les touches spéciales

  ADCO 70060936XXXX ?			(paranoiac inside)
OPTARIF HC.. <
ISOUSC 20 8
HCHC 004063750 _
HCHP 004423070 '
PTEC HC.. S
IINST1 001 I
IINST2 000 I
IINST3 001 K
IMAX1 006 6
IMAX2 016 8
IMAX3 015 8
PMAX 05710 3
PAPP 00280 +
HHPHC E 0
MOTDETAT 000000 B
PPOT 00 #
  ADCO 70060936XXXX ?
OPTARIF HC.. <
ISOUSC 20 8
HCHC 004063751  
HCHP 004423070 '
PTEC HC.. S
IINST1 001 I
IINST2 000 I
IINST3 001 K
IMAX1 006 6
IMAX2 016 8
IMAX3 015 8
PMAX 05710 3
PAPP 00280 +
HHPHC E 0
MOTDETAT 000000 B
PPOT 00 #
  Aide : CTRL-A Z  |  1200 7E1 | NOR | Minicom 2.2    | VT102 |   Déconnecté


Démodulateur + Max232 (boite noire) relié au PC Linux
Démodulateur + Max232 (boite noire) relié au PC Linux


  • Trame téléinfo:

L'abonnement est de type Heures Creuses en tri-phasée.

ADCO 70060936XXXX ?
OPTARIF HC.. <
ISOUSC 20 8
HCHC 003064470 ^
HCHP 003660820 ,
PTEC HP..  
IINST1 001 I
IINST2 001 J
IINST3 001 K
IMAX1 015 6
IMAX2 022 5
IMAX3 026 :
PMAX 09040 3
PAPP 00600 '
HHPHC E 0
MOTDETAT 000000 B
PPOT 00 #


En hexa.:

00116940  0a 41 44 43 4f 20 37 30  30 36 30 39 33 36 XX XX  |.ADCO 70060936XX|
00116950  XX XX 20 3f 0d 0a 4f 50  54 41 52 49 46 20 48 43  |XX ?..OPTARIF HC|
00116960  2e 2e 20 3c 0d 0a 49 53  4f 55 53 43 20 32 30 20  |.. <..ISOUSC 20 |
00116970  38 0d 0a 48 43 48 43 20  30 30 33 30 36 34 34 37  |8..HCHC 00306447|
00116980  30 20 5e 0d 0a 48 43 48  50 20 30 30 33 36 36 32  |0 ^..HCHP 003662|
00116990  33 34 34 20 2f 0d 0a 50  54 45 43 20 48 50 2e 2e  |344 /..PTEC HP..|
001169a0  20 20 0d 0a 49 49 4e 53  54 31 20 30 30 31 20 49  |  ..IINST1 001 I|
001169b0  0d 0a 49 49 4e 53 54 32  20 30 30 30 20 49 0d 0a  |..IINST2 000 I..|
001169c0  49 49 4e 53 54 33 20 30  30 31 20 4b 0d 0a 49 4d  |IINST3 001 K..IM|
001169d0  41 58 31 20 30 31 35 20  36 0d 0a 49 4d 41 58 32  |AX1 015 6..IMAX2|
001169e0  20 30 32 32 20 35 0d 0a  49 4d 41 58 33 20 30 32  | 022 5..IMAX3 02|
001169f0  36 20 3a 0d 0a 50 4d 41  58 20 30 39 30 34 30 20  |6 :..PMAX 09040 |
00116a00  33 0d 0a 50 41 50 50 20  30 30 35 39 30 20 2f 0d  |3..PAPP 00590 /.|
00116a10  0a 48 48 50 48 43 20 45  20 30 0d 0a 4d 4f 54 44  |.HHPHC E 0..MOTD|
00116a20  45 54 41 54 20 30 30 30  30 30 30 20 42 0d 0a 50  |ETAT 000000 B..P|
00116a30  50 4f 54 20 30 30 20 23  0d 03 02 0a 41 44 43 4f  |POT 00 #....ADCO|



La sortie du programme sera sous la forme: DATE HEURE HCHC HCHP PTEC IINST1 IINST2 IINST3 PAPP

dan@hestia:bin$ ./teleinfo_serial
2007-10-10 16:35:49 004435096 004081928 HP 001 000 001 00580
dan@hestia:bin$  while sleep 60; do ./teleinfo_serial ; done
10/10/2007 16:51:21 004435227 004081928 HP 001 000 001 00570
10/10/2007 16:52:24 004435236 004081928 HP 001 000 001 00590
10/10/2007 16:53:27 004435245 004081928 HP 001 000 001 00580
10/10/2007 16:54:29 004435254 004081928 HP 001 000 001 00580
10/10/2007 16:55:32 004435263 004081928 HP 001 000 001 00580
10/10/2007 16:56:35 004435272 004081928 HP 001 000 001 00580
10/10/2007 16:57:38 004435281 004081928 HP 001 000 001 00590
10/10/2007 16:58:41 004435290 004081928 HP 001 000 001 00580
10/10/2007 16:59:44 004435299 004081928 HP 001 000 001 00580
10/10/2007 17:00:47 004435308 004081928 HP 001 000 001 00580



Interface téléinfo. piloté par un WRT54GL

L'arrivée du câble téléinformation n'étant pas à proximité du PC Linux, l'interface téléinfo. sera piloté par routeur wifi Wrt54gl flasher OpenWrt (un linux pour machine embarquée).


  • Description matériel

Le Wrt54gl est relié par un des ports LAN à un adaptateur Ethernet/RS232 ezl-60 lui-même relié à l'interface Téléinfo.

Demodulateur, interface Max232, ezl-60 relié au Wrt54GL
Demodulateur, interface Max232, ezl-60 relié au Wrt54GL
Demodulateur, ezl-60 relié au Wrt54GL
Demodulateur, ezl-60 relié au Wrt54GL


  • Description logiciel

Le programme aura pour tâche de se connecter (par socket réseau) à l'adaptateur ezl-60 pour lire une trame téléinfo et l'enregistrer dans la base mysql sur le serveur Debian distant. Si le serveur mysql n'est pas accessible le programme sauvegarde les données en local sur le Wrt54gl.

Lien vers le source du programme exemple : teleinfomysql.c



  • Résultats dans la base MySql
dan@vesta:~$ cat bin/listdatateleinfo.sh
#!/bin/bash
mysql -u root -p$(cat private/mysql.txt) -D maison << !
	SELECT * FROM teleinfo ORDER BY timestamp DESC LIMIT 20 ;
!


dan@vesta:~$ listdatateleinfo.sh
timestamp       rec_date        rec_time        hchp    hchc    ptec    inst1   inst2   inst3   papp
1191313924      2007-10-02      10:32:04        4388118 4017053 HP      1       0       1       290
1191313863      2007-10-02      10:31:03        4388114 4017053 HP      1       0       1       290
1191313805      2007-10-02      10:30:05        4388110 4017053 HP      1       0       1       290
1191313744      2007-10-02      10:29:04        4388105 4017053 HP      1       0       1       260
1191313685      2007-10-02      10:28:05        4388101 4017053 HP      1       0       1       260
1191313624      2007-10-02      10:27:04        4388097 4017053 HP      1       0       1       260
1191313563      2007-10-02      10:26:03        4388093 4017053 HP      1       0       1       260
1191313505      2007-10-02      10:25:05        4388089 4017053 HP      1       0       1       260
1191313444      2007-10-02      10:24:04        4388085 4017053 HP      1       0       1       300
1191313385      2007-10-02      10:23:05        4388080 4017053 HP      1       0       1       300
1191313324      2007-10-02      10:22:04        4388075 4017053 HP      1       0       1       300
1191313263      2007-10-02      10:21:03        4388070 4017053 HP      1       0       1       300
1191313205      2007-10-02      10:20:05        4388065 4017053 HP      1       0       1       300
1191313144      2007-10-02      10:19:04        4388060 4017053 HP      1       0       1       310
1191313085      2007-10-02      10:18:05        4388055 4017053 HP      1       0       1       300
1191313024      2007-10-02      10:17:04        4388051 4017053 HP      1       0       0       160
1191312963      2007-10-02      10:16:03        4388047 4017053 HP      1       0       0       120
1191312904      2007-10-02      10:15:04        4388045 4017053 HP      1       0       0       120
1191312844      2007-10-02      10:14:04        4388042 4017053 HP      1       0       0       120
1191312785      2007-10-02      10:13:05        4388039 4017053 HP      1       0       1       330





  • Résultats sous forme graphique avec JpGraph


Puissance apparente (Teleinfo papp jpgraph.php)
Puissance apparente (Teleinfo papp jpgraph.php)


En vert apparait la consommation en période "heures creuse". On voit trés bien le fonctionnement du chauffe-eau tri-phasé pendant la nuit (l'intensité est identique sur les 3 phases). Le lave-linge se met en marche presque à la fin de la période du chauffe-eau. Les petits pics de consommation sont les traces du micro-onde.


Intensité sur les 3 phases (Teleinfo iinst jpgraph.php)
Intensité sur les 3 phases (Teleinfo iinst jpgraph.php)
]



Autre exemple de graphe en fonction des données relevées (un mardi matin):

Consommation hebdomadaire en kwh (Teleinfo kwh-7j jpgraph.php)
Consommation hebdomadaire en kwh (Teleinfo kwh-7j jpgraph.php)




12 Mai 2007


Administration wiki