Raspberry Pi + Zwave
Posted on Thu 26 November 2015 in Domotique
Depuis quelques années, je me suis passionné pour la domotique.
J'ai commencé à investir dans les arduino, puis complété par un, 2, et enfin 3 raspberry pi...
Petite nouveauté, je me suis tourné vers le protocol zwave...à travers le module razberry de zwave. Il s'agit d'un module que l'on ajoute au raspberry pi couplé au logiciel z-way pour interagir avec des capteurs (via le protocol zwave).
Source : http://razberry.z-wave.me/
Achat des composants
Zwave Razberry - http://amzn.to/1IdcBZK
Aeon Labs MultiSensor GEN 5 - http://amzn.to/1MTRYP9
Installation du module
Le module s'installe très facilement sur le raspberry, comme sur l'image ci-dessous.
source : http://manuals.zwaveeurope.com/make.php?lang=en&type=&sku=ZME_RAZ_EU
Installation de la partie logicielle
L'installation a été effectuée sur une debian jessie, en lançant la commande suivante :
$ wget -q -O - razberry.z-wave.me/install | sudo bash
une fois installé, il ne reste plus qu'à redémarrer le raspberry pi.
$ sudo reboot
Le server z-way démarre automatiquement, lors du boot.
Initialisation du serveur
Une fois la partie installation effectuée, passons à l'initialisation du serveur.
Si vous ne connaissez pas(ou plus) l'@ip de votre serveur raspberry(zwave), récupérer la sur à travers le site :
https://find.z-wave.me/zboxweb
Il s'agit d'un site web, qui scanne votre réseau afin d'identifier les serveurs locaux présents.
Une fois identifiée, rendez-vous sur à travers votre navigateur à l'url suivante : http://192.168.0.xx:8084/cgi-bin/main.cgi
puis à l'url suivante : http://192.168.0.xx:8083, afin de configurer le serveur.
login : admin // password : admin (par défaut)
une fois connecté, configuré, et capteur apairé, nous obtenons le résultat suivant :
Préparation au développement d'outil
C'est bien d'avoir une interface toute faite, ...mais bon pour les développeurs, c'est toujours mieux de développer ses propres outils.
Il existe une autre méthode afin d'accéder aux données de nos capteurs
{"instances":{"0":{"commandClasses":{"32":{"name":"Basic","data":{"invalidateTime":1448476744,"updateTime":
1448476736,"type":"empty","value":null,"supported":{"invalidateTime":1448476744,"updateTime":1448476736,"type":"bool","value":true},"version":{"invalidateTime":1448476744,"updateTime":1448476738,"type":"int","value":1},"security":{"invalidateTime":1448476735,"updateTime":1448476737,"type":"bool","value":true},"interviewDone":{"invalidateTime":1448476735,"updateTime":
1448476744,"type":"bool","value":true},"interviewCounter":{"invalidateTime":1448476735,"updateTime":1448476744,"type":"int","value":9},"level":{"invalidateTime":1448476744,"updateTime":1448476745,"type":"int","value":0}},"id":32},"48":{"name":"SensorBinary","data":{"invalidateTime":1448476735,"updateTime":1448476736,"type":"empty","value":null,"supported":{"invalidateTime":1448476735,"updateTime":
1448476736,"type":"bool","value":true},"version":{"invalidateTime":1448476737,"updateTime":1448476738,"type":"int","value":1},"security":{"invalidateTime":1448476735,"updateTime":1448476737,"type":"bool","value":true},"interviewDone":{"invalidateTime":1448476735,"updateTime":
1448476746,"type":"bool","value":true},"interviewCounter":{"invalidateTime":1448476735,"updateTime":1448476744,"type":"int","value":9},"typemask":{"invalidateTime":1448476735,"updateTime":1448476744,"type":"int","value":2},"1":{"invalidateTime":1448476745,"updateTime":
1448637300,"type":"empty","value":null,"sensorTypeString":{"invalidateTime":1448476745,"updateTime":1448476746,"type":"string","value":"General purpose"},"level":{"invalidateTime":1448637299,"updateTime":1448637300,"type":"bool","value":true}}},"id":48},"49":
{"name":"SensorMultilevel","data":{"invalidateTime":1448476735,"updateTime":1448476736,"type":"empty","value":null,"supported":{"invalidateTime":1448476735,"updateTime":1448476736,"type":"bool","value":true},"version":{"invalidateTime":1448476737,"updateTime":1448476738,"type":"int","value":5},"security":{"invalidateTime":1448476735,"updateTime":1448476737,"type":"bool","value":true},"interviewDone":{"invalidateTime":1448476735,"updateTime":
1448476755,"type":"bool","value":true},"interviewCounter":{"invalidateTime":1448476735,"updateTime":1448476744,"type":"int","value":9},"typemask":{"invalidateTime":1448476735,"updateTime":1448476746,"type":"binary","value":[21]},"1":{"invalidateTime":1448637000,"updateTime":1448637441,"type":"empty","value":null,"sensorTypeString":{"invalidateTime":1448476750,"updateTime":1448476751,"type":"string","value":"Temperature"},"val":{"invalidateTime":1448476750,"updateTime":1448637441,"type":"float","value":21.9},"deviceScale":{"invalidateTime":1448476750,"updateTime":1448637441,"type":"int","value":0},"scale":{"invalidateTime":1448476750,"updateTime":1448637441,"type":"int","value":0},"scaleString":{"invalidateTime":1448476750,"updateTime":1448637441,"type":"string","value":"°C"}},"3":{"invalidateTime":1448637300,"updateTime":1448637440,"type":"empty","value":null,"sensorTypeString":{"invalidateTime":1448476751,"updateTime":1448476752,"type":"string","value":"Luminiscence"},"val":{"invalidateTime":1448476751,"updateTime":1448637440,"type":"float","value":19},"deviceScale":{"invalidateTime":1448476751,"updateTime":1448637440,"type":"int","value":1},"scale":{"invalidateTime":1448476751,"updateTime":1448637440,"type":"int","value":1},"scaleString":{"invalidateTime":1448476751,"updateTime":1448637440,"type":"string","value":"Lux"}},"5":{"invalidateTime":1448637300,"updateTime":1448637441,"type":"empty","value":null,"sensorTypeString":{"invalidateTime":1448476752,"updateTime":1448476753,"type":"string","value":"Humidity"},"val":{"invalidateTime":1448476752,"updateTime":1448637441,"type":"float","value":44},"deviceScale":{"invalidateTime":1448476752,"updateTime":1448637441,"type":"int","value":0},"scale":{"invalidateTime":1448476752,"updateTime":1448637441,"type":"int","value":0},"scaleString":{"invalidateTime":1448476752,"updateTime":1448637441,"type":"string","value":"%"}}},"id":49},"89":{"name":"AssociationGroupInformation","data":
23.9
{"invalidateTime":1448476750,"updateTime":1448638502,"type":"float","value":23.9}
0
{"invalidateTime":1448638500,"updateTime":1448638501,"type":"empty","value":null,"sensorTypeString":
{"invalidateTime":1448476751,"updateTime":1448476752,"type":"string","value":"Luminiscence"},"val":
{"invalidateTime":1448476751,"updateTime":1448638501,"type":"float","value":19},"deviceScale":{"invalidateTime":1448476751,"updateTime":1448638501,"type":"int","value":1},"scale":
{"invalidateTime":1448476751,"updateTime":1448638501,"type":"int","value":1},"scaleString":{"invalidateTime":1448476751,"updateTime":1448638501,"type":"string","value":"Lux"}}
{"invalidateTime":1448476751,"updateTime":1448638501,"type":"float","value":19}
45
{"invalidateTime":1448476752,"updateTime":1448638502,"type":"float","value":45}
Dautres uRI sont interessantes :
- Listing des capteurs :
http://192.168.1.64:8083/JS/Run/controller.devices
- Récupération de la valeur du capteur :
http://192.168.1.64:8083/JS/Run/controller.devices.get("ZWayVDev_zway_2-0-49-3").get("metrics")
Petit troubleshooting
Suite à l'installation il m'a été impossible d'inclure mon capteur aeon. Je me suis donc rendu au sein du répertoire d'installation du serveur Zway.
Puis j'ai relancé le service à la main...
petit pb de librairie, ...
$ sudo export LD_LIBRARY_PATH=/opt/z-way-server/libs
et feu, en mode débuggage,voici la ligne qui m'a posé problème
$ cd /opt/z-way-server
$ ./z-way-server
...
...
Failed to load module modinstaller.so: libarchive.so.12: cannot open shared object file: No such file or directory
...
Après une petite recherche, j'ai bien la librairie libarchive
d'installé, mais la version 13...et non la 12....failed.
Vive les systèmes trop récents ^^
Du coup j'ai testé une vieille technique de sioux...
$ cd /usr/lib/arm-linux-gnueabihf/
$ ln -s libarchive.so.13 libarchive.so.12
Puis j'ai redémarré le raspberry, et la, désormais ça roxe !!!