Toujours soucieux d’allier l’inutile à l’agréable, et dans le cadre de mes experimentations du protocole xPL, j’ai développé un petit module passerelle entre xPL et Jabber.

Grâce à cet module complètement indispensable, on peut « discutter » avec sa maison, pour peu qu’elle ait un peu de conversation.
Le module en lui même ne fait que :

  • Se logger sur un service Jabber (Google Talk par exemple)
  • Diffuser sur le réseau xPL les messages qu’il reçoit
  • Permettre d’envoyer des messages à des contacts Jabber via une commande xPL

Pour ceux qui veulent tester sans lire la suite, vous trouverez le module sur la page de téléchargements

Voyons comment installer tout ça.

1. Pré-requis :

  • Un PC (ouaou super) sous Linux (C’est du perl donc ça marche probablement sur Mac aussi mais je n’ai jamais essayé).
  • Un réseau xPL en place (i.e. les applications essentielles déjà installées, notamment le Hub XPL)
  • Un compte jabber (gtalk par exemple) créé spécialement pour votre système domotique et vous ayant dans sa liste de contacts
  • Les librairies xPL-Perl installées (http://www.xpl-perl.org.uk)
  • Certains modules perl utilisés

Pour ceux sous ubuntu/debian il faut notamment installer les packages suivants :

$ sudo apt-get install libconfig-general-perl libnet-jabber-perl

2. Installation

Télécharger mon petit module en cliquant là : Download.

Décompressez le tarball et procedez à l’installation classique « à la perl ». Attention, il faut que le module soit installé dans le même PREFIX que les librairies xpl-perl. Par exemple :

  • Si xPL-perl est installé dans /usr/share/perl5/xPL/, alors votre prefix est « /usr »
  • Si par contre c’est installé dans /usr/local/share/perl5/xPL, alors le prefix est « /usr/local »
$ tar zxf xpl-jabber-*.tar.gz
$ cd xpl-jabber-*
$ perl Makefile.PL PREFIX=/usr   # Mettre le bon PREFIX voir ci-dessus
# Vérifier qu'il n'y a pas de warning de dépendances
$ make
$ sudo make install

Si tout se passe bien, le programme s’installe là : /usr/bin/xpl-jabber

3. Configuration

Avant de lancer le soft, il faut définir le compte jabber à utiliser. Pour cela vous pouvez partir du fichier de configuration fourni en exemple et le mettre au bon endroit.

$ sudo mkdir -p /etc/xplperl
$ sudo cp conf/jabber.conf.example /etc/xplperl/jabber.conf

Editez le fichier pour y mettre vos propres infos. Si il s’agit d’un compte google talk, vous n’avez que les paramètres ‘username’ et ‘password’ à changer. Le fichier devrait ressembler à ça :

$ cat /etc/xplperl/jabber.conf
#
# xPL Jabber Gateway config file
#
username = my_gtalk_username
domain = gmail.com
password = my_gtalk_password
server = talk.google.com
port = 5222
tls = 1

4. Lancement

Normalement vous êtes pret à lancer xpl-jabber. Préparez quand même :
- Votre client jabber connecté avec votre compte à vous (histoire de voir quand votre maison se connectera ;) )
- Un logger de messages xPL (xpl-logger du package xpl-perl sera parfait) pour vérifier le bon fonctionnement du tout

$ xpl-logger -v

Attendez quelques secondes, et vous devriez voir le compte que vous avez configuré se connecter sur votre messagerie jabber => victoire !

Envoyez lui le message « help », il devrait vous répondre un message générique.

5. Réception de messages

A chaque fois que vous envoyez un message sur jabber à votre maison, un message xPL sera envoyé sur votre réseau xPL. Par exemple en envoyant le message « home sweet home » sur jabber, on verra passer le message sur le réseau xPL grâce au logger :

$ xpl-logger
[xpl-trig/sendmsg.im: tlam-jabber.home -> * - votre_compte@gmail.com => votre_maison@gmail.com : home sweet home]

Libre à vous ensuite d’utiliser ce message et de déclencher, à sa réception, des actions dans votre habitat.

6. Envoi de messages

Pour que votre maison envoie des messages Jabber, il vaut envoyer un message xPL au bon format. Par exemple, si on veut envoyer le message « rentre vite ! » à l’utilisateur Gtalk mon.compte@gmail.com :

$ xpl-sender -m xpl-cmnd -c sendmsg.im to=mon.compte@gmail.com \
   body='rentre vite !'

Là aussi, libre à vous d’envoyer des messages Jabber en fonction des évennements sur votre réseau domotique. Par exemple lorsqu’un détecteur de mouvement capte quelque chose, lorsque la température descend en dessous d’une certaine limite, etc…

7. Pour aller plus loin

Comme vous l’avez probablement compris, le module xpl-jabber n’est qu’une application « gateway » : elle n’embarque aucune intelligence de contrôle domotique : c’est en utilisant une application de controle (xPLHAL par exemple) que vous pourrez faire inter-agir tous vos éléments xPL avec xpl-jabber.

Enfin quand même un petit avertissement : faites attention à la façon d’intégrer l’Instant Messaging à votre installation : la securité d’une commande par instant messaging n’est clairement pas optimale, c’est le moins qu’on puisse dire.

N’hésitez pas à poster vos commentaires/retours ici même, j’y répondrai avec plaisir !