Téléinfo et emoncms, rapide retour d’expérience

Un petit billet pour dire que j’ai commencer à superviser le compteur électrique EDF (téléinfo) avec emoncms.

J’ai suivi deux articles :

Deux petites difficultés:

  • Je n’avais pas désactivé la console série sur le Raspberry Pi, alors que c’est indiqué dans ici : Teleinfo – Préparation d’une Raspberry Pi.
  • Une fois mes données dans emoncms, je ne sais pas trop quoi en faire, sources, feeds, process, nodes, ça ne m’inspire pas trop pour l’instant, mais je me dépatouille.

Quelques photos de l’installation pour les essais :

Lorsque l’installation sera « validée », le téléinfo empruntera une paire en attente dans le boîtier DTI et le raspberry trouvera sa place dans la baie 19″, la partie photocoupleur sera dans un joli petit boitier.


Je ne connaissais pas du tout emoncms, je me suis laissé guider par les nombreux tuto qui existent.
Comme dit un peu plus haut, ma difficulté est de traiter les données reçues.

Emoncms sources

Sources sur Emoncms

 

Feeds emoncms

Feeds emoncms

 

Emoncms visu

La visu sur Emoncms

Si quelqu’un a des conseils à donner sur la façon de traiter les valeurs du téléinfo, je suis preneur…
Le script présenté par hallard.me a l’avantage de pouvoir alimenter emoncms et une table MySQL, ce qui va me permettre de tester d’autres solutions de graphs en parallèle d’emoncms.

Le script de hallard.me disponible sur github, permet en effet de remplir une table MySQL.
Pour ma part, ça représente une avantage important : ne maitrisant pas emoncms, une table MySQL me permet de maintenir une source brutte des données du téléinfo.

La table est constituée ainsi (CTRL+C / CTRL+V de hallard.de) :

CREATE TABLE IF NOT EXISTS `DbiTeleinfo` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `DATE` datetime DEFAULT NULL,
  `ADCO` varchar(12) DEFAULT NULL,
  `OPTARIF` varchar(4) DEFAULT NULL,
  `ISOUSC` decimal(2,0) DEFAULT NULL,
  `BASE` decimal(9,0) DEFAULT NULL,
  `HCHC` decimal(9,0) DEFAULT NULL,
  `HCHP` decimal(9,0) DEFAULT NULL,
  `BBRHCJB` decimal(9,0) DEFAULT NULL,
  `BBRHPJB` decimal(9,0) DEFAULT NULL,
  `BBRHCJW` decimal(9,0) DEFAULT NULL,
  `BBRHPJW` decimal(9,0) DEFAULT NULL,
  `BBRHCJR` decimal(9,0) DEFAULT NULL,
  `BBRHPJR` decimal(9,0) DEFAULT NULL,
  `DEMAIN` varchar(4) DEFAULT NULL,
  `EJPHN` decimal(9,0) DEFAULT NULL,
  `EJPHPM` decimal(9,0) DEFAULT NULL,
  `PEJP` varchar(2) DEFAULT NULL,
  `PTEC` varchar(4) DEFAULT NULL,
  `IINST1` decimal(3,0) DEFAULT NULL,
  `IINST2` decimal(3,0) DEFAULT NULL,
  `IINST3` decimal(3,0) DEFAULT NULL,
  `IMAX1` decimal(3,0) DEFAULT NULL,
  `IMAX2` decimal(3,0) DEFAULT NULL,
  `IMAX3` decimal(3,0) DEFAULT NULL,
  `HHPHC` varchar(1) DEFAULT NULL,
  `PMAX` decimal(5,0) DEFAULT NULL,
  `PAPP` decimal(5,0) DEFAULT NULL,
  `ADPS` decimal(3,0) DEFAULT NULL,
  `MOTDETAT` varchar(6) DEFAULT NULL,
  `TENSION` decimal(3,0) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `SEARCH_INDEX` (`ADCO`,`DATE`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Idéale pour le script suivant :

https://github.com/BmdOnline/Teleinfo

Voici les données à modifier du fichier structure.date.php afin de correspond aux données soumises par le script de hallard.me :

    // Adapter les valeurs du tableau si le nom du champ est différent
    "table" => array (
        "DATE"     => "DATE",      // => généralement, vaut soit "DATE", soit "TIMESTAMP"
        "OPTARIF"  => "OPTARIF",   // option tarifaire souscrite
        "ISOUSC"   => "ISOUSC",    // intensité souscrite
        "BASE"     => "BASE",      // BASE
        "HP"       => "HCHP",      // HCHP
        "HC"       => "HCHC",      // HCHC
        "HPJB"     => "BBRHPJB",   // BBRHPJB
        "HPJW"     => "BBRHPJW",   // BBRHPJW
        "HPJR"     => "BBRHPJR",   // BBRHPJR
        "HCJB"     => "BBRHCJB",   // BBRHCJB
        "HCJW"     => "BBRHCJW",   // BBRHCJW
        "HCJR"     => "BBRHCJR",   // BBRHCJR
        "HN"       => "EJPHN",     // EJPN
        "HPM"      => "EJPHPM",    // EJPHPM
        "PTEC"     => "PTEC",      // période tarifaire en cours
        "DEMAIN"   => "DEMAIN",    // prévision du lendemain (formule Tempo)
        "IINST1"   => "IINST1",    // => généralement, vaut soit "IINST1" soit "INST1"
        "PAPP"     => "PAPP"       // puissance apparente
    )

Et voilà, j’ai certe deux outils pour presque la même chose :
EmonCMS, très complet et difficile à maitriser à mon gout, il me faudra du temps pour avoir un monitoring au top.
Teleinfo, simple, très facile à mettre en place, fait le boulot.

 

Teleinfo instantanne

Teleinfo instantanné

Teleinfo sur 24h

Teleinfo sur 24h

Teleinfo historique

Teleinfo historique


Coté tableau électrique, j’ai validé ma période de test et ai sorti le SFH620 de sa platine de tests :

Petite astuce, j’ai collé l’ensemble photocoupleur, bornier, résistance, au boitier du Raspberry en tailladant le plastique pour la colle prenne.

 

Ce billet est posté dans emoncms, graphs, teleinfo, Web. Mettre en favoris le permalien.

6 réponses à Téléinfo et emoncms, rapide retour d’expérience

  1. Dodutils says:

    Ne pas oublier qu’il existe des modules sans fils pour Temp/Humidité et Conso électrique (pinces ampèremétriques) via le projet OpenEnergyMonitor qui s’intègrent très bien avec EmonCMS.

    Et si on regarde les modules qui sont basés sur un transmeteur 433/866Mhz et un ATmega il devrait être possible de brancher le module téléinfo pour l’utiliser avec transmission radio.

  2. lecameleon99 says:

    Pourquoi ne pas acheter un module teleinfo tout fait?
    On en trouve à 15-20€, c’est dommage de s’en priver.

    • Lionel says:

      Salut,
      Un peu pour le plaisir de le faire soi-même.
      Question coût, le SFH620A m’a couté 6$. Les resistances, j’ai pris un lot de 250 pièces avec diverses valeurs à 3,49$ le lot. Faut rajouter le PCB, hors raspberry (qui servira à d’autre choses en +) au total, j’en ai au max pour 10 € environ je pense.

  3. Rod says:

    Salut Lionel,

    Merci pour ton article ! 😉
    J’ai moi aussi une préférence pour la version hardware réalisée soi-même plutôt qu’un produit tout fait acheté dans le commerce… Mais là n’est pas la question.

    J’en suis au stade où tout est en place et fonctionnel, je n’ai simplement pas trouvé d’info sur ton blog sur la façon dont tu alimentes la db MySQL.
    Est-ce que tu pourrais m’éclairer ?

    Merci par avance !

    • Lionel says:

      Hello,

      C’est le script dispo ici :
      http://hallard.me/teleinfo-emoncms/
      Qui m’alimente la db MySQL.
      Ce script est utilisable sans emoncms, juste pour alimenter une bdd mysql :

      Mon fichier /etc/teleinfo.conf se présente ainsi :
      mysql = 0
      server = 192.168.1.100
      user = teleinfo
      password = tele1nfo
      database = teleinfo
      table = DbiTeleinfo
      mysql_port = 3306

      Puis le serveur teleinfo se lance en local sur le raspberry Pi -> dans le fichier /etc/rc.local via la commande :
      /usr/local/bin/teleinfo -m s -d

      Une fois le serveur teleinfo lancé, l’envoi à la BDD MySQL se fait toutes les 30 secondes dans mon cas, via le cron :

      * * * * * root /usr/local/bin/teleinfo -m r -e -q > /dev/null &> /dev/null
      * * * * * root ( sleep 30 ; /usr/local/bin/teleinfo -m r -e -q) > /dev/null &> /dev/null

      Dans le fichier /etc/teleinfo.conf , mysql = 0
      Car c’est le cron qui force l’envoi des infos MySQL au serveur, mais il récupère le reste des infos de connexion dans ce même fichier.
      Je complète l’article ASAP.

  4. Rod says:

    Super merci ! 😉
    J’étais arrivé à remplir la db, le soucis c’est que j’avais quasiment un enregistrement toutes les 2 ou 3 secondes, inutiles dans mon cas.

    Au plaisir de te lire sur Domolio 🙂

Laisser un commentaire

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