Raspberry et Teleinfo

Dans ce chapitre en 2 parties nous verrons comment récupérer les données de teleinfo transmises par le compteurs EDF sur un raspberry puis l’affichage dans Domoticz

Chapitre 1 : Le Hard et le Raspberry

  • il faut un optocoupleur SFH6206, des résistances 1.2K et 47 K
  • Un câble que l’on reliera aux bornes I1 et I2 du compteur, la longueur n’a pas d’importance car on porte à plus de 30 m sans problèmes

le schéma suivant montre le câblage à effectuer

Pour info le raspberry et son brochage, le coté gauche est 1,3,5,7 … le coté droit 2.4.6…

Donc 3.3 Power, GND et GPIO 15 (RXD)

http://elinux.org/images/2/2a/GPIOs.png

Câblage du compteur EDF.

Il n’y a pas de sens à respecter pour cette connexion.

Démontez le capot en bas du compteur.

compteurelec

Dévissez les 2 vis en dessous de ces 2 trous insérez y vos câbles.

Câblez le coté Raspberry 3.3,GND, et le GPIO 15

Le soft coté  Raspberry

  • Modification du fichier « cmdline.txt »

sudo nano /boot/cmdline.txt

remplacer la ligne :
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
par :
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

en d’autre termes supprimer :
console=ttyAMA0,115200 kgdboc=ttyAMA0,115200

puis

  • Modification du fichier « inittab »

sudo nano /etc/inittab
T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
devient :
#T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

(il y a un # devant la ligne)

un petit sudo reboot

au redemarrage
sudo stty -F /dev/ttyAMA0 1200 sane evenp parenb cs7 -crtscts
sudo cat /dev/ttyAMA0

doit afficher les messages du compteur :

OPTARIF HC.. <

ISOUSC 45 ?

HCHC 021475341 !

HCHP 019306374 4

PTEC HP..

IINST 004 [

IMAX 048 
KPAPP 00940

ATTENTION !! Vérifiez bien que vous voyez passer le terme MODETAT , si vous ne le voyez pas essayez avec

stty -F /dev/ttyAMA0 1200 sane parenb -parodd cs7 -isig -icrnl -crtscts -icanon

si ok on fait un lien entre le tty et USB20

sudo ln -s /dev/ttyAMA0 /dev/ttyUSB20

N.B pour conserver le lien à chaque reboot

un sudo /etc/rc.local puis en bas ajoutez la ligne spécifique pour la création du lien, avant le exit 0

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
 printf "My IP address is %s\n" "$_IP"
fi
sudo ln -s /dev/ttyAMA0 /dev/ttyUSB20
exit 0

et voila

Merci à http://www.chaleurterre.com/forum/viewtopic.php?t=15153

et a http://www.domoticz.com/forum/viewtopic.php?f=5&t=627&hilit=teleinfo&start=20

 

 

Posted in Débutants, domotique, raspberry and tagged , , , , .

19 Comments

  1. Salut !

    Merci pour ce tuto, ça fonctionne au top !

    Est ce que le lien entre le tty et USB20 persistera au reboot ?
    sudo ln -s /dev/ttyAMA0 /dev/ttyUSB20

    Bye et bonne continuation !

  2. bonjour, et merci pour le tuto

    j’aimerais savoir s’il il y a une limitation de longueur du fils entre le compteur edf et le montage svp? en autre terme rpi a cote du compteur ou dans mon local technique avec le reste merci

  3. Bonjour
    La sortie du compteur se fait à 1200 Bds et « On dit que » à cette vitesse (j’ai recherché les sources mais je ne retrouve plus) le signal porte à une 100aine de metres
    Assure le coup avec du cable réseau de bonne qualité en paires torsadées

  4. Bonjour
    tout d’abord bravo pour les tuto !!

    je penne un peu a faire marcher la téléinfo quant je fait un sudo cat /dev/ttyAMA0
    rien ne se passe le Raspberry est bloqué je n’ai plus de prompt .
    une idée ?
    j’ai bien vérifier , mais je me demande ou ai le problème matériel ou paramétrage

  5. bonjour,
    oui revois tout le coté cablage
    puis les modifs dans le cmdline.txt et le inittab tu as quelque chose qui « gele » le tty et c’est la que ca ce joue

    idem pour le sudo stty -F /dev/ttyAMA0 1200 sane evenp parenb cs7 -crtscts

  6. Bonjour,

    Merci pour ce tuto très précis.

    L’utilisation du port RX (pin 10) est il possible si un module Zwave est déjà connecté sur le GPIO (et utilisant donc déjà le port RX) ?

    cdt,

    Franck

  7. salut a tous, j’ai bien galéré pour éditer  le fichier rc.local avec la solution proposée ci dessus, échec, droit insuffisant code 3 ou un truc comme ca bilan, j’ai essayé cette methode et ca marche

    en putty entrer la commande suivante :

    sudo nano /etc/rc.local

    rajouter la ligne

    sudo ln -s /dev/ttyAMA0 /dev/ttyUSB20

    ctrl X pour fermer le fichier

    c’est validé

    olé, et suis fière de moi !! na

     

     

  8. Bonjour,

    Avez vous la conso instantanée avec ce montage ?

    Car moi le composant dans mesures affiche toujours 0Watt, par contre la conso journalière remonte bien.

     

    Merci pour vos réponse.

    Julien

  9. Et bien moi je ne l’ai pas….

    Et quand je fait ip:port/json.htm?type=devices&rid=IDX , sur la ligne Usage j’ai 0 Watt tout le temps….

    {
       "ActTime" : 1461772289,
       "ServerTime" : "2016-04-27 17:51:29",
       "Sunrise" : "06:39",
       "Sunset" : "20:56",
       "result" : [
          {
             "AddjMulti" : 1.0,
             "AddjMulti2" : 1.0,
             "AddjValue" : 0.0,
             "AddjValue2" : 0.0,
             "BatteryLevel" : 255,
             "Counter" : "140039.938",
             "CounterDeliv" : "0.000",
             "CounterDelivToday" : "0.000 kWh",
             "CounterToday" : "55.707 kWh",
             "CustomImage" : 0,
             "Data" : "80007583;60032351;0;0;0;0",
             "Description" : "",
             "Favorite" : 0,
             "HardwareID" : 8,
             "HardwareName" : "Teleinfo ",
             "HardwareType" : "Teleinfo EDF USB",
             "HardwareTypeVal" : 19,
             "HaveTimeout" : false,
             "ID" : "1",
             "LastUpdate" : "2016-04-27 17:51:21",
             "Name" : "teleinfo",
             "Notifications" : "false",
             "PlanID" : "0",
             "PlanIDs" : [ 0 ],
             "Protected" : false,
             "ShowNotifications" : true,
             "SignalLevel" : "-",
             "SubType" : "Energy",
             "SwitchTypeVal" : 0,
             "Timers" : "false",
             "Type" : "P1 Smart Meter",
             "TypeImg" : "counter",
             "Unit" : 1,
             "Usage" : "0 Watt",
             "UsageDeliv" : "0 Watt",
             "Used" : 1,
             "XOffset" : "0",
             "YOffset" : "0",
             "idx" : "80"
          }
       ],
       "status" : "OK",
       "title" : "Devices"
    }

     

    Aurais tu une idée ?

    Merci d’avance

  10. Bonjour,

    Super tuto. Ca marchait nickel jusqu’à la semaine dernière, mais j’ai du réinstaller mon raspi et là surprise, sur la derniere version, pas de fichier /etc/inittab

    inittab was a part of sysvinit, which has been replaced with systemd.. Serial getty is now a service like any other. What would you like to do exactly?

    Je ne sais pas si le problème vien de là, mais maintenant j’obtiens ça quand je fais le cat /dev/ttyAMA0 :

    Cpi@raspberrypi2:~ $ sudo cat /dev/ttyUSB20
    ▒..▒<▒
    ▒S▒USà▒5▒?▒
    H▒Hà0▒▒▒5▒5▒▒▒5▒
    H▒HP▒0▒▒3▒▒▒9▒▒▒▒
    P▒▒àHP..▒▒▒
    ▒▒NSԠ003▒Z▒
    ▒MAؠ05▒▒ƍ
    PAPP▒006▒0▒▒▒
    HHPHàA▒▒▒
    M▒▒D▒▒AԠ000000▒B▒▒
    AD▒Ϡ030▒▒▒0▒▒▒▒▒▒ō
    ▒P▒A▒▒ƠH▒..▒<▒
    ▒S▒USà▒5▒?▒
    H▒Hà0▒▒▒5▒5▒▒▒5▒
    H▒HP▒0▒▒3▒▒▒9▒▒▒▒
    P▒▒àHP..▒▒▒
    ▒▒NSԠ005▒\▒
    ▒MAؠ05▒▒ƍ
    PAPP▒0▒390▒.▒
    HHPHàA▒▒▒
    M▒▒D▒▒AԠ000000▒B▒▒
    AD▒Ϡ030▒▒▒0▒▒▒▒▒▒ō
    ▒P▒A▒▒ƠH▒..▒<▒

    Est ce que quelqu’un aurait une idée ?

    Merci d’avance. Cdt.

  11. Bonjour
    Au vu des caractéres pourris dans la chaine c’est davantage la ligne
    sudo stty -F /dev/ttyAMA0 1200 sane evenp parenb cs7 -crtscts
    sudo cat /dev/ttyAMA0

    que tu as ratée
    essaye cela et reviens nous dire

  12. bonjour,
    avec le nouveau raspian il faut dans sudo raspi-config:
    ->menu Advanced Options/Serial
    -> desactiver Login shell
    -> Serial enable
    Redémarrer avec sudo reboot

    et enfin valider l’uart (port serie) dans le fichier config vers la fin du fichier:
    sudo nano /boot/config.txt

    écrire enable_uart = 1
    sauvegarder avec CTRL+O puis CTRL+X (la touche controle + lettre O) 🙂
    encore sudo reboot

    Là vous pourrez enfin créer

    sudo stty -F /dev/ttyAMA0 1200 sane evenp parenb cs7 -crtscts
    sudo cat /dev/ttyAMA0 (pour quitter le défilement appuyer sur touche pause|arrêt deff)

    « Pour les raspberry 3 C’est pareil sauf que vous devrez désactiver le Bluetooth (qui monopolise la liaison UART/série)
    C’est la théorie :s »

    https://raspberrypi.stackexchange.com/questions/56667/communicate-with-arduino-over-serial

  13. bonjour,
    trouvé sur https://raspberrypi.stackexchange.com/questions/56667/communicate-with-arduino-over-serial

    avec le nouveau raspbian
    il faut après avoir désactiver le port série dans sudo raspi-config
    redémarrer sudo reboot

    puis éditer le fichier config
    ->sudo nano /boot/config.txt
    remplacer ou écrire enable_uart = 1 (vers la fin du fichier)
    enregistrer (touche controle + lettre O Ctrl+O)
    redémarrer sudo reboot

    Là vous pourrez créer la sortie TTYama0
    ->sudo stty -F /dev/ttyAMA0 1200 sane evenp parenb cs7 -crts

    « Raspberry Pi3 c’est pareil en théorie mais il faudra déactiver le bluetooth. il monopolise la liaison série UART »

Laisser un commentaire

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