Mise à jour de Jeedom 2.0 sur Raspberry Pi

Bonjour à tous,

Comme annoncé dernièrement, voici la marche à suivre pour mettre à jour votre Jeedom, installé sur un Raspberry Pi, vers sa version 2.0. Je vous rassure tout de suite, en prenant les bonnes précautions, il n’y a aucune raison que ça se passe mal. Et quand ça se passe mal, comme ça m’est arrivé, ça finit par s’arranger assez rapidement.

Pour connaitre toutes les nouveautés, je vous renvoie vers le post de l’équipe Jeedom sur cette version : https://www.jeedom.com/blog/?p=2539. Principalement, cela concerne une refonte totale du cœur de l’application et des évolutions plutôt discrètes mais utiles (comme l’ajout d’une page qui indique le niveau de batterie de tous les modules). Pas de révolution visuelle donc, mais je pense qu’il faut voir cette version, comme les fondements des prochaines versions.

En navigant un peu sur les forums Jeedom, on peut voir que de nombreux projets sont dans les tiroirs. Personnellement, j’attends deux d’entre elles : l’application smartphone / tablette, et la version pour Apple Watch ; ce serait une motivation supplémentaire pour me l’acheter…

  • La sauvegarde

Avant de commencer, comme pour toute montée de version, quelque soit le logiciel, il ne faut pas oublier de sauvegarder ses données. Cela permettra de repartir d’un état stable, plutôt que de repartir de zéro.

Menu de sauvegarde

Menu de sauvegardes

Pour cela, il faut aller dans la configuration de Jeedom, comme ci-dessus. Sur l’aperçu, vous pouvez également voir que j’ai 13 mises à jour à effectuer. Il y a Jeedom 2.0, le cœur du système, et tous les modules qui ont été mis à jour par leurs développeurs pour offrir une compatibilité vers cette version.

Lancer la sauvegarde

Lancer la sauvegarde

On clique ensuite sur le bouton « Lancer », pour lancer la sauvegarde. Suite à cela, le panneau de droite se remplit avec toutes les indications permettant de suivre l’avancée de la sauvegarde. Une fois que vous avez [END BACKUP SUCCESS], c’est que tout c’est passé correctement. Vous devez également retrouver votre sauvegarde parmi les sauvegardes locales (organisées par version, jour et heure). Ici, je vous conseille de télécharger le fichier, cela vous permettra d’avoir une version sur votre ordinateur, plutôt que de la conserver exclusivement sur le Raspberry Pi ; ce qui ne sert à rien le jour où la carte SD vous lâche.

Garder une copie locale de votre sauvegarde (sur ordinateur)

Garder une copie locale de votre sauvegarde (sur ordinateur) en cliquant sur « Télécharger »

  • Donner les droits sudo à www-data

Jeedom se base sur nginx, qui utilise utilisateur www-data pour être lancé et exécuter certains scripts. De base, l’utilisateur www-data ne peut pas faire grand chose, mais il est possible de lui accorder plus de privilèges en l’ajoutant au groupe des sudoers. Cela lui permettra d’avoir des droits supplémentaires. Ces droits sont nécessaires pour certaines tâches lors de la mise à jour.

Personnellement, je n’aime pas trop ce genre de privilèges, mais comme ils sont nécessaires pour l’installation, je les lui retirerai après l’installation.

Pour les mettre, il faut utiliser la commande suivante :

echo "www-data ALL=(ALL) NOPASSWD: ALL" | (EDITOR="tee -a" visudo)

Si l’utilisateur www-data n’avait pas les droits sudo lors de la mise à jour, vous avez dû remarquer que la mise à jour dure très longtemps… En jetant un coup d’oeil aux logs, le message est typique d’un manque de privilèges (« sudo: pas de tty présent et pas de programme askpass spécifié »). Comme Jeedom n’a pas les droits suffisants pour terminer sa mise à jour, elle ne termine pas l’installation des modules. Pour rattraper ça, aller directement à la partie « Quand ça ne marche pas… », tout en bas de l’article.

  • La mise à jour des modules

Liste des mises à jour à appliquer

Liste des mises à jour à appliquer

Si vous faites comme moi et que vous décidez de mettre à jour tous les modules avant de mettre à jour Jeedom, vous allez vous heurter à une petite difficulté. Je l’avais fait dans le but d’avoir tous les modules pleinement compatibles lors de son premier démarrage de Jeedom 2.0, mais la mise à jour de certains modules ne sont compatibles qu’avec la version 2.0. Quand vous essayerez de les récupérer, vous aurez un message d’erreur indiquant que le fichier zip « n’est pas une archive zip » ; il ira même jusqu’à vous demandez si vous l’avez bien acheté.

En se connectant sur le Raspberry Pi pour éditer le fichier en question, le fichier n’est effectivement pas une archive zip, puisqu’il s’agit d’un texte indiquant « Votre jeedom n’est pas compatible avec ce plugin (version de jeedom >= 2.0 requise) ».

J’ai eu cette « erreur » sur la mise à jour de trois modules : openzwave, héliotrope et sms.

Donc pour conclure cette partie, il n’est pas nécessaire de faire la mise à jour des modules avant d’appliquer la mise à jour de Jeedom.

  • Modification de la partition /tmp (si vous avez un Raspberry Pi 2, avec 1Go de RAM)

Pour suivre une préconisation de l’équipe Jeedom, nous allons effectuer une modification système sur le Raspberry Pi. Cela peut sembler risquer, mais vous ne toucherez que la partition temporaire, donc peu de risque, surtout si vous suivez bien ce qui suit.

Tout d’abord, un petit rappel sur ce que dit l’équipe Jeedom :

Refonte du système de cache de Jeedom (utilisation de doctrine cache). Cela permet par exemple de connecter Jeedom à un serveur redis ou memcached. Par défaut Jeedom utilise un système de fichiers (et non plus la BDD MySQL ce qui permet de la décharger un peu), celui-ci se trouve dans /tmp il est donc conseillé si vous avez plus de 512 Mo de RAM de monter le /tmp en tmpfs (en RAM pour plus de rapidité et une diminution de l’usure de la carte SD). Attention lors du redémarrage de Jeedom le cache est vidé il faut donc attendre pour avoir la remontée de toutes les infos

Pour cela, connectez-vous sur votre Raspberry Pi, via votre Terminal, ou PuTty, et modifiez le fichier /etc/fstab, en ajoutant la dernière ligne :

proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
tmpfs           /tmp            tmpfs   defaults,size=99m 0       0   #cette ligne

Cela permet de créer ce qu’on pourrait appeler une partition sur la mémoire RAM. Cela permet de charger le cache de Jeedom en RAM, et non sur la carte SD, ce qui permettra de diminuer les échanges sur la carte, et donc augmenter sa durée de vie. La préconisation est de 64Mo, mais je choisie de l’augmenter à 99Mo.

Suite à cela, on redémarre le Raspberry Pi.

Après s’être reconnecté, si vous exécutez la requête « df -h », vous devriez voir apparaître la ligne pour /tmp :

Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
/dev/root          7,2G    2,0G  5,0G  29% /
devtmpfs           475M       0  475M   0% /dev
tmpfs              479M       0  479M   0% /dev/shm
tmpfs              479M    6,4M  473M   2% /run
tmpfs              5,0M    4,0K  5,0M   1% /run/lock
tmpfs              479M       0  479M   0% /sys/fs/cgroup
tmpfs               99M    900K   99M   1% /tmp            # cette ligne
/dev/mmcblk0p1      60M     20M   41M  34% /boot

Maintenant que c’est fait, vous pouvez, sans problème, lancer la mise à jour de Jeedom.

  • Mise à jour de Jeedom

Pour cela, on retourne dans le centre de mises à jour, et on clique sur le bouton de « mise à jour » de Jeedom 2.0.

À partir de là, il faut se montrer patienter laisser faire le script d’installation. Comptez globalement une dizaine de minutes. Une fois l’installation terminée, vous pouvez commencer par tester tous vos modules et scenarii pour vérifier le bon fonctionnement de cette version sur votre installation.

  • Quand ça ne marche pas…

Du fait que l’utilisateur www-data ne faisait pas parti des sudoers, la mise à jour, chez moi, s’est mal passée. Je me suis retrouvé avec un Jeedom 2.0 complètement instable. Certains modules fonctionnaient, d’autres absolument pas. Il y avait une lumière que je pouvais allumer depuis Jeedom, mais que je ne pouvais plus éteindre. Une autre lumière que je ne pouvais plus contrôler. Heureusement, les modules Fibaro font bien leur boulot, puisque, dans les deux cas, l’interrupteur physique était toujours fonctionnel.

Dans ce cas, il faut restaurer la sauvegarde (vous vous souvenez, quand je vous disais que la sauvegarde était importante !). Après la restauration, je suis revenu à la version 1.212, puis je suis allé dans la configuration du module ZWave pour effectuer une recherche globale des modules (Test du réseau + Soigner le réseau + Régénérer la détection des nœuds inconnus). Après ça, et surtout après avoir ajouté www-data au sudoers, j’ai recommencé la mise à jour vers Jeedom 2.0. Après la mise à jour, j’ai retrouvé une domotique complètement fonctionnelle et très réactive. Ouf!

Laisser un commentaire

Votre adresse mail ne sera pas publiée. Champs requis *

Vous pouvez utiliser ces balises HTML et attributs: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Vous pourriez être intéressé par