Projet xPL-pyHAL, Alpha release 2

Enfin un peu de nouvelles de mon projet xPL-PyHAL (dont vous trouverez le précédent billet ici).

J’y travaille toujours pour mon propre usage et, honte sur moi, je délaissais un peu la mise à jour du dépot SVN et du package sur googlecode.

Mais je me suis vite fait rattraper par des utilisateurs dont xPL-PyHAL avait, à ma grande fierté je l’avoue, intégré leur environnement domotique :)

Donc merci à Olivier de Connecting Stuff  et Johan de Hotfirenet de me secouer un peu les puces :D

Voici donc une mise à jour, la version Alpha 0.2 que vous pouvez dès à présent télécharger ici :
http://code.google.com/p/guiguiabloc/downloads/detail?name=xPL-PyHAL-alpha-0.2.tgz

ou mettre à jour votre SVN.

Au programme des changements :

  • Optimisation du code python

Une des parties qui m’a prit le plus de temps. Les sections de code du Brain devenaient de plus en plus conséquentes et j’ai tout regroupé dans des fonctions bien définies.

  • Choix du module Memcached

A utilisation intensive, je me suis rendu compte que le module « memcached » de python avait des comportements un peu bizarre et gênant (une nouvelle session à chaque fois sans réutiliser une existante), donc si vous disposez de pylibmc, le Brain l’utilisera en priorité, sinon le module Memcached standard.

N’oubliez pas la configuration dans Memcached_pylibmc.py dans ce cas (adresse du serveur et port de connexion, à l’identique de Memcached.py si vous utilisez ce module).

def __init__(self, hostname="127.0.0.1", port="11211"):
  • Correction d’un bug sur les schémas ac.basic

Plutôt une omission qu’un bug, Marc m’a signalé que certaines télécommandes DIO se présentaient avec le schéma ac.basic plutôt que homeeasy.basic et suite à sa correction, ce type de schéma est désormais intégré au Brain. Merci à lui :) (d’ailleurs vous êtes amplement encouragé a me remonter vos bugs !)

  • Ajout du support DawnDusk xPL

Si vous utilisez le client xPL Dawndusk , qui vous permet d’être alerté dans le bus xPL quand le soleil se lève, ou quand il se couche, xPL-PyHAL intègre désormais la possibilité de générer des évènements suite à cette action.

Le format YAML est le suivant (exemple: envoyer un message notifry « il fait nuit » au coucher du soleil) :

MODULE: dawndusk
DAYNIGHT: dusk
ACTION: message
TARGETXPL: notifry
KEY: "b11111223FFFFFzz"
MESSAGE: "il fait nuit"

Le nom du module pour que xPL-PyHAL réagisse: dawndusk

La clé DAYNIGHT sur laquelle réagir : dusk (coucher du soleil) ou dawn (lever du soleil)

et les actions comme d’habitude (TARGETCOMMAND par exemple pour une action command.

J’ai rajouté quelques exemples dans le répertoire yamlrepo.

 

N’hésitez pas à me remonter les bugs, demande d’évolution :)

 

Amusez-vous bien :D

 

 

 

 

 

Ce billet a été posté dans domotique et taggé , , . Bookmark ce permalink.

11 commentaires sur “Projet xPL-pyHAL, Alpha release 2

  1. Salut,

    Je viens de regarder d’un peu plus pres, et ma premiere reaction a ete : mais il manque une action pour lancer une commande arbitraire sur un evenement particulier (ou alors j’ai raté un truc). En effet tout mes « trucs domotiques » ne causent pas forcement XPL et j’ai parfois besoin de lancer une ou plusieurs commande shell sur un evenement particulier. Bref il faudrait une action qui au lieu de renvoyer un message XPL, executerai tout simplement une commande shell.

    Je vais regarder pour l’implementer (je suis debutant en python) et je t’envoie le diff si cela t’interesse (et que j’y arrive) :-)

  2. Et hop je me contredis : il y a bien une action script. J’ai fais que regarder le HOWTO et c’etait pas indique. MEA CULPA :-)

    Bon j’arrete de polluer tes commentaire et je me lance dans la vraie utilisation pour voir.

  3. ;)
    J’ai préféré pour le moment mettre tout les exemples possibles dans le yamlrepo, quand j’aurais le temps je ferais une doc plus conséquente (tu sais bien que les rédactions de compte-rendu/manuel sont la bête noire des informaticiens :p)

  4. Bonjour

    D’abord je trouve votre travail sur xPL-pyHAL extrêmement intéressant, mais je ne suis pas arrivé à le faire fonctionner.

    J’ai installé sur mon raspberry la librairie xpl-perl.
    J’arrive bien a visualiser les messages via xpl-logger

    Maintenant je lance xPL-pyHAL en mode debug, le fichier de log (logxplhal.log) reste vide et je n’ai que ces deux lignes indiquant que le logiciel fonctionne qui s’affichent

    Le mode debug affiche t-il tous les messages transitant sur le réseau ou bien seulement ceux concernés dans les fichier yaml ?

    Jérémy

  5. Merci :)
    Il faut qu’un xpl-hub tourne sur la machine pour que les messages soit interceptés. xPL-PyHal se greffe dessus. En mode debug, tout les messages passant dans le hub sont affiché (avec le message « Unknown Message Type » s’il ne sait pas le traiter).

  6. xpl-hub est bien sur lancé et xpl-logger me retourne les messages du réseau.

    Je lance xPL-PyHAL en mode console, je n’ai que deux lignes :
    2013-Mar-31 23:13:20 xPL-PyHAL bound to port: 50002
    127.0.1.1

    L’adresse 127.0.1.1 est bizarre non ?

  7. Si xPL-PyHAL démarre en 127.0.0.1, c’est que le hostname de la machine retourne 127.0.0.1.
    A verifier dans le /etc/hosts que le nom de machine est renseigné avec son IP:
    ex : serveur 192.168.1.1
    Vérifier également que le Hub tourne sur eth0
    (A lancer avec les arguments : /usr/bin/xpl-hub -i eth0 –define broadcast=0.0.0.0 (par exemple))

  8. Super ça marche !

    J’avais bien un problème avec le fichier hosts.
    Sans l’option –define broadcast=0.0.0.0 pour xpl-hub ça ne fonctionne pas.

    merci beaucoup !

  9. Bonjour,

    J’essai de stocker les données d’un message xPL dans un fichier de log, c’est ce qui me parait le plus simple pour commencer.

    Voici le message xPL que je souhaite avoir
    XPL MESSAGE:
    ‘xpl-trig’, ‘hop:1′, ‘source:xpl-arduino.mega’, ‘target:etoile’, ‘sensor.basic’, ‘device=1′, ‘type:status’, ‘current:22′
    END XPL MESSAGE

    Voici yaml :
    ACTION: log
    TARGETXPL: « /tmp/domo.log »
    MODULE: « 1″
    MESSAGE: « current »

    Et voici le retour
    no daynight
    1

    Merci bien par avance
    Jérémy

    PS : Votre blog est un peu limité en caractère autorisé !

  10. Bonjour,
    La fonction log ne fonctionne pas ainsi. Elle écrit le contenu de MESSAGE dans le fichier TARGETXPL si MODULE match.

    Pour avoir le contenu du message XPL, c’est en mode debug que cela fonctionne et cela ecrira dans logxplhal.log