Mise en route de xpl-perl (et quelques liens xPL)

Après quelques lectures, il semble que xPL (eXtremely simPle protocoL) soit LA solution domotique qui permet d’intégrer de la manière ouverte  soft et hard divers et variés.

Pour commencer mes expériences je décide de me faire la main en utilisant xpl-perl, un ensemble de librairies et utilitaires perl permettant d’implémenter xPL sur une machine Linux. En l’occurrence un petit Dockstar sous Debian Squeeze.

Installation

Rajouter la ligne  suivante dans /etc/apt sources.list

deb http://debian.temporalanomaly.com/ squeeze main

Installer xpl-hub

# apt-get install xpl-hub-perl

ou si on veut une version up-to-date

# git clone git://github.com/beanz/xpl-perl.git
# apt-get install libtimedate-perl
# perl Makefile.PL

Paramétrage des arrêts/relances

La méthode n’est pas classique (pas de /etc/init.d etc.) : les différents modules sont lancés par l’outil daemontools qui s’assure que les démons tournent bien en permanence et s’occupe de les relancer en cas d’arrêt inopportun.

Pour le désactiver éventuellement, il faut modifier  /etc/inittab :

 #-- runit begin
 #SV:123456:respawn:/usr/sbin/runsvdir-start
 #-- runit end

pour configurer les programmes contrôlés par daemontools ça se passe dans /etc/service/*/run

Configuration de base

xpl-hub se configure dans /etc/xpl-perl/env :

  • IP : contient l’adresse sur laquelle il écoute (adresse de loopback, 127.0.0.1 par défaut; mettre l’adresse réseau de la machine)
  • IPSEND : contient l’adresse sur laquelle il émet (remplacer par l’adresse de broadcast du sous-réseau)
  • COMMON_ARGUMENTS : mettre –verbose -i eth0 (eth0 étant l’interface réseau sur laquelle écouter, lo0 étant le défaut)

lancer xpl-hub :

# xpl-hub -i eth0 -v

Exemples d’utilisation

Monitoring squeezebox

Activer le plugin xAP dans le serveur Squeezebox (source : Enable xPL support in SlimServer – XPLProject)

L’adresse de broadcast xPL étant codée en dur dans le programme, il faut la modifier à la main…

# find / -iname "plugin.pm" 2>/dev/null | grep xPL

editer /usr/share/perl5/Slim/Plugin/xPL/Plugin.pm et modifier la ligne suivante pour mettre l’adresse configurée dans /etc/xpl-perl/env/IPSEND :

my $ipaddr   = inet_aton('255.255.255.255');

Vérifier avec xpl-logger qu’on reçoit bien les infos (changement de morceau, on/off etc) :

#  xpl-logger -i eth0 -v
Listening on 192.168.1.5:48695
Sending on 192.168.1.255
Adding client: 192.168.1.5:48695 "bnz-listener.arrierboutix"
192.168.0.5:51530 [xpl-stat/hbeat.app: bnz-listener.arrierboutix -> * 5/48695/192.168.1.5]
192.168.0.5:51530 [xpl-stat/hbeat.app: slimdev-slimserv.changeledix(Sque -> * 5/50000/192.168.1.100/audio.slimserv/stopped]
192.168.0.5:51530 [xpl-stat/hbeat.app: bnz-listener.arrierboutix -> * 5/48695/192.168.1.5]
192.168.0.5:51530 [xpl-stat/audio.basic: slimdev-slimserv.changeledix(Sque -> * playing/ / //1]

Monitoring de disques avec smart

# apt-get install smartmontools
# apt-get install libanyevent-perl
# xpl-smart --interface eth0 --verbose --smart-verbose  --smart-poll-interval 10

Références

xPL et ses principes

xpl-perl

  • xpl-perl : le site du programme
  • Geekerie et Mascagne | xpl-perl : tutorial et expériences avec RFXcom (vieilles versions : ça ne marche pas avec le RFXtrx433), X10 et RRDtool
  • Syno-wiki – Ma configuration logicielle domotique donne un exemple d’utilisation de xpl-perl sur NAS avec RFXcom (même remarque que ci-dessus), et affichage sympatique des données de plusieurs capteurs . Malheureusement il n’y a que les principes, pas les sources…
  • Xpl – MicElectroLinGenMet : donne des exemples d’utilisation des utilitaires de xpl-perl, un programme pour afficher des infos sur un afficheur LCD avec lcdproc, un autre pour décoder les touches de la télécommande ATI Remote.

Autres programmes et expériences xPL intéressants