Introduction
Cet article résume la procèdure de compilation et d'installation d'OpenZWave Control Panel (OZWCP) 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
- Des client git et subversion
Clients git et subversion
Le client git s'installe depuis le repository de paquets Debian avec la commande suivante:sudo apt-get install git subversion
Outils de compilation C++
Les librairies nécessaires à la compilation s'installent avec les deux commandes suivantes:sudo apt-get install build-essential -y
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 d'OZWCP
Codes sources Libmicrohttpd
Depuis le répertoire racine des compilations qui est par défaut /home/pi, récupérer les sources du serveur http utilisé par ozwcp avec l'aide de la commande suivante:wget http://ftpmirror.gnu.org/libmicrohttpd/libmicrohttpd-0.9.42.tar.gz
Compilation de libmicrohttpd
Depuis le répertoire racine des compilations qui est par défaut /home/pi, la compilation de serveur http se réalise avec l'aide des commandes suivantes:tar -xvzf ./libmicrohttpd-0.9.42.tar.gz
rm libmicrohttpd-0.9.42.tar.gz
cd libmicrohttpd-0.9.42
./configure
make
Création d'un lien vers libmicrohttpd
La librairie libmcrohttpd correspond à la version 0.9.42. Je recommande la création d'un lien symbolique vers cette librairie depuis le répertoire racine utilisé pour les compilations ((/home/pi):ln -s ./libmicrohttpd-0.9.42 libmicrohttpd
drwxr-xr-x 25 pi pi 4,0K août 18 20:39 domoticz-2709
lrwxrwxrwx 1 pi pi 22 août 27 09:55 libmicrohttpd -> ./libmicrohttpd-0.9.42
drwxr-xr-x 7 pi pi 4,0K août 27 09:44 libmicrohttpd-0.9.42
lrwxrwxrwx 1 pi pi 11 août 9 18:13 ozw -> ozw-1.3.434
drwxr-xr-x 11 pi pi 4,0K août 9 18:07 ozw-1.3.434
Codes source ozwcp
Depuis le répertoire racine des compilations qui est par défaut /home/pi, récupérer les sources depuis un repository subversion avec l'aide de la commande suivante:svn checkout http://openzwave-control-panel.googlecode.com/svn/trunk/ ozwcp
Compilation d'OZWCP
La compilation d'OZWCP se réalise sous le répertoire ozwcp et nécessite une modification du fichier Makefile:#
# Makefile for OpenzWave Control Panel application
# Greg Satz
# GNU make only
.SUFFIXES: .cpp .o .a .s
CC := $(CROSS_COMPILE)gcc
CXX := $(CROSS_COMPILE)g++
LD := $(CROSS_COMPILE)g++
AR := $(CROSS_COMPILE)ar rc
RANLIB := $(CROSS_COMPILE)ranlib
DEBUG_CFLAGS := -Wall -Wno-unknown-pragmas -Wno-inline -Wno-format -g -DDEBUG
RELEASE_CFLAGS := -Wall -Wno-unknown-pragmas -Wno-format -O3 -DNDEBUG
DEBUG_LDFLAGS := -g -lrt
# Change for DEBUG or RELEASE
CFLAGS := -c $(DEBUG_CFLAGS)
LDFLAGS := $(DEBUG_LDFLAGS)
OPENZWAVE := ../ozw
LIBMICROHTTPD := ../libmicrohttpd/src/microhttpd/.libs/libmicrohttpd.a
INCLUDES := -I $(OPENZWAVE)/cpp/src -I $(OPENZWAVE)/cpp/src/command_classes/ \
-I $(OPENZWAVE)/cpp/src/value_classes/ -I $(OPENZWAVE)/cpp/src/platform/ \
-I $(OPENZWAVE)/cpp/src/platform/unix -I $(OPENZWAVE)/cpp/tinyxml/ \
-I ../libmicrohttpd/src/include
# Remove comment below for gnutls support
GNUTLS := -lgnutls -lgcrypt
# for Linux uncomment out next three lines
LIBZWAVE := $(wildcard $(OPENZWAVE)/*.a)
LIBUSB := -ludev
LIBS := $(LIBZWAVE) $(GNUTLS) $(LIBMICROHTTPD) -pthread $(LIBUSB)
Exécution d'OZWCP
Depuis le répaertoire de compilation d'OZWCP (/home/pi/ozwcp), créer un lien symbolique vers le répertoire de configuration d'open zwave:~/ozwcp $ ln -s ../ozw/config/ ./config
Lancer le serveur Web avec l'aide de la commande suivante, puis se connecter depuis un web browser:
~/ozwcp $ ./ozwcp -p 9090
2015-08-27 10:13:20.399 Always, OpenZwave Version 1.3.434 Starting Up
webserver starting port 9090
Aucun commentaire:
Enregistrer un commentaire