J M G

- -
Articles
Software
Automation
Games
-
  22 / JimPiTouch : Téléchargement, Installation et configuration- - -
PiTouch Pour améliorer mon installation domotique à moindre coût, j'ai écrit une interface graphique pour Domoticz taillée sur mesure pour l'écran tactile officiel de la fondation Raspberry. La réalisation se compose d'un serveur web et d'une base de données qui exploite l'API de domoticz. Vu les prix constatés pour ce type de matériel un peu de travail n'est pas décourageant.

Inventaire du matériel utilisé

  • Un serveur Domoticz (le logiciel avec ou sans matériel)
  • Un raspberry Pi 3 (Accueil le site web et/ou Domoticz)
  • Un écran tactile officiel
  • Un boîtier officiel
  • Une carte SD
Écran Tactile Boîtier Raspberry Pi 3 Boîtier moins cher
Vous trouverez tout ce matériel chez ldlc.com, kubii.fr, radio-spare ou farnell.com (pour farnell il faut un compte pro)

Choix de la typologie

Trois solutions en fonction du matériel disponible, de mon budget et de l'existant :
Topologie
  1. Dans la première configuration le serveur Domoticz est sur une machine dédiée et le serveur JimPiTouch sur une autre.
  2. La deuxième est la plus économique, tout est sur la même machine, le serveur Domoticz et JimPiTouch
  3. Pour la dernière les deux serveurs sont sur une machine est le Rasp tactile ne sert qu'à accéder au serveur JimPiTouch
Mon serveur domoticz étant dans mon tableau électrique je ne pouvais pas y adjoindre un écran j'ai donc opté pour la solution 1. De plus pendant le développement cela me permet de ne pas intervenir sur le serveur domoticz et perturber son fonctionnement et celui de la maison.

Installation

A - Configurer Apache

Le serveur domoticz a pour adresse ip 192.168.0.132 le serveur JimPiTouch l'adresse 162.168.0.13.
Sur le serveur qui va accueillir JimPiTouch il faut les incontournables apache, php et mysql. Le serveur domoticz doit être paramétré pour accepter les requêtes du réseau local.
Configuration du serveur pour JimPiTouch :
/etc/apache2/sites-available/000-default.conf
 <VirtualHost *:80>
  ServerName pitouch
  ServerAdmin [email protected]
  DocumentRoot /home/pi/www
  <Directory /home/pi/www>
    AddDefaultCharset ISO-8859-1
    Require all granted
  </Directory>
  ErrorLog /var/log/error.log
  CustomLog /var/log/access.log combined
 </VirtualHost>

Attention ! C'est la configuration la plus simple et basique, aucune authentification, aucune sécurité, tout ceux qui ont accès au réseau local ont accès à JimPiTouch. Les seules directives que j'ajoute c'est l'encodage de caractères car toute les sources sont en iso-8859-1 et la directive 'Require' car dans cet exemple le site n'est pas dans un répertoire appartenant à l'utilisateur du serveur apache. Attention php fonctionne par défaut en UTF-8 pour changer ce comportement il faut modifier la ligne "default_charset" dans le fichier /etc/php5/apache2/php.ini (attention il peut être ailleurs) comme ceci : default_charset = "ISO-8859-1"
Ensuite on relance apache :
[[email protected]]sudo service apache2 restart

B - Installer les sources

L'archive de JimPiTouch se trouve ici : http://www.ghanassia.com/jpt/jimpitouch-2.2.tar.bz2 (md5 : 28f6b9add5399d18ed5a47e855b1fa33)
Télécharger et décompresser l'archive de JimPiTouch dans le répertoire du site web (dans l'exemple /home/pi/www)

C - Configuration de la base de données

Il faut créer la base de données et les tables à l'aide du fichier structure-pitouch.sql.
[[email protected]]mysql --user=nom_user_sql -pmontmotdepasse < structure-pitouch.sql
Il y a donc dans la base de données 'pitouch' une table 'devices' et une vue 'familles'
Ensuite il faut configurer l'appli avec une des deux méthodes suivantes :
  • Pointer votre navigateur vers http://ip_du_serveur_jimpitouch/config/ et remplissez le formulaire.
    Dans mon cas ça ne marche pas car mon serveur Apache n'a pas le droit d'écrire dans /home/pi/www/config
  • J'utilise donc la deuxième méthode en créant le fichier pitouch.ini dans /home/pi/www/config
/home/pi/www/config/pitouch.ini
;Fichier de configuration de l'application
;Peut-être modifié depuis http://ip_du_serveur/config/

[Serveur Mysql]
serveurbdd = ip_du_serveur (localhost le plus souvent)
port = (laisser vide si localhost)
user = (nom d'utilisateur de la BDD)
mdp = (mot de passe de l'utilisateur)
bdd = pitouch

[Serveur Domoticz]
ipdmtcz = 192.168.0.47 (adresse ip du serveur domoticz)
portdmtcz = 8080 (port du serveur)

[Securite]
codepin = 1234 (le code pin pour accéder à certaine fonction)


D - Configuration du mode kiosque sur le pitouch

Pour que le raspberry muni de l'écran tactile s'ouvre directement sur l'application en plein écran il faut activer le mode kiosque de la session X (Et bien sur le raspberry doit démarrer sous X;-)) Le fichier doit être modifié et/ou créé de la façon suivante. (Les lignes qui commencent par # sont des commentaires)
/home/pi/.config/lxsession/LXDE-pi/autostart
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
#@xscreensaver -no-splash
@midori -e Fullscreen -a http://127.0.0.1
#@xset -dpms
#@xset s off
Suite au dernière mise à jour il faut ajouter au fichier /etc/lightdm/lightdm.conf dans la section [SeatDefaults] la ligne suivante :
xserver-command=X -s 0 -dpms

Ici le navigateur midori démarrera en plein écran et affichera l'url http://127.0.0.1 c'est à dire le site web local avec JimPiTouch. Après un reboot de la machine, on doit avoir midori en plein écran qui s'affiche, mais il reste encore quelques étapes pour que tout fonctionne.

E - Peuplement de la base de données avec les infos du domoticz

Cette opération consiste à récupérer les devices du domoticz et les enregistrer dans la table pitouch.devices. Pour le faire il faut accéder à la partie configuration du serveur JimPiTouch (http://ip_du_serveur_jimpitouch/config/). On sélectionne l'onglet devices avec l'icône puis on lance le remplissage de la base en cliquant sur l'icône Update si tout est en ordre la liste de vos devices s'affiche.

F - Assignation des devices au section

Il ne reste plus qu'a cliquer sur chaque device que l'on veut rendre disponible dans l'interface et lui attribuer une section. On peut aussi modifier le nom et ajouter un descriptif. Les autres options ne sont pas encore utilisées.

Modification device

Améliorations à venir

Il reste encore beaucoup de chose à faire comme par exemple finir la fonction de sécurité, la personnalisation des icônes... Si vous avez du matériel non supporté c'est certainement parce que je ne le possède pas (Dimmer, caméra...) Vous pouvez me communiquer vos problèmes et succès, vos questions et commentaires grâce à l'adresse mail de contact que vous trouverez à la fin du fichier README.md

Amusez-vous bien !

- - -