Raspberry Pi + Zwave

Posted on jeu. 26 novembre 2015 in Domotique

Installation du module

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


Installation du module

Le module s'installe très facilement sur le raspberry, comme sur l'image ci-dessous.

Installation du module

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 !!!