<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Christophe Nowicki &#187; xPL</title>
	<atom:link href="http://www.csquad.org/tag/xpl/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.csquad.org</link>
	<description>Just for fun</description>
	<lastBuildDate>Fri, 14 Jan 2011 08:32:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>xPL Perl update script for Pachube</title>
		<link>http://www.csquad.org/2009/11/27/xpl-perl-update-script-for-pachube/</link>
		<comments>http://www.csquad.org/2009/11/27/xpl-perl-update-script-for-pachube/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 22:29:45 +0000</pubDate>
		<dc:creator>cscm</dc:creator>
				<category><![CDATA[Home automation]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Pachube]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[xPL]]></category>

		<guid isPermaLink="false">http://www.csquad.org/?p=805</guid>
		<description><![CDATA[I&#8217;ve wrote a small update script for Pachube based on xPL-Perl.
This module is based on Beanz&#8217;s Net::Pachube module.
I use this script, for my pachube feed.
Setup
The setup is very simple on Debian GNU/Linux, at first you need the Net::Pachube module :
$ wget http://search.cpan.org/CPAN/authors/id/B/BE/BEANZ/Net-Pachube-0.01.tar.gz
$ tar xzf Net-Pachube-0.01.tar.gz
$ cd Net-Pachube-0.01
$ perl Makefile.PL
$ make
...
# make install

Note: the dh-make-perl method [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve wrote a small update script for <a href="http://www.pachube.com/">Pachube</a> based on <a href="http://www.xpl-perl.org.uk/">xPL-Perl</a>.<br />
This module is based on Beanz&#8217;s <a href="http://search.cpan.org/dist/Net-Pachube/">Net::Pachube</a> module.<br />
I use this script, for <a href="http://www.pachube.com/feeds/1934">my pachube feed</a>.</p>
<h3>Setup</h3>
<p>The setup is very simple on Debian GNU/Linux, at first you need the Net::Pachube module :<br />
<code>$ wget http://search.cpan.org/CPAN/authors/id/B/BE/BEANZ/Net-Pachube-0.01.tar.gz<br />
$ tar xzf Net-Pachube-0.01.tar.gz<br />
$ cd Net-Pachube-0.01<br />
$ perl Makefile.PL<br />
$ make<br />
...<br />
# make install<br />
</code><br />
Note: the <em>dh-make-perl</em> method does not work, with this package ;-(</p>
<p>Then you can grab, my <em>xpl-pachube</em> script :</p>
<p><code>$ svn co http://svn.csquad.org/xpl-pachube/<br />
..<br />
# chmod +x xpl-pachube/xpl-pachube<br />
# mv xpl-pachube/xpl-pachube /usr/local/bin<br />
</code></p>
<h3>Run</h3>
<p>You can start the <em>xpl-pachube</em> script in verbose this way :<br />
<code><br />
$ xpl-pachube -key 52b37888404598851de -verbose -feed_id 1934 class=sensor device=cc128.01189.0.1<br />
</code></p>
<p>You need to change the <em>-key</em> and <em>-feed_id</em> arguments.</p>
<p>That&#8217;s all folks!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.csquad.org/2009/11/27/xpl-perl-update-script-for-pachube/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>xPL Automatic Speech Recognition with Julius</title>
		<link>http://www.csquad.org/2009/10/23/xpl-automatic-speech-recognition-with-julius/</link>
		<comments>http://www.csquad.org/2009/10/23/xpl-automatic-speech-recognition-with-julius/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 14:26:26 +0000</pubDate>
		<dc:creator>cscm</dc:creator>
				<category><![CDATA[Home automation]]></category>
		<category><![CDATA[Julius]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Speech recognition]]></category>
		<category><![CDATA[xPL]]></category>

		<guid isPermaLink="false">http://www.csquad.org/?p=735</guid>
		<description><![CDATA[I&#8217;ve wrote a very small Perl module for interfacing my home automation  Speech Recognition Engine based on Julius with the xPL Network. 
The goal of this xpl-perl module, is to broadcast recognised speech.
I&#8217;ve described the ASR xPL schema on the project forum : ASR.BASIC Schema proposal
You need a working Julius installation running in monitor [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve wrote a very small Perl module for interfacing my home automation  <a href="http://en.wikipedia.org/wiki/Speech_Recognition">Speech Recognition Engine</a> based on <a href="http://julius.sourceforge.jp/en_index.php">Julius</a> with the <a href="http://xplproject.org.uk/">xPL Network</a>. </p>
<p>The goal of this <a href="http://www.xpl-perl.org.uk/">xpl-perl module</a>, is to broadcast recognised speech.</p>
<p>I&#8217;ve described the ASR xPL schema on the project forum : <a href="http://xplproject.org.uk/forums/viewtopic.php?f=2&#038;t=877">ASR.BASIC Schema proposal</a></p>
<p>You need a working Julius installation running in monitor mode (listening on the network) and an xpl-perl setup. </p>
<p>Here is an sample command output :<br />
<code>$ julius -input file -C julian.jconf<br />
...<br />
Stat: server-client: socket ready as server<br />
///////////////////////////////<br />
///  Module mode ready<br />
///  waiting client at 10500<br />
/////////////////////////////// </code><br />
In others windows, you must run <em>xpl-asr-julius</em> and <em>xpl-logger</em>.<br />
When you speak or send a wav file to Julius, the reconised text is broadcasted on the network :<br />
<code>### read waveform input<br />
enter filename->  test.wav<br />
Stat: adin_file: input speechfile: test.wav<br />
STAT: 180003 samples (3.75 sec.)<br />
STAT: ### speech analysis (waveform -> MFCC)<br />
STAT: 00 _default: 17 generated, 17 pushed, 6 nodes popped in 1123<br />
</code><br />
xpl-logger output :<br />
<code>10.0.0.242:53922 [xpl-trig/asr.basic: bnz-julius.nux -> * - &lt;s&gt; éteindre lumière chambre &lt;/s&gt;]</code></p>
<h3>Installation</h3>
<p>The setup is very simple on Debian GNU/Linux. Just fallow thoses instructions :<br />
<code>$ wget http://www.csquad.org/wp-content/contrib/xpl-asr-julius/xPL-ASR-Julius-0.01.tar.gz<br />
$ tar xzf xPL-ASR-Julius-0.01.tar.gz<br />
$ dh-make-perl xPL-ASR-Julius-0.01<br />
$ cd xPL-ASR-Julius-0.01<br />
$ dpkg-buildpackage -b<br />
# dpkg -i ../libxpl-asr-julius-perl*.deb<br />
</code></p>
<p>That&#8217;s all ! </p>
]]></content:encoded>
			<wfw:commentRss>http://www.csquad.org/2009/10/23/xpl-automatic-speech-recognition-with-julius/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modules Plugwise dans un reseau xPL</title>
		<link>http://www.csquad.org/2009/10/03/modules-plugwise-dans-un-reseau-xpl/</link>
		<comments>http://www.csquad.org/2009/10/03/modules-plugwise-dans-un-reseau-xpl/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 16:23:02 +0000</pubDate>
		<dc:creator>cscm</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Home automation]]></category>
		<category><![CDATA[Plugwise]]></category>
		<category><![CDATA[xPL]]></category>
		<category><![CDATA[ZigBee]]></category>

		<guid isPermaLink="false">http://www.csquad.org/?p=527</guid>
		<description><![CDATA[L&#8217;objectif de cet article est d&#8217;expliquer l&#8217;utilisation des modules Plugwise dans un réseau xPL sous Debian GNU/Linux à l&#8217;aide du projet xpl-perl.
Présentation de Plugwise




Les modules plugwise sont des prises électriques qui permettent de :

Mesurer la consommation électrique d&#8217;un appareil ; 
Éteindre / Allumer un appareil électrique à distance.




Ces prises communiquent entre elles à l&#8217;aide d&#8217;un [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217;objectif de cet article est d&#8217;expliquer l&#8217;utilisation des modules <a href="http://www.plugwise.com/en">Plugwise</a> dans un réseau <a href="http://xplproject.org.uk/">xPL</a> sous <a href="http://www.debian.org/">Debian GNU/Linux</a> à l&#8217;aide du projet <a href="http://www.xpl-perl.org.uk/">xpl-perl</a>.</p>
<h3>Présentation de Plugwise</h3>
<table>
<tr>
<td valign="top"><a href="http://www.csquad.org/wp-content/uploads/2009/09/Cirlcle-type-F-foto.png"><img src="http://www.csquad.org/wp-content/uploads/2009/09/Cirlcle-type-F-foto.png" alt="circle plugwise" title="Plugwise Cirlcle-type-F-foto" width="90" height="102" class="alignnone size-full wp-image-531" /></a>
</td>
<td>Les modules <a href="http://www.plugwise.com/en/products/product-description">plugwise</a> sont des prises électriques qui permettent de :</p>
<ul>
<li>Mesurer la consommation électrique d&#8217;un appareil ; </li>
<li>Éteindre / Allumer un appareil électrique à distance.</li>
</ul>
</td>
</tr>
</table>
<p>Ces prises communiquent entre elles à l&#8217;aide d&#8217;un réseau <a href="http://fr.wikipedia.org/wiki/ZigBee">ZigBee</a> de type <a href="http://fr.wikipedia.org/wiki/Topologie_Mesh">Mesh</a>.</p>
<p>Les spécifications du produit sont :</p>
<ul>
<li>Voltage: 100-240 V~</li>
<li>Fréquence: 50 / 60 Hz</li>
<li>Puissance maximale: 3680 Watt</li>
<li>Courant maximal: 16 A</li>
</ul>
<p>Elles sont produites par une société Hollandaise et uniquement disponibles dans leur Webshop. (passer la commande en hollandais n&#8217;est pas évident <img src='http://www.csquad.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  )</p>
<p>Chaque prise coûte environ 35 euros et le kit de démarrage le moins cher est à 150 euros. </p>
<p>Les <a href="http://fr.wikipedia.org/wiki/Prise_%C3%A9lectrique#Types_E_et_F">prises électriques sont de type F</a>, il vous faut donc <a href="http://www.planete-domotique.com/adaptateur-prise-schuko.html">un adaptateur</a> pour les appareils nécessitant une prise de terre. </p>
<p>J&#8217;utilise ces prises dans mon <a href="http://www.csquad.org/installation-domotique/">installation domotique</a>, car elles présentent un avantage par rapport aux solutions classiques basées sur le <a href="http://fr.wikipedia.org/wiki/Courants_porteurs_en_ligne">CPL</a> (x10, PLC-BUS, etc&#8230; ).</p>
<p>En effet, il est possible d&#8217;utiliser ce type de prise sur un onduleur et comme une bonne partie de mon installation est ondulée c&#8217;est la seule solution.</p>
<h3>Installation du &#8220;stick&#8221; usb</h3>
<p>Voici la procédure pour installer, le stick usb.<br />
Insérerez  le module  dans le port usb de la machine, il doit apparaître et être reconnu comme  un adaptateur série :<br />
<code><br />
$ lsusb<br />
...<br />
Bus 006 Device 003: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC<br />
...<br />
$ dmesg<br />
...<br />
[431159.173232] usb 6-2: FTDI USB Serial Device converter now attached to ttyUSB0<br />
[431159.179407] usb 6-2: New USB device found, idVendor=0403, idProduct=6001<br />
[431159.179459] usb 6-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3<br />
[431159.180301] usb 6-2: Product: FT232R USB UART<br />
[431159.180301] usb 6-2: Manufacturer: FTDI<br />
[431159.180301] usb 6-2: SerialNumber: A8009iKr<br />
$ ls -l /dev/ttyUSB*<br />
crw-rw---- 1 root dialout 188, 0 2009-09-22 13:03 /dev/ttyUSB0<br />
</code></p>
<h3>Configuration du module xpl-plugwise</h3>
<h4>Dépendances</h4>
<p>Pour faire fonctionner le module vous avez besoin du module perl <em>Digest::CRC</em> :<br />
<code># apt-get install libdigest-crc-perl</code></p>
<h4>Installation du module</h4>
<p>Le module xPL pour Plugwise se trouve directement sur le serveur du projet xpl-perl :<br />
<code># cd /usr/src<br />
# wget http://www.xpl-perl.org.uk/download/xPL-Plugwise-0.01.tar.gz<br />
# tar xzf xPL-Plugwise-0.01.tar.gz<br />
# dh-make-perl xPL-Plugwise-0.01<br />
# cd xPL-Plugwise-0.01/<br />
# sed -i 's/\$(MAKE) test/#/' debian/rules<br />
# dpkg-buildpackage -b<br />
# dpkg -i ../libxpl-plugwise-perl_0.01-1_all.deb<br />
</code></p>
<h4>Lancement</h4>
<p>Pour lancer le module, il faut lui préciser l&#8217;emplacement du stick USB à l&#8217;aide de la ligne de commande :<br />
<code># xpl-plugwise --verbose --plugwise-verbose --plugwise-tty /dev/ttyUSB0<br />
Listening on 192.168.42.78:34281<br />
Sending on 192.168.42.255<br />
</code></p>
<h3>Utilisation</h3>
<p>Pour allumer une prise, il suffit d&#8217;envoyer l&#8217;ordre suivant :<br />
<code>$ xpl-sender -m xpl-cmnd -c plugwise.basic command=on device=3FD8F6</code><br />
Pour éteindre :<br />
<code>$ xpl-sender -m xpl-cmnd -c plugwise.basic command=off device=3FD8F6</code><br />
Pour obtenir la consommation de l&#8217;appareil sur la prise :<br />
<code>$ xpl-sender -m xpl-cmnd -c plugwise.basic command=powerinfo device=3FD8F6</code><br />
Le module répond à l&#8217;aide d&#8217;un trigger, donc voici la sortie :<br />
<code>$ xpl-logger -body class=plugwise<br />
192.168.42.2:48051 [xpl-cmnd/plugwise.basic: bnz-sender.tux -> * - powerinfo 3FD8F6]<br />
plugwise.basic<br />
{<br />
command=powerinfo<br />
device=3FD8F6<br />
}<br />
192.168.42.2:48051 [xpl-trig/plugwise.basic: bnz-plugwise.milk -> * - powerinfo 3FD8F6]<br />
plugwise.basic<br />
{<br />
command=powerinfo<br />
device=3FD8F6<br />
pulse1sec=0005<br />
pulse8sec=0006<br />
unknown=000000A4<br />
}</code><br />
L&#8217;information se trouve dans les deux variables <em>pulse1sec</em> et <em>pulse8sec</em>.</p>
<h3>Conclusion</h3>
<p>Pour l&#8217;instant, l&#8217;utilisation de ces prises sous Debian GNU/Linux se limite aux ordres on/off. Il est encore nécessaire d&#8217;utiliser le logiciel fourni par le fabriquant pour la configuration du réseau.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.csquad.org/2009/10/03/modules-plugwise-dans-un-reseau-xpl/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Archivage des messages xPL dans une base de données</title>
		<link>http://www.csquad.org/2009/09/26/archivage-des-messages-xpl-dans-une-base-de-donnees/</link>
		<comments>http://www.csquad.org/2009/09/26/archivage-des-messages-xpl-dans-une-base-de-donnees/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 10:44:03 +0000</pubDate>
		<dc:creator>cscm</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Home automation]]></category>
		<category><![CDATA[Monit]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[xPL]]></category>

		<guid isPermaLink="false">http://www.csquad.org/?p=537</guid>
		<description><![CDATA[Voici la procédure pour archiver les messages de votre réseau xPL dans une base de données MySQL.
L&#8217;objectif
Beanz, l&#8217;auteur du projet xpl-perl a supprimé la fonctionnalité du projet dans la version 0.08. 
Cette fonctionnalité répond à un besoin très spécifique.
Archiver TOUS les messages dans une base de données MySQL demande beaucoup de ressources.
Sur mon petit réseau [...]]]></description>
			<content:encoded><![CDATA[<p>Voici la procédure pour archiver les messages de votre réseau <a href="http://xplproject.org.uk/">xPL</a> dans une base de données MySQL.</p>
<h3>L&#8217;objectif</h3>
<p>Beanz, l&#8217;auteur du projet <a href="http://www.xpl-perl.org.uk/">xpl-perl</a> a supprimé la fonctionnalité du projet dans la version 0.08. </p>
<p>Cette fonctionnalité répond à un besoin très spécifique.<br />
Archiver <strong>TOUS</strong> les messages dans une base de données MySQL demande beaucoup de ressources.<br />
Sur mon petit <a href="http://www.csquad.org/installation-domotique/">réseau domotique</a>, j&#8217;ai déjà plus de 25 messages par minute.</p>
<p>Ce qui produit une base de données importante avec 100 000 entrées par semaine, soit 500 000 par mois, 6 000 000 par an. </p>
<p>Et la taille de la base de données fait dans les 50 Mo par semaine, soit 250Mo par mois, 3Go par an. </p>
<p>Donc pour stocker ces données vous devez en avoir vraiment besoin. C&#8217;est mon cas, car :</p>
<ul>
<li>Je veux conserver la consommation électrique exact de chaque appareil ;</li>
<li>Utiliser des optimisations à l&#8217;aide d&#8217;un <a href="http://fr.wikipedia.org/wiki/R%C3%A9seau_de_neurones">réseau de neurones</a>. </li>
</ul>
<h3>Installation</h3>
<p>Vous devez disposer d&#8217;un réseau xPL fonctionnel et d&#8217;une installation de xpl-perl. </p>
<h4>Programme</h4>
<p>Nous allons récupèrer le code des modules directement dans le svn.</p>
<p><code><br />
# cd /usr/share/perl5/xPL<br />
# wget http://www.xpl-perl.org.uk/export/892/xpl-perl/branches/r0.08/lib/xPL/SQL.pm<br />
# sed -i -e  's#/etc/xpl-perl/db.config#/etc/xplperl/db.config#' SQL.pm<br />
# cd /usr/bin<br />
# wget http://www.xpl-perl.org.uk/export/892/xpl-perl/branches/r0.08/bin/xpl-sql-logger<br />
# chmod +x xpl-sql-logger<br />
# apt-get install libclass-dbi-loader-perl libdatetime-perl<br />
# cd /etc/xplperl<br />
# cat < <EOF > db.config<br />
dsn=dbi:mysql:xpl:localhost<br />
user=xpl<br />
password=secret<br />
EOF<br />
#<br />
</code></p>
<h4>Base de données</h4>
<p>Une fois que vous avez installé le programme, il est nécessaire de configurer la base de données.</p>
<p>Pour cela vous devez créer un utilisateur <em>xpl</em> et une base de données <em>xpl</em> sur votre serveur MySQL.<br />
Ensuite vous créer les tables de la base de données à l&#8217;aide des requêtes SQL suivantes :<br />
<code><br />
  CREATE TABLE body (<br />
    id int NOT NULL auto_increment,<br />
    body varchar(1500) default NULL,<br />
    PRIMARY KEY  (id),<br />
    KEY body_idx (body(1000))<br />
  );<br />
  CREATE TABLE elt (<br />
    id int NOT NULL auto_increment,<br />
    name varchar(16) default NULL,<br />
    value varchar(128) default NULL,<br />
    PRIMARY KEY  (id),<br />
    KEY name_idx (name)<br />
  );<br />
  CREATE TABLE msg (<br />
    id int NOT NULL auto_increment,<br />
    time int default NULL,<br />
    usec int default NULL,<br />
    type char(8) default NULL,<br />
    source varchar(34) default NULL,<br />
    target varchar(34) default NULL,<br />
    class varchar(15) default NULL,<br />
    incomplete int default NULL,<br />
    body int default NULL,<br />
    PRIMARY KEY  (id),<br />
    KEY class_idx (class),<br />
    KEY time_idx (time,usec),<br />
    KEY type_idx (type),<br />
    KEY body_idx (body)<br />
  );<br />
  CREATE TABLE msgelt (<br />
    id int NOT NULL auto_increment,<br />
    msg int NOT NULL,<br />
    elt int NOT NULL,<br />
    PRIMARY KEY  (id),<br />
    KEY msg_idx (msg),<br />
    KEY elt_idx (elt)<br />
  );<br />
</code></p>
<h4>Lancement et recette</h4>
<p>Vous pouvez ensuite lancer le programme en ligne de commande :<br />
<code>$ xpl-sql-logger</code><br />
Vous pouvez ensuite vérifier que cela fonctionne dans la base de données :<br />
<code>mysql> SELECT * FROM `msg` ORDER BY id DESC LIMIT 3;<br />
+---------+------------+--------+----------+----------------+--------+--------------+------------+<br />
| id      | time       | usec   | type     | source         | target | class        | incomplete |<br />
+---------+------------+--------+----------+----------------+--------+--------------+------------+<br />
| 7711941 | 1253948224 | 252455 | xpl-trig | bnz-ccost.milk | *      | sensor.basic |          0 |<br />
| 7711931 | 1253948224 | 211170 | xpl-trig | bnz-ccost.milk | *      | sensor.basic |          0 |<br />
| 7711921 | 1253948224 | 130241 | xpl-trig | bnz-ccost.milk | *      | sensor.basic |          0 |<br />
+---------+------------+--------+----------+----------------+--------+--------------+------------+<br />
3 rows in set (0.00 sec)</code></p>
<h4>Lancement automatique</h4>
<p>Vous pouvez lancer automatiquement le programme à l&#8217;aide de <em>daemontools</em> en plaçant le programme dans le répertoire <em>/etc/services</em> de la manière suivante :<br />
<code><br />
# cd /etc/xplperl/service<br />
# cp -r xpl-hub xpl-sql-logger<br />
# cd xpl-sql-logger<br />
# cat < <EOF > run<br />
#!/bin/sh<br />
exec 2>&#038;1<br />
exec setuidgid xplperl envdir ./env softlimit -d300000 /usr/bin/xpl-sql-logger<br />
EOF<br />
# cd /etc/service<br />
# ln -s /etc/xplperl/service/xpl-sql-logger/<br />
# ps auxww | grep xpl-sql-logger<br />
root      3306  0.0  0.0   1620   332 ?        S    Sep22   0:00 supervise xpl-sql-logger<br />
xplperl  23943  1.3  0.6  16944 12952 ?        S    08:20   0:37 /usr/bin/perl -w /usr/bin/xpl-sql-logger<br />
</code></p>
<h4>Surveillance de l&#8217;archivage</h4>
<table>
<tr>
<td valign='top'><img src="http://www.csquad.org/wp-content/uploads/2009/09/whoweare.png" alt="monit logo" title="monit logo" width="55" height="64" class="size-full wp-image-539" /></td>
<td>
Le système fonctionne très bien. Par contre, j&#8217;ai rencontré quelques problèmes au bout d&#8217;une ou deux semaines le programme arrête d&#8217;archiver les données dans la base, il faut donc le relancer.<br />
La solution la plus simple et de relancer le script à l&#8217;aide d&#8217;un cron et <a href="http://mmonit.com/monit/">monit</a></td>
</tr>
</table>
<p>.<br />
Voici mon crontab :<br />
<code><br />
*/1 * * * * echo "SELECT NOW() - FROM_UNIXTIME(time)  FROM msg ORDER BY id DESC LIMIT 1;" | mysql -hlocalhost -uxpl -psecret -s xpl > /tmp/xpl-sql-logger<br />
</code></p>
<p>Voici ma configuration pour monit dans le fichier <em>/etc/monit.d/xpl-sql-logger</em> :<br />
<code><br />
check file xpl-sql-logger with path /tmp/xpl-sql-logger<br />
if match "^[0-9]{1,2}"  then stop<br />
stop program = "/usr/bin/killall -r xpl-sql-logger"<br />
</code></p>
<h3>Exploitation des données</h3>
<p>Pour exploiter les données, je suis en train d&#8217;écrire des gadgets pour <a href="http://www.portaneo.com/solutions/en/opensource.php">Portaneo</a> (P.O.S.H) à afin de pouvoir afficher les données sous forme de graphiques <img src='http://www.csquad.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.csquad.org/2009/09/26/archivage-des-messages-xpl-dans-une-base-de-donnees/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>xPL Text-to-Speech module</title>
		<link>http://www.csquad.org/2009/08/11/xpl-text-to-speech-module/</link>
		<comments>http://www.csquad.org/2009/08/11/xpl-text-to-speech-module/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 16:17:18 +0000</pubDate>
		<dc:creator>cscm</dc:creator>
				<category><![CDATA[Home automation]]></category>
		<category><![CDATA[eSpeak]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Text-to-Speech]]></category>
		<category><![CDATA[xPL]]></category>

		<guid isPermaLink="false">http://www.csquad.org/?p=404</guid>
		<description><![CDATA[I&#8217;ve wote an Text-to-Speech module for xPL Perl based on eSpeak and the Speech::eSpeak Perl module.
The xPL TTS.BAISC schema is very basic, but suffisent for my text-to-speech needs.
Setup on Debian GNU/Linux
You should install the fallowing packages with apt :
 # apt-get install libespeak-dev dh-make-perl espeak-data devscripts
And build the Perl module :
# cd /usr/src
# wget http://search.cpan.org/CPAN/authors/id/H/HG/HGNENG/Speech-eSpeak-0.3.tar.gz
# [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve wote an <a href="http://en.wikipedia.org/wiki/Speech_synthesis">Text-to-Speech module</a> for <a href="http://www.xpl-perl.org.uk/">xPL Perl</a> based on <a href="http://espeak.sourceforge.net/">eSpeak</a> and the <a href="http://search.cpan.org/dist/Speech-eSpeak/lib/Speech/eSpeak.pm">Speech::eSpeak</a> Perl module.</p>
<p>The xPL <a href="http://wiki.xplproject.org.uk/index.php/Schema_-_TTS.BASIC">TTS.BAISC</a> schema is very basic, but suffisent for my text-to-speech needs.</p>
<h3>Setup on Debian GNU/Linux</h3>
<p>You should install the fallowing packages with apt :<br />
<code> # apt-get install libespeak-dev dh-make-perl espeak-data devscripts</code></p>
<p>And build the Perl module :<br />
<code># cd /usr/src<br />
# wget http://search.cpan.org/CPAN/authors/id/H/HG/HGNENG/Speech-eSpeak-0.3.tar.gz<br />
# tar xzf Speech-eSpeak-0.3.tar.gz<br />
# dh-make-perl Speech-eSpeak-0.3<br />
# cd Speech-eSpeak-0.3<br />
# debuild<br />
# dpkg -i dpkg -i ../libspeech-espeak-perl*<br />
</code></p>
<p>Get my source code :<br />
<code># wget http://www.csquad.org/wp-content/contrib/eSpeak.pm -O /usr/share/perl5/xPL/Dock/eSpeak.pm<br />
# wget http://www.csquad.org/wp-content/contrib/xpl-tts -O /usr/bin/xpl-tts<br />
# chmod +x /usr/bin/xpl-tts<br />
</code></p>
<h3>Usage exemples</h3>
<p>Launch the <em>xpl-tts</em> program :<br />
<code>$ xpl-tts -espeak-verbose -espeak-voice-language en -espeak-voice-gender 2 -espeak-voice-age 42</code><br />
Then, send an xpl command on the network :<br />
<code>$ xpl-sender -m xpl-cmnd -c tts.basic speech="xPL rocks everything"<br />
</code></p>
<p>You should hear the synthesized voice.</p>
<p>And Voila <img src='http://www.csquad.org/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<h3>Bugs and evolutions</h3>
<p>I will submit this module to the xpl-perl project and try to implement  <a href="http://tcts.fpms.ac.be/synthesis/mbrola.html">MBROLA</a> project support. Because I&#8217;ve got a more humain voices.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.csquad.org/2009/08/11/xpl-text-to-speech-module/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuration du module Current Cost CC128 et intégration dans un réseau domotique xPL</title>
		<link>http://www.csquad.org/2009/05/07/configuration-du-module-current-cost-c128-et-integration-dans-un-reseau-domotique-xpl/</link>
		<comments>http://www.csquad.org/2009/05/07/configuration-du-module-current-cost-c128-et-integration-dans-un-reseau-domotique-xpl/#comments</comments>
		<pubDate>Thu, 07 May 2009 20:51:47 +0000</pubDate>
		<dc:creator>cscm</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Home automation]]></category>
		<category><![CDATA[Current Cost]]></category>
		<category><![CDATA[xPL]]></category>

		<guid isPermaLink="false">http://www.csquad.org/?p=89</guid>
		<description><![CDATA[

  


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&#8217;objectif du produit est de suivre la consommation de votre installation électrique.
En effet, la première étape pour faire des économies d&#8217;énergie est de [...]]]></description>
			<content:encoded><![CDATA[<table>
<tr>
<td valign='top'><a href="/wp-content/lightboxcc128large_04.jpg"/> <img src='/wp-content/thumb-lightboxcc128large_04.jpg' alt='' /> </td>
<td valign='top'>
<p>
Le <a href="http://www.currentcost.com/product-cc128.html">Current Cost CC128</a> est un système de suivi de la consommation électrique.<br />
Il est composé de deux modules : une pince ampère-métrique sans fils et un module de réception de données.<br />
L&#8217;objectif du produit est de suivre la consommation de votre installation électrique.</p>
<p>En effet, la première étape pour faire des économies d&#8217;énergie est de connaitre sa consommation.<br />
C&#8217;est pour cela, que j&#8217;ai cherché une solution simple pour monitorer mon installation de manière informatisée.
</p>
</td>
</tr>
</table>
<p>Les compteurs d&#8217;électricité EDF récents disposent d&#8217;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&#8217;aide d&#8217;un montage électronique comme <a href="http://teleinfo.dauguet.net/articles.php?lng=fr&#038;pg=44">celui-ci</a>. </p>
<p>Malheureusement, mon compteur est trop vieux et ne dispose pas d&#8217;une sortie téléinfo.<br />
J&#8217;ai donc cherché une solution alternative que j&#8217;ai trouvée grâce au forum <a href="http://www.touteladomotique.com/">Toute la domotique</a>.</p>
<p>Il est possible de se procurer le module et le câble de données USB via la boutique eBay du constructeur : <a href="http://stores.shop.ebay.co.uk/Current-Cost-Ltd__W0QQ_armrsZ1">Current Cost Ltd</a>. </p>
<p>L&#8217;objectif de ce billet est de configurer le module CC128 sur une distribution Debian GNU/Linux, version &#8220;Lenny&#8221; dans un réseau domotique <a href="http://wiki.xplproject.org.uk/index.php/XPL_News">xPL</a> à l&#8217;aide du projet <a href="http://www.xpl-perl.org.uk/">xpl-perl</a>.</p>
<h3>Installation matériel</h3>
<p>L&#8217;installation matériel est assez simple, il suffit de brancher le module via le câble USB pour le voir à l&#8217;aide de la commande <em>lsusb</em> :<br />
<code><br />
$ lsusb<br />
Bus 001 Device 008: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port<br />
</code><br />
Le module est visible sous forme de port série via <em>/dev/ttyUSB</em> :<br />
<code><br />
$ dmesg<br />
pl2303 1-2.1.1.1.2:1.0: pl2303 converter detected<br />
usb 1-2.1.1.1.2: pl2303 converter now attached to ttyUSB0<br />
usbcore: registered new driver pl2303<br />
drivers/usb/serial/pl2303.c: Prolific PL2303 USB to serial adaptor driver<br />
</code></p>
<h3>Installation de xPL-Perl</h3>
<p>Pour faire fonctionner le module CC128, j&#8217;utilise la version SVN du projet, XPL-Perl.<br />
Voici la procédure d&#8217;installation, il faut commencer par installer les paquets suivants via apt :<br />
<code><br />
# apt-get install subversion libmodule-pluggable-perl libyaml-perl make fakeroot dh-make-perl dpkg-dev debhelper libtimedate-perl gcc libyaml-syck-perl<br />
</code><br />
Télécharger le code source de la version svn  :<br />
<code><br />
# cd /usr/src<br />
# svn co http://www.xpl-perl.org.uk/svn/xpl-perl/trunk xpl-perl<br />
# cd xpl-perl<br />
# dpkg-buildpackage -b<br />
...<br />
# cd ..<br />
# dpkg -i libxpl-perl*.deb<br />
</code></p>
<p>Les différents modules xpl sont lancés sous forme de <a href="http://en.wikipedia.org/wiki/Daemon_(computer_software)">daemon</a>, pour simplifier leur gestion le plus simple est d&#8217;installer daemontools sur la machine :<br />
<code><br />
# apt-get install daemontools daemontools-run<br />
</code><br />
Vous pouvez configurer le hub xpl et le module xpl-rrd grâce au script : <em>xpl-perl-setup</em><br />
<code><br />
# xpl-perl-setup<br />
Using /usr/bin as directory for xpl-perl scripts</p>
<p>Setting up xpl-hub service</p>
<p>Setting up xpl-rrd service</p>
<p>Setting up xpl-rrd crontab<br />
/etc/cron.d/xpl-rrd created</p>
<p>heyu not install not setting up xpl-x10</p>
<p>DateTime::Event::Sunrise not available, not configuring xpl-dawndusk</p>
<p>1-wire filesystem, /ow, not available, not configuring xpl-owfs<br />
set XPL_OWFS environment variable to mount point if it is not /ow</p>
<p>XPL_RFXCOM_RX_TTY not defined, not configuring xpl-rfxcom-rx</p>
<p>XPL_RFXCOM_TX_TTY not defined, not configuring xpl-rfxcom-tx</p>
<p>XPL_VIOM_TTY not defined, not configuring xpl-viom</p>
<p>XPL_W800_TTY not defined, not configuring xpl-w800</p>
<p>hddtemp daemon not running, not configuring xpl-hddtemp<br />
</code></p>
<p>Vous pouvez vérifier le bon fonctionnement du module en ligne de commande :<br />
<code><br />
#  xpl-currentcost -v /dev/ttyUSB0<br />
Listening on 192.168.42.4:2135<br />
Sending on 192.168.42.255<br />
xpl-trig/sensor.basic: bnz-ccost.tof -> * - cc128.00077.0.1[current]=1095<br />
xpl-trig/sensor.basic: bnz-ccost.tof -> * - cc128.00077.0[current]=1095<br />
xpl-trig/sensor.basic: bnz-ccost.tof -> * - cc128.00077.0[temp]=23.1<br />
</code><br />
La cela fonctionne, le module diffuse la valeur de la consommation sur le réseau xPL.<br />
Nous allons ensuite configurer <em>deamontools</em> pour lancer le script au boot sous forme de service.<br />
 <code><br />
# cd /etc/xplperl/service/<br />
# cp -r xpl-hub/ xpl-currentcost<br />
# chown -R xplperllog: /etc/xplperl/service/xpl-currentcost/log/main/<br />
# adduser xplperl dialout<br />
Adding user `xplperl' to group `dialout' ...<br />
Adding user xplperl to group dialout<br />
Done.<br />
# sed -i 's#xpl-hub -v#xpl-currentcost -v /dev/ttyUSB0#' /etc/xplperl/service/xpl-currentcost/run<br />
# sed -i 's#xplperl#root#' /etc/xplperl/service/xpl-currentcost/run<br />
# sed -i 's#-d300000#-d9000000#' /etc/xplperl/service/xpl-currentcost/run<br />
# update-service --add /etc/xplperl/service/xpl-currentcost/<br />
Service xpl-currentcost added.<br />
</code></p>
<p>Et voila, normalement vous devriez voir des messages ur le réseau xPL à l&#8217;aide de xp-logger :<br />
<code><br />
 xpl-logger<br />
192.168.42.2:52393 [xpl-stat/hbeat.app: bnz-listener.tux -> *]<br />
192.168.42.2:52393 [xpl-trig/sensor.basic: bnz-ccost.tof -> * - cc128.00077.0.1[current]=1085]<br />
192.168.42.2:52393 [xpl-trig/sensor.basic: bnz-ccost.tof -> * - cc128.00077.0[current]=1085]<br />
192.168.42.2:52393 [xpl-trig/sensor.basic: bnz-ccost.tof -> * - cc128.00077.0[temp]=23.3]<br />
</code></p>
<h3>Conclusion</h3>
<p>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&#8217;achiver les données dans une base de données et de dessiner des graphiques.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.csquad.org/2009/05/07/configuration-du-module-current-cost-c128-et-integration-dans-un-reseau-domotique-xpl/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

