Domotique

8 octobre 2010

Suivi conso EDF sur grosse installation…

Plus d'articles de »
Ecrit par: Cédric Locqueneux
Mots-clefs :,

La société dans laquelle je travaille est certifiée ISO 14001, et dans ce cadre, cherche donc à respecter l’environnement. Il y a peu de temps, la direction a souhaité pouvoir suivre sa consommation électrique. Sachant que je « touchais un peu » en domotique, ils m’ont donc confié cette mission.

Ayant déjà installé un CM119 d’OWL chez moi, après vérification des caractéristiques, je suis donc parti sur la même solution. J’en profite donc pour vous en faire une petite présentation rapide sur un « gros » compteur électrique :D


Comme je l’avais déjà évoqué dans mon précédent test du CM119 d’OWL, l’émetteur est capable d’accueillir 3 pinces pour mesurer la consommation électrique sur une installation triphasée, il suffit pour cela d’acheter les pinces supplémentaires.

Quand on m’a demandé d’étudier la question, je suis tout d’abord allé voir le compteur général pour vérifier quelques points:

  • la puissance du compteur: 400A
  • la taille des cables: ici du 17mm², ce qui est très gros
  • la possibilité de placer les pinces: ici c’était possible juste au départ du tableau


La pince fournie en standard avec le CM119 est une pince pour des cables allant jusqu’à 10mm et supportant 71A. Elle est clairement trop petite.

Heureusement, il existe un modèle de pince large acceptant des cables jusqu’à 17mm, et supportant 200A. En triphasé, 3 pinces de 200A supportent donc jusqu’à 600A, notre compteur faisant 400A, c’est bon. Par contre cette pince est également nettement plus grosse, et difficile à placer sur un compteur :/



A gauche, en bleu, se trouve le neutre, et les 3 cables suivants sont les 3 phases, sur lesquels nous avons attaché les pinces ampère métriques. L’émetteur, lui, a été fixé sur le côté du compteur.


Le but était ensuite de récupérer ces informations sur un serveur. Là nous avons beaucoup de chance, la salle serveur se trouve pile poil au dessus du local technique abritant le compteur électrique :D En connectant un adaptateur Usb CM120 sur l’un de nos serveurs, nous pouvons donc capter les informations de l’émetteur.

Même si le logiciel OWL fourni est plutot joli, notre but était de pouvoir exploiter nous même les informations. Il faut savoir que le logiciel d’OWL génère une base sqlite pour y enregistrer les données. Avec la version fournie (v1), il est impossible d’exploiter cette base, mais avec la version 2, disponible ici, la base est tout à fait exploitable.

Il suffit donc de lancer le logiciel OWL, de configurer les sondes à suivre, puis de le réduire, il apparait alors sous forme d’icone dans la barre des taches.

On installe ensuite un driver ODBC pour SQLite, comme celui ci afin de pouvoir se connecter à la base plus facilement.

J’ai ensuite créé un simple script vbs qui se charge de récupérer les données (à l’aide du pilote ODBC que nous avons installé), puis de les représenter dans un graphique (pour le moment j’utilise la librairie ChartDirector disponible ici).


Le script, pour récupérer la consommation heure par heure du jour, ainsi que pour la veille, pour enfin créer le graphique, est celui ci:


 dim objConn, strConnectionString, rsDay, sql, rdVeille, sqlveille<br />
 dim data(24)<br />
 dim data1(24)<br />
 dim labels (24)<br />
 dim i, j<br />
 i = 0<br />
 j = 0</p>

<p>Set objConn = CreateObject("ADODB.Connection")<br />
 'On indique le chemin de la base de données<br />
 strConnectionString = "DRIVER=SQLite3 ODBC Driver;Database=C:\Documents and Settings\All Users\Application Data\2SE\be.db;"<br />
 objConn.Open strConnectionString<br />
 set rsDay = createObject("ADODB.recordset")</p>

<p>'On récupère les données du jour<br />
 sql = "select hour, round(sum(ch1_kw_avg/1000),0) as consoheure from energy_history where addr = 4084 and year || '-' || substr('0000000000' || month, -2, 2)  || '-' || substr('0000000000' || day, -2, 2) = date('now','localtime') group by year, month, day, hour;"</p>

<p>rsDay.open sql, objConn<br />
 set consoheure = rsDay("consoheure")<br />
 set heure = rsDay("hour")</p>

<p>do until rsDay.EOF<br />
 data(i) = consoheure</p>

<p>i = i+1<br />
 rsDay.moveNext<br />
 loop</p>

<p>set rsVeille = createObject("ADODB.recordset")<br />
 'On recupere les donnes de la veille<br />
 sqlveille = "select hour, round(sum(ch1_kw_avg/1000),0) as consoheure from energy_history where addr = 4084 and year || '-' || substr('0000000000' || month, -2, 2)  || '-' || substr('0000000000' || day, -2, 2) = date('now','localtime', '-1 day') group by year, month, day, hour;"</p>

<p>rsVeille.open sqlveille, objConn<br />
 set consoheureveille = rsVeille("consoheure")<br />
 set heureveille = rsVeille("hour")</p>

<p>do until rsVeille.EOF<br />
 data1(j) = consoheureveille<br />
 labels(j) = heureveille<br />
 j = j+1<br />
 rsVeille.moveNext<br />
 loop</p>

<p>'Creation du graphique</p>

<p>Set cd = CreateObject("ChartDirector.API")</p>

<p>'On crée un graphique de 500 x 300 pixels<br />
 Set c = cd.XYChart(500, 300)</p>

<p>'La zone de graphique mesure 420 sur 200, placée à 45,45 du bord supérieur<br />
 Call c.setPlotArea(45, 45, 420, 200)</p>

<p>'On crée les séries de données<br />
 Call c.addAreaLayer(data, &amp;H8000ff00, "Aujourd'hui", 5)<br />
 Call c.addAreaLayer(data1, &amp;H80ff0000, "Hier", 5)</p>

<p>'On crée les étiquettes<br />
 Call c.xAxis().setLabels(labels)</p>

<p>'On affiche une étiquette sur 2 pour plus de lisibilité<br />
 Call c.xAxis().setLabelStep(2)</p>

<p>'On ajoute une légende<br />
 ' background and border to Transparent.<br />
 Call c.addLegend(55, 260, False, "", 8).setBackground(cd.Transparent)</p>

<p>'On donne un titre au graphique<br />
 Call c.addTitle("Consommation Electrique du Jour", "timesbi.ttf", 14).setMargin2(0, 0, 8, 8)</p>

<p>'On donne un libellé aux axes<br />
 Call c.yAxis().setTitle("Kw")<br />
 Call c.xAxis().setTitle("Heure")</p>

<p>'Et on enregistre le tout dans un fichier PNG<br />
 Call c.makeChart("graph\conso_electrique.png")</p>

<p>rsDay.close<br />
 rsVeille.close


Au final, on obtient un petit graphique de ce genre:



Il s’agit là d’un premier test, le design du graphique va être revu, et le script doit être un peu nettoyé, mais cela donne déjà un bon appercu de ce qu’il est possible de faire assez simplement. En mettant ce script en tache planifiée pour tourner toutes les heures, nous obtenons un graphique qui évolue tout au long de la journée. Affiché sur l’écran à l’accueil de la société, cela a pour but (nous verrons sur le long terme) de sensibiliser nos collaborateurs, et donc de réduire la consommation électrique.

Nous prévoyons d’appliquer le même principe sur l’arrivée électrique de la salle serveur, afin de mesurer la consommation de celle ci.


Comme on peut le voir, l’installation des capteurs et l’exploitation des données ont été relativement simples à mettre en oeuvre. Quant au cout, il est très abordable pour une société: un peu moins de 125e pour l’ensemble (CM119, CM120, et 3 pinces larges).


J’en profite enfin pour remercier au passage Mickael, qui tient la boutique Planète Domotique, pour nous avoir fourni le matériel rapidement, mais surtout pour son aide sur les questions techniques (compatibilité des pinces, et exploitation de la base Sqlite notamment !).



A propos de l'auteur

Cédric Locqueneux
Cédric Locqueneux
Je me suis essayé à la domotique il y a quelques années avec quelques modules X10, quelques softs gratuits, etc… pour équiper la maison que j'avais en location. Puis j'ai eu la chance de pouvoir faire construire, et c'est là que mes projets domotiques ont explosé, la construction neuve me permettant de prévoir une installation complète, et intégrée à la maison. Aujourd'hui, quasiment toute mon installation repose sur le Z-Wave.




 
 

 
Capteur_xpl

Mise à jour Eedomus: xpl, RFXCom, Oregon, Chacon…

Voilà venu le temps de notre mise à jour mensuelle pour l’eedomus :D Comme chaque fois, l’équipe de Connected Object a encore bien travaillé et nous propose du « lourd ». LA grosse nouveaut...
par Cédric Locqueneux
14

 
 
03

HC de Fibaro: francais, Géolocalisation, Lili…

Voilà un moment que je ne vous ai pas parlé du Home Center de Fibaro. Pourtant celui ci a connu quelques évolutions, nous sommes d’ailleurs passé de la version 1.019 (lors du test initial) à la  version 1.025 hier. ...
par Cédric Locqueneux
7

 
 
cambrioleur-265x300

Neutralisation des alarmes domotiques Z-Wave

La domotique fait une percée de plus en plus grande et c’est un bonne chose. Toutefois, nombreux sont ceux qui au regard des modules disponibles de détection périmétriques et volumétriques, se font fort d’en faire leur...
par Guiguiabloc
33

 

 
IMG_5987

Mes volets: enfin tous domotisés !

Il y a deux ans, je vous avais présenté l’automatisme pour volets battants de la marque Voltec. Je n’avais automatisé à l’époque que le volet à l’avant de la maison, ce volet donnant sur la rue, et...
par Cédric Locqueneux
9

 
 
ca2b9_11

Avidsen: un peu plus sur leur box domotique…

Avidsen travaille également sur sa box domotique, prévue pour la rentrée 2012. Peu d’informations ont encore filtré, mais on vient d’apprendre que le pôle R&D a réussi le défi de développer un protocole...
par Cédric Locqueneux
10

 




10 Commentaires


  1. ebuprofen

    Concernant sqlite, si vous faites fonctionner les deux logiciels en même temps, il peut y avoir de gros soucis (corruption de base).

    Sqlite ne fonctionne pas sur le principe du client serveur. Le moteur sqlite fonctionne dans le processus de l’application. Vous allez donc avoir deux moteurs exploitant les mêmes fichiers ce qui est risqué.


  2. Sébastien

    Bonjour, encore un super article.
    Il est peut-être un peu tôt, mais quelles modifications avez-vous apportés dans votre consommation après analyse des résultats (extinction automatique de postes informatiques, minuteries…)
    En fonctions des économies électriques apportées, combien de temps vous faut-il pour amortir le matériel?
    Avez-vous une idée de la consommation annuelle de votre société?
    ;)


  3. En lecture il n’y aura pas de souci. Même en écriture logiquement. Par contre plusieurs écritures simultanées provoquent des baisses de performances importantes…


  4. PITP2

    Bonjour,
    belle réalisation. J’ai l’intention de récupérer le script que vous avez fait. Mais je ne comprends pas bien la partie récupération des données notamment la requete pour récupérer les infos du jour et de la veille. Vous serait il possible de commenter encore un peu plus cette partie ?


  5. En fait, la requête:

    Dans la base, il y a un champ pour l’année, le mois, la date, l’heure, et les minutes. On récupère ici l’heure qui servira pour les étiquettes de l’axe:

    select hour,

    Pour chaque heure, on fait la somme des consommations divisée par 1000, et tronqué pour ne pas avoir de virgule. Car dans la base, la consommation est enregistrée minute par minute

    round(sum(ch1_kw_avg/1000),0) as consoheure

    On va chercher les infos dans la table historique

    from energy_history

    On ne prend que les infos de la sonde 4084. Chaque sonde a un numéro attribué par le logiciel, il faut juste sélectionner la bonne sonde (dans le cas où on en a plusieurs)

    where addr = 4084

    Comme il y a un champ pour chaque élément de la date, on concaténe tout ca pour obtenir la date complète. La fonction substr permet d’ajouter un 0 devant les jours et les mois à un chiffre

    and year || ‘-’ || substr(’0000000000′ || month, -2, 2) || ‘-’ || substr(’0000000000′ || day, -2, 2)

    Et on cherche donc les infos correspondantes à la date du jour

    = date(‘now’,'localtime’)

    Enfin on groupe les informations par heure pour obtenir la somme des consommations

    group by year, month, day, hour;

    Pour la conso de la veille, c’est exactement la même requête, sauf qu’on cherche les infos de la date en cours – 1 jour:

    date(‘now’,'localtime’, ‘-1 day’)

    J’espère que c’est plus clair comme ca ? Si tu as encore des doutes, n’hésites pas, j’essaierai de mieux epxliquer tout ca.


  6. PITP2

    Merci bcp pour ces infos. J’ai essayé d’adpater ton script pour hs mais il me mets une erreur …. je te donne le lien vers le post au cas ou tu puisses m’aider … ;-)
    http://www.touteladomotique.com/forum/viewtopic.php?t=4329


  7. Lemaitre

    Bonjour,

    En triphasé, est-il possible d’avoir la consommation sur chacune des phases, afin de vérifier la bonne répartition des appareils ?

    (avec un seul compteur type cm119, c’est probablement possible avec plusieurs compteurs).

    Je vois d’autres intérêts que la mesure de la consommation à ces appareils, comme par exemple la surveillance de pompes de relevage d’eau (alerte si non fonctionnement depuis x jours).

    D’avance merci.


    • Non, si on utilise un seul émetteur sur lequel on branche les 3 pinces, on obtient directement le total, impossible d’avoir la charge de chaque phase. Pour avoir la charge de chaque phase, il faudrait 3 émetteurs avec chacun une pince, un peu plus couteux :/



Laisser un commentaire

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

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Afficher la dernière news de mon site perso