dimanche 9 août 2015

OpenZWave - OZWCP

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