Pour un rendu optimal, activez JavaScript

La domotique Jeedom sous Proxmox

 ·  ☕ 5 min de lecture  ·  🩊 Propositionjoe

Je vous propose ici un tuto pour héberger le systÚme domotique Jeedom dans votre Proxmox avec prise en charge du zwave et du bluetooth.
Edit 11 décembre 2017: attention au partage de clé bluetooth qui provoque un bug sur vos vm sous debian 9.

J’utilise une solution domotique depuis une petite annĂ©e chez moi avec beaucoup de plaisir. Mon Ă©clairage est intĂ©gralement domotisĂ© / ambiancĂ©, et j’ai des scĂ©narii pour balancer de la musique dans chacune de mes piĂšces en fonction d’Ă©vĂšnement ou de dĂ©clenchement. Mais avant de rentrer dans le vif du sujet, j’annonce mon plan pour ce papier:

  • D’abord deux questions importantes pour comprendre l’intĂ©rĂȘt que je trouve Ă  utiliser une vm pour cet office et pourquoi j’ai choisi jeedom;
  • Puis viendra ensuite ma marche Ă  suivre pour installer le systĂšme, externaliser les backups, et ajouter mes clĂ© usb bluetooth et zwave.

Pourquoi une vm?

Jeedom a Ă©tĂ© pensĂ© Ă  l’origine pour tourner sur un rapsberry pi, mais cela a deux inconvĂ©nients:
-Le systÚme tue littéralement les cartes sd avec des réécritures permanentes, et la puissance de la carte est vite trop faible quand on commence à ajouter des capteurs.
-À l’inverse consacrer un nuc-like rien qu’Ă  ça me semble relativement dommage: la machine+ram+ssd revient un peu chĂšre.
-Alors qu’avec proxmox on a une solution tellement plus geek; d’autant qu’il est facile de passer des pĂ©riphĂ©riques Ă  une vm (zwave, enocean…). Dans ce cas pour ĂȘtre sĂ»r de son coup, il faut vĂ©rifier que son processeur et sa carte mĂšre supporte le vt-d.

AprĂšs j’ai aussi un ami qui passtrought une clĂ© zwave Ă  sa jeedom sans support officiel du vt-d (les constructeurs et leurs fiches techniques…), donc pour faire court: on est juste sĂ»r de n’ĂȘtre sĂ»r de rien.

Pourquoi jeedom?

Bien qu’il soit tout Ă  fait possible d’opter pour des systĂšmes plus simples, plus maĂźtrisables, et surtout libre comme domoticz, ou encore de tout bĂątir avec ses propres briques logiciels, j’ai choisi d’utiliser la solution domotique jeedom. En effet, elle s’avĂšre pratique malgrĂ© qu’elle ne soit qu’open-source. Pratique puisqu’elle dispose d’une importante communautĂ© et elle est vraiment clĂ© en main (les plus barbus auront raison de me condamner…), mais cela rĂ©duit les bidouillages nĂ©cessaires pour que ça juste marche, temps prĂ©cieux pour se concentrer sur la mise en Ɠuvre de ses idĂ©es de scĂ©narii domotiques. Enfin jeedom n’est qu’une surcouche sur une debian (base sql, apache et php)… Vous ĂȘtes donc libre d’ajouter les choses qui vous plaisent sur le systĂšme (dans la limite de ne pas trop mettre le dĂ©sordre lĂ -dedans…).

Bon et comment on fait alors?

L’installation de Jeedom

Je pars du principe que vous avez une debian toute fresh d’installĂ©e, avec un accĂšs SSH en root. Pour installer Jeedom, la procĂ©dure est trĂšs simple; il suffit de rĂ©cupĂ©rer un script, d’autoriser son exĂ©cution, puis de le lancer.

~$ wget https://raw.githubusercontent.com/jeedom/core/stable/install/install.sh
~$ chmod +x install.sh
~$ ./install.sh

Vous n’avez rien d’autre Ă  faire que d’attendre et de ne pas oubliez de noter le mot de passe sql Ă  la fin de l’installation.

Les backups

Je pars ici du principe que vous disposez d’un systĂšme de fichier en rĂ©seau (nfs, sftp, ftp…). Pour ma part, jeedom Ă©tant en local, j’utilise par simplicitĂ© mon serveur nfs. À la racine de mon nfs je dispose d’un dossier sauvegarde dans lequel je stocke mes backups de vm, mes dossiers nextcloud, mes backups de configuration de jeedom, et les scripts de toutes mes sauvegardes.

J’aime beaucoup le nfs puisque procĂ©der ainsi me simplifie la maintenance de mes scripts: montĂ©s en nfs, ils sont accessibles sur tous mes systĂšmes locaux, et je les appelle par crontab en une ligne.

Pour monter un partage nfs sur sa vm jeedom:

~$ mkdir /chemin-local/nfs
~$ nano /etc/fstab
~$ ip-du-serveur-nfs:/chemin-distant/nfs/ /chemin-local/nfs/ nfs defaults,user,auto,rw,noatime,rsize=16384,wsize=16384 0 0

Un script de backup

À noter que chaque jour jeedom se backup tout seul dans /var/www/html/backup/ ; mon script ne fait que rĂ©cupĂ©rer le contenu de ce dossier et de l’envoyer sur le rĂ©pertoire nfs que nous venons de monter. Au passage, il supprime aussi les anciennes sauvegardes de plus de 15 jours. Je vous propose d’enregistrer ce script dans /chemin-local/nfs/sauvegardes/scripts/jeedom/rsync et les backups dans /chemin-local/nfs/sauvegardes/jeedom/rsync.

~$ nano /chemin-local/nfs/sauvegardes/scripts/jeedom/rsync

      #!/bin/bash
      find /chemin-local/nfs/sauvegardes/jeedom/rsync -type f -mtime +15 -exec /bin/rm -f {} \;
      rsync -a --progress --delete --ignore-errors --force /var/www/html/backup/* /chemin-local/nfs/sauvegardes/jeedom/rsync

Il ne reste plus qu’Ă  appeler le script un fois par jour avec crontab:

~$ crontab -e
      @daily bash /chemin-local/nfs/sauvegardes/scripts/jeedom/rsync

Ajouter des protocoles par l’usb

Je dĂ©cris cette Ă©tape suite Ă  un commentaire d’un lecteur qui m’en avait fait la demande, sans que je prenne le temps sur le moment de dĂ©crire la dĂ©marche. Sous Proxmox c’est assez simple et documentĂ© sur leur howto. Il faut commencer par dĂ©terminer oĂč proxmox attache les pĂ©riphĂ©riques usb Ă  lui:

~$ lsusb -t

On note ensuite le bus et le port, pour moi ce sera:

  • Bus 01 Port 10 pour la clĂ© zwave; ce qui donnera pour la suite 1-10
  • Bus 01 Port 09 pour la clĂ© bluetooth; ce qui donnera popur la suite 1-9

La dĂ©signation du pĂ©riphĂ©rique n’est pas forcĂ©ment explicite, alors simplifiez-vous la vie en tapant la commande 2 fois et en branchant puis en dĂ©branchant la clĂ©, au besoin.

Il faut ensuite modifier la conf de sa vm:

~$ nano /etc/pve/qemu-server/id-de-votre-vm.conf
      usb1: host=1-10
      usb2: host=1-9

On termine en rédémarrant sa vm jeedom pour permettre la prise en compte du passtrought, et normalement vous devriez pouvoir faire reconnaitre vos périphériques par le systÚme.

Amusez-vous bien!

Partagez

Propositionjoe
RÉDIGÉ PAR
Propositionjoe
Soyez rĂ©solus de ne servir plus et vous voilĂ  libres, Étienne de La BoĂ©tie, Bricoleur militant.