Dans le cadre des mes billets sur l’auto-hébergement, après avoir installé notamment un cloud privé pour échanger des photos avec ma famille, et installé un service de streaming musical pour avoir accès à ma musique de n’importe où, je me suis lancé il y a quelques semaines dans la domotique avec Jeedom, je vous propose de faire un petit tour d’horizon sur le sujet avec un peu de recul. Si vous souhaitez vous lancer dans la domotique, mais que vous n’avez jamais osé sauter le pas, cet article est pour vous.

Jeedom domotique

Le choix du protocole

Un des premiers points qui arrive lorsque l’on veut mettre en place de la domotique à la maison, c’est le choix du protocole. Les deux principaux sont RFXCom et Z-Wave (mais ce ne sont pas les seuls). Chacun a ses avantages et ses inconvénients. ZWave par exemple utilise un technique de maillage (mesh) où tous les éléments ZWave participent au maillage du signal pour une meilleure fiabilité (avec un système d’accusé de réception de réponse). En revanche, là où un module RFXCom peut tourner aux alentours d’une vingtaine d’euros pour les premiers prix, il est rare d’avoir un module ZWave à moins de 60 euros. Le RFXCom est compatible avec différents modules, comme les capteurs Oregon Scientific ou Somfy RTS (par contre pas avec IO HomeControl utilisé également par Somfy et Velux). L’avantage est que les protocoles ne sont pas incompatibles, il faut par contre prévoir un récepteur par protocole (RFXtrx433E V2 par exemple pour RFXCom à environ cent euros, un dongle USB pour ZWave à environ une quarantaine d’euros).
Le choix se fera donc en fonction des besoins que vous avez pour votre installation domotique. De mon côté, je suis parti sur du RFXCom pour l’instant, avec deux douilles radios pour contrôler des lumières, un capteur d’ouverture de porte et une télécommande, le tout afin de pouvoir faire des premiers essais, et jouer avec Jeedom et les scénarios. Nous y reviendrons un peu plus loin dans ce billet.

Installation de Jeedom

L’installation de Jeedom est assez simple. Vous trouverez tous les détails en fonctions de votre configuration (sur un Raspberry, sur un NAS, sur un système Linux…) en suivant ce lien. De mon côte je l’ai installé sur mon serveur Debian. A noter que par défaut Jeedom tourne sur Nginx, vous pouvez si vous le souhaitez l’installer sur Apache. De mon côté je l’ai laissé sur Nginx, ce qui fait qu’il tourne sur un port autre que le port 80 (utilisé par mon Apache).

Premiers pas

Plugins

Après l’installation et la configuration de base, une des premières choses que vous allez faire c’est d’aller chercher des plugins dans le market Jeedom (dans le menu « Général », « Plugin). Il vous faudra déjà le plugin qui correspond à votre protocole histoire de pouvoir connecter vos différents modules par la suite.

Plugins Jeedom

Voici en vrac quelques plugins qui pourraient vous être utiles (liste non exhaustive bien sûr, il en existe beaucoup, dont certains liés à du matériel précis) :

  • Weather : vous allez pouvoir récupérer avec ce plugin des informations météorologiques correspondant à votre ville via le web. Vous pourrez ensuite utiliser ces valeurs dans des scénarios par exemple (m’envoyer un sms en cas de vent violent, lancer un arrosage si le temps est sec…)
  • Mail : va permettre à Jeedom d’envoyer des mails. Pratique pour être avertis d’évènements particuliers.
  • Free SMS : si vous êtes chez Free Mobile, Jeedom va pouvoir vous envoyer des SMS via l’API Free Mobile (sans avoir besoin de mettre une carte 3g à Jeedom donc).
  • Imperihome : permet de faire le pont entre Jeedom et Imperihome (applications pour mobile).
  • Virtual : va permettre de créer des modules virtuels dans Jeedom, par exemple un interrupteur virtuel qui a pour effet d’allumer toutes les lumières d’un étage.
  • Waze in time : récupère des informations de temps de trajet via Waze, pratique pour que Jeedom nous envoie un SMS si le temps de parcours est plus long que prévu par exemple.
  • Caméra : permet de gérer des caméras IP.
  • Alarme : permet de gérer les alarmes et la sécurité.
  • Chauffage : permet d’avoir la main sur la gestion du chauffage.
  • S.A.R.A.H : permet de gérer des interactions avec le logiciel S.A.R.A.H pour contrôler tout cela à la voix.
  • … et tous pleins d’autres que je vous laisse découvrir.

A noter que tous les plugins ne sont pas gratuits, et qu’il existe des plugins officiels (créés et maintenant par l’équipe Jeedom) et des plugins non officiels (créés et maintenus par des internautes, donc peut être moins alignés sur le core Jeedom).

Objets

A des fins d’organisation, vous allez pouvoir créer des objets (menu « Général », « Objets ») dans Jeedom. Ceux-ci sont virtuels et vous vous permettent de créer des pools d’équipement. En général, les objets vont schématiser votre domicile. Vous allez par exemple pouvoir créer un objet « Rez de chaussée », et créer ensuite par exemple un objet « Salle à manger » qui dépendra du « Rez de chaussée ».

Objets Jeedom

Vous allez ensuite pouvoir affecter vos équipements et vos scénarios à ces objets.

Equipements

Vous pouvez maintenant connecter vos équipements. Pour cela il faut vous rendre dans le plugin correspondant à votre protocole. Vous aurez la liste des équipements déjà connectés et un bouton d’ajout. Le plus simple est même d’activer dans l’administration du plugins la création automatique d’équipement.
Pour d’autres, cela ne sera pas suffisant. Par exemple, pour ajouter une prise DIO, il faut au préalable (avant de le brancher) créer l’équipement via le bouton « Ajouter » (+), choisir dans la liste prise DIO, l’activer et enregistrer le tout. Vous verrez alors la création en automatique en bas de l’équipement des commandes, notamment « on » et « off ». Vous pouvez à ce moment là brancher la prise, et pendant le moment où la diode clignote (en général dans les 5s suivant le branchement), il vous faudra cliquer sur le bouton « Tester » en face de la commande on. Votre prise est alors appairée avec Jeedom. Ce sera le même principe avec les douilles.

Equipements Jeedom

Vous pourrez ensuite rentrer dans le détail d’un équipement pour paramétrer les différentes actions possibles, les valeurs attendues, le lien avec l’objet, le fait de l’activer ou non …

fiche équipement Jeedom

Scénarios

C’est le cœur et l’intérêt du système. Vous n’avez pour l’instant que des objets et des équipements qui peuvent recevoir ou créer de l’informations, avec les scénarios vous allez pouvoir apporter une intelligence à tout cela. Les scénarios se trouvent dans le menu « Général », « Scénarios ».

Scénarios Jeedom

Vous allez pouvoir les affecter à des objets, et les grouper. Quand vous créerez un scénario, vous aurez le choix entre un mode simple et un mode avancé. Le mode que je vais décrire est le mode avancé.
En rentrant dans un scénario, vous allez pouvoir comme les équipements les affecter à un objet à titre de classification. Un point important du scénario est le mode de lancement, soit provoqué (par un événement, comme l’appui sur un bouton ou le déclenchement d’un capteur) soit programmé (par une lancement régulier en cron). Plusieurs autres paramètres sont disponibles dans l’entête d’un scénario comme sur cet exemple :

Jeedom entête scénario

 

Vous allez ensuite définir ce que va précisément faire le scénario, et pour cela vous allez pouvoir ajouter des blocs, via le bouton dédié :

Jeedom ajouter bloc scénario

 

Il est possible d’ajouter des blocs d’action, des blocs conditionnels (si…alors…sinon), des boucles… bref de quoi faire quelque chose d’assez poussé, d’autant plus que vous allez pouvoir faire des imbrications de ces différents blocs. Il est également possible d’avoir des scénarios qui appellent d’autres scénarios.
Prenons l’exemple simple d’une télécommande avec laquelle nous souhaitons avoir un bouton contrôlant une lumière. Nous allons créer un bloc conditionnel, si le bouton envoie l’information d’allumage nous allumons la lumière, sinon nous l’éteignons :

Bloc scénario Jeedom

Dans le bloc, vous avez des boutons vous permettant de rechercher des commandes. Vous n’avez pas grand chose à saisir dans ce bloc, il vous suffit de choisir les bons équipements avec les valeurs attendues au travers de boîtes de dialogue comme celle-ci :

ajout de commande scénario Jeedom

Vous mesurez à ce moment là l’utilité des objets et de la bonne affectation de vos équipements et scénarios à vos objets, car plus votre installation va grossir plus il deviendra compliqué de trouver vos petits si dès le départ vous n’avez pas une bonne organisation.

Vous pouvez voir également qu’en mixant les équipements physiques (capteurs, douilles, prises…) avec des équipements virtuels (informations récupérées par des plugins, envoi de mails, de sms) vous allez pouvoir faire des scénarios très complets. Quelques exemples d’idées possibles :

  • Un capteur permet de voir que je rentre à la maison. Avec les informations récupérées par Weather, je sais que le soleil est couché. Dans ce cas, j’allume une lumière.
  • Lorsque je ne suis pas à la maison, je déclenche pendant la soirée l’allumage des lumières pour simuler une présence. Si jamais un capteur d’ouverture de porte est enclenché, je suis prévenu par SMS et la caméra reçoit l’ordre d’enregistrer pendant 30s.
  • Le plugin Waze collecte les temps de parcours jusqu’à mon travail. Si jamais le temps de parcours est supérieur à la normale, je suis prévenu par SMS pour partir un petit peu plus tôt.

Vous le voyez, les idées sont infinies et dépendent surtout de ce que vous attendez de votre installation.

Problèmes possibles

Perte du RFXCOM

Je le mets ici, même s’il y a peu de chances que vous tombiez sur le même problème que j’ai rencontré, parce que cela m’a pris un certain temps avant de résoudre ce souci. J’ai réinstallé mon système, et une fois ma Debian réinstallé, mon Jeedom installé et remonté avec le backup, plus aucunes de mes commandes RFXCOM ne fonctionnait. Le démon RFXCOM démarrait (même si cela semblait compliqué, le mode auto ne fonctionnait plus), les logs avaient l’air corrects (j’essayais d’allumer une douille, je voyais bien passer la demande) mais rien ne se passait, mon ampoule restait désespérément éteinte.
En examinant les messages  système lorsque je branche et débranche mon émetteur RFXCOM sur le port USB via la commande dmesg, je suis tombé sur le message suivant :

usbfs: interface 0 claimed by ftdi_sio while 'brltty' sets config #1

Il semblerait donc que mon port usb était accaparé par ce paquet brltty (qui apparemment permet de gérer des claviers braille) et du coup mon émetteur n’arrivait pas à prendre le pas. En désinstallant ce paquet (apt-get remove brltty), cela a résolu mon problème.

502 Bad Gateway

J’ai parfois rencontré ce problème, notamment lors de mise à jour sur mon système (migration de Debian Wheezy à Jessie par exemple). Cela est souvent dû à des modules PHP à réinstaller ou à re-paramétrer correctement (notamment php-fpm et php-cgi).

Error on send request to jeedom request got an unexpected keyword argument json

J’ai rencontré ce problème suite à une mise à jour de Jeedom. Mes scénarios continuaient à fonctionner, mais impossible par exemple de rajouter un objet RFXCom en mode inclusion. J’étais alors sur Debian Wheezy. En faisant la mise à jour vers Debian Jessie, cela à réglé mon souci. C’était sans doute dû à des paquets trop anciens sur  Wheezy, mais je n’ai pas pu identifier lesquels (peut être la version de PHP, mais j’avais tout de même pu monter en 5.6 sur Wheezy).

Ressources

Voici pour un premier tour d’horizon de Jeedom. Il n’est pas exhaustif, car il y a plein d’aspect que je n’ai pas abordé (administration, dashboard, création de vues, liaison avec ImperiHome, interactions…) mais il devrait vous permettre de vous mettre le pied à l’étrier si vous souhaitez vous lancer dans la domotique avec Jeedom.

Quelques liens pour aller plus loin :

Site officiel
Documentation
Chaîne Youtube (par contre depuis les premiers tutoriaux, certains éléments d’interface ou d’organisation ont changé).

<