My favorites | Sign in
Project Home Downloads Wiki Issues Source
READ-ONLY: This project has been archived. For more information see this post.
Search
for
xPLPyHALfr  
Updated Nov 13, 2012 by guiguiab...@gmail.com

xPL-PyHAL, le centralisateur xPL

xPL-PyHAL est un programme qui se greffe à votre bus xPL et écoute en permanence les messages qui y transitent.

Son rôle est d’éxécuter une action pour un module que vous allez définir dans un fichier texte tout simple quand il verra passer un message xPL lié a ce module.

Les ordres sont à déposer dans le répertoire « yamlrepo » sous la forme de fichier YAML.

Le fichier doit porter l’extension « .yaml ».

Exemple d’application :

Je souhaite allumer le relais 1 du boîtier ipx800 quand j’appuie sur l’interrupteur CHACON.

Il s’agit d’un ordre de type « HomeEasy » (schéma homeeasy.basic) à destination du client xPL-ipx800.

Le fichier YAML aura la forme suivante (interrupteur.yaml) :

ACTION: command
MODULE: "0x4b92ba"
UNIT: "9"
TARGETXPL: "ipx800"
TARGETMODULE: 2

ACTION : c’est une commande à exécuter

MODULE: le module qui initie l’ordre (ici l’adresse de l’interrupteur CHACON)

UNIT : l’unité de l’interrupteur

TARGETXPL : le client xPL qui doit exécuter l’ordre (ici le client xPL-ipx800)

TARGETMODULE: le relais cible a commander sur l’ipx800

Autre exemple, en appuyant sur l’interrupteur, je veux allumer une lampe x10 référencée comme module A2. Le fichier interrupteur.yaml contiendra les valeurs suivantes:

ACTION: command
MODULE: "0x54cd16"
UNIT: "10"
TARGETXPL: "heyu"
TARGETMODULE: a2

Description et configuration possible

Une fois le fichier xPL-PyHAL.tgz décompressé, vous trouverez différentes classes et modules python dont je vais détailler le rôle.

  • xPL-PyHAL.py

Il s’agit de l’executable qui lancera le centralisateur xPL-PyHAL.

- Configuration : Aucune

A lancer depuis le répertoire du centralisateur :

python xPL-PyHAL start (lance le démon)

python xPL-PyHAL stop (arrête le démon)

python xPL-PyHAL console (lance le programme dans la console sans le démoniser. CTRL-C pour l’arrêter)

  • BrainPyHAL.py

Le programme principal d’xPL-PyHAL.

- Configuration : Vous pouvez passer en mode debug (sortie dans le fichier logxplhal.log et dans la console si vous l’avez démarré dans ce mode)

# Debug : set True or False
debug = False
  • Daemon.py

Classe permettant de faire tourner xPL-PyHAl en tâche de fond (démon).

- Configuration : Aucune

  • Memcached.py

Classe permettant d’interagir avec un serveur Memcached

- Configuration : l’adresse IP et le port du serveur Memcached (localhost:11211 par défaut)

def __init__(self, hostname="127.0.0.1", port="11211")
  • PushingBox.py

Classe permettant d’envoyer des notifications vers le service PushingBox

- Configuration : Aucune

  • xPLmessage.py

Classe pemettant de gérer les messages xPL

- Configuration : Aucune

Les fichiers de configuration YAML

Les actions qui doivent être exécutées par xPL-PyHAL doivent être déposées dans le répertoire « yamlrepo ».

Le fichier texte doit avoir l’extension .yaml

Il contient les entrées suivantes :

- L’action à réaliser (au choix)

ACTION : message | store | command | log

message : envoie une notification

store : stock une valeur quelque part

command : execute un ordre xPL

log : écrit dans un fichier log

- l’adresse du module qui déclenchera l’action (obligatoire)

MODULE: « xxxxxxx »

- l’unité du module qui déclenchera l’action (si applicable)

UNIT: « x »

- La cible qui doit être commandée

TARGETXPL: « xxxxx »

Vous trouverz des exemples dans le répertoire yamlrepo (extension .sample et dans le fichier YAML.FORMAT)

Quelques exemples :

- Stocker une valeur « alertemode » avec la clé « on » pendant 60 secondes dans un serveur Memcached quand le module « 0×4b99bb », unité 9 se déclenche

ACTION: store
TARGETXPL: memcached
MODULE: "0x4b99bb"
UNIT: "9"
KEY: "alertemode"
VALUE: "on"
TIME: "60" (défaut 900)

- Envoyer une notification PushingBox quand le module « 0×4b99bb », unité 9, se déclenche

ACTION: message
TARGETXPL: pushingbox
MODULE: "0x4b99bb"
UNIT: "9"
KEY: "v9999AAAAEEEE4"

J’espère que les exemples fournis vous aideront à créer vos propres fichiers YAML. Bien sûr, il peut y avoir plusieurs fichiers YAML pour un même module.

La prise en compte se fait à chaud, inutile de relancer le démon xPL-PyHAL.

Powered by Google Project Hosting