Mise en place d’un réseau domotique avec Jeedom
Ça y est, je me suis enfin lancé dans la domotique. Je n’avais que 2 conditions pour commencer :
- Que la solution soit suffisamment ouverte pour pouvoir mettre les mains dans le cambouis sans pour autant devoir réinventer la roue,
- Qu’il soit possible de combiner plusieurs technologies (car l’IoT se bouscule et encore aucune technologie n’a pris de réel ascendant, et je préfère éviter de me retrouver avec une techno qui n’est plus maintenue).
Choix des technologies
Pour attaquer ce projet, j’ai décidé de prendre ma boîte à outils préférée : le Raspberry Pi.
Pas besoin d’immenses performances pour gérer un réseau domotique, mon vieux Raspberry Pi Model B est déjà bien suffisant mais voyons déjà d’un peu plus près la configuration que j’ai choisie :
- Raspberry Pi Model B,
- RaZberry (de z-wave.me : http://razberry.z-wave.me/),
- Bloc Multicapteurs MultiSensors 6 Gen5 Aeontec,
- Ampoule RGBW dimmable Aeontec,
- Carte SD 32Go,
- Alimentation 10W (5V, 2A),
- Raspbian Jessie et Jeedom Community 2.0 (https://www.jeedom.com).
Les plus perspicaces l’auront noté, je me suis tourné vers le Z-Wave. Un peu ironique de la part de quelqu’un qui parlait d’avoir quelque chose d’ouvert, mais le middleware est basé sur un projet de Reverse Engineering très cool qui s’appelle Openzwave (http://www.openzwave.com/).
L’installation de Raspbian et de Jeedom se passe sans encombre en suivant le tutoriel officiel : https://www.jeedom.com/doc/documentation/installation/fr_FR/doc-installation.html.
Et voici ma magnifique interface Jeedom après l’ajout de quelques capteurs (physiques et virtuels) :
Mon dashboard un peu sommaire
Premiers constats :
- Le système de scénarios est très abouti mais un peu obscur au démarrage, il faut s’accrocher,
- L’interface est épurée et on arrive très vite à l’essentiel,
- Le fonctionnement en plugins installables depuis un market (qu’il est possible de changer) est intuitif,
- La simplicité d’installation des plugins est vraiment agréable,
- Le nombre de plugins déjà présents est déjà suffisamment élevé pour faire des scénarios efficaces.
Mais comme rien n’est parfait…
Mais voilà, après avoir installé plusieurs extensions sans problème, l’extension essentielle me permettant de piloter le module RaZberry pose des soucis une fois son installation terminée !
Pas de réponse du contrôleur…
Pris d’un doute sur le bon fonctionnement de l’extension, j’installe le firmware officiel du RaZberry, Z-Way, et m’aperçois que lui aussi rencontre des problèmes avec le contrôleur.
Je descends donc au niveau électronique et je regarde un peu mon contrôleur.
Dans un premier temps je constate que le condensateur C6 manque et me dis qu’il y a donc un défaut. Néanmoins la documentation du constructeur m’indique que c’est normal sur les RaZberry à partir de la 3ème génération (http://razberry.z-wave.me/fileadmin/RazberryIdent.pdf). Le problème est ailleurs.
On peut noter qu’au démarrage le RaZberry effectue un auto-diagnostic qui dans mon cas semble être un succès au vu du clignotement simple des LED.
Bref, on arrive enfin à l’essence du problème trouvée sur un forum (http://forum.z-wave.me/viewtopic.php?f=3422&t=22957#p61281). Le RaZberry est connecté sur les ports GPIO 1 à 10 du Raspberry qui se trouve être /dev/ttyAMA0 sous Raspbian.
Or cette interface est utilisée par Raspbian Jessie pour le fonctionnement du module Bluetooth. Le hic c’est que l’option est activée par défaut dans le Device Tree, même sur un Raspberry Model B qui ne dispose pas de ces modules.
La solution à ce problème est pourtant très simple. Il suffit de se rendre dans l’utilitaire de configuration du Raspberry Pi et de désactiver le Device Tree (notez que sur un Raspberry Pi 3 cela désactive également le Bluetooth et peut-être également le WiFi, il peut être préférable de seulement désactiver le Bluetooth dans ce cas) :
sudo raspi-config
Sélectionner les options avancées.
Je désinstalle le firmware, redémarre et ô magie le module Z-Wave de Jeedom se connecte sans problème à mon RaZberry après les quelques minutes nécessaires à son initialisation.
Ajout d’un module au maillage Z-Wave
Ce qui est beau avec Z-Wave, c’est que le réseau est maillé et tout point se comporte comme un relais. Si l’un de vos équipements n’est pas accessible directement depuis le contrôleur du réseau, les informations seront routées par l’intermédiaire des autres équipements.
Pour ajouter un équipement au réseau et à Jeedom, rien de plus simple. Rendez-vous dans la configuration de l’extension Z-Wave de Jeedom et cliquez sur « Mode Inclusion ».
De même sur votre module à ajouter, vous avez un bouton (ou pas et dans ce cas le module s’inclut automatiquement) sur lequel appuyer pour placer le module en mode inclusion. Au bout de quelques secondes, le module est inclus au maillage et une interface s’affiche dans Jeedom afin d’ajouter le composant à votre boîte domotique.
Remarque : Vous pouvez ajouter des objets dans Jeedom afin de symboliser vos pièces ou tout groupe que vous souhaiteriez faire. Vous pouvez également créer des vues afin d’afficher visuellement vos capteurs sur un plan. Pour créer ce plan, je vous conseille l’excellent logiciel Sweet Home 3D (http://www.sweethome3d.com/fr/).
Il ne vous reste plus qu’à contrôler votre nouvel équipement !
Exploiter les modules
Une fois vos modules réels et virtuels installés, encore faut-il les exploiter.
Vous pouvez activer simplement l’historisation des données pour faire un suivi de vos mesures ou impacter le fonctionnement de votre maison avec des commandes.
Pour ma part j’ai créé un module du plugin « Mode » afin de créer un système permettant de passer d’une ambiance à l’autre en fonction de mon humeur et du moment de la journée. Pour l’instant ça ne fait pas grand-chose mais je pourrais le connecter avec mon serveur OpenELEC pour jouer de la musique ou atténuer les lumières lorsque je lance un film.
Comme on peut le voir sur la capture, on peut ajouter un bouton avec le plugin « Virtuel » pour activer ou désactiver ce mode automatique et sélectionner manuellement un mode depuis la box.
J’ai également créé à partir du module « Va-t-il pleuvoir dans l’heure » une alerte SMS pour m’indiquer de prendre mon parapluie le matin quand je pars travailler (et ça prend en compte week-ends et jours fériés).
Bref, grâce aux scénarios les possibilités sont limitées qu’à votre imagination. Un très bon tuto pour démarrer est proposé dans la doc officielle https://www.jeedom.com/doc/documentation/core/fr_FR/doc-core-scenario.html.
Quelques limites
Jeedom a un aspect très intéressant. Sauf accord explicite pour certaines fonctionnalités proposées par Jeedom, aucune de ces données qui vous sont très personnelles (on pourrait vous espionner chez vous quand même) ne part dans le cloud (c’est-à-dire vous ne savez pas où). De plus il s’agit d’un logiciel développé par des français (cocorico !).
Néanmoins ça pose aussi quelques petits soucis :
- Jeedom est un projet jeune et d’un point de vue sécurité je déconseille de le mettre disponible frontalement sur Internet (comme proposé dans la configuration),
- Les services de notification Push proposés dans le market sont tous propriétaires et dans le cloud (à ce titre, si vous avez un service de notification libre à me proposer je suis preneur),
- On peut parfois être un peu frustré par le manque de finition (comme le plugin Widget qui nécessite de mettre les mains dans le cambouis, moi qui n’ait plus codé du Web depuis un moment c’est bien ma veine),
- Concernant le module Z-Wave, on est un peu dans le flou concernant la sécurisation des flux proposée. De plus la fermeture du protocole n’aide pas des masses.
Mais globalement il s’agit d’un très bon outil que je vais continuer d’utiliser et dont je pense prendre à terme la version « Power » payante proposant des applications dans les grands stores mobiles (enfin une idée pour recycler ma Surface RT !). Mais c’est surtout pour leur envoyer plus de tickets :o)