Installer un contrôleur domotique Z-Wave Aeon Labs Z-Stick S

Bonjour,

Je voudrais installer un controleur domotique “Le Contrôleur Z-Wave Aeon Labs Z-Stick S2” sur ma Dreamplug.

En équipement z-wave j’ai actuellement :
1x Controleur stick USB AEON LABS S2,
3x thermostat Danfoss,
3x Capteur de température et d’humidité Z-Wave ST814,
1x Compteur de consommation électrique Z-Wave (Tableau électrique),
1x Module prise On/Off Z-Wave AN1576,
1x Module prise variateur Z-Wave AD142-6.

Quel solution existe t’il pour contrôler son environnement Z-Wave sous linux ?
Avec le stick USB AEON LABS S2:
J’ai branché mon stick USB AEON LABS S2 sur mon serveur et immédiatement et j’ai vérifié si elle avait été correctement détecté par le système d’exploitation Debian Squeeze 2.6.39.4 arm que j’utilise sur mon serveur arm.

Extrait lsusb

J’ai aussi vérifié dmesg pour voir ce qu’il était déterminé à partir de l’appareil et comme vous pouvez le voir, il charge les pilotes et affecté en tant que / dev/ttyUSB0:

serveur@debian:~/Domotique/z-wave/zwapi$ ls /dev/ttyUSB* /dev/ttyUSB0 serveur@debian:~/Domotique/z-wave/zwapi$

Extrait dmesg

usb 1-1.3.1: USB disconnect, device number 7 cp210x ttyUSB0: cp210x converter now disconnected from ttyUSB0 cp210x 1-1.3.1:1.0: device disconnected usb 1-1.3.1: new full speed USB device number 11 using orion-ehci cp210x 1-1.3.1:1.0: cp210x converter detected usb 1-1.3.1: reset full speed USB device number 11 using orion-ehci usb 1-1.3.1: cp210x converter now attached to ttyUSB0

Puis je vérifie que l’ID, été explicitement détecté comme une clé USB
serveur@debian:~$ ls /dev/serial/by-id usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 serveur@debian:~$

Donc si je comprend bien il n’y a pas besoin d’installer openzwave (le pilote libre de linux) vue que le stick et reconnu ?
Maintenant j’installe azw ( z-wave.alsenet.com/index.php/Main_Page).
J’ai télécharger AZW ici z-wave.alsenet.com/images/7/76/AZW.tgz puis j’ai décompressé l’archive

les fichiers de azw
serveur@debian:~/Domotique/z-wave/zwapi$ ls -alF total 224 drwxr-xr-x 2 serveur serveur 4096 7 juil. 14:04 ./ drwxr-xr-x 3 serveur serveur 4096 7 juil. 13:32 ../ -rw-rw---- 1 serveur serveur 61 17 mars 2010 AZW.sh -rw-rw---- 1 serveur serveur 357 7 juil. 14:04 config.xml -rw-r----- 1 serveur serveur 2491 7 juil. 13:35 config.xml_original.bak -rw-rw---- 1 serveur serveur 1832 26 mars 2010 log.py -rw-rw---- 1 serveur serveur 9430 30 mars 2010 rules.py -rw-rw---- 1 serveur serveur 1598 23 mars 2010 SerialAPI.py -rw-r----- 1 serveur serveur 2931 7 juil. 14:04 SerialAPI.pyc -rw-rw---- 1 serveur serveur 2957 30 mars 2010 SNet_.py -rw-rw---- 1 serveur serveur 2732 24 mars 2010 SNet.py -rw-rw---- 1 serveur serveur 3887 23 mars 2010 STimer.py -rw-rw---- 1 serveur serveur 662 23 mars 2010 test.py -rw-rw---- 1 serveur serveur 15276 23 mars 2010 ZWApi_define.py -rw-rw---- 1 serveur serveur 72424 27 mars 2010 ZWApi.py -rw-r----- 1 serveur serveur 68884 7 juil. 14:04 ZWApi.pyc serveur@debian:~/Domotique/z-wave/zwapi$

Configuration du fichier config.xml
serveur@debian:~/Domotique/z-wave/zwapi$ cat config.xml <config> <program device="/dev/ttyUSB0" host="" port="12345"/> <devices> <device id="1" name="PC" description="PC Controller"/> <device id="2" name="Lamp" description="Lampe test bureau"/> </devices> <rules> </rules> <startuprules> </startuprules> </config>serveur@debian:~/Domotique/z-wave/zwapi$

Quand j’exécute le fichier “rules.py” j’ai ce message :
serveur@debian:~/Domotique/z-wave/zwapi$ python rules.py Traceback (most recent call last): File "rules.py", line 17, in <module> import ZWApi, STimer, SNet, log File "/home/serveur/Domotique/z-wave/zwapi/ZWApi.py", line 20, in <module> import SerialAPI File "/home/serveur/Domotique/z-wave/zwapi/SerialAPI.py", line 12, in <module> import serial ImportError: No module named serial serveur@debian:~/Domotique/z-wave/zwapi$

Fichier rules.py
Ligne 17 : import ZWApi, STimer, SNet, log

Fichier ZWApi.py
Ligne 20 : import SerialAPI

Fichier SerialAPI.py

Ligne 12 : import serial

Quand j’envoi la commande python pour la connexion telnet en exécutant la commande “zw.Lamp.BasicSet (0)”
serveur@debian:~/Domotique/z-wave/zwapi$ echo "zw.Lamp.BasicSet(0)" | nc localhost 12345 localhost [127.0.0.1] 12345 (?) : Connection refused serveur@debian:~/Domotique/z-wave/zwapi$

Et avec la domotique x10 telnet marche ?

serveur@debian:~/Domotique/z-wave/zwapi$ nc -c "echo pl e1 on" localhost 1099 serveur@debian:~/Domotique/z-wave/zwapi$

Pourtant j’ai branché a une prise 220V un Plug-in Dimmer receiver AD142-6 avec une lampe et le stick usb sur le serveur ?
Puis j’ai m’y la clé usb à coté de Plug-in et j’ai appuyé sur le bouton de la clé usb, pendant que le bouton clignoté, je l’ai laissé a côté de plug-in puis je l’ai rebranché sur le serveur.

j’ai suivi ce tuto :
sites.google.com/a/thewhytehous … ancemodule

Quelqu’un à t’il une idée ?
Merci.

Bonsoir,
j’utilise ce stick avec python-openzwave et domogik.
Il est bien reconnu, mais domogik est assez gourmant en ressoureces. Mon un dreamplug, il faut faire quelques optimisations, en particulier utiliser le hub C, et réduire les logs au minimum.
Quelques liens:
bibi21000.gallet.info/index.php/ … _REPO.html

docs.domogik.org/plugin/ozwave/d … zwave.html

Bonsoir,

Merci de votre réponse.
AZW est un api.
Comment faites vous pour allumer/mettre en marche —> Éteindre/arrêter une lumière un appareil depuis le shell/terminal de Linux ?
Cela permet aussi d’allumer une lumière depuis un autre système domotique comme le x10
Si le capteur x10 est On alors allume la lumière z-wave via un script. Du multitechno.
Après avec domogik, j’ai lu sur le net, que les modules ne sont pas tous reconnu et les scénarios ne fonctionnent pas toujours .

Merci

pour le zwave pur, tu peux utiliser le control-panel fourni par openzwace.
Pour mixer les technos, il existe le xpl.
C’est ce qui est utilisé par domogik, mais il existe certainement d’autre hub xpl sous linux.
xplproject.org.uk/
planete-domotique.com/blog/2 … ocole-xpl/

Bonjour,

Je ne comprend pas ce qui ce passe, mais impossible d’installer python-openzwave, j’ai des erreur de compilation ?

voila ce que j’ai fait :

[code]sudo apt-get install mercurial subversion
sudo: unable to resolve host debian
[sudo] password for serveur:
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
mercurial est déjà la plus récente version disponible.
subversion est déjà la plus récente version disponible.
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.

[/code]

[code]sudo pip install cython==0.14
sudo: unable to resolve host debian
sudo: pip: command not found[/code]

Installation de quelques modules python
sudo apt-get install python-dev python-setuptools python-louie sudo: unable to resolve host debian Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait python-setuptools est déjà la plus récente version disponible. python-louie est déjà la plus récente version disponible. python-dev est déjà la plus récente version disponible. 0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.

[code]sudo: unable to resolve host debian
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
make est déjà la plus récente version disponible.
python-sphinx est déjà la plus récente version disponible.
0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.

[/code]

Installation de quelques contributions de sphinx
sudo pip install sphinxcontrib-blockdiag sphinxcontrib-actdiag sudo: unable to resolve host debian sudo: pip: command not found sudo pip install sphinxcontrib-nwdiag sphinxcontrib-seqdiag sudo: unable to resolve host debian sudo: pip: command not found

Installation des outils communn et des développements d’entêtes libudev, Pour compiler la bibliothèque openzwave

sudo apt-get install build-essential libudev-dev g++ sudo: unable to resolve host debian Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait build-essential est déjà la plus récente version disponible. g++ est déjà la plus récente version disponible. libudev-dev est déjà la plus récente version disponible. 0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.

Création du dossier z-wave : /home/serveur/Domotique/z-wave
mkdir -v /home/serveur/Domotique/z-wave cd /home/serveur/Domotique/z-wave

Téléchargement des sources de python-openzwave
ceci vas crée une copie du dépôt officiel sur votre ordinateur dans le répertoire : python-openzwave

hg clone https://code.google.com/p/python-openzwave/ destination directory: python-openzwave abandon : destination 'python-openzwave' is not empty

Changement de dossier vers /home/serveur/Domotique/z-wave/python-openzwave
cd /home/serveur/Domotique/z-wave/python-openzwave

Met à jour votre référentiel local dans la dernière version de python-openzwave et openzwave
./update.sh ----------------------------------------------------------------- | Update sources of python-openzwave | ----------------------------------------------------------------- pulling from https://code.google.com/p/python-openzwave/ searching for changes aucun changement trouvé 0 files updated, 0 files merged, 0 files removed, 0 files unresolved ----------------------------------------------------------------- | Update sources of openzwave | ----------------------------------------------------------------- Update openzwave directory À la révision 663. ----------------------------------------------------------------- | Sources updated | -----------------------------------------------------------------

Liste les fichiers télécharger et mis à jour
ls -alF total 124 drwxr-xr-x 12 serveur serveur 4096 10 juil. 07:35 ./ drwxr-xr-x 7 serveur serveur 4096 10 juil. 07:17 ../ drwxr-xr-x 2 serveur serveur 4096 7 juil. 23:32 api/ drwxr-xr-x 3 serveur serveur 4096 8 juil. 12:58 build/ -rwxr-xr-x 1 serveur serveur 2275 7 juil. 23:32 compile.sh* -rw-r--r-- 1 serveur serveur 808 7 juil. 23:32 COPYRIGHT.txt drwxr-xr-x 3 serveur serveur 4096 7 juil. 23:32 debian/ -rw-r--r-- 1 serveur serveur 3312 7 juil. 23:32 DEVEL.txt drwxr-xr-x 3 serveur serveur 4096 8 juil. 00:12 docs/ drwxr-xr-x 4 serveur serveur 4096 7 juil. 23:32 examples/ -rw-r--r-- 1 serveur serveur 2358 7 juil. 23:32 EXAMPLES.txt drwxr-xr-x 3 serveur serveur 4096 10 juil. 07:35 .hg/ -rwxr-xr-x 1 serveur serveur 250 7 juil. 23:32 .hgignore* -rwxr-xr-x 1 serveur serveur 1770 7 juil. 23:32 INSTALL_ARCH.txt* -rwxr-xr-x 1 serveur serveur 2205 7 juil. 23:32 INSTALL_MAN.txt* -rwxr-xr-x 1 serveur serveur 2434 7 juil. 23:32 INSTALL_REPO.txt* -rwxr-xr-x 1 serveur serveur 1309 7 juil. 23:32 install.sh* drwxr-xr-x 2 serveur serveur 4096 8 juil. 12:58 lib/ -rwxr-xr-x 1 serveur serveur 2876 7 juil. 23:32 make_archive.sh* -rwxr-xr-x 1 serveur serveur 1043 7 juil. 23:32 make_distdir.sh* -rwxr-xr-x 1 serveur serveur 1261 7 juil. 23:32 make_docs.sh* drwxr-xr-x 3 serveur serveur 4096 7 juil. 23:32 manager/ drwxr-xr-x 9 serveur serveur 4096 7 juil. 23:42 openzwave/ -rwxr-xr-x 1 serveur serveur 549 7 juil. 23:32 ozwsh.sh* -rw-r--r-- 1 serveur serveur 872 7 juil. 23:32 README.txt -rwxr-xr-x 1 serveur serveur 3187 7 juil. 23:32 setup-api.py* -rwxr-xr-x 1 serveur serveur 4577 7 juil. 23:32 setup-lib.py* drwxr-xr-x 2 serveur serveur 4096 7 juil. 23:32 tests/ -rwxr-xr-x 1 serveur serveur 874 7 juil. 23:32 uninstall.sh* -rwxr-xr-x 1 serveur serveur 946 7 juil. 23:32 update.sh*


Quand je compile j’ai plein d’erreur.

[code] ./compile.sh

/home/serveur/Domotique/z-wave/python-openzwave/lib/libopenzwave.pyx:3442:69: undeclared name not builtin: values_map

Error converting Pyrex file to C:
------------------------------------------------------------
...
            elif datatype == "Button":
                type_bool = value
                cret = self.manager.SetSceneValue(sceneid, values_map.at(id), type_bool)
                ret = 1 if cret else 0
            elif datatype == "List":
                type_string = string(value)
                                   ^
------------------------------------------------------------

/home/serveur/Domotique/z-wave/python-openzwave/lib/libopenzwave.pyx:3445:36: undeclared name not builtin: string

Error converting Pyrex file to C:
------------------------------------------------------------
...
                type_bool = value
                cret = self.manager.SetSceneValue(sceneid, values_map.at(id), type_bool)
                ret = 1 if cret else 0
            elif datatype == "List":
                type_string = string(value)
                cret = self.manager.SetSceneValueListSelection(sceneid, values_map.at(id), type_string)
                                                                                 ^
------------------------------------------------------------

/home/serveur/Domotique/z-wave/python-openzwave/lib/libopenzwave.pyx:3446:82: undeclared name not builtin: values_map

Error converting Pyrex file to C:
------------------------------------------------------------
...
createScene_, removeScene_, activateScene_, \
getSceneLabel_, removeSceneValue_, addSceneValue_, setSceneValue_, \
sceneGetValues_

        '''
        self.manager.SetSceneLabel(sceneid, string(label))
                                                 ^
------------------------------------------------------------

/home/serveur/Domotique/z-wave/python-openzwave/lib/libopenzwave.pyx:3487:50: undeclared name not builtin: string
building 'libopenzwave' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Iopenzwave/cpp/src -Iopenzwave/cpp/src/value_classes -Iopenzwave/cpp/src/platform -Iopenzwave/cpp/build/linux -I/usr/include/python2.6 -c lib/libopenzwave.cpp -o build/temp.linux-armv5tel-2.6/lib/libopenzwave.o
cc1plus: warning: command line option "-Wstrict-prototypes" is valid for Ada/C/ObjC but not for C++
lib/libopenzwave.cpp:1:2: error: #error Do not use this file, it is the result of a failed Cython compilation.
error: command 'gcc' failed with exit status 1
serveur@debian:~$[/code]

Mes versions :

[code] serveur@debian:~$ python -V
Python 2.6.6

serveur@debian:~$ cython -V
Cython version 0.12.1   [/code]    

Edité le 11/07/13 00h42
Pour pip j’ai pas percuté car apt-get install ne trouvé rien.
Finalement il s’agit de python-pip.

serveur@debian:~$ sudo apt-get install python-pip sudo: unable to resolve host debian [sudo] password for serveur: Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Les NOUVEAUX paquets suivants seront installés : python-pip 0 mis à jour, 1 nouvellement installés, 0 à enlever et 0 non mis à jour. Il est nécessaire de prendre 67,8 ko dans les archives. Après cette opération, 332 ko d'espace disque supplémentaires seront utilisés. Réception de : 1 http://ftp.us.debian.org/debian/ squeeze/main python-pip all 0.7.2-1 [67,8 kB] 67,8 ko réceptionnés en 1s (56,0 ko/s) Sélection du paquet python-pip précédemment désélectionné. (Lecture de la base de données... 70134 fichiers et répertoires déjà installés.) Dépaquetage de python-pip (à partir de .../python-pip_0.7.2-1_all.deb) ... Traitement des actions différées (« triggers ») pour « man-db »... Paramétrage de python-pip (0.7.2-1) ... Traitement des actions différées (« triggers ») pour « python-support »... serveur@debian:~/Domotique/z-wave/Cython-0.19.1$ sudo apt-get install cython sudo: unable to resolve host debian Lecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait cython est déjà la plus récente version disponible. 0 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour. serveur@debian:~$

Pour cython ,il faudrait la version 0.14, mais il y a que la version 1.19.1 disponible a télécharger.
Je l’ai téléchargé est décompressé puis installé.
cython.org/release/Cython-0.19.1.tar.gz

Mais quand je compile de nouveau, j’ai encore des erreurs ?

[code]serveur@debian:~/Domotique/z-wave/python-openzwave$ ./compile.sh

Build openzwave

echo ‘char ozw_vers[] = "OpenZWave version 1.0.’svnversion ../..’";’ > vers.c
gcc -c -Wall -Wno-unknown-pragmas -Wno-inline -Wno-format -Werror -g -DDEBUG -DLOG_STDERR -fPIC -I …/…/src -I …/…/src/command_classes/ -I …/…/src/value_classes/ -I …/…/src/platform/ -I …/…/src/platform/unix -I …/…/tinyxml/ -I …/…/hidapi/hidapi/ -o vers.o vers.c
ar rc …/…/lib/linux/libopenzwave.a vers.o
g++ -shared -Wl,-soname,libopenzwave.so -o …/…/lib/linux/libopenzwave.so tinystr.o tinyxml.o tinyxmlerror.o tinyxmlparser.o hid.o Alarm.o ApplicationStatus.o AssociationCommandConfiguration.o Association.o Basic.o BasicWindowCovering.o Battery.o ClimateControlSchedule.o Clock.o CommandClass.o CommandClasses.o Configuration.o ControllerReplication.o CRC16Encap.o EnergyProduction.o Hail.o Indicator.o Language.o Lock.o ManufacturerSpecific.o Meter.o MeterPulse.o MultiCmd.o MultiInstanceAssociation.o MultiInstance.o NodeNaming.o NoOperation.o Powerlevel.o Proprietary.o Protection.o SceneActivation.o SensorAlarm.o SensorBinary.o SensorMultilevel.o SwitchAll.o SwitchBinary.o SwitchMultilevel.o SwitchToggleBinary.o SwitchToggleMultilevel.o ThermostatFanMode.o ThermostatFanState.o ThermostatMode.o ThermostatOperatingState.o ThermostatSetpoint.o UserCode.o Version.o WakeUp.o ValueBool.o ValueButton.o ValueByte.o Value.o ValueDecimal.o ValueInt.o ValueList.o ValueRaw.o ValueSchedule.o ValueShort.o ValueStore.o ValueString.o Controller.o Event.o FileOps.o HidController.o Log.o Mutex.o SerialController.o Stream.o Thread.o TimeStamp.o Wait.o EventImpl.o FileOpsImpl.o LogImpl.o MutexImpl.o SerialControllerImpl.o ThreadImpl.o TimeStampImpl.o WaitImpl.o Driver.o Group.o Manager.o Msg.o Node.o Options.o Scene.o Utils.o vers.o

Build python-openzwave

running build
running build_py
package init file ‘lib/init.py’ not found (or not a regular file)
package init file ‘lib/init.py’ not found (or not a regular file)
running build_ext
skipping ‘lib/libopenzwave.cpp’ Cython extension (up-to-date)
building ‘libopenzwave’ extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Iopenzwave/cpp/src -Iopenzwave/cpp/src/value_classes -Iopenzwave/cpp/src/platform -Iopenzwave/cpp/build/linux -I/usr/include/python2.6 -c lib/libopenzwave.cpp -o build/temp.linux-armv5tel-2.6/lib/libopenzwave.o
cc1plus: warning: command line option “-Wstrict-prototypes” is valid for Ada/C/ObjC but not for C++
In file included from /usr/include/c++/4.4/utility:63,
from lib/libopenzwave.cpp:311:
openzwave/cpp/src/value_classes/ValueID.h: In constructor ‘std::pair<_T1, _T2>::pair() [with _T1 = long long unsigned int, _T2 = OpenZWave::ValueID]’:
lib/libopenzwave.cpp:3043: instantiated from here
openzwave/cpp/src/value_classes/ValueID.h:244: error: ‘OpenZWave::ValueID::ValueID()’ is private
/usr/include/c++/4.4/bits/stl_pair.h:80: error: within this context
error: command ‘gcc’ failed with exit status 1
serveur@debian:~/Domotique/z-wave/python-openzwave$ [/code]

Je ne trouve pas ce qui provoque l’erreurs de compilation ?
Merci.

Le plus simple est de prendre contact avec le développeur de python-openzwave sur irc (salon domogik).
Il “traine” sur irc quasiment tout les soirs.
Pour cython, je l’ai installé avec easy-install (équivalent de pip), ainsi que tous les modules python demandés.

Pour installer python-openzwave, tu meux le faire via un script d’install, ou le faire étape par étape (voir le site de bibi).