Christophe Nowicki

May 7, 2009

Configuration du module Current Cost CC128 et intégration dans un réseau domotique xPL

Le Current Cost CC128 est un système de suivi de la consommation électrique.
Il est composé de deux modules : une pince ampère-métrique sans fils et un module de réception de données.
L’objectif du produit est de suivre la consommation de votre installation électrique.

En effet, la première étape pour faire des économies d’énergie est de connaitre sa consommation.
C’est pour cela, que j’ai cherché une solution simple pour monitorer mon installation de manière informatisée.

Les compteurs d’électricité EDF récents disposent d’une sortie téléinfo : cette sortie permet de récupèrer la consommation sur un PC via le port série ou USB à l’aide d’un montage électronique comme celui-ci.

Malheureusement, mon compteur est trop vieux et ne dispose pas d’une sortie téléinfo.
J’ai donc cherché une solution alternative que j’ai trouvée grâce au forum Toute la domotique.

Il est possible de se procurer le module et le câble de données USB via la boutique eBay du constructeur : Current Cost Ltd.

L’objectif de ce billet est de configurer le module CC128 sur une distribution Debian GNU/Linux, version “Lenny” dans un réseau domotique xPL à l’aide du projet xpl-perl.

Installation matériel

L’installation matériel est assez simple, il suffit de brancher le module via le câble USB pour le voir à l’aide de la commande lsusb :

$ lsusb
Bus 001 Device 008: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

Le module est visible sous forme de port série via /dev/ttyUSB :

$ dmesg
pl2303 1-2.1.1.1.2:1.0: pl2303 converter detected
usb 1-2.1.1.1.2: pl2303 converter now attached to ttyUSB0
usbcore: registered new driver pl2303
drivers/usb/serial/pl2303.c: Prolific PL2303 USB to serial adaptor driver

Installation de xPL-Perl

Pour faire fonctionner le module CC128, j’utilise la version SVN du projet, XPL-Perl.
Voici la procédure d’installation, il faut commencer par installer les paquets suivants via apt :

# apt-get install subversion libmodule-pluggable-perl libyaml-perl make fakeroot dh-make-perl dpkg-dev debhelper libtimedate-perl gcc libyaml-syck-perl

Télécharger le code source de la version svn :

# cd /usr/src
# svn co http://www.xpl-perl.org.uk/svn/xpl-perl/trunk xpl-perl
# cd xpl-perl
# dpkg-buildpackage -b
...
# cd ..
# dpkg -i libxpl-perl*.deb

Les différents modules xpl sont lancés sous forme de daemon, pour simplifier leur gestion le plus simple est d’installer daemontools sur la machine :

# apt-get install daemontools daemontools-run

Vous pouvez configurer le hub xpl et le module xpl-rrd grâce au script : xpl-perl-setup

# xpl-perl-setup
Using /usr/bin as directory for xpl-perl scripts

Setting up xpl-hub service

Setting up xpl-rrd service

Setting up xpl-rrd crontab
/etc/cron.d/xpl-rrd created

heyu not install not setting up xpl-x10

DateTime::Event::Sunrise not available, not configuring xpl-dawndusk

1-wire filesystem, /ow, not available, not configuring xpl-owfs
set XPL_OWFS environment variable to mount point if it is not /ow

XPL_RFXCOM_RX_TTY not defined, not configuring xpl-rfxcom-rx

XPL_RFXCOM_TX_TTY not defined, not configuring xpl-rfxcom-tx

XPL_VIOM_TTY not defined, not configuring xpl-viom

XPL_W800_TTY not defined, not configuring xpl-w800

hddtemp daemon not running, not configuring xpl-hddtemp

Vous pouvez vérifier le bon fonctionnement du module en ligne de commande :

# xpl-currentcost -v /dev/ttyUSB0
Listening on 192.168.42.4:2135
Sending on 192.168.42.255
xpl-trig/sensor.basic: bnz-ccost.tof -> * - cc128.00077.0.1[current]=1095
xpl-trig/sensor.basic: bnz-ccost.tof -> * - cc128.00077.0[current]=1095
xpl-trig/sensor.basic: bnz-ccost.tof -> * - cc128.00077.0[temp]=23.1

La cela fonctionne, le module diffuse la valeur de la consommation sur le réseau xPL.
Nous allons ensuite configurer deamontools pour lancer le script au boot sous forme de service.

# cd /etc/xplperl/service/
# cp -r xpl-hub/ xpl-currentcost
# chown -R xplperllog: /etc/xplperl/service/xpl-currentcost/log/main/
# adduser xplperl dialout
Adding user `xplperl' to group `dialout' ...
Adding user xplperl to group dialout
Done.
# sed -i 's#xpl-hub -v#xpl-currentcost -v /dev/ttyUSB0#' /etc/xplperl/service/xpl-currentcost/run
# sed -i 's#xplperl#root#' /etc/xplperl/service/xpl-currentcost/run
# sed -i 's#-d300000#-d9000000#' /etc/xplperl/service/xpl-currentcost/run
# update-service --add /etc/xplperl/service/xpl-currentcost/
Service xpl-currentcost added.

Et voila, normalement vous devriez voir des messages ur le réseau xPL à l’aide de xp-logger :

xpl-logger
192.168.42.2:52393 [xpl-stat/hbeat.app: bnz-listener.tux -> *]
192.168.42.2:52393 [xpl-trig/sensor.basic: bnz-ccost.tof -> * - cc128.00077.0.1[current]=1085]
192.168.42.2:52393 [xpl-trig/sensor.basic: bnz-ccost.tof -> * - cc128.00077.0[current]=1085]
192.168.42.2:52393 [xpl-trig/sensor.basic: bnz-ccost.tof -> * - cc128.00077.0[temp]=23.3]

Conclusion

Voila, grâce au module xpl-currentcost, les informations sur la consommation éléctrique sont diffusées sur le réseau xPL. Ma prochaine étape sera d’achiver les données dans une base de données et de dessiner des graphiques.

Filed under: Debian,Home automation — Tags:, — cscm @ 21:51

Powered by WordPress