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:
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.
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é
- 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|
- Exemple simple de programme C tournant sous Linux: teleinfo_serial.c
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.
- 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
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.
Autre exemple de graphe en fonction des données relevées (un mardi matin):
12 Mai 2007
