Installation du Magic Mirror – Partie 5

Après quelques mois d’arrêt dans la publication d’articles, je me décide (enfin!) à re-publier du contenu et notamment sur la configuration du Miroir Magique. Lors de cet article, nous allons nous intéresser à quelques éléments de customisation. En effet, si nous avons vu comment installer et configurer notre miroir (ici et ici); nous allons maintenant nous intéresser aux différentes manipulations à effectuer pour qu’il puisse fonctionner sans notre intervention et surtout, sans nous en préoccuper le moins du monde.

Rappel : Cet article fait partie d’une série en plusieurs parties, dont vous trouverez les éléments ci-dessous :

  • Réflexion autour d’un appareil connecté (Allons-y!)
  • Installation du Magic Mirror – Partie 1 (Allons-y!)
  • Installation du Magic Mirror – Partie 2 (Allons-y!)
  • Installation du Magic Mirror – Partie 3 (Allons-y!)
  • Installation du Magic Mirror – Partie 4 (Allons-y!)
  • Installation du Magic Mirror – Partie 5 (vous y êtes!)

Modification de la résolution

Lors de l’installation, nous avons laissé les paramètres par défaut de l’affichage sur notre Raspberry Pi. Or, lorsque nous lançons la miroir, de larges bandes noires apparaissent sur les bords; ce qui n’est pas des plus esthétique, en plus de nous faire perde pas mal d’affichage. Pour modifier cet affichage, nous allons éditer le fichier de configuration.

Dans la fenêtre de terminal taper la commande suivante, et appuyer sur Entrée pour modifier le fichier de configuration :

Ajouter dans ce fichier les lignes suivantes, toutefois, sachez que même si la position dans le fichier importe peu, nous allons essayer de regrouper les options entre-elles. Sauvegardez les modifications :wq!

Le paramètre hdmi_group définit si la sortie HDMI doit être utilisé soit en CEA (Consumer Electronics Association, le standard utilisé par les télévisions) ou DMT (Display Monitor Timings, le standard utilisé pour les moniteurs d’ordinateurs).

Le paramètre hdmi_mode, utilisé avec hdmi_group sert à définir le format de sortie HDMI. Dans notre exemple, la valeur 85 correspond à une résolution de 1280×720 pixels.

Remarque :
Vous pouvez modifier la résolution de votre écran en fonction du moniteur que vous avez en votre possession. Plus d’informations sont disponibles : ici.

Démarrage automatique du Miroir

Maintenant que notre logiciel est fonctionnel, nous allons voir comment faire pour que les processus soient démarrés automatiquement au démarrage du système. En effet, par défaut, vous avez du vous rendre compte que celui-ci affiche le bureau de la distribution. Pour se faire, nous allons utiliser PM2 qui est un gestionnaire de processus pour les applications Node.js et qui inclus un répartiteur de charge. Il permet notamment de laisser les applications en fonctionnement, de les recharger sans interruption et de faciliter les différentes tâches d’administration.

Dans la fenêtre de terminal taper la commande suivante, et appuyer sur Entrée pour installer le logiciel :

Pour s’assurer que PM2 peut effectuer correctement les actions qui lui sont demandées suite à un redémarrage, il doit être démarré au lancement du Raspberry Pi. Pour se faire, taper la commande suivante, et appuyer sur Entrée pour afficher les commandes nécessaires :

Remarque :
PM2 vous donne les commandes à exécuter ensuite.

Nous allons maintenant réaliser un petit script qui sera lancé au démarrage. De préférence, positionner celui-ci dans la home utilisateur et non dans le dossier MagicMirror (ceci pour éviter les effets de bords des différentes mises à jour).

Dans la fenêtre de terminal taper la commande suivante, et appuyer sur Entrée pour éditer le script :

Ajouter dans ce fichier les lignes suivantes :

Sauvegardez les modifications :wq!. Il faut ensuite rendre le script exécutable, et s’assurer que celui-ci sera lancé automatiquement, via les commandes suivantes :

Remarque :
Je ne vous détaille pas à quoi servent les 2 dernières commandes, si vous avez des questions, n’hésitez pas à me poser des questions. De plus, je vous invite à lire l’article original écrit par le créateur du Miroir Magique : ici

Suppression du pointeur de la souris

Rien de plus agaçant, une fois notre miroir lancé, que d’avoir le curseur de la souris présent et qui refuse de disparaître! Pour nous permettre d’avoir un affichage propre, nous allons installer un module qui permet d’enlever la souris : Unclutter.

Dans la fenêtre de terminal taper la commande suivante, et appuyer sur Entrée pour installer le logiciel :

Maintenant que le logiciel est installé, nous allons le configurer pour qu’il se lance au démarrage et face rende notre pointeur invisible au bout de quelques secondes :

Ajouter la ligne suivante en fin de fichier :

Remarque :
Cette option de configuration alloue un délai de 3 secondes avant la disparition du pointeur sur l’écran.

Allumage / Extinction automatique de l’écran

Avoir un miroir magique, c’est bien, mais cela ne présente aucun intérêt qu’il soit allumé tout le temps notamment si nous ne sommes pas présents pour le regarder. Je vous propose donc, un petit script qui va vous permettre d’arrêter l’écran tout en laissant notre Raspberry Pi en fonctionnement. Ceci présente plusieurs avantages, principalement, celui de ne pas avoir à redémarrer le système régulièrement pour avoir accès aux informations.

Remarque :
Vous avez déjà été nombreux à me demander s’il était possible que le miroir s’allume et s’éteigne automatiquement avec une reconnaissance faciale. Sachez que je n’ai pas mis en place cette solution actuellement (il me manque du temps et le matériel pour le faire), mais qu’elle existe et pour cela, il faut utiliser le module de reconnaissance qui est developpé pour Raspberry.

Dans la fenêtre de terminal taper la commande suivante, et appuyer sur Entrée pour éditer le script :

Ajouter dans ce fichier le bloc de code suivant :

Les commandes à utiliser sont les suivantes, elles permettent d’allumer, éteindre, et voir le status de notre écran :

Remarque :
Pour ma part, j’ai simplement décidé d’implémenter ce script via une crontab qui va allumer et éteindre l’écran à heures fixes. Dans mon cas, le cycle de vie de l’écran est le suivant :

  1. En Semaine :
    • De 07h30 à 09h45Allumé
    • De 10h00 à 19h00Eteint
    • De 19h00 à 23h59Allumé
  2. Le Week-end :
    • De 07h30 à 23h59Allumé

Pour éditer la crontab, saisissez la commande :

Ajouter les valeurs suivantes pour définir les heures d’arrêt et d’allumage de l’écran :

Personnalisation de l’affichage

L’affichage par défaut, est très sobre (écriture blanche sur fond noir). Il est intéressant de modifier certains éléments d’affichage pour permettre l’ajout d’un peu de couleur à l’ensemble. Pour se faire, il suffit d’éditer le fichier de configuration custom.css, et de définir de nouvelles couleurs.

Pour éditer le fichier, saisissez les commandes suivantes :

Ajouter les valeurs suivantes pour définir le nouveau code couleur :

Remarque :
Dans mon exemple, je n’ai modifié l’affichage que certains modules (Calendar, Forecast, Weather Forecast). Libre à vous de choisir quels modules vous pouvez modifier et personnaliser.

Au cours de cet article, nous avons vu comment personnaliser notre affichage et surtout avoir un miroir qui peut agir de manière autonome sans notre intervention. Si vous avez des remarques, n’hésitez pas à me laisser des commentaires et j’essaierai dans la mesure du possible d’y répondre. Lors de prochains articles, nous essaierons de parler de la construction du cadre et de sa mise en place.

Lien pour marque-pages : Permaliens.

12 Commentaires

  1. Bonsoir, je voudrais faire fonctionner mon module MMM-LocalTemperature mais rien n’y fait je n’y arrive pas
    Pouvez-vous m’aider ?

    • Bonjour,

      Que se passe-t-il? Quel est votre problème exactement ?

      • Bonjour, j’ai installé le modules local température, le modules s’afficje Bien mais rien ne se passe. J’ai branché le capteur DHT22 AM2302 avec une résistance de 4,7kohm entre le positif et le out et le négatif sur le ground
        Je ne comprends pas
        Merci

        • Bonjour,

          Actuellement, je ne possède pas ces solutions, je ne peux malheureusement pas vous accompagner pour la résolution de ce problème. Mais n’hésitez pas à poser des questions aux personnes qui ont développé le module en question 🙂

          Bon courage.

        • Bonjour, j’ai également le même problème . J’ai essayé sur plusieurs GPOI différents en modifiant bien sur la déclaration de « sensorPIN » a chaque fois. Avez vous trouvé la solution?

          Mon module affiche:
          Température undefined °C
          Humidité %

          Merci

  2. Bonjour et merci pour votre travail. Ma question concerne la mise en place de google calendar. Avez vous la possibilité de détailler un peu plus car je pense qu’il faut rentrer l’adresse mail, le mot de passe, l’url… Merci à vous

    • Bonjour,

      Non, aucune de ces informations n’est nécessaire dans la configuration du module. Si vous utilisez google, il vous faut éventuellement autoriser le partage public du calendrier, mais en aucun cas, le miroir n’a besoin de l’adresse mail, mot de passe ou autre information pour fonctionner.

      Bon courage pour la suite de votre configuration.

  3. salut Manu, je fais suite à mon précédent message j’ai une alerte de mise à jour de MM mais impossible de la faire j’ai le message suivant ( au secours):
    Mise à jour de57daa..e6fb18d
    error: Vos modifications locales aux fichiers suivants seraient écrasées par la fusion :
    modules/default/calendar/calendar.js
    package-lock.json
    vendor/package-lock.json
    Veuillez valider ou remiser vos modifications avant la fusion.
    Abandon
    merci pour ton aide

    • Bonjour,

      C’est normal, il te prévient juste que les modifications que tu vas installer vont avoir un effet de bord. Pour information, tu ne dois pas voir besoin de modifier les fichiers « .js »…

      Pour la mise à jour ensuite, il te suffit de valider les modifications et l’installation débutera.

  4. merci pour ta réponse,
    mais comment je fais pour valider les modifications stp?
    cordialement

  5. Bonjour, je souhaiterais me lancer dans la programmation (débutant) de modules mais je sais en quel langage ?
    Merci à vous

Laisser un commentaire

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

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