MagicMirror², ma configuration personnalisée

| par Teddy Payet | 1

Cela fait un mois que je vous parle de MagicMirror² officiellement. Mais ça fait 2 mois que je teste l’installation logicielle. Je vais vous présenter les quelques modules que j’ai mis en place.

Pour rappel, MagicMirror² est basé sur NodeJS et les modules npm. Du full JavaScript ! :-D Je n’en ai pas fait depuis ma formation de développeur multimédia. Un retour aux sources.

Mon installation est pour toute la famille, de ce fait, j’ai choisi des modules qui satisferont l’ensemble des membres de la tribu. Je n’oublie pas de me faire plaisir également. En plus des modules par défaut de MagicMirror², voici la liste des modules que j’ai installé :

  • MMM-Freebox-Monitor
  • MMM-Lunartic
  • MMM-pages
  • MMM-page-indicator
  • worldclock
  • MMM-AlarmClock

MMM-Freebox-Monitor

Source : https://github.com/tataille/MMM-FreeBox-Monitor

Quand on a une Freebox Revolution, la présence de ce module permet d’avoir des informations systèmes telles que :

  • Les appels manqués ;
  • Les téléchargements en cours sur la Freebox.

Il est possible de configurer le nombre d’éléments à afficher sur l’écran.

MMM-Lunartic

Source : https://github.com/mykle1/MMM-Lunartic

Ce module permet d’afficher les phases de Lune. Ça lance parfois des petites conversations avec mes enfants. J’aime.
Les configurations possibles :

  • animation : Une animation de la Lune ;
  • current : phase de la Lune en cours.
  • DayNight : affiche une carte du monde avec les zones où il fait nuit et les zones où il fait jour ;
  • static ou vide : affiche une image fixe des phases de Lune.

MMM-pages

Source : https://github.com/edward-shen/MMM-pages

Ce module permet d’avoir plusieurs pages sur le MagicMirror² surtout quand on a beaucoup de modules ou que les modules affichent beaucoup d’informations.
Il est possible de mettre autant de pages qu’on veut. Voici un exemple de ma configuration :

{
   module: "MMM-pages",
   config: {
       modules:
           [
               ["worldclock", "weatherforecast", "MMM-Lunartic", "MMM-FreeBox-Monitor", "compliments", "MMM-SystemStats", "MMM-AlarmClock"],
               ["calendar"]
           ],
       excludes: ["clock", "currentweather", "MMM-page-indicator", "newsfeed"],
       rotationTime: 12000
   }
},

Il est possible d’exclure des modules du système de pagination pour qu’ils puissent être affiché en continu. Pratique pour les modules "techniques" tels que MMM-page-indicator, clock et currentweather. Le nombre d’éléments dans le tableau […] correspond au nombre de pages. Autrement dit, autant de […], autant de pages.

MMM-page-indicator

Source : https://github.com/edward-shen/MMM-page-indicator

Avec MMM-pages, il est conseillé d’avoir le module MMM-page-indicator. Il permet… d’indiquer la page en cours. Ce n’est pas automatique. Si vous indiquez 3 pages dans MMM-pages, alors il vous faudra mettre "3" comme indicateur de pages.

{
   module: "MMM-page-indicator",
   position: "bottom_bar",
   config: {
       pages: 3,
   }
},

worldclock

Source : https://github.com/eouia/worldclock

Ce module permet d’afficher les heures à travers le monde. Vous savez que je suis réunionnais. Ma femme est guadeloupéenne et on vit en région parisienne. Donc, au moins 3 horaires différents à ne pas oublier. Outre une petite installation artistique déjà en place dans notre salon (Merci Aude C. pour ton imprimante découpeuse de papier), j’avais envie de mettre les heures de l’Île de la Réunion et de la Guadeloupe sur le MagicMirror².

Il faut indiquer le timezone associé à la région que l’on désire. Il faut faire une petite recherche sur cette page : https://github.com/moment/moment-ti...
Pour la Réunion, on a "Indian/Reunion" et la Guadeloupe, "America/Guadeloupe". Il est possible d’afficher un drapeau du pays si vous désirez. Ce qui me donne :

{
   module: "worldclock",
   position: "top_left", // This can be any of the regions, best results in top_left or top_right regions
   config: {
       // See 'Configuration options' for more information.

       timeFormat: "HH:mm", //defined in moment.js format()
       style: "right", //predefined 4 styles; 'top', 'left','right','bottom'
       timeClass: "normal large thin",
       captionClass: "block-caption small bright light align-right",
       zoneElement: "div",
       zoneClass: "zone",
       gapElement: "div",
       gapClass: "dimmed",
       clocks: [
           {
               title: "Réunion", // Too long title could cause ugly text align.
               timezone: "Indian/Reunion", //When omitted, Localtime will be displayed. It might be not your purporse, I bet.
               //flag: 're'
           },
           {
               title: "Guadeloupe", // Too long title could cause ugly text align.
               timezone: "America/Guadeloupe", //When omitted, Localtime will be displayed. It might be not your purporse, I bet.
               //flag: 'gp'
           },
       ]
   }
},

MMM-AlarmClock

Source : https://github.com/fewieden/MMM-AlarmClock/

La partie la plus intéressante. :-)
Ce module permet de programmer des alarmes tout au long de la semaine et notamment de lancer un mp3 avec un message à l’écran. Par défaut, on a 2 fichiers mp3 :

  • alarm.mp3
  • blackforest.mp3

C’est bien mignon… Mais j’avais envie de quelque chose de plus "ludique" ou "interactif". Google Translate permet de traduire du texte : http://translate.google.fr/
Et ce n’est pas tout. Il est possible de faire lire un texte par une url : http://translate.google.com/transla.... Il est possible avec le module MMM-AlarmClock d’indiquer une url vers le fichier mp3. Malheureusement, Google renvoie une vidéo. Ce qui ne fonctionnera pas ici.
La solution est donc de convertir cette "traduction" en mp3 pour l’avoir en local. Pour cela, il existe un site sympa :
https://soundoftext.com/
Il suffit de taper son, choisir la voix (la langue si vous préférez) et de cliquer sur le bouton. Et enfin d’enregistrer le fichier généré sur notre machine.

Avec la dernière version du plugin MMM-AlarmClock, il est maintenant possible d’indiquer une durée pour chaque alarme. Soit le temps d’affichage (et d’exécution de fichier audio). Ça… C’est ma contribution perso au plugin.

Je vous laisse découvrir la documentation dudit module pour plus de détails : https://github.com/fewieden/MMM-AlarmClock/tree/develop

Les modules par défaut

En autres de ces modules spécifiques, j’utilise les modules fournis par MagicMirror² :

  • weatherforecast ;
  • calendar ;
  • clock ;
  • currentweather ;
  • newsfeed.

Pour le calendrier, j’ai renseigné l’url ics de mes calendriers Google. Comme je l’ai dit dans un précédent article, j’ai un calendrier par membre de la tribu. Ce qui est super pratique. J’ai également ajouté un calendrier pour indiquer la personne (roulement entre mes deux fils) qui met la table. Mais également :

  • Le calendrier des vacances ;
  • Les jours fériés ;
  • Les anniversaires.

Pour plus de lisibilité et de compréhension par tous, j’ai regroupé les différents calendriers par 3 "groupes" :

  • La table (1 événement affiché) ;
  • Agendas (10 événements affichés) ;
  • Anniversaires (5 événements affichés).

Je vous laisse deviner qui va dans quoi. :-)

Pour les newsfeeds, on affiche le flux RSS des différents principaux journaux nationaux. Rien de bien sorcier ici.

Le reste des modules est classique. Mais si vous avez des questions, vous pouvez laisser un commentaire ci-dessous.

Futurs modules

A la rentrée prochaine, notre programme familial va changer avec la rentrée de notre fils ainé au collège. Et sans oublier que j’aurais certainement une activité supplémentaire la semaine. De ce fait, je pense déjà à faire évoluer ma configuration en rajoutant des modules.

Cette liste est un mémo pour moi, vais-je dire. Mais ne vous inquiétez pas, je ferais un article quand je les mettrai en place.

Tout cela est bien beau… Mais je n’ai aucune "sauvegarde" en cas de crash de mon Raspberry. Et même… Pour les alarmes, elles ne sont pas identiques quand on est en vacances… Je vous parlerai la semaine prochaine dans un article de la solution que j’ai mis en place. Teasing quand tu nous tiens !

En attendant, si vous avez des suggestions, je suis entièrement preneur ! Alors, laissez-moi un petit message en bas de cet article. A très bientôt.

P.-S.

Visuel : Photo by Alex Lopez on Unsplash