Teleinformation et Cacti

Introduction

Le but est de visualiser la consommation électrique en direct.
Le module de lecture vient de Domotibox (il permet de récuperer sur le serveur les données envoyées par le compteur EDF).

Script de récupération des données

On suppose que le port où se trouve le module USB est /dev/ttyUSB.
D’abord configurer la vitesse:
stty -F /dev/ttyUSB0 1200 sane evenp parenb cs7 -crtscts
Voici ensuite le script:
#!/usr/bin/perl -w
use strict ;

my $start=0;
my $port = "/dev/ttyUSB0";
open(DEV, "$port");
while (<DEV>) {
   s/\r|\n//g;
   if (/HCHC|HCHP|PTEC|IINST|PAPP/) {
      s/([A-Z]+) ([A-Z0-9]+).* .*/$1:$2/g;
      printf "$_ " if $start;
   } elsif (/HHPHC/) {
      s/([A-Z]+) ([A-Z0-9]+) .*/$2/g;
      tr/[A,C,D,E,Y]/[1,2,3,4,5]/;
      printf "HHPHC:$_ " if $start;
      exit if ($start)
   } elsif (/\002/) {
      $start=1;
   } elsif (/\003/) {
      exit if $start;
   }
}

Configuration de Cacti

A faire