Support du CM15a (driver iplc) pour le kernel 3.x
Edit
Ayant eu trop de crash avec ce module, je me suis rabattu sur un CM11a, depuis plus de problème
Je lorgnais la domotique depuis environ une dizaine d’années, mais n’ayant pas été la priorité de la famille, j’ai dû me résigner à reporter ce projet à plus tard.
Je me suis enfin lancé, depuis le temps que j’attendais ça .
Malheureusement l’introduction a été difficile, d’une part pour trouver la technologie qui corresponde le mieux à mes besoins et d’autre part que celle ci soit compatible linux.
Comme le CM11 n’est plus fabriqué et qu’il est une ressource rare dans le marché de l’occasion, Je me suis rabattu sur le CM15a (semble t’il moyennement supporté avec heyu).
Le CM15a ça sert à quoi ?
Il permet de piloter l’ensemble des modules X10 depuis votre PC, il peut également recevoir ou envoyer (pas supporté sous linux) des ordres via son récepteur RF
Compilation du module
Voici la démarche pour créer le module qui ajoute le support du CM15a sur un kernel 3.x.
TMP=/tmp/iplc
# Création repertoire temporaire
mkdir -p $TMP
cd $TMP
# Récupération des sources
wget "http://www.absurde.org/wp-content/uploads/2011/10/iplc-2.6.36.patch_.txt"
wget "http://www.linuxha.com/common/iplcd/iplc-driver.tgz"
# Decompression et patch
tar -xvzf iplc-driver.tgz
patch iplc/driver/linux-2.6/device.c < iplc-2.6.36.patch_.txt
sed -i 's#linux/autoconf.h#generated/autoconf.h#' iplc/driver/linux-2.6/device.c
sed -i 's#\\#include <linux/smp_lock.h>#//\\#include <linux/smp_lock.h>#' iplc/driver/linux-2.6/device.c
# Compilation
cd iplc/driver/linux-2.6/
make cm15a
Nous avons dorénavant un module dans le répertoire cm15a.d/cm15a.ko, nous pouvons monter le module en faisant insmod cm15a.ko
Exemple de script pour monter automatiquement le module lors du démarrage du système (modifiez les emplacements suivant votre distribution)
insmod cm15a.ko
chmod 750 /dev/cm15a0
Test du fonctionnement
Pour tester le bon fonctionnement du module nous allons compiler un binaire qui permet de piloter l’allumage ou l’extinction d’une lampe.
wget "http://www.eclipsehomeauto.com/cm15a_on_linux/cm15ademo.tar.gz"
tar -xvzf cm15ademo.tar.gz
make
cp cm15ademo /usr/bin/
Exemple d’utilisation
cm15ademo a1 on # Allume la lampe de code a1
cm15ademo a2 off # Etteind la lampe de code a2
cm15ademo a1 dim 20 # Diminue la puissance de la lampe a1 de 20 %
cm15ademo a1 bri 20 # Augmente la puissance de la lampe a1 de 20 %
Installation sur archlinux
J’ai également créé les paquets iplc & cm15ademo pour la distribution archlinux que vous pouvez installer avec la commande suivante
yaourt -S iplc cm15ademo