Utilisez votre Raspberry Pi avec Open Z-Wave

par | Avr 5, 2013 | Domotique | 8 commentaires

 

Projet lancé il y a maintenant tout juste un an par la Fondation Britannique du même nom, le Raspberry Pi est un PC low cost (environ 40€) de la taille d’une carte de crédit. Equipé de 2 ports USB, ce petit ordinateur est donc capable de communiquer avec un dongle USB Z-Wave tel que le Z-Stick S2 de Aeon Labs. Nous allons donc voir comment utiliser le Raspberry Pi comme box domotique grâce à la librairie Open Z-Wave.

 

open zwave raspberry pi001

 

La librairie Open Source nommée Open Z-Wave présente l’avantage d’être gratuite. Quelques logiciels l’utilisent tels que Lights Control, aGoControl ou HomeGenie. Nous vous proposons une petite présentation ainsi qu’un test de ces solutions.


Matériel requis :

  • Un Raspberry Pi type B 512Mo, avec clavier, souris, écran, et connecté au réseau local.
  • Une carte SD de 4Go sur laquelle seront copiées les différentes images fournies.
  • Un contrôleur USB Z-Wave, le Z-Stick S2 de chez Aeon Labs, qui présente l’avantage d’être autonome (auto-alimenté) pour faciliter les inclusions et exclusions de périphériques du réseau Z-Wave, et qui servira ensuite comme contrôleur principal de notre installation. Ce contrôleur est supporté par la librairie Open Z-Wave, et disponible sur le Raspberry Pi.
  • Des actionneurs Z-Wave tels que des MicroSmartEnergy Illuminator de chez Aeon Labs, permettant de dimmer des charges lumineuses, et de remonter leur consommations instantanée.

 

On a là les différents éléments pour monter une petite maquette low cost qui permettra de se faire progressivement la main et de bien comprendre les principes de base de la technologie Z-Wave.

1) Création du réseau Z-Wave

On doit tout d’abord créer un réseau Z-Wave en associant les différents modules Z-Wave que l’on souhaite contrôler au sein de ce réseau. Pour cela, le contrôleur Z-Stick S2 nous simplifie particulièrement la tâche.

On active le mode « appariement » de ce contrôleur en appuyant sur le bouton présent sur son boîtier. La Led de contrôle du Z-Stick S2 se met alors à clignoter lentement, indiquant que l’on est en mode « inclusion ». Pour chacun des modules à ajouter, on approchera alors le Z-Stick S2 du module, et on cliquera sur le bouton d’appariement du module (le nombre d’appuis peut dépendre du constructeur, ici, chez Aeon Labs, un appui suffi). Le Z-Stick S2 confirmera l’inclusion du module par une brève pause du clignotement, puis repassera automatiquement en mode inclusion, prêt pour inclure dans notre réseau le module suivant. On effectuera donc cette opération d’appariement pour chacun de nos modules.

Notre mini réseau Z-Wave est établi (un contrôleur, et deux modules dimmers), mais reste maintenant à le contrôler. C’est là qu’intervient le Raspberry Pi.

2) Installation du Raspberry Pi

On se basera sur l’image OpenZWave-Backup1-15-03-2013.img, qui sera copiée sur une carte SD de 4Go en utilisant l’utilitaire Win32DiskImage (pour Windows). Cette image que nous avons créée fournie différentes solutions pré-installées, ce qui vous permettra de tester différentes interfaces de contrôle de votre installation Z-Wave.

Connecter le contrôleur Z-Stick S2 a notre Raspberry Pi, et démarrez le Raspberry Pi.

Une fois que l’on se sera loggé avec les login usuel user : pi, mot de passe : raspberry, on pourra retrouver les différents messages de démarrage grâce à la commande dmesg, et l’on pourra contrôler que le contrôleur Z-Stick S2 a bien été reconnu.
On voit que le Z-Stick S2 est détecté par Linux en tant que Bridge USB-UART CP2102, et que le device associé à notre contrôleur Z-Stick S2 correspond à /dev/ttyUSB0 :


open zwave raspberry pi002


3) Test basic de l’installation avec OZWControlPanel

La librairie Open Z-Wave fournit un outil de base ozwcp, peu ergonomique mais permettant de vérifier que notre contrôleur est bien reconnu et que l’on va pouvoir le piloter pour actionner nos différents modules. Cet outil est constitué d’un petit web serveur, et l’on accédera a l’interface Web de contrôle via un simple browser Web.

Pour simplifier les choses, on a créé sur le Bureau le shell nommé 1-StartOzwController.sh qu’il suffit de lancer en double cliquant dessus, puis en sélectionnant « Exécuter ».

Un browser Web est lancé ainsi qu’un terminal présentant les logs du serveur ozwcp.

On va donc renseigner le champ DeviceName avec la valeur /dev/ttyUSB0, qui correspond a notre contrôleur Z-Stick S2, et cliquer sur le bouton « Initialize ».

Si tout se passe bien, plusieurs messages apparaissent dans le Log Output, permettant de confirmer que le Raspberry Pi communique bien avec le contrôleur Z-Stick S2.


open zwave raspberry pi003

 

Dans la liste des Devices, on retrouve bien notre Z-Stick S2 en tant que Static Controller, et nos deux modules SmartEnergy Illuminator en tant que Routing Slave.

On pourra commander l’un de nos modules en le sélectionnant dans la liste des Devices, en sélectionnant Current Values, en indiquant le pourcentage de luminosité désiré dans Level, et en cliquant sur le bouton Submit associé.

Cette interface, bien que peu ergonomique, permet néanmoins d’effectuer beaucoup d’actions…

On va maintenant pouvoir tester différents interfaces de contrôles simples mais plus ergonomiques, se basant sur cette librairie Open Z-Wave.

 

4) Interface de contrôle basique

Cette interface de contrôle basique est développée par Thomas Loughlin.
Elle est elle aussi basée sur un petit serveur Web qui génère automatiquement une page Html présentant les devices détectés sur notre réseau Z-Wave.

Le shell nommé 2-StartBasic.sh présent sur le bureau permet de lancer cette interface.
On pourra allumer et éteindre nos lampes en cliquant simplement sur les icônes affichées dans la page Web.

NB : un rafraîchissement de la page est parfois nécessaire pour avoir un affichage à jour…

 

open zwave raspberry pi004

 

Si votre Raspberry Pi est installé au sein d’un réseau informatique, vous pourrez également accéder a cette interface de contrôle depuis un PC ou smartphone (ici, un iPad) :

 

open zwave raspberry pi005

 

On voit là un des avantages de la technologie Z-Wave : il n’y a pas de configuration spécifique à effectuer au niveau des interfaces de contrôle, le contrôleur Z-Wave (ici notre Z-Stick S2) se charge de référencer et de contrôler les différents composants au sein du réseau qu’il gère.

Le Raspberry Pi se charge ici simplement de présenter nos différents modules dans une page web.
On reste ici néanmoins à un niveau très basique ou l’on ne peut que contrôler l’état ON/OFF individuel de nos modules… passons donc à un niveau supérieur, qui va nous permettre de définir entres autres des scénarios…

 

5) Interface de controle intermédiaire : LightsControl

Cette interface de contrôle plus évoluée est développée par Conrad Vassallo.
Elle est elle aussi basée sur un petit serveur Web équivalent à celui de l’interface basique précédente, mais elle présente l’avantage de pouvoir définir des scènes et des événements planifiés, et de décrire la localisation des différents modules en termes d’étages, de pièces… Ces différentes informations sont stockées dans une base de données SQLlite.

On commencera donc par recopier une base de données vide pour pouvoir partir d’une configuration « from scratch » avec les commandes suivantes :
cd /usr/share/ngnix/www/protected/data
cp emptylightscontrol.sqlite lightscontrol.sqlite

Le shell nommé 2-StartLightsControl.sh présent sur le bureau permet de lancer cette interface.
On se loggera avec les login Admin (attention au A majuscule…) et mot de passe admin.


open zwave raspberry pi006

 

On pourra alors procéder à la configuration de notre installation grâce au menu « Settings », en définissant successivement les différents étages, pièces, … puis en important nos devices Z-Wave, que l’on prendra soin de nommer et de localiser. Nos dimmers 1 et 2 ici sont déclarés comme étant localisés dans notre Lab :

 

open zwave raspberry pi007

 

On pourra alors procéder à leur contrôle en cliquant sur les boutons ON ou OFF respectifs.

 

open zwave raspberry pi008

 

Les choses intéressantes peuvent alors commencer ! Créons une scène qui gère par exemple toutes nos lampes :


open zwave raspberry pi009

 

Ces différentes scènes pourront être déclenchées depuis l’écran « Manage Scenes » :

 

open zwave raspberry pi010

 

On pourra aller plus loin en définissant un planning (Scheduler) de déclenchement de notre scène « AllDimmers », variable selon que l’on est en jour de semaine ou en WE. Ici, on a programmé l’allumage pendant 30 minutes de nos deux dimmers tous les matins de la semaine à partir de 7h30, et un allumage pendant 45 minutes de nos deux dimmers les matins de WE à partir de 9h.

 

open zwave raspberry pi011

 

On voit là toute la puissance apportée par le Raspberry Pi dans notre installation domotique minimale : au delà de la simple commutation que l’on peut effectuer sur une installation Z-Wave de base, on peut littéralement programmer son installation pour déclencher différentes actions selon différents critères. Les possibilités sont nombreuses et dépendent grandement de la solution logicielle utilisée.

 

6) aGoControl

Disponible à l’adresse suivante : http://www.agocontrol.com

Une image Raspberry Pi d’une installation d’aGoControl est fournie : AgoControl-Backup8-12-03-2013.img.gz on la copiera sur une carte SD de 4Go.

On démarrera simplement le Raspberry Pi, les différents serveurs étant configurés en démarrage automatique, et on se connectera (de préférence à distance pour diminuer la consommation de ressources) avec l’URL suivante : <ip du raspberry>:8000

Possibilité de définir des événements déclenchées selon certains stimulii, assez élaborés avec des opérateur logiques, des scénarios…


open zwave raspberry pi012

 

Une application Android est également disponible sur Google Play.

 

7) HomeGenie

Disponible a l’adresse suivante : http://sourceforge.net/projects/homegenie/

Une image Raspberry Pi d’une installation HomeGenie est fourni : HomeGenie3-14-03-2013.img.gz on la copiera sur une carte SD de 4Go.

On démarrera simplement le Raspberry Pi, les différents serveurs étant configurés en démarrage automatique, et on se connectera (de préférence à distance pour diminuer la consommation de ressources) avec l’URL suivante : <ip du raspberry>/hg/html/index.html
On pourra alors configurer différents groupes dans lesquels on assignera ses modules…


open zwave raspberry pi013

 

L’interface est particulièrement réactive !


open zwave raspberry pi014

 

On pourra également définir différents scénarios…

 

8) Conclusion

Le couple Raspberry Pi/Z-Wave a tout pour plaire : prix, faible conso, mise en place rapide au sein d’une installation, communauté, et bien à la mode !

Le Raspberry Pi s’avère très polyvalent et pourra répondre a de nombreux besoin de façon économique.
Notons néanmoins, quelques ombres au tableau : on va devoir passer par Linux et ses lignes de commandes obscures pour le néophyte. Il faut apprendre à installer des packages, faire des compilations, configurer des fichiers systèmes… et il faudra aussi prévoir de devoir passer pas mal de temps à chercher sur les forums…le tout en maîtrisant la langue de Shakespeare.

Bref, ce n’est pas encore du plug and play !
Les box domotique ont donc encore de beaux jours devant elles, mais pour des application plus spécifiques (style simple contrôle éclairage jardin, ou remontée info d’une sonde de température), là le Raspberry Pi peut être LA solution low cost unique !

 


Restez connecté sur l'actualité domotique!