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.