Dernières nouvelles

Le protocole xPL

En domotique, l’un des principaux problèmes est d’arriver à faire communiquer l’ensemble des modules et des équipements du système entre eux.

On trouve le problème par exemple dès que l’on choisi plusieurs technologies différentes (PLCBUS, ZWave, x10 …), mais aussi pour faire communiquer plusieurs contrôleurs domotique entre eux.

C’est dans ce but qu’une équipe de développeurs passionnés a essayé de définir un protocole unifié permettant à tous les équipements qui implémente ce protocole de communiquer ensemble.

A la base, le projet s’appelait XAP (http://www.xapautomation.org).

XAP permet, grâce à l’échange de message texte formaté suivant un schéma bien précis de connaître les différents événements qui se produisent sur le réseau domotique et d’exécuter les commandes sur des équipements du système.

En Janvier 2003, suite à quelques frictions au sein de l’équipe XAP, deux développeurs (Ian Lowe et Tony Tofts) on créé un fork (une évolution parallèle) du projet et l’ont nommé xPL (eXtremely simPle protocoL)

Le principe du protocole est simple. Un logiciel sert de passerelle (HUB), chaque équipement compatible transmet des messages (événements, status ou commandes) vers ce hub qui va alors les transmettre à tous les périphériques du réseau.

Il existe 3 types de messages xPL :

  • xpl-cmnd (commande) : ce message permet d’envoyer des commandes à l’équipement xPL
  • xpl-trig (trigger) : ce message est généré quand un équipement change d’état
  • xpl-stat (status) : ce message est envoyé pour récupérer l’état d’un équipement

Le message est basé sur une structure fixe, qui est ensuite complétée par rapport à une notion appelée « Schéma ».

Voici un exemple de message xPL pour exécuter une commande :

xpl-cmnd
{
    hop=1
    source=xpl-xplhal.myhouse
    target=acme-cm12.server
}
x10.basic
{
    command=dim
    device=a1
    level=75
}

Le message est transmis par l’équipement qui souhaite effectuer la commande sur le réseau xPL, et l’équipement qui peut effectuer le dim sur le module A1 l’intercepte et traite l’action.

Ces messages textes sont transmis sur le réseau sous forme de trame UDP.

Construire le réseau xPL

Pour pouvoir construire un réseau xPL, il faut donc en priorité un hub qui va permettre aux différents périphériques de communiquer entre eux.

Il en existe plusieurs, que vous trouverez à l’adresse suivantes : http://xplproject.org.uk/wiki/index.php?title=Core_Software

Pour ma part, je vous conseille l’utilisation du hub xPL Monkey : http://www.xplmonkey.com/xplhub.html

Il s’installe très facilement et fonctionne comme un service sous Windows.

Le hub gère une liste des applications qui lui sont connectées et il retransmet automatiquement TOUS les messages reçus à TOUTES les applications. Ainsi chaque module gère (grâce au champ destinataire entre autre) les actions qui doivent être faîtes.

Voici en détail un exemple présenté sur l’excellent site de Mal Lansell (xPL Monkey) :

xPL Network (Image du site http://xplmonkey.com)

  1. Le détecteur de mouvement envoi le signal de détection jusqu’au PC en RF
  2. L’application sur le PC détecte le signal (au moyen d’un RFXCOM par exemple)
  3. L’application qui gère le RFXCOM étant compatible xPL, elle va transmettre un évenement de type xPL Trigger au hub sur lequel elle est connectée
  4. Le hub retransmet le message à toutes les applications qui lui sont connectées, et en particulier aux autres hub xPL du réseau.
  5. Puisque le hub émet vers toutes les applications, il retransmet aussi un message vers l’application source elle même
  6. xPLHal (application xPL qui permet de gérer des actions en fonction d’événements) reçoit le message
  7. La configuration d’xPLHal indique qu’il faut transmettre un message xPL Command pour allumer une lampe (flèche verte)
  8. Les différents hub du réseau transmettent l’ordre vers toutes les applications du réseau
  9. L’application qui contrôle la lampe reçoit le message et allume la lampe.

Les applications compatibles xPL

Il existe pas mal d’applications compatibles avec le protocole xPL. La page de téléchargement du site xPLProject donne quelques liens : http://xplproject.org.uk/wiki/index.php?title=Applications la page d’accueil du site donne aussi une liste des développeurs actifs avec un lien vers leur site.

Parmi les outils sympa, il y a Medusa.xPLBalloon qui permet d’afficher un tooltip sur réception des événements du réseau, ou xPL MCE qui permet de piloter entièrement Windows Media Center à partir de message xPL.

Un développeur Français (Gael L’hopital) est un des plus actif autour de xPL : http://glh33.free.fr/?page_id=9

Du coté des projets de gestion domotique complète, on retrouve aussi Domogik, dont le système de communication est entièrement basé sur xPL : http://www.domogik.org/

xPL au niveau hardware

L’intérêt d’une telle abstraction de la partie communication, est aussi de permettre au plus bas niveau à des périphériques matériels de communiquer directement en xPL.

C’est dans ce but qu’on retrouve sur Internet plusieurs projets à base de carte Arduino qui communiquent directement en xPL.

Voici par exemple un projet basé sur Arduino : http://blog.boxedbits.com/xpl

Et parmi les périphériques nativement compatible xPL, on retrouve aussi le nouveau RFXCOM v3 qui par simple mise à jour firmware peut communiquer automatiquement en utilisant le protocole xPL.

Cela ferra l’objet d’un autre billet sur le blog…

A propos de Mickael

Je suis passionné de Domotique depuis des années. J'ai fait du développement en informatique industrielle pendant 12 ans, et un jour ... je me suis lancé ! J'ai créé ma boutique de vente en ligne : http://www.planete-domotique.com

Un commentaire

  1. Un peut en retard mais comme tu parle d’arduino, voici une implémentation de xPL pour Arduino qui foncitonne sur wiznet et enc28J60 : http://connectingstuff.net/blog/xpl-arduino/
    ++

Répondre

Votre adresse email ne sera pas publiée. Les champs obligatoires sont marqués d'une étoile *

*

Revenir en haut de la page