API Python pour xPL

xPL est un protocole permettant d'envoyer des messages à travers le réseau en respectant certains schémas. Il me permet d'interconnecter entièrement toutes mes applications domotique de façon simple, sans avoir à se préoccuper directement des clients.
Cependant, il n'existait pas beaucoup de scripts pour Python, j'ai donc développer avant tout dans un but personnel une petite API que je mets ici à disposition.

L'API est composée des classes suivantes :

  • Manager : Ce qui vous permettra de communiquer avec le réseau xPL.
  • Listener : Vous permettra de filtrer les messages entrants et d'appeler des fonctions lors de la réception de certains messages.
  • XPLException : Type d'exception pouvant être générées par l'API.
  • Message : Type des messages xPL.
  • xPLTimer : Une classe vous permettant simplement d'appeler une fonction toutes les X secondes sans avoir à toucher aux Threads.
Vous pourrez télécharger une archive contenant l'API et la documentation ici
Voici un exemple simple qui affiche un message à chaque fois qu'il recoit un message xPL demandant l'allumage ou l'extinction d'un module x10:



#!/usr/bin/python
# -*- encoding:utf-8 -*-

from x10API import *
myxpl = Manager(ip = "192.168.1.20",port = 5036)

def x10_cb(message):
cmd = message.get_key_value('command')
dev = message.get_key_value('device')
print "CMD : %s - DEV : %s" % (cmd, dev)

general = Listener(x10_cb, myxpl, {'schema':'x10.basic','type':'xpl-trig'})