La domotique jeedom sous proxmox - Carmagnole

La domotique jeedom sous proxmox

Rédigé par propositionjoe / 10 février 2017 / 6 commentaires

 
 

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.

 
 
 

 

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 oeuvre 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...).

 

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 (aller là sinon).
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



Le script de backup de jeedom que j'utilise:


À 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

 

Le passtrought des clés pour élargir les protocoles domotiques supportés par sa jeedom

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


Et d'indiquer à la fin du fichier:

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!

 



 

6 commentaires

#1 dimanche 19 février 2017 @ 12:18 Andy a dit :

Merci pour les scripts et commandes bien utiles !

Pour le backup jeedom, ne devrais-tu pas faire :
rsync .... && find ...
Histoire que si ton NFS crash ou que le rsync crash, ca ne supprime pas les anciens backups.
C'est un détail, mais qui peut avoir son importance.

Merci encore !
++

#2 lundi 20 février 2017 @ 19:05 propositionjoe a dit :

Merci pour le commentaire, tout le plaisir est pour moi.
Pour ce qui est du risque d'erreur de rsync je n'y avais pas passé effectivement.
À bientôt

#3 mardi 28 mars 2017 @ 20:03 pseudo a dit :

Merci beaucoup pour le script!
Cela marche parfaitement chez moi.

Super boulot!

A bientôt

#4 mercredi 29 mars 2017 @ 20:25 propositionjoe a dit :

Content que ça te convienne.

#5 mercredi 09 août 2017 @ 22:48 TeT a dit :

salut!

Je me régale avec ton site, j'envisage de passer de esxi a proxmox pour mon nouveau serveur...
Sinon jeedom, j'ai aussi, pour les sauvegardes jeedom sais le faire tout seul via samba...
Faudrait soumettre l'idée a Loïc de rajouter nfs aussi

#6 jeudi 10 août 2017 @ 11:09 propositionjoe a dit :

Par curiosité, tu envisages quel matos pour ton nouveau serveur?
+1 pour proxmox, je ne peux que t'encourager, je trouve ce système bien plus clair que l'esxi, et surtout c'est libre!

Pour l'intégration du nfs... Ce ne doit pas être une priorité pour l'équipe de jeedom; et je les comprends:
- Les utilisateurs de nfs sont sous linux, et pour la plupart, ils n'ont pas trop de mal à scripter eux même ce qu'ils souhaitent (je dirai même qu'ils préfèrent bien souvent!).
- Si tu passes à proxmox, tu auras la possibilité de faire des backup de tes vm (très) simplement. Au final, les backup jeedom je ne m'en sers pas... Je me contente de ceux fait par proxmox tous les jours.

À+

Les commentaires sont fermés.

Carmagnole

Soyez résolus de ne servir plus et vous voilà libres