La domotique avec Xlobby - Free



La domotique avec Xlobby

Qu’est ce que la DOMOTIQUE ?

Je ne vais pas revenir sur les fondement de la domotique mais je voulais juste préciser que le terme domotique veux dire « automatisation intelligent de l’habitat ». Donc fermer des volets roulants quand on presse un bouton n’est pas pour moi de la domotique. Il existe des petits montages qui font cela très bien sans mêler Xlobby à tout ça (

A partir de quand peut-on dire que l’on fait de la domotique ? Dès que plusieurs éléments communiquent ensembles pour donner un coté intelligent à l’action. Fermer les volets automatiquement à la tombée de la nuit si l’alarme est déjà active et que personne n’est dans la maison c’est de la domotique.

Comment fait t-on de la DOMOTIQUE ?

En fait il y a deux grandes écoles pour faire de la domotique.

La première consiste à installer une application centrale, véritable cerveau de la maison pour tout faire. L’intelligence est centralisée c’est l’exemple de HomeSeer ou de MisterHouse. Avantage, faire des actions simple et standards sur des technologies éprouvées comme le X10 est assez facile. Inconvénients, on arrive vite aux limites de l'application et on est toujours en attente de la mise à jour, du driver pour gérer la nouvelle techno donc en conclusion en attente du bon vouloir du développeur. De plus, si l'application bug ou plante, plus rien ne fonctionne et vous devenez prisonnier d’un habitat « mort » en une simple seconde.

La seconde consiste à répartir l’intelligence sur plusieurs modules voir sur plusieurs machines. Puis à les faire communiquer de façon indépendante. Chaque module se charge de gérer une techno. C’est un principe qui re-devient « à la mode » avec l’arrivée des réseau informatique personnel, comme le montre la montée en puissance de protocole similaire comme l’uPnP (universal Plug and Play) le montre. Cela permet à chaque constructeur / développeur de se charger de ce qui sait faire au lieu de tout vouloir faire mais mal. Avantages, on fait ce que l'on veut à son rythme. On n'est plus dépendant d'un seul constructeur / développeur. Chaque module est indépendante donc si un plante, le reste continu de fonctionner. Quand une nouvelle technologie de domotique arrive comme le Z-Wave, le PCLBus ou le RFID, on n’a plus qu’a installer le module qui la gère afin d’étendre son réseau. Inconvénient, il faut un minimum d’investissement en temps pour créer les bases de son futur réseau.

Qu’est ce que xAP ?

C’est cette seconde façon de faire que xAP a choisi

XAP pour Extensible Automation Protocol, c’est simplement un standard qui permet de faire communiquer facilement tous ces futurs modules. Il se servira de votre réseau informatique qu’il soit filaire, wifi ou cpl, qu’il comporte une seule machine ou plusieurs, qu’il intègre des PC Windows, des Mac, des PC Linux voir des matériels spécialisés comme le SLIMSERVER, la SQUEEZEBOX, certains media center extender ou même des matériels uPnP. A tout moment vous pourrez étendre votre réseau, activer ou inactiver des modules sans que cela perturbe les autres. L’interface de commande pouvant être portée par plusieurs machines (pourquoi pas plusieurs XL) donc en cas de panne d’un matériel votre habitat reste vivant et actif.

Comment créer un réseau xAP ?

Pour que vos modules communiquent ensemble en xAP il suffit de respecter 2 règles.

« Si, sur une même machine, au moins deux modules xAP cohabitent, il faut installer au préalable un HUB-XAP »

« Si, sur une machine, un HUB-XAP a été installé, il faut qu’il soit démarré avant tous les autres modules xAP de cette même machine »

Voilà, c’est tout.

Pour ceux que cela intrigue et qui se pose la question du pourquoi ? Il faut comprendre que le protocole xAP se sert d’un port dédié pour communiquer, le 3639 en UDP. Comme un port ne peut être écouté que par une seule application à la fois, il peut y avoir conflit. Pour éviter cela, un module central appelé HUB-XAP a été créé. Une fois lancé, il sera le seul à écouter le port dédié et retournera les infos à chaque module qui se sera identifié auprès de lui. Les modules étant écrit pour tester la présence d’un HUB et s’y référencé ou dans le cas d’absence de hub, d’écouter directement le port dédié.

Comment installer un HUB xAP ?

En premier lieu donc il vous faut installer un hub sur chacune de vos machines. Vous pouvez en trouverez un excellent appelé xFx v2 à l’adresse ci-dessous mais pour commencer je vous conseil plutôt le « message viewer », chargeable à la même adresse, qui fait aussi office de hub et qui permet de voir ce qui se passe sur tout votre réseau xAP. Bien plus utile pour le debug.



Une fois le viewer-hub installé le lancer.

Il se présente comme l’exemple qui suit :

[pic]

1 - Le titre nous indique qu’il est bien en mode Hub (

2 – La partie gauche nous donne tous les modules qu’il a trouvés sur le réseau. On a donc un module créé par KCSOFT qui s’appel MAILMONITOR installé sur la machine CENTRALE puis un autre créé par MCS qui s’appel W800 toujours sur la machine CENTRALE, un module créé par PTRINCHI qui s’appel XLOBBY sur une autre machine appelé MA-BOX et enfin le hub créé par XFX qui s’appel VIEWER sur la machine CENTRALE

3 – Sur la partie droite on voit la suite des messages xAP qui circulent.

Il y a trois types de messages.

- Les messages hub… qui indique qui se connecte ou se déconnecte ou re-signale sa présence.

- Les messages hbeat qui sont en fait des messages cardiogramme comme le petit dessin le laisse penser. Chaque module doit régulièrement signaler qu’il est en vie pour permettre plus facilement la détection d’une panne, ce sont ces battements de cœur en quelque sorte.

- Les messages purement xAP (aucun dans l’exemple ci-dessus) qui correspondent aux échanges d’info entre module.

A titre d’info, on voit bien que sur la machine MA-BOX il n’y a pas de hub car seul Xlobby est présent. Un hub n’aurai pas gêné mais seul Xlobby est installé. Par contre sur la machine CENTRALE il y a un hub actif (le VIEWER lui même) car 2 modules cohabitent (W800 et MAILMONITOR)

Comment étendre son réseau xAP ?

C’est très simple, il vous suffit de trouver le module qui vous va bien et de l’installer.

Une seule vérification est nécessaire, il faut que votre module s’enregistre bien auprès du hub de votre réseau. En terme simple, il faut que le module apparaisse dans l’arbre des modules (partie droite de votre viewer-hub)

S’il n’apparaît pas,

- Il n’est peut-être pas vraiment compatible xAP, demandé à son auteur.

- Il est peut-être mal paramétré, voir sa doc.

- Il est peut être sur une machine qui n’est pas sur votre réseau, vérifier la connectique de votre machine.

- Il est peut être sur une machine ou un autre modules xAP est installé mais sans hub. Donc en conflit, installer un hub. Lancer le hub et relancer les modules xAP de cette machine.

C’est tout ce que vous avez à faire.

Je vous conseil plusieurs sites ou l’on trouve plein de modules xAP.









Parmi ce grand choix j’ai pu tester / installer / utiliser les modules pour les technologies domotique suivantes, un coup de google pour ceux qui ne connaissent pas ;)

- 1-Wire (technologie de commande transport d’info sur 1 fil)

- Z-Wave (technologie de commande par onde radio)

- X10 (technologie de commande par courant porteur)

- RFXCOM (Technologie RadioFréquence qui reconnaît plusieurs standards radio)

- SQUEEZEBOX (Matériel de diffusion de musique)

- RFID (Technologie de reconnaissance de puce par radio fréquence)

- MAILMONITOR (pour surveiller plusieurs boites mails)

- HOMESEER PLUGIN (pour s’interfacer avec HS)

- UPB (Universal Powerline Bus, technologie concurrente du X10)

- XPL (interface vers un autre protocole du même type)

- RAIN8 (Pilotage relais on/off pour électrovanne d’arrosage automatique)

- SPEECH / VOICE RECOGNITION (pour faire parler votre PC) Attention la reconnaissance vocale n’est vraiment efficace qu’en anglais, sniff (

- REDHAT (Techno Infrarouge)

- ASTERISK (Standard téléphonique sur IP)

- …

Comment ajouter et paramétrer le plugin xAP pour Xlobby ?

Décompresser l’archive dans le dossier contenant votre Xlobby.

Lancer XL et vérifier qu’il est bien visible dans la liste des plugins reconnus (F2, section plugin)

Bonne nouvelle, la version 4.5 n’a besoin d’aucun paramétrage pour fonctionner.

Au lancement, le plugin va interroger le réseau xAP pour découvrir automatiquement les modules présents ainsi que chaque composant (device xAP). C’est sa vue du réseau xAP, un peu comme on peu le voir dans la partie gauche du hub-viewer expliqué plus haut.

De plus, en cas d’extension de votre réseau par ajout d’un nouveau module, le plugin détecte sa présence (son h-beat ou battement de cœur) et l’interroge afin de mettre à jour sa vue des composants disponibles, le tout sans paramétrage.

Comment intégrer de la DOMOTIQUE

dans mes écrans XL ?

Première partie, afficher mes composants (les variables)

Pour chaque composant ou device xAP, le plugin vous permet d’afficher 5 variables XL différents.

- 3 variables au format texte nommées :

o state : pour afficher l’état du composant. Le plus généralement ce sera On ou Off mais on peut aussi avoir « Charging » ou « Battery Low »

o text : pour afficher une phrase fonction de son activité comme « Vous avez reçu 4 nouveaux mail(s) »

o level : pour tout les composants qui ne sont pas seulement On/Off mais qui permettent une variation comme les composants « commande d’éclairage », les « commande de volet roulant », les « commande de volume »… qui affichera la valeur en % du niveau de sortie.

- 2 Variables de type image :

o image : pour afficher un PNG ou un GIF fonction de l’état du composant, Une ampoule allumée pour On et une ampoule éteinte pour Off.

o imagetext : pour afficher un PNG ou GIF fonction de la variables text du composant.

Pour inclure une de ces 5 variables dans XL il vous faut :

- En premier connaître le nom du composant à afficher. Si vous ne connaissez pas le nom du composant, le plugin peut vous aider. Aller dans l’écran de configuration (F2, section plugins, sélectionner xAP-Xlobby et pressez le bouton configure) L’onglet « Device Manager » vous affiche tous les composants reconnu par XL. La première colonne (device name) correspond au nom.

- En second ajouter une zone de texte dans votre écran XL et saisir « plugin>xap-xlobby>AAAA>BBBB » ou AAAA est l’une des 5 variables citées ci-dessus (state, text, level, image, imagetext) et BBBB le nom du composant.

- Enfin, si vous avez choisi d’afficher l’une des deux variables image, il vous faut créer un PNG ou un GIF dans le sous répertoire « plugin\xap-xlobby\ » dont le nom est constitué comme suit : CC.png ou CC.gif ou BBBB est toujours le nom du composant et CCCC son « state » si vous avez choisi la variable « image » son « text » dans le cas de la variable « imagetext »

Deux exemples pour finir d’éclaircir tout ça :

J’ai un composant « salon.lumiere » qui prends les états « On » ou « Off », je veux afficher une image d’ampoule allumée pour l’un et éteinte pour l’autre. Je créé deux images dans le sous répertoire « plugin\xap-xlobby » que j’appel « salon.lumiere.on.png » et « salon.lumiere.off.png »

J’ai un deuxième composant « salon.fenetre » qui prend comme texte « alarm » lorsqu’elle est ouverte et « normal » lorsqu’elle est fermée. Il me faudra deux images « salon.fenetre.alarme.png » et « salon.fenetre.normal.png »

Si vous avez le moindre doute, ou si le comportement de XL ne vous semble pas correspondre à vos attente en terme d’affichage, la aussi le plugin peut vous aider. Retournez dans l’écran de configuration (F2, section plugins, sélectionner xAP-Xlobby et pressez le bouton configure) L’onglet « Device Manager » vous affiche tous les composants reconnu par XL. Double cliquer sur le composant de votre choix, une fenêtre s’ouvre avec les 5 textes exacts à taper dans XL pour chacune des 5 variables de ce composant et les 5 résultats qu’affichera le plugin à l’exécution, images comprise. Si une image n’est pas trouvée, le plugin affiche le chemin et le nom de l’image attendue.

Deuxième partie, afficher sous forme de liste (les databases)

En plus de 5 variables par composant, le plugin vous permet d’afficher 2 databases dans vos écrans (databases identiques à Pictures, movies ou music par défaut dans XL).

Ces databases s’appellent « Domotic-Devices.xml » pour la première et contient tous vos composants reconnu et « Domotic-Modules.xml » pour la seconde avec dedans tous les modules reconnus.

Troisième partie, commander mes composants (les events)

Maintenant que vous pouvez afficher tous vos composants xAP dans XL, il serait intéressant que l’on se penche sur la façon de les commander.

Le plugin vous propose par défaut une liste d’ordre à intégrer dans vos events XL.

[pic]

Passons-en quelques uns en revue :

- les ordres « Basic Control » permettent de rendre actif (On) inactif (Off) ou inverser l’état (Toggle) d’un composant. Idéal pour commander des appareils électrique.

- L’ordre « Basic Query » permet d’interroger un composant sur son état. Ce dernier doit nous retourner un message xAP d’état avec toutes les informations nécessaires pour mettre à jour ses 5 variables dans XL. Normalement, chaque composant envoi ce type de message d’état à chaque changement.

- L’ordre « Basic General Query » permet d’interroger tous les modules présents sur le réseau qu’ils soient connus du plugin ou pas encore afin que chacun retourne un message d’état pour chacun de ses composants. C’est cet ordre qui est lancé automatiquement au démarrage de XL pour découvrir le réseau.

- Les ordres « X10 connector » pour faire tout ce qui peut se faire avec le module xap-X10.

- « New mail request » permet d’interroger le module xAP-Mail pour connaître l’état de chaque boite mail supervisée. Je vous invite à aller voir comme fonctionne et s’installe cette passerelle, elle est disponible dans les liens cités plus haut.

- Les ordres « Homeseer command » pour faire parler Homeseer, lui dire de lancer un de ces script ou un de ces events.

- Les ordres « speaking » qui fonctionne avec le module xAP-Speak.

La plupart de ces commandes nécessitent de passer le nom du composant en variable comme l’exemple ci-dessous (Bsic control, basic query, X10 connector…)

[pic]

Certain autres nécessitent de passer le nom du script ou de l’event :

[pic]

Ou la phrase à « dire » (Speaking, Homeseer speak)

[pic]

ou même rien ( (

[pic]

Comme le réseau xAP est extensible à volonté et comme beaucoup de futurs modules arriveront dans les mois à venir, il est possible que certains ordres vous manquent. Pas de panique, il est possible d’ajouter dans le plugin des ordres à volonté (Cf. chapitre paramétrage évolué)

Quatrième partie, commander mes composants en variation (les slidebars)

Pour tous les composants qui le permettent il est possible de gérer un niveau de sortie en lieu et place du simple On / Off comme allumage à 75% du composant salon.lampe. Leur état est bien On mais leur variable level est à 75.

A l’aide des variables « state » et « level » vous pouvez connaître et afficher ces informations mais pour avoir une interface toujours plus conviviale et simple à utiliser, le plugin vous permet de créer des barres de déplacement avec curseur ou Slidebars. Elles vont avoir deux fonctions. La première vous montrer le niveau de sortie et la seconde vous permettre de cliquer n’ importe où sur la barre pour atteindre instantanément le niveau souhaité comme un variateur de lumière mural.

2 type de barres sont disponibles, une horizontale et une verticale.

Prenons l’exemple de l’implémentation d’une SlideBar Horizontale. En premier il vous faut connaître … le nom du Device à gérer bien sur (cf. chapitres plus haut)

Ensuite :

- Presser F2 pour entrer dans le setup, puis allez dans l’onglet "Events" et ajouter un event comme suit :

o Plugin : xAP-Xlobby

o Command : H-Slide

o Variables : XXXX ou XXXX est le nom de votre Device.

- Fermer le setup

- Presser Pause pour entrer dans le skin editor

- Ajouter une zone « text » dans votre écran Xlobby

- Aller dans l’onglet "Item"

- Dans le sous onglet "Text", mettre plugin>xap-xlobby>h-slide>XXXX (XXXX est toujours le nom de votre Device)

- Aller dans le sous onglet "Default" et mettre XXXX (XXXX est encore et toujours … le nom de votre Device) dans le champs ID field.

- Aller dans le sous onglet "Event" et assigner l’Event créer ci-dessus à l’action Click de votre contrôle.

Maintenant sur votre écran apparaît une SlideBar et si vous cliquer dessus, le niveau change et un message xAP est envoyé à destination du module qui gère ce composant pour qu’il fasse changer son niveau physiquement en fonction de la position du click sur la barre.

A noter que pour créer une SlideBar verticale il vous faut remplacer H-slide par V-Slide dans l’explication ci-dessus.

La forme de vos SlideBar est entièrement paramétrable. Des images par défaut sont proposées mais vous pouvez les changer à volonté.

Cinquième partie, quelques exemples assez sympas

Vous savez maintenant afficher une image correspondant à l’état d’un de vos composant, vous savez aussi comment créer des ordres xAP. Nous allons voir comment associer les deux pour créer des écrans de commandes assez sympa.

- Créer une zone texte dans votre écran XL.

- Lui associer l’affichage de l’état sous forme d’image (variable image)

- Créer un event XL du type Basic control toggle avec ce composant en paramètre.

- Associer cet event au click de votre zone texte qui affiche l’état

Au final, vous avez une image de votre composant en action et lorsque vous cliquer dessus son état change et l’image qui reflète cet état change aussi (

- Munissez vous maintenant d’un outil de dessin de plan de maison.

- Créer le plan de votre maison en 3D si possible

- Créer une image de chacun de vos composants (volets, appareil, lumière…) en 3D

- Positionner les sur ce plan

- Associer à chaque composant le paramétrage décrit ci-dessus

Vous obtenez la vue 3D de votre maison avec pour chaque appareil la possibilité de cliquer dessus pour le commander ( (

Paramétrage évolué ou

Comment ajouter de nouvelles fonctions à XL ?

Première partie, ajouter de nouveaux ordres (le fichier actions.xml)

Comme le réseau xAP est extensible à volonté et comme beaucoup de futurs modules arriveront dans les mois à venir, il est possible que certains ordres vous manquent. Le plugin vous permet d’en ajouter à volonté. Les nouveaux ordres apparaîtront dans la liste déroulante des commandes du plugin dans la fenêtre de création des évènements XL à la suite de ceux déjà proposés en standard.

Pour ce faire il faut vous munir d’un exemple du message xAP que vous voulez émettre, puis ouvrir le fichier actions.xml situé dans le répertoire plugin\xap-xlobby\schema\ en édition. Le bloc note est largement suffisant pour réaliser les modifications nécessaires.

Ce fichiers est constitué d’entités nommées . Chaque entité doit décrire un ou plusieurs ordres ayant tous la même classe xAP et le même nom de bloc xAP.

Prenons l’exemple d’un changement de statuts d’un device X10 en On. Le Message xAP attendu par le module xAP-X10 doit être d’un type bien défini. La description du message est fournie par la documentation du module concerné ou par l’organisme qui standardise le tout (voir le site )

Notre message doit donc être comme celui-ci :

xap-header

{

v=12

hop=1

uid=FFFFFFF

class=xAP-X10.event

source=XXXXXXX

}

xAP-X10.event

{

command=on

device=YYYYY

}

Uid, la source, kle hop et le paramètre v seront renseigné automatiquement par le plugin. Donc rien a faire, on les oublie. Reste les données suivantes à fixer:

- La classe égale à xAP-X10.event

- Le nom de bloc égal à xAP-X10.event aussi mais ce n’est pas systématique.

- Le corps du bloc égal à { (saut de ligne) event=On (saut de ligne) device=nom du device (saut de ligne) } (saut de ligne)

- L’adresse du destinataire ce cet ordre. Attention, cette info n’est pas disponible dans le message, il nous faut donc aller la chercher dans la description de ou des modules destinataires. Cette donnée doit comporter 3 zones séparées par des point (comme toute adresse xAP) et accepte le caractère *. La première partie est le nom du créateur, la seconde le nom du module, la dernière le nom de la machine. Cela vous permet de cibler les messages si besoin. Pour exemple, l’adresse du plugin est ptrinchi.xlobby.la-machine ou la-machine est le nom du pc sur lequel Xlobby va tourner. Pour cibler tous les plugin de tous les PC qui auront XL, il suffira de mettre ptrinchi.xlobby.* et pour cibler tous les modules du réseau sans distinction il suffira de mettre *.*.*

Puis les données propres au plugin

- Le nom de cet ordre, c’est le libellé qui va apparaître dans la liste des évènements disponible sous XL.

- Une description pour permettre de retrouver ses petits lorsque l’on retournera dans ce fichier.

Noter bien que si vous voulez vous servir du paramètre disponible dans la champ variables des events de XL vous disposez du mot clef *Xlobby*

Enfin constituer les lignes à ajouter au fichier actions.xml

nom de l’ordre

Nom de la classe

l’adresse du ou des destinataire(s)

La description

Le nom du bloc

Le corps du message

Sa traduction pour notre exemple sera donc

Essai X10

xAP-X10.event

ERSP.X10.*

Essai de X10 via l’interface de ERSP

xAP-X10.event

{

command=on

device=*Xlobby*

}

Pour appeler cet ordre il faudra donc mettre le nom du device en paramètre dans l’event de XL.

De plus, pour éviter de multiplier les description dans le fichier actions.xml vous pouvez les grouper du moment que la classe, le destinataire, le nom de bloc et la structure du bloc reste les mêmes. Dans notre cas l’ordre off est identique à notre exemple d’ordre on seule la ligne command change on peut donc changer le fichier actions.xml pour mettre :

Essai X10

xAP-X10.event

ERSP.X10.*

Essai de X10 via l’interface de ERSP

xAP-X10.event

{

command=[on,off]

device=*Xlobby*

}

Je vous invite à regarder les descriptions déjà fournies dans le fichier à titre d’exercice.

Deuxième partie, ajouter de nouveaux déclenchements sur réception (le fichier events.xml)

A l’identique des ordres sortants (fichier actions.xml) le plugin peut permettre de paramétrer d’autres déclenchements entrants que ceux proposés par défaut.

Vous disposer déjà du déclenchement de la mise à jour des variables sur réception des messages entrants de statuts par exemple.

Supposez que vous installiez un nouveau module qui vous envoi le message suivant à chaque fois que votre portable est à sa portée.

xap-header

{

v=12

hop=1

uid=FFFFFFF

class=Bluetooth.event

source=ptrinchi.xAP-bluetooth.monPC

}



{

status=Detected

device=PortablePersonnel

}

Comme rien n’a été prévue dans le paramétrage par défaut il faut ajouter une description entrante, balise , dans le fichier events.xml. Le principe de focntionnement est le même que celui décrit pour les actions sortantes.

Je vous explique donc rapidement la structure de la balise  :

Bluetooth event

C’est le nom interne, laissé à votre bon choix

Bluetooth.event

C’est un filtre sur le nom de la classe

*.*.*

C’est un filtre sur les émetteurs ici *.*.* prendra tout le monde, on aurai pu mettre ptrinchi.bluetooth.* par exemple

block=

C’est le filtre sur le nom de bloc, * pour prendre tous les blocs quelque soit leur nom

state=[status]

Indique que la variables interne de XL nommée state (cf comment afficher une variables dans mes écrans XL) sera constitué par la ligne status=

text=le tel [device] est dans l’état [status]

Indique que la variables interne de XL nommée text (cf comment afficher une variables dans mes écrans XL) sera constitué par les lignes device et status avec le texte autour qui va bien.

goto:telephon

On donne ici le nom de l’event XL qui sera exécute à chaque fois que les filtres cités plus haut donneront un résultat positif. Cette donnée est constitué par le nom du groupe de l’event XL puis le caractère : et enfin le nom de l’event.

Attention, une limitation existe, seuls les events XL du skin peuvent être appelé ici.

[device]

Indique ou trouver le nom du composant. C’est ce nom qui servira d’identifiant (device name) dans XL. Si le nom est disponible dans l’adresse comme l’exemple suivant ptrinchi.bluetooth.monPC:telephonperso.MonTel, il vous suffit de mettre le mot clef address dans cette balise.

Pour reprendre notre exemple, à partir de ce moment, tous les messages xAP qui auront la classe Bluetooth.event de n’importe quel émetteur, ayant un bloc

– Va créer ou mettre à jour un composant dans XL dont le nom est donné par le champ device avec dans la variable state le champ status et dans la variable text la phrase constituée avec les champs status et device.

– Va lancer un événement dans le skin XL qui s’appel telephon dans le groupe goto.

Maintenant à vous de jouer !!!

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download