samedi 14 mars 2015

La vrai pas domoticz mais DIY (enfin preque :))



Je suis méga (ou gigo :D) à la bourre mais à ma décharge j’ai pas mal de boulot en ce moment avec la prépa. J’ai cracké, j’ai viré Domoticz sur le Raspberry Pi pour mettre une Debian Wheezy avec un serveur LAMP et une petite page web. Pourquoi ? Parce que gérer des relais en GPIO par Domoticz c’est le parcours du combattant. En voici une synthèse.
Sinon il y a une version pour bidouilleur qui vraiment plus simple mais qui peut rebuter.
On configure notre Raspberry pour le passer en francais avec un
sudo raspi-config
et le tuto.
WiringPi :
Puis on peut lancer l’installation de WiringPi (site officiel) :
Si vous n’avez pas GIT installer vous pouvez l’installer par (de base sur les distrib Debian) :
sudo apt-get install git-core
Si vous avez des erreurs avec l’installation précédentes, mettez à jour votre distrib :
sudo apt-get update
sudo apt-get upgrade
Pour obtenir WiringPi, utiliser GIT :
git clone git://git.drogon.net/wiringPi
Pour installer on passe ces deux commandes :
cd wiringPi
./build

La traduction n’étant qu’une interprétation aller sur le site officiel pour plus d’information.
Serveur Web
On peut installer ensuite le serveur web, et oui je suis revenu a Apache car les deux autres sont sur chiant à installer, ngnix et Lighttp
Donc on passe quelques commandes :
On met à jour le système :
sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade
On installe les paquets :
sudo apt-get install apache2 php5 mysql-server phpmyadmin
On passe à la configuration des paquets :
On décide d’un mot de passe pour la base MySQL :
Nouveau mot de passe du superutilisateur de MySQL : Password
Confirmation du mot de passe du superutilisateur de MySQL : Password
Configuration de PHPmyadmin :
Serveur web à reconfigurer automatiquement : apache2
Faut-il configurer la base de données de phpmyadmin avec dbconfig-common ? : Oui
Mot de passe de l'administrateur de la base de données : Password
Mot de passe de connexion MySQL pour phpmyadmin : 

Et on a notre serveur web, on teste en tapant l’adresse du RPi dans un navigateur web. Pour la trouver vous pouvez taper : ifconfig dans un terminal sur le RPi.
Vous devrez arriver sur une page avec It works  en en-tête
FTP :
Puis on installe un serveur FTP pour mettre tous pleins de cochonnerie sur notre serveur web :D
sudo apt-get install vsftpd
On modifie quelques paramètres dans /etc/vsftpd.conf : avec un sudo nano /etc/vsftpd.conf
Anonymous_enable=NO
Write_enable=YES
Local_enable=YES
Ascii_upload_enable=YES
Ascii_download_enable=YES

VNC :  
On installe le paquet tightvnc :
sudo apt-get install tightvncserver
puis on le lance par :
vncserver :1
Pour un demarrage automatique on utilise ces differentes commandes (si vous demarrez le bureau sinon cela ne marche pas) 
cd /home/pi
cd .config
mkdir autostart
cd autostart
sudo nano tightvnc.desktop
Et on ajoute :
#!/bin/sh
[Desktop Entry]
Type=Application

Name=tightVNC
Exec=vncserver :1
StartupNotify=false

Page web pour les relais :
Je n’ai rien fait cette fois juste reprit le travail d’un autre, en l’occurrence Idleman du blog idleman.fr
qui fait un super travail dans le domaine de la domotique.
On récupère l’archive, on la décompresse puis on modifie le fichier configuration.php dans un Notepad. Dans $materials, avec la pin 1 étant le 3v3, la 2 étant le 5V , la 3 étant le GPIO 0 ou 1 suivant la révision de votre RPi, etc etc
Donc suivant votre configuration vous modifier votre fichier puis on enregistre et on uploade tout ça avec le serveur FTP dans /var/www.
Et normalement c’est terminer, vous avez votre serveur pour contrôler votre lumière ou votre chargeur de téléphone via une requête envoyer par Tasker, ‘fin bon on est encore dans l’entrée de la domotique. Reste encore à faire l’interaction avec S.A.R.A.H. Et puis la sonde de température avec son graphique, ... reste encore du boulot. Si vous avez des questions ou des problèmes à l'installation de certain logiciel, n’hésitez pas je pourrais vous aidez.

Sinon un peu de musique de geek metaleux pour finir cette article :