Installation en mode manuel

Webx est un projet de domotique open source. TLD lui dédie cette section afin de mieux supporter ses utilisateurs?

Modérateur: shen

Installation en mode manuel

Messagede shen » 17 Jan 2012, 21:52

Etape n°1 : Installer LAMP

Code: Tout sélectionner
apt-get install apache2 php5-cli php5-mysql php5 mysql-server


Etape n°2 : Installer des paquets debian complémentaires

Code: Tout sélectionner
apt-get install curl runit subversion build-essential openssl daemontools


Etape n°3 : Installer des paquets debian optionnels

Code: Tout sélectionner
apt-get install libusb-1.0-0-dev htop iptraf libncurses5-dev libncurses5 libusb-dev libusbprog-dev libopenusb0 usbutils


Etape n°4 : Installer mochad

Télécharger le tar.gz : https://sourceforge.net/projects/mochad/
Suivre la procédure fournie par le créateur du projet mochad : https://sourceforge.net/apps/mediawiki/ ... =Main_Page

Mochad fonctionne avec udev. Quand votre périphérique CM15 sera détecté il lancera automatiquement les services mochad, sinon les services sont stoppés
Si l'installation de Mochad s'est bien passée, en branchant votre CM15, vous devriez voir trop service en écoute
Code: Tout sélectionner
netstat -natup |grep mochad
tcp        0      0 0.0.0.0:1099            0.0.0.0:*               LISTEN      9579/mochad     
tcp        0      0 0.0.0.0:1100            0.0.0.0:*               LISTEN      9579/mochad     
tcp        0      0 0.0.0.0:1101            0.0.0.0:*               LISTEN      9579/mochad


Etape n°5 : Installer cpan et ses modules

Pour installer et compiler xPL il nous faut certaines librairies et modules perl disponible via l'outil cpan
lancer la commande cpan
Puis :
Code: Tout sélectionner
install YAML::Syck

Puis :
Code: Tout sélectionner
install AnyEvent


Etape n°6 : Installer xPL

Télécharger le tar.gz à l'adresse suivante :https://github.com/beanz/xpl-perl/downloads
Code: Tout sélectionner
perl Makefile.PL
make
make test
make install


Etape n°7 : Création de l'utilisateur

Code: Tout sélectionner
adduser domos


Etape n°8 : Récupérer le projet domos

Prenez bien soin d'être dans le bon répertoire
Code: Tout sélectionner
cd /usr/local
svn checkout svn://svn.code.sf.net/p/domos/code/trunk domos


Code: Tout sélectionner
chown -Rf domos:staff /usr/local/domos
chmod -Rf 755 /usr/local/domos


Créez le répertoire des logs :
Code: Tout sélectionner
mkdir /var/log/domos
chown domos:staff /var/log/domos
chmod 755 /var/log/domos


Etape n°9 : Installer les vhosts apache2

Le 1er hôte virtuel permet d'accéder à l'interface webx sur le port 80
Le fichier par défaut à mettre à jour est le suivant : /etc/apach2/site-available/default
Code: Tout sélectionner
<VirtualHost *:80>
   ServerAdmin webmaster@localhost
   
   DocumentRoot /usr/local/domos/www/
   <Directory />
      Options FollowSymLinks
      AllowOverride None
   </Directory>
   <Directory /usr/local/domos/www/>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride None
      Order allow,deny
      allow from all
   </Directory>

   ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
   <Directory "/usr/lib/cgi-bin">
      AllowOverride None
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
      Order allow,deny
      Allow from all
   </Directory>

   ErrorLog /var/log/apache2/error.log

   # Possible values include: debug, info, notice, warn, error, crit,
   # alert, emerg.
   LogLevel warn

   CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>


Le 2ème hôte virtuel permet d'accéder à l'interface webx sur le port 443 avec un cryptage ssl. Au besoin, suivre la procédure pour générer un certificat SSL pour votre serveur : http://doc.ubuntu-fr.org/tutoriel/secur ... 2_avec_ssl
Le fichier par défaut à mettre à jour est le suivant : /etc/apach2/site-available/default-ssl
Code: Tout sélectionner
<IfModule mod_ssl.c>
NameVirtualHost    *:443
<VirtualHost *:443>
   ServerAdmin webmaster@localhost

   DocumentRoot /usr/local/domos/www
   <Directory />
      Options FollowSymLinks
      AllowOverride None
   </Directory>
   <Directory /usr/local/domos/www/>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride None
      Order allow,deny
      allow from all
   </Directory>

   ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
   <Directory "/usr/lib/cgi-bin">
      AllowOverride None
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
      Order allow,deny
      Allow from all
   </Directory>

   ErrorLog ${APACHE_LOG_DIR}/error.log

   # Possible values include: debug, info, notice, warn, error, crit,
   # alert, emerg.
   LogLevel warn

   CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined

   Alias /doc/ "/usr/share/doc/"
   <Directory "/usr/share/doc/">
      Options Indexes MultiViews FollowSymLinks
      AllowOverride None
      Order deny,allow
      Deny from all
      Allow from 127.0.0.0/255.0.0.0 ::1/128
   </Directory>

   SSLEngine on
        SSLCertificateFile   /etc/apache2/server.crt
        SSLCertificateKeyFile /etc/apache2/server.key

   <FilesMatch "\.(cgi|shtml|phtml|php)$">
      SSLOptions +StdEnvVars
   </FilesMatch>
   <Directory /usr/lib/cgi-bin>
      SSLOptions +StdEnvVars
   </Directory>

   BrowserMatch "MSIE [2-6]" \
      nokeepalive ssl-unclean-shutdown \
      downgrade-1.0 force-response-1.0
   BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

</VirtualHost>
</IfModule>


Si vous êtes des Gourou d'Apache et que cette config ne vous plait pas, sachez que la seule obligation est de laisser le site web dans le répertoire /usr/local/domos/www.
Pour le moment il y a bcp de chemin en dur dans mon programme !!!!

Etape n°10 : Configuration des fichiers de système

Copiez au préalable les fichiers de configuration au bon endroit :
Code: Tout sélectionner
cp -r /usr/local/domos/config /etc/domos
chown www-data:www-data /etc/domos/*


Il y a 4 fichiers de configurations : global.conf, ipx800.conf, meteo.conf, rfxcom.conf, x10.conf
Et il y a un répertoire du nom de "env" qu'il faudra mettre à jour dans cette première version beta

Code: Tout sélectionner
root@webx:/etc/domos# cat global.conf
ADMIN_LOGIN=admin          << C'est le login du super administrateur, modifier le !
ADMIN_PASS=2909c36f14ca94a442ec0f24319ca63e   << Password du super administrateur crypter en md5, modifier le !!
DB_LOGIN=domos      <<C'est l'utilisateur authorisĂ© Ă  se connecter Ă  la base domos6
DB_NAME=domos6      <<C'est le numĂ©ro de version de la base mysql actuelle.
DB_PASS=                  << Il n'y a pas de mot de passe par dĂ©faut. A vous d'en mettre un.
DB_VERSION=
SERIAL=

Pour modifier votre mot de passe, créez un fichier md5.php dans /usr/local/domos/www. Copiez-y ça :
Code: Tout sélectionner
<?php
echo md5('Tapez votre nouveau de passe');
?>

Rendez vous Ă  l'adresse suivante : http://<ton ip>/md5.php et recopiez le hash md5, mettez le en lieu et place de l'autre dans le fichier global.conf
Et pensez à le supprimer après coup !!!

Modifiez ce fichier en fonction de votre configuration
Code: Tout sélectionner
root@webx:/etc/domos# cat ipx800.conf
IPX800_IP=
IPX800_LOGIN=
IPX800_PASS=
IPX800_PORT=


Pas encore validée dans cette version beta. Il s'agit des données météo de votre bled. grâce à un compte weather.com
Code: Tout sélectionner
root@webx:/etc/domos# cat meteo.conf
PARTNER=
KEY=


Si vous êtes en firmware xPL, complétez juste la variable RFXCOM_IP.
!! Les scripts sont configurés pour fonctionner avec un RFXCVOM v3 firmware xPL !! Si vous n'êtes pas dans ce cas, envoyez moi un MP, j'ajusterais le tuto en fonction merci !
Code: Tout sélectionner
root@webx:/etc/domos# cat rfxcom.conf
RFXCOM_LOGIN=
RFXCOM_PASS=
RFXCOM_FIRMWARE=
RFXCOM_IP=
RFXCOM_PORT=


Ici rien Ă  modifier !! Merci !
Code: Tout sélectionner
root@webx:/etc/domos# cat x10.conf
X10_CM15_MODULE=yes
X10_CM11_MODULE=
X10_MOCHAD_PORT=1099
X10_MOCHAD_SERVER=localhost


En faisant ce tuto, je viens de me rendre compte que la config est Ă  plusieurs endroit ^_^. Ce sera mis Ă  jour dans les prochaines version ?!
Les informations du RFXCOM se modifie dans ces fichiers ci (RFXCOM_IP, RFXCOM_PORT_RX, RFXCOM_PORT_TX) il faut les Ă©diter et mettre les votre.
A priori, seul l'IP est à modifier, sauf si vous avez modifié les ports par défaut ! Sinon ne modifiez rien d'autre, merci !
Code: Tout sélectionner
root@webx:/etc/domos# ll env/
total 40
drwxr-xr-x 2 root root 4096 2012-01-15 23:14 ./
drwxr-xr-x 3 root root 4096 2012-01-15 22:56 ../
-rw-r--r-- 1 root root    8 2012-01-15 22:56 BROADCAST
-rw-r--r-- 1 root root    0 2012-01-15 22:56 COMMON_ARGUMENTS
-rw-r--r-- 1 root root   10 2012-01-15 22:56 IP
-rw-r--r-- 1 root root   10 2012-01-15 22:56 IPSEND
-rw-r--r-- 1 root root    3 2012-01-15 22:56 LO
-rw-r--r-- 1 root root   14 2012-01-15 22:56 RFXCOM_IP
-rw-r--r-- 1 root root   51 2012-01-15 22:56 RFXCOM_PARAM
-rw-r--r-- 1 root root    6 2012-01-15 22:56 RFXCOM_PORT_RX
-rw-r--r-- 1 root root    6 2012-01-15 22:56 RFXCOM_PORT_TX

Etape n°11 : Installer la base de donnée domos6

Je vous invite à changer le mot de passe root paramétré par défaut, si vous souhaitez utiliser la VM de Webx durant longtemps

Code: Tout sélectionner
root@webx:/usr/local/domos/scripts# ./install_mysql.sh
************************************************************
*Script pour l'importation des données de la base sql DOMOS*
************************************************************
Entrez le login administrateur de mysql (ex:root) : root
Entrez le mot de passe administrateur de mysql : mysqladmin
Test de connexion à la base de donnée ...
Connexion SQL ok !
* Création de la base de donnée domos6
* Création de l'utilisateur de la base de donnée domos6
* Import des données dans la base de donnée domos6
* VĂ©rification de la base
domos6.MODULE_chacon                               OK
domos6.MODULE_ipx800                               OK
domos6.MODULE_oregon                               OK
domos6.MODULE_x10                                  OK
domos6.ORGA_device                                 OK
domos6.ORGA_heating                                OK
domos6.ORGA_lighting                               OK
domos6.ORGA_watering                               OK
domos6.ORGA_weather                                OK
domos6.SCENARIO_actions                            OK
domos6.SCENARIO_alarm                              OK
domos6.SCENARIO_device                             OK
domos6.SCENARIO_heating                            OK
domos6.SCENARIO_lighting                           OK
domos6.STAT_weather                                OK
domos6.XPL_ac_basic                                OK
domos6.XPL_sensor_basic                            OK
domos6.XPL_x10_basic                               OK
domos6.XPL_x10_security                            OK
domos6.device                                      OK
domos6.domain                                      OK
domos6.global_security                             OK
domos6.house                                       OK
domos6.messages                                    OK
domos6.technology                                  OK
domos6.users                                       OK
* Importation des données terminé


A cette étape, vous devez pouvoir accéder à l'interface d'administration webx via http://<ton ip> ou https://<ton ip>

Etape n°12 : Installer les services monitorés par runit

Code: Tout sélectionner
root@webx:/usr/local/domos/scripts# ./install_services.sh


Après exécution du script, l'ensemble des liens symboliques nécessaires auront été créé pour que runit soit en mesure de les monitorer
Code: Tout sélectionner
root@webx:/etc/service# ll /etc/service/
total 8
drwxr-xr-x  2 root root 4096 2012-01-15 22:40 ./
drwxr-xr-x 84 root root 4096 2012-01-15 15:25 ../
lrwxrwxrwx  1 root root   38 2012-01-15 22:40 xpl-cmnd-x10.basic -> /usr/local/domos/sv/xpl-cmnd-x10.basic/
lrwxrwxrwx  1 root root   27 2012-01-15 22:40 xpl-hub -> /usr/local/domos/sv/xpl-hub/
lrwxrwxrwx  1 root root   27 2012-01-15 22:40 xpl-rrd -> /usr/local/domos/sv/xpl-rrd/
lrwxrwxrwx  1 root root   37 2012-01-15 22:40 xpl-trig-ac.basic -> /usr/local/domos/sv/xpl-trig-ac.basic/
lrwxrwxrwx  1 root root   41 2012-01-15 22:40 xpl-trig-sensor.basic -> /usr/local/domos/sv/xpl-trig-sensor.basic/
lrwxrwxrwx  1 root root   38 2012-01-15 22:40 xpl-trig-x10.basic -> /usr/local/domos/sv/xpl-trig-x10.basic/
lrwxrwxrwx  1 root root   41 2012-01-15 22:40 xpl-trig-x10.security -> /usr/local/domos/sv/xpl-trig-x10.security/


Un petite vérification des services concernés ne fait pas de mal :
Code: Tout sélectionner
# ps -aef |grep xpl
root      3977   553  0 22:40 ?        00:00:00 runsv xpl-trig-sensor.basic
root      3978   553  0 22:40 ?        00:00:00 runsv xpl-rrd
root      3979   553  0 22:40 ?        00:00:00 runsv xpl-trig-x10.security
root      3980   553  0 22:40 ?        00:00:00 runsv xpl-trig-x10.basic
root      3981   553  0 22:40 ?        00:00:00 runsv xpl-hub
root      3982   553  0 22:40 ?        00:00:00 runsv xpl-cmnd-x10.basic
root      3983   553  0 22:40 ?        00:00:00 runsv xpl-trig-ac.basic


Normalement ils devraient se lancer automatiquement
J'ai découvert un bug, il y a pas longtemps que je n'ai pas encore pu résoudre, on voit des process avec les variables et non pas leur valeur... $LO, $COMMON_ARGUMENTS?, ces lignes là sont des incorrects et n'ont pas à être là. Cela n'empêche pas les process de fonctionner... Ce sera résolu dans une prochaine version ??
Code: Tout sélectionner
root@webx:/usr/local/domos/sv# ps -aef |grep xpl
root       549   531  0 23:38 ?        00:00:00 runsv xpl-trig-sensor.basic
root       550   531  0 23:38 ?        00:00:01 runsv xpl-rrd
root       551   531  0 23:38 ?        00:00:00 runsv xpl-trig-x10.security
root       552   531  0 23:38 ?        00:00:00 runsv xpl-trig-x10.basic
root       553   531  0 23:38 ?        00:00:00 runsv xpl-hub
root       554   531  0 23:38 ?        00:00:01 runsv xpl-cmnd-x10.basic
root       555   531  0 23:38 ?        00:00:00 runsv xpl-trig-ac.basic
root       563   549  0 23:38 ?        00:00:00 sh -c ?    /usr/local/domos/perl/xpl-trig-sensor.basic -i $LO $COMMON_ARGUMENTS?
root       565   552  0 23:38 ?        00:00:00 sh -c ?    /usr/local/domos/perl/xpl-trig-x10.basic -i $LO $COMMON_ARGUMENTS?
root       566   555  0 23:38 ?        00:00:00 sh -c ?    /usr/local/domos/perl/xpl-trig-ac.basic -v -i $LO $COMMON_ARGUMENTS?
root       567   551  0 23:38 ?        00:00:00 sh -c ?    /usr/local/domos/perl/xpl-trig-x10.security -i $LO $COMMON_ARGUMENTS?
root       568   553  0 23:38 ?        00:00:00 sh -c ?    xpl-hub --define ip=$IP --define broadcast=$BROADCAST $COMMON_ARGUMENTS?
root       599   563  0 23:38 ?        00:00:00 /usr/bin/perl -w /usr/local/domos/perl/xpl-trig-sensor.basic -i lo
root       601   565  0 23:38 ?        00:00:00 /usr/bin/perl -w /usr/local/domos/perl/xpl-trig-x10.basic -i lo
root       602   567  0 23:38 ?        00:00:00 /usr/bin/perl -w /usr/local/domos/perl/xpl-trig-x10.security -i lo
root       603   568  0 23:38 ?        00:00:00 /usr/bin/perl -w /usr/local/bin/xpl-hub --define ip=127.0.0.1 --define broadcast=0.0.0.0
root       604   566  0 23:38 ?        00:00:00 /usr/bin/perl -w /usr/local/domos/perl/xpl-trig-ac.basic -v -i lo


Etape n°13 : Finaliser l'installation

En fait l'étape 13 et une fausse étape, mais à partir de là, le système Webx est "censé" être fonctionnel
Il vous suffira de vérifier les mises à jour du dépôt par la même occasion, peut être sait-on jamais j'aurais déjà fait une mise à jour entre temps :-)
Positionnez vous dans le répertoire racine du système Webx :
Code: Tout sélectionner
root@webx:/usr/local/domos# svn update
À la révision 69.


Il ne vous restera plus qu'à activer les cron pour que la gestion des scénarios prenne effet ...

Editez le crontab de l'utilisateur domos
Code: Tout sélectionner
crontab -e -u domos


Pour le moment je ne peux vous fournir que les scripts de gestion du chauffage, ils tournent chez moi depuis 3 mois... Ca marche pas mal !
Code: Tout sélectionner
## Le chauffage
*/15 * * * * php /usr/local/domos/bin/chauffage.setscenario.php 1>> /var/log/domos/chauffage.log 2>&1
*/5 * * * * /usr/local/domos/perl/xpl-rrd-graphs /var/lib/rrd /usr/local/domos/www/rrd2 2>&1 1>/dev/null


Pour le moment n'en activez pas d'autres, je n'ai pas fini de développer les scénarios
Il y a un répertoire avec d'autres cron /usr/local/domos/crontab mais ils ne marcheront pas encore... bientôt !!

Ouf on y est arrivé. Au passage j'ai pu valider ce 1er tuto en faisant la machine virtuelle. Je la mettrais en ligne très bientôt
Webx - Solution domotique open-source
Linux - HTML/AJAX/PHP/PERL
Slim Framework - Jquery mobile
--------------------
Serveur domotique - sheevaplug/raspberrypi
---------------------------
Rfxcom lan (v2/v3)
X10 - X10 security (LM12/AM12/SD18/LM13)
Chacon (télécommande KCT510/interrupteur LWST615)
shen
P'tit Guru de domotique
 
Messages: 90
Inscription: 30 Juin 2010, 09:25

Retourner vers Webx

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités

Copyright © 2011 - Touteladomotique.com - Tous droits rĂ©servĂ©s
Les blogs partenaires : Abavala, Domo-Blog, Domotique34, Maison et Domotique