dimanche 9 août 2015

Domoticz sur Raspbian

Introduction


Cet article résume la procèdure de compilation et d'installation de Domoticz sur une carte Raspberry Pi (1 model B) configurée avec une distribution Linux Debian 7 (Wheezy).

Prérequis


  • Un serveur Linux/Debian
  • Les outils de compilation C++
  • La librairie open-zwave pour utiliser ce protocole
  • Un client git

Client git

Le client git s'installe depuis le repository de paquets Debian avec la commande suivante:
sudo apt-get install git

Outils de compilation C++

Les librairies nécessaires à la compilation s'installent avec les deux commandes suivantes:
sudo apt-get install build-essential -y
sudo apt-get install cmake libboost-dev libboost-thread-dev libboost-system-dev libsqlite3-dev curl libcurl4-openssl-dev libusb-dev zlib1g-dev libssl-dev

Compilation d'openZWave


Installer la dépendance libudev:
sudo apt-get install libudev-dev

Depuis le répertoire racine des compilations qui est par défaut /home/pi:
Récupérer les sources depuis github avec l'aide de la commande suivante:
git clone https://github.com/OpenZWave/open-zwave.git

Lancer la compilation:
cd open-zwave; make

La sortie standard de la commande make devrait ressembler aux lignes suivantes (noter la version 1.3.434):
make -C /home/pi/open-zwave/cpp/build/ -
make[1]: Entering directory '/home/pi/open-zwave/cpp/build'
Building OpenZWave Version 1.3-434-g09a092
...
Linking Static Library
Linking Shared Library
make[1]: Leaving directory '/home/pi/open-zwave/cpp/build'
make -C /home/pi/open-zwave/cpp/examples/MinOZW/ -
make[1]: Entering directory '/home/pi/open-zwave/cpp/examples/MinOZW'
Building Main.o
Linking /home/pi/open-zwave/.lib/MinOZW
g++ -o /home/pi/open-zwave/.lib/MinOZW /home/pi/open-zwave/.lib/Main.o /home/pi/open-zwave/libopenzwave.so -pthread
Creating Temporary Shell Launch Script
make[1]: Leaving directory '/home/pi/open-zwave/cpp/examples/MinOZW'

Création d'un lien vers libOpenZWave


La librairie OpenZwave compilée précedemment correspond à la version 1.3-434. Je recommande la création d'un lien symbolique vers cette librairie depuis le répertoire racine utilisé pour les compilations ((/home/pi):

ls -al
drwxr-xr-x 23 pi pi 4096 Aug 9 15:23 domoticz
drwxr-xr-x 11 pi pi 4096 Aug 9 16:07 open-zwave

mv open-zwave ozw-1.3.434
ln -s ozw-1.3.434 ozw 

ls -al
drwxr-xr-x 23 pi pi 4096 Aug 9 15:23 domoticz
lrwxrwxrwx 1 pi pi 11 Aug 9 16:13 ozw -> ozw-1.3.434
drwxr-xr-x 11 pi pi 4096 Aug 9 16:07 ozw-1.3.434

Compilation de domoticz


Depuis le répertoire racine des compilations (/home/pi).
Récupérer les sources depuis le git hub avec l'aide de la commande suivante:
git clone https://github.com/domoticz/domoticz.git domoticz

Aller dans le réperoire domoticz et modifier le chemin de recherche de la librarie openZWave dans le fichier CMakeLists.txt:

cd domoticz; vi  CMakeLists.txt:

# try to find open-zwave, if found, include supportfind_library(OpenZWave NAMES libopenzwave.a HINTS "../ozw" "../ozw/cpp/build")

Lancer la fabrication du makefile avec la commande suivante:
cmake -DCMAKE_BUILD_TYPE=Release .

La sortie standard de la commande cmake devrait ressembler aux lignes suivantes (noter la révision 2709 ainsi que la détection de libopenzwave):

-- Compiling Revision #2709
-- Boost version: 1.49.0
-- Found the following Boost libraries:
--   thread
--   date_time
--   system
-- Linking against boost static libraries
-- Found ZLIB: /usr/lib/arm-linux-gnueabihf/libz.so (found version "1.2.7")
-- ZLIB libraries found at: /usr/lib/arm-linux-gnueabihf/libz.so
-- ZLIB includes found at: /usr/include
-- Found CURL: /usr/lib/arm-linux-gnueabihf/libcurl.so (found version "7.26.0")
-- Curl libraries found at: /usr/lib/arm-linux-gnueabihf/libcurl.so
-- Curl includes found at: /usr/include
-- Found LIBUSB: /usr/lib/arm-linux-gnueabihf/libusb.so 
-- LIBUSB found at: /usr/lib/arm-linux-gnueabihf/libusb.so
-- Crypto library found at: /usr/lib/arm-linux-gnueabihf/libcrypto.so
-- /home/pi/ozw/libopenzwave.a
 

 Lancer la compilation de domoticz avec l'aide de la commande:
make

Création d'un lien vers domoticz


La version de domoticz compilée précedemment correspond à la révision  2709. Je recommande la création d'un lien symbolique vers cette librairie depuis le répertoire racine utilisé pour les compilations ((/home/pi):

ls -alh
drwxr-xr-x 25 pi   pi   4.0K Aug  9 19:35 domoticz
lrwxrwxrwx  1 pi   pi     11 Aug  9 16:13 ozw -> ozw-1.3.434
drwxr-xr-x 11 pi   pi   4.0K Aug  9 16:07 ozw-1.3.434
mv domoticz domoticz-2709
ln -s domoticz-2709 domoticz

ls -al
lrwxrwxrwx  1 pi   pi       13 Aug  9 19:39 domoticz -> domoticz-2709
drwxr-xr-x 25 pi   pi     4096 Aug  9 19:35 domoticz-2709
lrwxrwxrwx  1 pi   pi       11 Aug  9 16:13 ozw -> ozw-1.3.434
drwxr-xr-x 11 pi   pi     4096 Aug  9 16:07 ozw-1.3.434

Démarrage


Pour démarrer domoticz sous la fomre d'un service recopier le script  domoticz.sh sous le répertoire /etc/init.d:
sudo cp domoticz.sh /etc/init.d 
sudo chmod +x /etc/init.d/domoticz.sh 
sudo update-rc.d domoticz.sh defaults 

Editer le script afin de mettre à jour le chemin d'accès au programme domoticz: 
sudo vi /etc/init.d/domoticz.sh DAEMON=/home/pi/domoticz/domoticz

Le script permet aussi de changer le port utilisé par l'interface Web:
OPTIONS=-www 8080

domoticz peut maintenant être supervisé avec les commandes suivantes:
sudo service domoticz.sh start
sudo service domoticz.sh stop
sudo service domoticz.sh status

Gestion des services


La commande update-rc.d permet d'ajouter, modifier ou supprimer un service.

Ajout

La commande update-rc.d [-n] domoticz.sh defaults ajoute le service domoticz (l’option -n permet de tester la commande sans la jouer).

Suppression

La commande update-rc.d domoticz.sh remove desactive le service domoticz. Cependant, si on souhaite réactiver le service ultérieurement, on pourra exécuter de nouveau la commande suivante: update-rc.d domoticz.sh defaults.



Aucun commentaire:

Enregistrer un commentaire