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.
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'})