Current cost : mesurer sa conso électrique

Reprise d’un des premiers articles de ce blog. (4 ans déjà).
Le produit « Current cost » vous permet de mesurer de façon relativement précise la consommation électrique de votre habitation, d’un appareil, ou d’une partie de votre installation électrique.

Une solution complémentaire consiste à lire et décoder le signal téléinfo de votre compteur, mais vous n’aurez dans ce cas que la consommation totale de votre logement. Pas la répartition.
Pour ma part, le compteur étant dans la rue… Impossible de relever ce signal téléinfo de façon simple.

Bref, Mesurer sa consommation électrique ? Comment faire ?

Une solution technique : Current cost

Current cost
Plusieurs produits existent sur le marché, l’un d’eux correspondait parfaitement à mes besoins.
Le produit « Currentcost » présenté sur ce site : http://www.currentcost.com

Le produit ressemble à un système méteo, mais au lieu de vous donner la variation barométrique, celui ci vous indique quelle puissance instantanée vous consommez.
A partir de capteur (pince amperemetrique) que vous placez à divers endroits de votre réseau électrique, la station affiche un bilan globale mais aussi un cumul par capteur.

Current costAttention chaque pince doit prendre uniquement un groupement de phases ou un groupement de neutre, sinon le champ magnétique émit par les fils s’annulerait.

L’intérêt principal (pour moi) de ce type de produit et de pouvoir récupérer les données en flux XML par une liaison USB !

Prix du kit (capteur + transmetteur + station) + fdp : environs 60€

Attention aux différents distributeurs (actuellement situés au Royaume Unit) de bien préciser que vous souhaitez un kit avec une prise française/européennes…
Une fois les différentes capteur/transmetteurs placés dans les différents points de votre réseau, vous visualisez votre conso.
A noter que l’entreprise Current Cost prévoit de fournir d’ici peu des capteurs permettant de mesurer la consommation d’eau, de fioul, et de gaz.

Current costUne fois cet appareil de mesure installé, il faut l’exploiter, et c’est là que CE modèle est intéressant par rapport aux autres qu’on trouve sur le marché.

En effet, la station envoi sur son port USB, autant de trame que de transmetteur toutes les 6s.

Ci dessous 4 de mes 5 transmetteurs placés directement sur mon tableau électrique.
Current cost

Choix du pc / serveur à associer

Il me fallait une machine peu gourmande en énergie électrique, sheevaplug est une solution sympathique…

5W de conso, très petite, très discrète. Bref, solution idéale pour ce projet.

(Cette solution technique a été remplacée par un eeepc710 http://www.dekloo.net/sheevaplug-pas-glop/ )

Des solutions logicielles

Des projets pour exploiter les données, y’en a beaucoup.

Mais c’est celui là qui m’a le plus intéressé -> www.jibble.org/currentcost/

Avec pour l’adaptation du code au modèle USB -> www.linuxuk.org/2008/12/currentcost-and-ubuntu/

Voici une adaptation du code Perl pour à la fois stocker les valeurs mesurées dans rrdtool et mysql :

 #!/usr/bin/perl -w
 # déclaration du démon

use POSIX qw(setsid);
chdir '/'                 or die "Can't chdir to /: $!";
 umask 0;
 open STDIN, '/dev/null'   or die "Can't read /dev/null: $!";
 #open STDOUT, '>/dev/null' or die "Can't write to /dev/null: $!";
 open STDERR, '>/dev/null' or die "Can't write to /dev/null: $!";
 defined(my $pid = fork)   or die "Can't fork: $!";
 exit if $pid;
 setsid                    or die "Can't start a new session: $!";

while(1)
 {
 # Reads data from a Current Cost device via serial port.
use strict;
 use Device::SerialPort qw( :PARAM :STAT 0.07 );
my $PORT = "/dev/ttyUSB0";
my $ob = Device::SerialPort->new($PORT);
 $ob->baudrate(57600);
 $ob->write_settings;
open(SERIAL, "+>$PORT");
while (my $line = <SERIAL>)
 {
 #printf $line;
 if ($line =~ m!<hist>!)   #ne prend pas en compte les trames historique qui vont mettre le bouzin
 {
 #printf $line;    # pour le debug
 }
 else
 {
 #printf $line;       # pour le debug
if ($line =~ m!<tmpr>([\d.]+)</tmpr><sensor>0</sensor>.*<ch1><watts>0*(\d+)</watts></ch1>!) {  # si c'est pour le capteur 0, on recupère la donnée du ch1
 my $temp = $1;
 $temp = $temp-2.5;
 my $watts = $2;
 use DBD::mysql;
 use DBI;
 use DateTime;

#INSERTION MYSQL ***************************************************************************
 my $database="*********************";
 my $hostname="localhost";
 my $login = "*******************";
 my $mdp = "******************";
 my $dsn = "DBI:mysql:database=$database;host=$hostname";
 my $dbh = DBI->connect($dsn, $login, $mdp) or die "Echec connexion";
 my $date_rec = DateTime->now();
 my $requete = "INSERT INTO tampon_total (power,date,line,temp) VALUES ('$watts','$date_rec',\"$line\",'$temp')";
 my $sth = $dbh->prepare($requete);
 $sth->execute();
 $sth -> finish;
 $dbh -> disconnect;
 #FIN INSERTION MYSQL ***************************************************************************

 #INSERTION RRDTOOL ***************************************************************************
 exec (`/usr/bin/rrdtool update /media/data1/web/currentcost/fichiers_rrd/powertemp.rrd N:$watts:$temp`);
 #FIN INSERTION RRDTOOL ***************************************************************************
 }

# Relancer un test identique pour les transmetteurs suivants et leur capteur***************************************
}
}
}

 

Des courbes ! j’aime les courbes !

usb + script perl + Rddtool + et un serveur web et voici les courbes que l’on peut obtenir :

Courbe temps réel sur 1 journée.

Current cost

Et à partir de Mysql + Php et des bibliothèque du type Hightcharts : http://www.highcharts.com/

Current cost consommation electrique annuelle repartition

Bon après on affiche bien ce qu’on veut… 😉

 

Quelques liens utiles

Intégration dans une installation domotique par courant porteurTags : Current cost, currentcost, mesurer, consommation, énergétique, xml, usb, électrique, domotique, powermeter, coût, compteur, edf, économie, chauffage.

A suivre…

yann

15 Comments

Add a Comment

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

AlphaOmega Captcha Classica  –  Enter Security Code