Installation des binaires

L'installation des différents éléments s'est faite dans une Virtualbox qui tourne sous Ubuntu server 11.04. La doc d'installation est le tuto du Chiloft utilisé simplement avec les versions les plus récentes. L'installation Apache/Php/Mysql est celle par défaut d'Ubuntu.

apt-get install libesmtp6 
apt-get install g++ 
apt-get install libmysqlclient15-dev 

cd /usr/local
mkdir linknx
cd linknx

wget http://downloads.sourceforge.net/sourceforge/linknx/linknx-0.0.1.28.tar.gz
wget http://downloads.sourceforge.net/project/linknx/knxweb/knxweb-0.6/knxweb-0.6.1.tar.gz
wget http://downloads.sourceforge.net/project/bcusdk/pthsem/pthsem_2.0.8.tar.gz
wget http://downloads.sourceforge.net/sourceforge/bcusdk/bcusdk_0.0.5.tar.gz 

tar zxvf knxweb-0.6.1.tar.gz
tar zxvf linknx-0.0.1.28.tar.gz
tar zxvf pthsem_2.0.8.tar.gz
tar zxvf bcusdk_0.0.5.tar.gz

chown -R root.root knxweb linknx-0.0.1.28 pthsem-2.0.8 bcusdk_0.0.5.tar.gz

cd pthsem-2.0.8
./configure
make 
make test
make install

export LD_LIBRARY_PATH=/usr/local/lib 
ldconfig -a

cd ../linknx-0.0.1.28/
./configure  --without-log4cpp --without-lua  --with-mysql=/usr/bin/mysql_config 
make 
make install

cd ../
cd bcusdk-0.0.5/ 
./configure --enable-onlyeibd --enable-eibnetiptunnel --enable-usb --enable-eibnetipserver --enable-ft12 
make 
make install 

et copie de knxweb dans /var/www/knxweb

Configuration

Interface IP/KNX

La doc du Chtiloft utilise une connexion USB mais je souhaite que ma connexion se fasse en IP avec le réseau knx via un N148/22. D'abord, s'assurer que ce boitier est correctement configuré et accessible depuis ETS. Je me suis simplifié la vie en utilisant une deuxième interface en usb pour la configuration de l'interface ip. J'ai aussi ajouté une adresse supplémentaire au boitier au niveau de la configuration de la connexion IP (cf la dernière page du pdf téléchargeable sur le site de Siemens). Je ne sais pas si c'est utile...

Ceci étant fait, je peux sous ets3 et en ip lancer busmonitor ou groupmonitor, configurer les objets et envoyer des GA pour piloter l'installation. Donc ça fonctionne.

J'arrête ets.

eibd

Je lance eibd avec la commande "eibd -t0123 -i ipt:[ip du N148/22]" A lancer en tant qu'utilisateur normal et pas root, sinon il râle (à juste titre :-)

Le -t permet d'avoir du debug, mais c'est tout ce que je sais. Pourquoi 0123, pas encore cherché.

eibd étant lancé, je vois passer du trafic en monitoring. Je fais des test avec "busmonitor" qui affiche sensiblement la même chose qu'eibd. J'essaye "groupwrite" mais a priori sans succès (l'adresse physique d'émission étant 0.0.0 je pense que ça vient de là, pas trouvé comment la changer).

J'ai un z38i qui m'envoie la température toutes les minutes (pratique pour le débug, mais trop souvent je pense pour de l'exploitation) et je vois passer cette température ! Joie ! J'en conclue qu'eibd est bien connecté, je ne cherche pas plus à communiquer avec la plateforme, c'est le boulot de linknx.

linknx

C'est lui qui va communiquer avec eibd. En suivant la doc de Chtiloft, j'ai donc la conf dans /var/www/knxweb/linknx.xml. La tronche de ce fichier ne me parle pas trop. Je le copie pour sauvegarde et commence à le modifier. La seule doc officielle trouvée est celle-ci.

J'ai commencé par faire le ménage dans le fichier via la section "services" en ne gardant que xmlserver comme dans la doc et <knxconnexion url="ip:localhost" />. Ah, oui, piège ici. linknx communique avec eibd et pas avec la passerelle. eibd tourne sur la même machine donc l'ip est bien localhost et non celle de la passerelle N148.

Je lance "linknx -c/var/www/knxweb/24rdr.xml" (j'habite au 24 rue des roses. Kitch !). Pleins de trucs défilent, je vois passer des logs sur la fenêtre eibd, en particulier plusieurs GA qui ne sont pas de chez moi mais je n'ai pas de message d'erreur et linknx semble content...

Arrêt de linknx et remodification du fichier xml. Je fais beaucoup plus de ménage et virant presque toutes les "rules" à part celle de l'heure et ne gardant que quelques "objects" que je modifie avec des GA de ma plateforme de test.

Relance de linknx. Beaucoup moins de logs sur eibd, normal...

Sur cette page, je vois que l'on peut envoyer des ordres.

Je fais un "telnet localhost 1028" (cf la conf de la section services pour le 1028) et je tape "<read><objects/></read>" puis ^D (ctrl-D, commande classique de fin de transmission mais pas forcément connue). Joie bis ! Je vois en résultat un fichier xml contenant l'état des objets définis dans la conf :-) :-)

Bon alors là, clairement ça fonctionne. Je teste alors en écriture et j'envoie sur le GA idoine une heure bidon et je vois alors bien le z38i se mettre à l'heure ! ("<write><object id="cur_time" value="10:10:10"/></write>").

Retour dans mon xml et je change la "rule" "cur_time_date" en remplaçant 3600 par 60, relance de linknx et au bout de 60 (longues !) secondes (il doit y avoir un truc pour le faire à l'init), le z38i a enfin l'heure courante...

Linknx fonctionne, passons à la dernière étape...

knxweb

L'accès web se fait correctement à http://[ip serveur]/knxweb/. Je clique sur "design" et là, le joli chateau fort... Comment commencer un design neuf ? Je ne trouve vraiment pas grand chose... On fouille par la doc pas très causante...

Sauvegarde du répertoire "design" que je vide, et recrée un design/default vide. Je colle une image de fond en jpg dedans et j'essaye de faire des trucs avec ça. Impossible d'ajouter une zone ou quelque chose. Je fini par un "chmod -R 777 knxweb" histoire d'être sûr des droits (bien sûr, cela devra être corrigé) puis par remettre le fichier xml par défaut. J'arrive à créer des zones et à sauvegarder ! Mais les icônes météo me cassent les pieds pour utiliser le menu. J'édite le fichier xml à la main et je vire tout ce qui ne sert rien en ne laissant finalement que la zone vide nouvellement créée. Je retourne dans le design et là, tranquille, je peux ajouter les GA que j'ai configuré dans le xml utilisé par linknx !

Au premier clique, la lumière s'allume. Joie ter! (déjà dit, non ? :-)

Conclusion très temporaire

Voilà, le récit d'une nuit. Tout cela est encore complètement brouillon et pas fini ni rien et je sens que je vais contribuer pour la doc, car là, franchement...

Mais tous les éléments sont en place pour le reste de l'aventure...