EnergyLeaks

EnergyLeaks, la solution de suivi de consommation des fluides de votre entreprise / logement

Préambule.

L’objet de ce projet est d’effectuer du suivi énergétique avec des élément open source et open hardware. La précision est celle d’un suivi énergétique et ne requiert pas une précision de facturation dans les appareillages. Borné par des mesure de facturation la précision devient haute dès lors que le suivi est en point dix minutes.

La réalisation à été expliquée par Yann un professeur d’électronique du grésivaudan. Je pense que l’on doit pouvoir faire réaliser les élément de la solution énergyleaks afin de réaliser un suivi énergétiques dans les bâtiments de grenoble alpes métropole ainsi que pour les bailleurs sociaux. D’une manière général de tous les signataire du plan climat local air énergie.

Pour l’utilisation des smartphone se référer au projet Smart2life de recyclage et l’implication du chantier d’insertion Solidura.

Le principe

Le suivi est effectué à l’aide un currentcost disponible sur le marché et commercialisé en France à Lyon par Domadoo. Ainsi le suivi de 9 canaux électriques peut être effectué simultanément et par extension le fonctionnement des bruleurs des chaudières gaz si les pinces ampère métrique sont installées sur l’alimentation de ces derniers.

Le stockage des données s’effectue via un ordinateur prise de type sheevaplug. Désormais on peut aisément les remplacer par des smartphone obsolète qui remplirait la même fonction de serveur.

La diffusion des données pourrait se faire via le web local grenoblois Grenode ou via une solution plus généraliste mais propriétaire telle que sigfox. La faible quantité qui doit transiter ne nécessite pas un réseau avec de grosse capacité de données puisque ici un message serait envoyé toutes les 10 minute contenant les informations de consommation de chaque canaux.

Les dernières briques sont en cours d’assemblage

Désormais les paquets internet correspondant à la consommation vont bientôt pouvoir transiter via le réseau ouvert LoraWan. C’est le réseau des objets. On a un spécialiste dans le Vercors sur cela: www.atim.com

Il y a plein de spécialiste à l’université / Inria / Orange dans l’agglomération.

En détail

Extrait du blog de Yann professeur d’électronique au lycée du Grésivaudan

http://www.dekloo.net/supervision_energetique/

[reprise] Current cost ou comment mesurer sa conso electrique

Reprise d’un des premiers articles de ce blog. (4 ans déjà).

Le produit « Currentcost » 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


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.
Attention 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 CurrentCost prévoit de fournir d’ici peu des capteurs permettant de mesurer la consommation d’eau, de fioul, et de gaz.


Une 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.

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.

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

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

Extrait de

http://www.currentcost.com/cc128/xml.htm

Current Cost CC128 Display Unit

 

XML OUTPUT DESCRIPTION – v0.11

 

 

  1. Serial Port

 

The CC128 Display Unit outputs ASCII text over its serial port at 57600 baud, 1 start, 8-bit data, 1 stop, no parity, no handshake. This version does not listen for incoming data.

 

Using the optional Current Cost serial port cable, a standard PC’s COM1 Port will receive the raw data for display using a terminal emulator program like Windows HyperTerminal. For a quick check, a batch command like the following works on some PC systems. Obviously, edit the « com1 » text to match the Com port in use.

 

@echo off

title CurrentCost Data Display

color f0

prompt «  »

mode con: cols=100 > nul

mode com1: baud=57600 parity=n data=8 stop=1 > nul

echo Displaying data received from com1 serial port. Press Ctrl-C to stop…

echo.

type com1

pause

 

If the PC does not have a COM serial port, the optional Current Cost USB cable can be used in conjunction with driver software to create a virtual COM port. The Prolific PL-2303 Drivers support Windows 2K/XP (not Vista, although there may be third party compatible drivers available), MacOS (8, 9 and 10.x PowerPC and Intel) and Linux (some kernels include support without additional drivers).

 

If the data is captured to a text file, some HTML browsers will open this to display the block of XML for easier reading, but the text must be prefixed and post fixed with a block label, eg <xml>…</xml>. MS Excel will read this data and it can be auto filtered. Alternatively there are free XML viewers available. All these programs start to load very slowly with file sizes above 2MB. There is no separate schema available, the programs will create their own.

 

The intention of providing the xml data is to enable custom software to be created to use the information in whatever way meets your personal or company objectives or interests.

 

 

 


  1. Real-Time Output

 

The Display Unit outputs Sensor data whenever a successful Sensor Transmission is received.

 

The CC128 message structure is slightly compressed compared with the Current Cost « Classic » format, as follows:

 

<msg>                            start of message

<src>CC128-v0.11</src>        source and software version

<dsb>00089</dsb>              days since birth, ie days run

<time>13:02:39</time>         24 hour clock time as displayed

<tmpr>18.7</tmpr>             temperature as displayed

<sensor>1</sensor>            Appliance Number as displayed

<id>01234</id>                radio ID received from the sensor

<type>1</type>                sensor Type, « 1 » = electricity

<ch1>                         sensor channel

<watts>00345</watts>       data and units

</ch1>

<ch2>

<watts>02151</watts>

</ch2>

<ch3>

<watts>00000</watts>

</ch3>

</msg>                           end of message

 

 

This message is sent out for each Appliance Sensor received (sensor 1 to 9) plus the « Whole House » Sensor, which is listed as sensor 0.

 

 


  1. History Output

 

A full cycle of History messages are output starting at 1 minute past every odd hour, ie 17:01, 19:01 etc. A burst of data is sent once every 10 seconds. History Data is sent for all 10 sensors regardless if they are now present or not.

 

Four items of sensor data for each of 10 sensors are sent each xml burst, ie 40 items. When the data from one store is completely sent, the data from the next store is sent. When the cycle is completed, the wire is quiet of history data until the start of the next cycle.

 

A full cycle of output can be initiated for download on demand by pressing and holding the Down and OK buttons together until the LED flashes. Real-time XML output and all on-screen update including the time stops while this is happening.

 

 

3.1  Two-Hourly History Store

 

The last 31 days Energy Usage is output as 2-hour aggregates of KWHr (3720 values covering 9 Appliances plus Whole House), the data being aggregated starting at odd hours, eg 23:00 to 01:00, 01:00 to 03:00 etc. This accommodates industry requests to view evening and night data segments distinguished at 23:00.

 

« Sensor 0 » refers to the « Whole House » and Sensors 1 to 9 are Appliance Sensors.

 

Where sensors have more than one channel, the value presented is the total of all channels.

 

<msg>                            start of message

<src>CC128-v0.11</src>        [as for Real-Time]

<dsb>00089</dsb>              [as for Real-Time]

<time>13:10:50</time>         [as for Real-Time]

<hist>                        start of history

<dsw>00032</dsw>           days since wipe of history

<type>1</type>             sensor Type, « 1 » = electricity

<units>kwhr</units>        units of data eg KWHr

<data>                     start of data burst

<sensor>0</sensor>      historic Appliance Number

<h024>001.1</h024>      h= »hours », 24= »22 to 24 hrs ago »

<h022>000.9</h022>      h= »hours », 22= »20 to 22 hrs ago »

<h020>000.3</h020>      h= »hours », 18= »20 to 20 hrs ago »

<h018>000.4</h018>      h= »hours », 22= »16 to 18 hrs ago »

</data>

…                        [Sensor 1 to 8 data here]

<data>

<sensor>9</sensor>

<units>kwhr</units>

<h024>000.0</h024>

<h022>000.0</h022>

<h020>000.0</h020>

<h018>000.0</h018>

</data>

</hist>

</msg>                           end of message

 

 

3.2  Daily History Store

 

The last 90 days Energy Usage is output as daily aggregates of KWHr (900 values covering 9 Appliances plus Whole House).

 

For simplicity, this data overlaps the 2-hr history store in the present version.

 

« Sensor 0 » refers to the « Whole House » and Sensors 1 to 9 are Appliance Sensors.

 

Where sensors have more than one channel, the value presented is the total of all channels.

 

<msg>

<src>CC128-v0.11</src>

<dsb>00089</dsb>

<time>13:10:50</time>

<hist>

<dsw>00032</dsw>

<type>1</type>

<units>kwhr</units>

<data>

<sensor>0</sensor>

<units>kwhr</units>

<d055>012.9</d055>      d= »days », 055= »55 days ago »

<d054>011.0</d054>

<d053>014.3</d053>

<d052>019.5</d052>

</data>

…                        [Sensor 1 to 8 data here]

<data>

<sensor>9</sensor>

<units>kwhr</units>

<d055>000.0</d055>

<d054>000.0</d054>

<d053>000.0</d053>

<d052>000.0</d052>

</data>

</hist>

</msg>

 

 

 

3.3  Monthly History Store

 

The last 84 months Energy Usage is output as monthly aggregates of KWHr (840 values covering 9 Appliances plus Whole House).

 

For simplicity, this data overlaps the 2-hr and Daily history stores in the present version [subject to review].

 

« Sensor 0 » refers to the « Whole House » and Sensors 1 to 9 are Appliance Sensors.

 

Where sensors have more than one channel this is stored totalled.

 

<msg>

<src>CC128-v0.11</src>

<dsb>00089</dsb>

<time>13:10:50</time>

<hist>

<dsw>00032</dsw>

<type>1</type>

<units>kwhr</units>

<data>

<sensor>0</sensor>

<units>kwhr</units>

<m002>257.0</m002>      m= »month », 002= »2 months ago »

<m001>340.0</m001>

</data>

…                        [Sensor 1 to 8 data here]

<data>

<sensor>9</sensor>

<units>kwhr</units>

<m002>000.0</m002>

<m001>000.0</m001>

</data>

</hist>

</msg>

 

 

 

 

  1. Document Version

 

This Description was issued on 18th February 2009 and is subject to change without notice. The authors, copyright holders and publishers carry no liabilities whatsoever for losses of any sort, primary or secondary, time or money or anything else. All information must be verified before use by examination of actual data structures and timings by the practitioner. Accuracy of transmitted or received data is not warranted under any circumstances. Anyone using data derived from the product or any product description must perform their own risk assessment.

 

Having said that, we will try to notify interested folks of any changes as soon as practicable either directly or through web sites or blogs, and we will gratefully receive comments, criticism and suggestions for improvements from anyone.

 

 

Current Cost Ltd