MagicMirror², on recommence depuis le début
Récemment, j’ai écrit un article pour installer mon MagicMirror². Ce tutoriel est tout à fait fonctionnel. Malheureusement, pas dans mon cas car j’avais des versions de packages trop anciennes (cf. node.js). Je vais vous expliquer comment j’ai remédié à cela. :-)
J’ai acheté mon Raspberry Pi en juin 2016. J’en avais fait l’acquisition pour tester Gladys. A cette période, la version 2 de Gladys sortait des cartons et avaient peu de plugins pour agrémenter le tout.
Je l’ai donc laissé un peu de côté en attendant le bon moment pour réaliser mon deuxième projet pour ce petit bijoux.
Incompatibilité
J’avais installé toutes les librairies nécessaires pour Gladys et elle-même également. Or, ces versions sont conflictuelles avec ce que MagicMirror² désire. Je vais être honnête, ça me prendrait plus de temps de désinstaller chaque composant plutôt que de refaire la carte SD à partir de l’image de Raspbian fourni par raspberry.org.
Recommençons
Le premier point est de refaire la carte SD avec l’image 2018-04-18-raspbian-stretch issue du site officiel. Cela aura pour effet de repartir de zéro.
Cela fait, on remet la carte SD dans le Raspberry PI pour un redémarrage. Ce dernier point se passe quand même rapidement. Il n’y a pratiquement rien à faire. Les choses sont bien ficelées.
Installation de packages
Il est nécessaire d’installer quelques petits packages pour assurer leur disponibilité au moment voulu :
sudo apt-get install git zip unzip curl wget
Oui, ce n’est pas vraiment nécessaire avec une installation fraîche. Toutefois, cette action permettra de mettre tout le monde au même niveau.
Mise à jour des packages
Comme dans le précédent tutoriel, j’ai mis à jour les packages et le firmware :
sudo apt-get update; sudo apt-get upgrade; sudo apt-get autoremove; sudo rpi-update; sudo apt-get clean
A la fin de cette ligne, je vide le cache puis un redémarrage : sudo reboot
Installation de Node et MagicMirror²
Le redémarrage étant fait, on va maintenant lancer les scripts initiaux :
Node.js
wget -O - https://raw.githubusercontent.com/audstanley/NodeJs-Raspberry-Pi/master/Install-Node.sh | sudo bash
node -v
MagicMirror²
bash -c "$(curl -sL https://raw.githubusercontent.com/MichMich/MagicMirror/master/installers/raspberry.sh)"
J’ai vu qu’une branche develop était présente et des commits sur cette branche réglaient quelques bugs. Alors, je passe à cette branche :
cd ~/MagicMirror/
git checkout -b develop
git pull
Après cela, on peut lancer l’installation :
npm install
Tout s’est bien passé pour mon installation. Cool.
Installation des modules
Pour mes besoins actuels, j’utilise les modules suivants :
Le principe d’installation est le même pour tous les modules :
cd ~/MagicMirror/modules/
git clone https://github.com/user/mmm-nom-module
Soit :
cd ~/MagicMirror/modules/
git clone https://github.com/tataille/MMM-FreeBox-Monitor.git
git clone https://github.com/spectroman/mmm-moon-phases.git
git clone https://github.com/edward-shen/MMM-page-indicator.git
git clone https://github.com/edward-shen/MMM-pages.git
Pour le reste, la configuration des modules se fait dans le fichier ~/MagicMirror/config/config.js
Configuration du fichier config.js
Comme le demande la documentation de MagicMirror², on doit copier ~/MagicMirror/config/config.js.sample
vers ~/MagicMirror/config/config.js
Cela dit… Je ne vais pas faire ça. :-D
En effet, je vais faire en sorte d’avoir une version du fichier config.js qui soit versionnée sur un git.
Comme tout projet git, il n’est pas possible de cibler sur un fichier purement et simplement (comme le ferait svn par exemple). De ce fait, j’ai créé sur Gitlab.com un projet qui sera en mode privé.
On peut nommer ce projet "magicmirror_config" pour faire simple.
Depuis le terminal, je tape les lignes suivantes :
cd ~/
git clone https://gitlab.com/user/magicmirror_config.git
Maintenant, je crée un lien symbolique dans ~/MagicMirror/config/
pointant vers ~/magicmirror_config/config.js
cd ~/MagicMirror/config/
mv config.js config.js.old
ln -s ~/magicmirror_config/config.js config.js
Par la même occasion, j’ai fait la même chose avec le fichier ~/MagicMirror/css/custom.css
. Pratique pour personnaliser son affichage graphiquement.
cd ~/MagicMirror/css/
mv custom.css custom.css.old
ln -s ~/magicmirror_config/custom.css custom.css
Démarrage automatique de MagicMirror²
Comme indiqué dans https://github.com/MichMich/MagicMirror/wiki/Auto-Starting-MagicMirror, il est possible de lancer automatiquement MagicMirror² au démarrage. Pour cela, il est nécessaire d’installer PM2 sur la machine.
Le script d’installation de MagicMirror² le fait. Mais j’ai eu un souci que je ne saurais identifier pour le moment. Je verrai cela plus tard.
Le script a bien installé pm2 mais n’a pas fait les liens symboliques pour ce stretch. Cela se trouve dans /opt/nodejs/bin/
.
Sur stretch, on fait un lien vers /etc/alternatives/
puis de là, un lien dans /usr/bin/
.
Voici le code à taper dans Terminal :
sudo ln -s /opt/nodejs/bin/pm2 /etc/alternatives/pm2
sudo ln -s /etc/alternatives/pm2 /usr/bin/pm2
sudo ln -s /opt/nodejs/bin/pm2-dev /etc/alternatives/pm2-dev
sudo ln -s /etc/alternatives/pm2-dev /usr/bin/pm2-dev
sudo ln -s /opt/nodejs/bin/pm2-docker /etc/alternatives/pm2-docker
sudo ln -s /etc/alternatives/pm2-docker /usr/bin/pm2-docker
sudo ln -s /opt/nodejs/bin/pm2-runtime /etc/alternatives/pm2-runtime
sudo ln -s /etc/alternatives/pm2-runtime /usr/bin/pm2-runtime
Créer un fichier de démarrage de MagicMirror²
Pour nous simplifier la tâche, il est conseillé de créer un fichier bash :
cd ~
nano mm.sh
Puis d’ajouter les lignes suivantes :
cd ~/MagicMirror
DISPLAY=:0 npm start
On enregistre le tout. Puis on le rend exécutable.
chmod +x mm.sh
Démarrer MagicMirror² avec PM2
C’est vraiment tout simple :
pm2 start mm.sh
Activer le démarrage du script
On doit être sûr que le script soit lancé au démarrage. Pour cela, on sauvegarde les réglages actuels de PM2 :
pm2 save
Contrôler son MagicMirror² via PM2
Avec MagicMirror fonctionnant via PM2, on dispose d’outils pratiques :
Redémarrer MagicMirror
pm2 restart mm
Arrêter MagicMirror
pm2 stop mm
Afficher les logs MagicMirror
pm2 logs mm
Afficher les informations sur le processus MagicMirror
pm2 show mm
A lire aussi
- MagicMirror², un miroir qui vous veut du bien.
- MagicMirror², on recommence depuis le début
- MagicMirror², un socle qui lui va comme un gant
- MagicMirror², un Raspberry Pi, un écran et cie sont dans un bateau
- MagicMirror², ma configuration personnalisée
- MagicMirror², configuration scriptée
- MagicMirror², configuration scriptée, 2ème partie
Derniers commentaires
# Le 19 octobre à 13:09, par nico
En réponse à : MagicMirror², ma configuration personnalisée
# Le 25 septembre à 12:01, par Teddy Payet
En réponse à : Un Nouveau Chapitre : Mon Admission dans un MBA en Intelligence Artificielle et Data Innovation
# Le 25 septembre à 11:20, par vY
En réponse à : Un Nouveau Chapitre : Mon Admission dans un MBA en Intelligence Artificielle et Data Innovation
# Le 21 juin à 13:49, par Teddy Payet
En réponse à : Home Assistant : Routine le matin avant l’école
# Le 21 juin à 10:47, par Teddy Payet
En réponse à : Ma domotique open source
# Le 16 juin à 17:15, par Eric
En réponse à : Ma domotique open source