Léa-Linux & amis :   LinuxFR   GCU-Squad   Zarb.Org   GNU
Le X10 et Linux


Introduction

Le X10 est un protocole de communication par courant porteur qui permet de faire dialoguer ensemble des équipements compatibles. Je ne réinventerai pas la roue, de très bonnes documentations existent sur le sujet, notamment celle-ci Domotique et Norme X10.

Pour résumer très rapidement, il permet, avec la mise en place d'émetteurs et de récepteurs, d'automatiser des tâches de la vie quotidienne au sein de son logement (ex.: ouvrir les volets, fermer la veilleuse du petit dernier...)

Présentation

But recherché

Le but de cet article est d'expliquer comment pouvoir commander à partir de Linux les récepteurs et de programmer l'émetteur PC vers X10 (CM11) grâce à des macros. Il existe sous Linux quelques projets qui permettent de mettre en place une 'maison domotique', le plus complet est MisterHouse. C'est une application complexe à mettre en oeuvre et que l'on peut plus apparenter à un logiciel pour HTPC. J'ai choisi pour ma part d'utiliser Heyu. C'est un logiciel simple à mettre en place et à configurer et dont je vous propose de vous en expliquer l'utilisation.

Prérequis

Le matériel minimum à acquérir pour tester son utilisation est :

  • un pc équipé d'un port série
  • un émetteur CM11
  • un récepteur type AM12F

A noter, il existe 2 versions de CM11, l'une USB et l'autre série, j'ai choisi d'acheter cette dernière pour être sûr de son fonctionnement avec notre OS préféré.

Il existe aussi plusieurs versions des modules récepteurs. AM12F: "A" pour appareil, et "F" pour france donc LM12G: "L" pour module lampe qui permet de faire des variations, "G" pour german donc module allemand.

Heyu

Installation

Vérifier que vous disposez de la dernière version sur le site de l'auteur :

$ wget http://www.heyu.org/download/heyu-2.0beta.6.2.tgz
$ tar zxvf heyu-2.0beta.6.2.tgz
$ cd heyu-2.0beta.6.2
$ ./Configure
$ make
$ su (pour devenir root)
Password :
# make install
mkdir -p -m 755 /usr/local/bin
cp heyu /usr/local/bin
chgrp root /usr/local/bin/heyu
chmod 755 /usr/local/bin/heyu
chown root /usr/local/bin/heyu
./install.sh
I did not find a Heyu configuration file.
Where would you like the sample Heyu configuration file installed?
 1. In directory /home/dimitri/.heyu/
 2. In subdirectory .heyu/ under a different user home directory
 3. In directory /etc/heyu  (for system-wide access)
 4. No thanks, I'll take care of it myself
Choice [1, 2, 3, or 4] ? 3
Creating directory /etc/heyu with permissions rwxrwxrwx.
Adjust ownership and permissions as required.
The sample configuration file will be installed as /etc/heyu/x10.conf
I will add the TTY port for your CM11 to the config file
Specify /dev/ttyS0, /dev/ttyS1, etc.
To which port is the CM11 attached?
/dev/ttyS0

Configuration

Comme nous avons pu le voir précédemment, les fichiers de configuration vont se trouver dans le répertoire choisi à l'étape d'installation, ici /etc/heyu. Le fichier de configuration principal est heyu.conf

TTY     /dev/ttyS0
HOUSECODE         A
LOG_DIR  NONE 
SCRIPT_MODE  SCRIPTS
SCHEDULE_FILE    x10.sched
MODE              COMPATIBLE
PROGRAM_DAYS       366
COMBINE_EVENTS    YES
COMPRESS_MACROS   NO
#LONGITUDE         W079:49      # [degrees:minutes East or West of Greenwich]
#LATITUDE          N36:04           # [degrees:minutes North or South of equator]
DAWN_OPTION       FIRST
DUSK_OPTION       FIRST
MIN_DAWN         OFF           
MAX_DAWN         OFF 
MIN_DUSK         OFF
MAX_DUSK         OFF
REPL_DELAYED_MACROS      YES
WRITE_CHECK_FILES  YES

Le port ttyS0 doit pouvoir être utilisé par tous les utilisateurs afin de communiquer avec le CM11 :

# /bin/chmod a+rw /dev/ttyS0

Petit test

Tout d'abord, chaque module est identifié par un code Maison (de A à P) et un code Unité (de 1 à 16). Cette identification va permettre de commander le récepteur de la façon suivante :
La commande

$ /usr/local/bin/heyu on A1

permet d'allumer le récepteur A1. Et si tout va bien, l'équipement électrique connecté sur le module doit s'allumer. Vous me direz : "Ouais, il est gentil mais cela n'a pas beaucoup d'intérêt". Mais ce n'est que le début.

Cas concret

A présent que nous avons validé le bon fonctionnement entre Heyu et le CM11, passons à un cas concret. Disons que nous voulons que des volets électriques s'ouvrent à l'aube et se ferment au coucher du soleil. Pour cela il faut acquérir des modules SW10 que l'on branche en lieu et place des interrupteurs classiques montée/descente. Pour simplifier les choses, nous leur affecterons le même code Maison/Unité A2.

Un nouveau fichier permet de créer ce scénario /etc/heyu/x10.sched :

timer smtwtfs  01/01-12/31  dusk  23:00  allumer   null
timer smtwtfs  01/01-12/31  dawn  00:00  eteindre  null
macro allumer  0  on  a2
macro eteindre 0  off a2

smtwtfs correspond au jour de la semaine (Sunday, Monday...)

01/01 - 12/31 à la période d'exécution souhaitée

dusk au lever du soleil et dawn au coucher du soleil

Ces 2 dernières variables sont calculées en fonction des coordonnées géographiques (longitude/latitude) que l'on indique dans le fichier /etc/heyu/x10.conf.

Pour vérifier les heures calculées, utiliser la commande suivante :

$/usr/local/bin/heyu utility suntable

Une fois le fichier complété, il faut l'envoyer à l'émetteur CM11, pour cela :

$/usr/local/bin/heyu upload

Les directives du fichier x10.sched sont envoyées au CM11 qui exécutera l'ensemble des macros de façon autonome.

Pour finir

Les X10 et Heyu offrent de nombreuses possibilités dont je ne vous ai fait découvrir qu'une mince partie. N'hésitez pas à user et abuser des man heyu et autres fichiers sample disponibles avec ce logiciel.



@ Retour à la rubrique Matériel

Copyright

© 01/09/2006 D. Clatot

Creative Commons License
Creative Commons Attribution iconCreative Commons Share Alike icon
Ce document est publié sous licence Creative Commons
Attribution, Partage à l'identique 3.0 :
http://creativecommons.org/licenses/by-sa/3.0/
Affichages
Outils personnels

Serveur hébergé par ST-Hebergement et Lost-Oasis / IRC hébergé par FreeNode / NS secondaire hébergé par XName
Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons CC-BY-SA