Machine Virtuelle JEEDOM

Rédaction le 06/12/2018
Mise à jour le 18/12/2018

On y arrive… on y arrive doucement ! C’est quand même la base du site.

Je vous invite déjà à dérouler le guide de la machine virtuelle Apache dans sa partie générique pour installer une nouvelle machine Debian9 destinée à recevoir Jeedom. Vous pouvez mettre les mêmes utilisateurs, mots de passe ou d’autres lors de l’installation de votre Debian.

Les paramètres que j’ai retenus sont les suivants :

  • 2 CPU,
  • 4096 à 8192 Mo de mémoire,
  • 32 Go de disque dur (on n’est pas radin !),
  • une adresse MAC établie accordée à une IP dans mon routeur.

Pourquoi ces choix ? Mieux qu’un long discours…

Passage de 4 Go à 8 Go en mémoire, une utilisation CPU qui dépasse 50%

Oui, mon installation est conséquente, mais avec 8 coeurs sur mon i7 je peux bien lui en attribuer 2 !

Attention : le fait de virtualiser Jeedom peut conduire à des dysfonctionnements. Citons par exemple, le plugin BLEA avec une clé Bluetooth. C’était déjà le cas en Debian8 sans virtualisation il y a un an par exemple, mais d’autant plus vrai en virtualisation…

Ma solution a été pendant longtemps de faire une VM sur mon NAS QNAP avec 1 core/1 Go de RAM ; chose reproduite ici encore sous Proxmox (article à venir).

https://www.jeedom.com/forum/viewtopic.php?f=157&t=39220

https://www.jeedom.com/forum/viewtopic.php?f=154&t=31712&hilit=blea

Ensuite, je vous rappelle de faire ce que vous avez fait sous Apache pour votre routeur, votre NAS mais maintenant pour Jeedom !

Vous arrivez donc maintenant à :

  • une machine virtuelle à jour sous Debian9,
  • vous connaissez son adresse IP réservée dans votre serveur DHCP,
  • et le sous-domaine jeedom.mondomaine.ovh (vous vous souvenez jeedom.mamaisoncherie.ovh !) pointe sur l’adresse IP en question ! Mais il n’y a rien qui marche… logique, on n’a rien installé !

Finalisation de la VM Jeedom

Avant d’installer Jeedom, il nous faut finaliser quelques points. Personnellement je monte le point de montage de mon NAS QNAP, notamment en cas de besoin de vérification depuis la console. Logguez vous donc dans Bitvise SSH ou la console de votre VM :

sudo nano /etc/network/if-up.d/fstab

Ajoutez ce texte dans ce script pour forcer le montage des points de montage (désolé pour la répétition) :
#!/bin/sh 
mount -a
chmod +x /etc/network/if-up.d/fstab

Ensuite, je vais relier le point de montage de mon NAS QNAP dans le même principe que dans la configuration de Proxmox, le répertoire Domotique en partage NFS – il faut donc autoriser son IP (ici, il s’agit de la 2.91, la 2.80 étant celle de Proxmox).

Ajout d’un partage NFS autorisé pour la machine virtuelle Jeedom

Ce point de montage servira pour le stockage des images/vidéos des caméras par le plugin Caméras sous Jeedom :

Ce sera pour plus tard ça…

Mais, pas si vite ! Jeedom permet de réaliser une sauvegarde quotidienne sur un serveur Samba (dommage d’ailleurs, pas de NFS). Profitons pour autoriser l’IP de Jeedom à accéder au partage Samba de ce répertoire :

Ajout d’un partage SAMBA (SMB) autorisé pour la machine virtuelle Jeedom

Il vous faut aussi créer un utilisateur dédié dans votre NAS, ici il s’appelle domo_user et n’est autorisé qu’à accéder à ce répertoire Domotique. Voilà, cela nous permettra de séparer physiquement les sauvegardes de Jeedom de la machine Proxmox qui hébergera Jeedom.

Ajout d’un utilisateur SAMBA pour permettre à Jeedom de réaliser une sauvegarde quotidienne 

Maintenant, revenons à notre console de la machine virtuelle Jeedom. Ajoutons le point de montage NFS du NAS :

su –
mkdir -p /mnt/QNAP
sed -i ‘$a ipdunas:/repertoiredepartage /mnt/QNAP nfs rw 0 0’ /etc/fstab
mount -a 

Remplacez QNAP par ce que vous voulez,
L’IP du NAS c’est la vôtre,
repertoiredepartage, chez moi il s’agit de Domotique,
nfs rw 0 0 indique qu’il s’agit un partage NFS où on a les droits d’écriture/lecture.
Après la dernière ligne, vous pouvez aller dans le répertoire /mnt/QNAP par la commande suivante cd /mnt/QNAP et tapez ls+Entrée, vous devriez voir le contenu de votre répertoire distant.

Ensuite, je ne fais que dérouler l’installation de Jeedom comme elle est exposée sur le site :

https://jeedom.github.io/documentation/installation/fr_FR/#tocAnchor-1-9-6

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

Laissez tourner, ça tourne !

Pendant ce temps, créez un compte sur le market Jeedom :

https://www.jeedom.com/market

Gardez ce login et ce mot de passe pour plus tard. Il vous permettra d’acheter d’éventuels plugins et de gérer au mieux votre installation et vos Jeedom (si vous espérez en avoir plusieurs !).

Et voilà ! Pas besoin d’installer de certificat SSL sur cette machine, Apache le fait pour vous. Par contre, tout de suite, on se change le mot de passe de Jeedom ! Testez depuis votre téléphone portable en mode données mobiles, jeedom.votredomaine.ovh pointe sur Jeedom en HTTPS s’il vous plait 🙂 !

Logguez vous avec les identifiants de base que nous allons changer : admin/admin

Tant attendu !

Je vous recommande quelques changements et paramétrages bien pratiques. Libre à vous d’adapter surtout pour les thèmes !

Restauration d’une installation Jeedom déjà existante

Si vous aviez déjà Jeedom, il vous faut donc restaurer votre installation précédente. Placez votre dernière sauvegarde dans le répertoire de votre NAS par exemple ou tout autre répertoire que vous avez partagé.

Logguez-vous sur la nouvelle installation de Jeedom puis allez dans les Sauvegardes.

Accès aux sauvegardes
Envoi de la dernière sauvegarde Jeedom

Envoyez votre dernière sauvegarde Jeedom puis restaurer là ! Et vous voilà avec votre dernière installation en date.

Configuration de Jeedom

Soit vous aviez déjà une installation Jeedom fonctionnelle, soit vous voulez bien la configurer. Cette partie est là pour vous !

Changeons le mot de passe du compte administrateur et ajoutons un peu de gaieté ! Mais pourquoi lui c’est noir et pas moi !

On file sur le profil Admin

Libre à vous d’adapter et de modifier à partir de là ! Note : pour chaque utilisateur que vous allez créer, il faudra modifier cette partie car chacun a ses préférences.

Un premier exemple de paramétrage du profil admin pour rendre votre Jeedom plus sympathique :

  • sobre (thème Darksobre),
  • sur votre PC ou sur votre téléphone,
  • le fond des graphiques téléphone ou PC sera gris,
  • les éléments que nous allons retrouvé un peu partout ne sont pas opaques à 100% mais seulement à 10%.
CRTL+F5 pour recharger la page après avoir sauvegarder et vous voilà avec le thème Dark !

Concernant l’onglet Interface, il se règle plus facilement une fois les designs faits, les objets remplis etc ; mais de quoi il parle le monsieur !

Prenez quelques heures pour lire la bible de Jeedom :

https://jeedom.github.io/documentation/

Ces pages sont recommandés pour avoir les bases :

Présentation de Jeedom

Premiers Pas sous Jeedom

Personnellement, j’ai fait les choix suivants :

  • je veux voir le menu,
  • je force la première page sur mon design,
  • l’objet par défaut est l’objet Usages,
  • je n’ai pas de vue donc…
  • j’ai 2 designs différents suivants que je suis sur mon téléphone ou ma tablette,
  • je trouve plus pratique d’avoir le panneau des objets à gauche toujours accessible.
Configuration de l’interface

L’onglet sécurité… on en profite pour changer le mot de passe du compte admin tout de suite. Personnellement, j’ai activé la double authentification par Google Authenticator, plus sécurisant. Cliquez sur Configurer, installez Google Authenticator sur votre téléphone portable, scannez le code barre et le tour est joué !

Configuration du mot de passe et de la double authentification

Ensuite, configurons et récupérons quelques éléments :

Configuration de Jeedom

Nommez votre Jeedom, vous le retrouverez dans le profil du Market.

Onglet Général de Configuration
Onglet API de Configuration

L’onglet suivant API va vous permettre de récupérer les clés API. Le cadre rouge indique l’API de votre installation Jeedom qui va nous servir par exemple pour configurer Domowidget.

https://openclassrooms.com/fr/courses/3449001-utilisez-des-api-rest-dans-vos-projets-web/3449008-quest-ce-quune-api

Pour les curieux, qu’est-ce qu’une API ?

Donc vous allez avoir autant de clés API que de plugins par exemple. Cela vous permettra de passer un ordre ou de lire une valeur par une commande de type HTTP ou autre plus facilement. Nous ferons d’ailleurs cela très rapidement avec Domowidget sur votre téléphone portable.

Notez en priorité la clé API de Jeedom dans un coin, elle va vous servira dans le prochain article.

Dans l’onglet Sécurité, vous pouvez indiquer les IP blanches, c’est-à-dire celles où la double authentification ne sera pas actives. Privilégiez celles de votre réseau local en 192.168.2.* dans mon cas. Il faudra quand même se logguer avec un utilisateur et le mot de passe.

Onglet Sécurité de Configuration

L’onglet Réseaux vous permettra d’indiquer :

  • côté LAN – accès interne : l’adresse IP de votre machine virtuelle Jeedom et son port (80) – sauf si vous décidez de chiffrer même sur votre réseau local !
  • côté WAN – accès externe : votre sous-domaine.domaine.ovh en HTTPS et son port (par défaut 443 pour le SSL).
Onglet Réseaux de Configuration

L’onglet Résumé vous permettra d’ajouter des éléments à votre résumé domotique. C’est l’élément graphique en haut à droite qui vous permet d’un coup d’œil d’avoir des informations clés :

  • fenêtres, portes sont habituels ;
  • température, humidité aussi ;
  • capteur de mouvement …

Personnellement, j’ai ajouté les éléments suivants :

  • la consommation d’eau quotidienne en L ;
  • le nombre d’équipements connectés sur mon réseau que je supervise ;
  • le nombre de personnes à la maison ;
  • le nombre de VMC tournantes ;
  • la température de l’eau chaude ;
  • la température de la baie informatique.

Ces éléments se configurent dans les objets que vous allez créer. Vous ferez remonter des éléments vers ce résumé global.

Résumé domotique

L’onglet Logs vous permet de configurer les actions de notification sur des événements importants de votre installation :

  • dépassement d’un délai de non-réponse d’un capteur (timeout) ;
  • batterie d’un capteur en niveaux warning, danger ;
  • problème sur Jeedom en niveaux warning, danger.
Onglet Logs de Configuration

Personnellement, j’utilise Telegram qui a l’intérêt d’être chiffré entre nos téléphones et notre installation. Nous verrons cela plus loin.

L’avant dernier onglet Équipements permet de régler le niveau de batterie minimum d’avertissement (warning) ou vide (danger). Personnellement, j’utilise 5 et 15%.

Onglet Equipements de Configuration

Enfin, l’onglet Mises à Jour. Vous pouvez autoriser des mises à jour en bêta de Jeedom ; mais cela vous regarde, y en a déjà qui ont essayé, ils ont eu des problèmes ! 😀

Configurez dans l’onglet Market, votre accès au Market Jeedom, il vous permettra de télécharger les plugins et de les acheter le cas échéant.

Configuration du market dans Jeedom

Nous avons configuré un peu plus haut un point de montage SAMBA pour effectuer nos sauvegardes sur une autre machine physique que celle qui héberge Jeedom :

  • l’IP de votre NAS ou serveur SAMBA,
  • l’utilisateur et son mot de passe (voir plus haut),
  • l’accès au serveur SAMBA au format //IP/répertoiredepartage
  • le ou les sous-répertoires où vous souhaitez stocker vos sauvegardes – personnellement, j’ai ajouté un niveau pour les sauvegardes et celles de Jeedom.
Configuration de la sauvegarde SAMBA

Testez d’ailleurs que votre sauvegarde fonctionne bien dans l’onglet Sauvegardes :

Accès aux sauvegardes
Lancez la sauvegarde (prendre soin de cocher en bas Envoi des sauvegardes
Votre sauvegarde apparaît !

En vrac quelques notes …

J’ai rencontré quelques déboires lors de la restauration d’installation Jeedom.

sudo chmod -R 775 /var/www
sudo chmod -R 775 /tmp/jeedom/
sudo chown -R www-data:www-data /var/www

Permet de redonner les droits après une restauration de sauvegarde

Pour le plugin Xiaomi ou d’autres, python peut être un peu capricieux …

sudo apt-get remove python-pip

sudo easy_install pip

sudo pip install requests

A garder dans un coin …

Dans le cas du plugin ping, il faut lui donner quelques droits :

sudo apt-get install arp-scan
sudo visudo -s

Et ajoutez dans le fichier :
www-data ALL=NOPASSWD: /bin/ping
www-data ALL=NOPASSWD: /usr/bin/arp-scan

Pour éteindre correctement votre Jeedom, il faut l’éteindre par le menu et le choix du même nom :

Extinction de Jeedom

Puis éteindre votre machine virtuelle :

Extinction de la machine virtuelle

Concernant les éléments USB connectés sur votre serveur domotique : RFX-Com, téléinfo, etc

Moi, j’ai du RFX-COM ; Téléinfo

Deux solutions se proposent à vous :

  • Soit en se logguant en root sur votre interface Proxmox. Vous allez dans le menu Matériel de votre machine virtuelle puis ajoutez un périphérique USB. Une fenêtre s’ouvre choisissez le port USB qui correspond à votre périphérique USB.
Ajout d’un périphérique USB dans la machine virtuelle
Sélection de ceux que l’on souhaite attribuer à la machine virtuelle
  • Soit dans la console de votre serveur Proxmox, après s’être loggué en root par su – ;
  • Tapez la commande lsusb -t qui vous donnera la liste des périphériques USB connectés ;
Liste des périphériques USB en mode console
  • Relevez les périphériques intéressants – par exemple 1-2 ; 1-3 ; 1-4 ici ;

nano /etc/pve/qemu-server/id-de-votre-vm.conf

Editez le fichier de configuration de votre machine virtuelle
  • Ajoutez les éléments en question :
Ajout des périphériques USB

Relancez enfin votre machine virtuelle Jeedom pour prendre en compte ces changements :

Ajout des périphériques USB à votre machine virtuelle Jeedom

La sauvegarde de votre machine virtuelle

Une fois que votre installation se stabilise, avant chaque mise à jour majeure … éteignez votre Jeedom puis la machine virtuelle et réalisez une sauvegarde de la machine virtuelle. Vous pourrez donc en cas de crash majeur, restaurer cette machine virtuelle puis la dernière sauvegarde SAMBA quotidienne de Jeedom.

Sauvegarde la machine virtuelle

Un mémo sur Adminer

Il peut vous arriver de vous retrouver bloquer à un moment par exemple dans le suppression d’un élément dans un design qui ne veut pas se faire. Rare, mais bloquant ! Personnellement, je garde une porte d’entrée sur la base de données de Jeedom par Adminer. N’installez Adminer que si vous avez quelques notions de base de données, sinon passez votre chemin. Il y a d’ailleurs un outil à disposition dans l’onglet de Configuration – OS/DB de Jeedom :

Opérations sur la BDD

Sinon passez par adminer :

cd /var/www/html/
sudo mkdir adminer
cd adminer

Installons adminer

Allez sur le site d’adminer puis copiez-collez le lien de la dernière version à télécharger :

sudo wget <lien de téléchargement du fichier php (bouton droit/copier le lien sur le fichier php>

On l’installe

Placez le fichier PHP en le renommant dans le bon répertoire :

sudo mv adminer-<appuyersurtab pour l’autocomplétion>.php adminer.php

sudo service apache2 restart

cat /var/www/html/core/config/common.config.php

Relevez le code d’administration de la base de données, le login étant jeedom

Puis direction, votre navigateur http://ipdejeedom/adminer/adminer.php et authentifiez-vous avec le login / mot de passe précédent.

Nous avons mis en place notre machine virtuelle, l’installation de Jeedom, sa configuration ou sa restauration et quelques coups de pouces pour bien s’en servir. N’oubliez pas maintenant qu’il est accessible de l’extérieur !

La conclusion de cet article !

On se trouve pour un article qui vous donnera les grandes lignes de mon installation et vous permettra j’en suis sûr de construire l’architecture de votre installation !

Si vous avez aimé cet article, faites le savoir, partagez-le ! Et n’hésitez pas à me supporter 🙂

Merci à vous !



One thought on “Machine Virtuelle JEEDOM

  1. Rhaaa je me suis galéré tout hier avec les dockers sous Syno. Au final j’ai trouvé que part cette même installation. Un jour plus tôt et l’article m’aurait économisé une journée. lol. Merci quand même.

    1. Désolé ! Personnellement, je préfère les VM au docker. Docker est pratique pour tester. Cela limite grandement les mises à jour. J’utilise le principe de la virtualisation légère pour l’auto-download avec Radaar, Sonaar, Lidaar etc. Un article peut être à suivre…

  2. Merci Benjamin, pour BLEA aussi….;)
    J’ai tout de même un soucis, à ma première instal debian, dhcp auto fonctionne, puis sur la 2eme VM, deuxième instal debian et dhcp auto ne marche plus….
    Il fonctionne pour une install de OMV, mais c’est pas le même iso…
    Je ne comprends pas d’ou cela peut venir, je cherche, c’est fatiguant…

    1. As-tu essayé de laisser l’adresse MAC en auto et de laisser ton serveur DHCP lui attribuer son IP tout seul sans la figer ? J’ai eu le cas une fois. J’ai fait comme ça puis j’ai attribué l’IP souhaitée par le DHCP et j’ai rebooté la VM ensuite. Tu peux aussi tenter de changer la carte Ethernet de la VM (à voir aussi).

    1. Volonté personnelle. Excellente remarque ! Et surtout je veux pouvoir ajouter des éléments USB au besoin et en LXC on oublie…
      Je ne suis pas fan des machines LXC. Cela impose d’avoir une image à jour derrière.
      Là au moins, je peux faire comme bon me semble et surtout la gestion est standardisée au possible sur toutes les VM.
      Je peux comprendre que sur une machine plus légère cela se pose. Là sincèrement chargé comme il est, je n’irai pas plus loin.
      Je tourne à 2 sur 8 (max) en CPU en moyenne quand le moyen réel me donne 1 à 1,5.

      1. Je vois, personnellement mon nuc est un peu plus léger et j’ai choisit l’option LXC, je monte a 3 sur 4 max au niveau CPU, avec un utilisation qui s’approche de la tienne (Radarr,Sonarr,Lidarr, Emby,MotionEye,Jeedom, plus quelques petits lxc qui consomme quasiment rien)

  3. Bonjour,
    Merci et bravo pour votre blog très instructif.
    J’aurais besoin de vos conseils pour passer à la virtualisation.
    Actuellement j’ai Jeedom qui tourne sur un Raspberry Pi 3B, Max2play (=Squeezebox) sur un autre équipé d’une carte HifiBerry Amp2 et enfin Snips sur un 3ème Pi.
    J’ai également LMS et Plex qui tournent sur mon NAS Synology, j’utilise le revers proxy sur celui-ci pour accéder depuis l’extérieur a tous mes équipements via une adresse OVH.

    J’aimerais virtualiser un maximum de VM et récupérer mes Pi afin d’en faire soit des Squeezebox, soit des satellites Snips (et même si c’est possible les 2)
    Donc j’aurais:
    – 1 VM Jeedom Prod
    -1 VM Jeedom Bêta pour tests
    -1 VM Snips Serveur
    -1 VM Kody (ou Plex à voir)
    -1 VM MotionEye (merci à votre blog 😉 )
    -1 VM Linux pour bidouillage et installations diverses, notamment Snips

    Vu le reverse proxy sur mon NAS, pas besoin d’une VM Apache comme préconisée sur votre site.

    Peut être plus tard d’autres VMs, PiHole, etc…

    Donc ma question qu’elle configuration préconiser vous
    NUC ou Serveur ? I5, I7 ? 8, 16 ou 32 Gb RAM ?

    Je sais que vous êtes fan de Proxmox mais je pensais me tourner vers ESXI 6 de VmWare, je pense qu’il y a une version gratuite, l’avez-vous tester ?
    Pourquoi Proxmox au lieu de ESXI ? Choix perso ou prix ou performances ou facilité d’utilisation ?

    Je sais que c’est beaucoup de questions mais je pense que les réponse pourraient intéressés d’autres que moi

    Merci d’avance et bonne continuation pour votre blog
    @+ Benoît

    1. Bonjour,

      Merci pour ce commentaire.
      Ah le reverse proxy de Syno, ça c’est clair que c’est cool. Je n’ai pas cette option sur QNAP à grand regret.

      Il y a un article sur le choix du serveur domotique. Vous ne l’avez peut être pas lu.
      https://jeedom-facile.fr/index.php/2018/12/04/votre-serveur-domotique/
      Pour ma part, c’est surtout la génération du core qui compte. L’écart financier entre core i5/i7 de 7e et 8e génération est très faible alors que les performances elles clairement NON !
      Je vous invite à le relire. Suivant vos besoins 16 ou 32 Go. Pour ma part, plex & une VM d’autodl me prenne entre 8 et 16 Go de RAM donc je suis sur 32 Go que je peux optimiser.
      A défaut, 16 Go sont largement suffisants. Je tournais en 8 Go pendant 1 an et demi (Jeedom, BLEA, snips serveur, apache).

      Je ne suis pas fan de Proxmox. Y a pas de fan. Je suis juste pragmatique. Proxmox est opensource.
      Il y a d’ailleurs un sujet que j’ai ouvert de 22 pages avec les premières pages sur les raisons qui ont conduites à ce choix :
      https://www.jeedom.com/forum/viewtopic.php?f=59&t=40089&hilit=serveur+domotique
      en gros : opensource et le restera
      client web de gestion fiable et très pratique pour les sauvegardes (contre un payant avec vcenter sur cluster)
      base debian

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *