Instalando y configurando Magic Mirror en Raspberry Pi
En este documento veremos la instalación de Magic Mirror sobre una Raspberry Pi, ongi, para que? Ideal para tener un pequeño panel de información que puedes personalizarlo totalmente, pensado para cualquier ámbito sea tu casa o tu empresa. Lo normal luego será hacer algo de bricolaje, pondremos un espejo sobre el monitor y al ser un panel negro con texto blanco o imágenes queda muy futurístico!
Esan dut, siguiendo los pasos de este documento podrás tener tu propio espejo mágico que while te miras que guap@ estás, tienes más información de todo lo que sucede a tu alrededor! Y en la oficina quedaría muy geek también, con datos de monitorización… Obtendremos un panel con toda la información que queramos ver de forma diferente 🙂
Sitio oficial: https://magicmirror.builders/
En GitHub: https://github.com/MichMich/MagicMirror
Instalación de Magic Mirror
Los requisitos para comenzar son muy sencillos, necesitaremos tener Raspbian Stretch instalado y configurado con una dirección IP.
Si tienes cualquier modelo de Raspberry Pi 2 o Raspberry Pi 3 bastará con ejecutar el siguiente script para que nos instale todas las dependencias y el propio Magic Mirror:
[sourcecode]bash -c “$(curl -sL https://raw.githubusercontent.com/MichMich/MagicMirror/master/installers/raspberry.sh)”[/sourcecode]
Instalazioa amaitutakoan galdetuko digu Raspberry-a martxan jartzerakoan automatikoki abiarazi nahi dugun ala ez, hemen bakoitzak nahi duenaren arabera. Nire kasuan, hainbat arrazoirengatik nahiago dut ondoren abiarazi, horretarako script bat gehitu dut '~/.config/lxsession/LXDE-pi/autostart' direktorioan’ adibidez '@/home/pi/magic_mirror_arranca.sh' deitua’ hurrengo edukia duena:
[sourcecode]cd /home/pi/MagicMirror/
npm start # Pi2 eta Pi3
node serveronly # Pi1 eta Zero[/sourcecode]
Automatikoki edo eskuz martxan jartzen badugu, ikusiko dugu Magic Mirror pantailan kargatzen dela konfigurazio lehenetsiarekin. Interesatzen bazaizue, ssh saio batetik Magic Mirror abiarazi nahi badugu:
[sourcecode]DISPLAY=:0 npm start[/sourcecode]
Si queremos instalarlo de forma manual o te falla el script anterior (en el caso de los modelos más antiguos de Raspberry Pi, 1 y Zero), podremos hacerlo de la siguiente manera:
[sourcecode]sudo apt-get install npm git -y
git clone https://github.com/MichMich/MagicMirror
cd ~/MagicMirror
npm install[/sourcecode]
A tener en cuenta que el fichero de configuración de Magic Mirror será '/home/pi/MagicMirror/config/config.js’ y en él tendremos que añadir cualquier configuración o módulo. Empezamos fácil, permitimos que se puedan conectar desde cualquier equipo de la red al Magic Mirror e indicaremos el idioma predetermined que sea el Español:
[sourcecode]
helbidea: “”,
…
ipWhitelist: [],
…
language: “es”,
…
[/sourcecode]
Grabamos el fichero y probamos a inicar de nuevo Magic Mirror, o mediante un navegador a http://raspberry_pi:8080
Bestela, si alguien está interesado en modificar los tamaños de las fuentes, CSSa aldatuz lortuko nuke: ‘~/MagicMirror/css/custom.css’.
Horrela, nolakoa den ikusi dugu instalatzeko, Magic Mirror oso oinarrizko moduan abiarazi eta konfiguratzeko, Ongi dago, gero interes handiena izan duten Moduluak eta nola instalatu ikusi ahal izango ditugu. Hemen interesgarria dena da bakoitzak nahi dituen moduluak jartzea nahiz eta nahi duen tokian, Ofizialen zerrendari buruzko informazio gehiagorako: https://github.com/MichMich/MagicMirror/wiki/3rd-Party-Modules
Eta pantailako tokiak jakin nahi badituzue non jar daitezkeen moduluak, idatzi: top_bar, top_left, top_center, top_right, upper_third, middle_center, lower_third, bottom_left, bottom_center, bottom_right, bottom_bar, fullscreen_above eta fullscreen_below.
Pero antes, hemen zenbait aukera osagarri utziko dizkizuet, dagoeneko egin daitezkeenak, Raspberry Pi batean Kiosko bat egiteko ohikoa dena, pantaila babeslea ez dadin piztu, edo energia baxuko uhina, kurtsorea kendu Wifi modulua energia aurrezteko moduan ez dadin sartu…
Wifi dongleko energia aurrezpena kendu
Hori lortuko dugu '/etc/network/interfaces' fitxategian’ honako lerro hau bukaeran gehituz:
[sourcecode]wireless-power off[/sourcecode]
Saguaren kurtsorea kendu
Saguaren kurtsorea ezkutatu ahal izango dugu Unclutter instalatuz:
[sourcecode]sudo apt-get install unclutter[/sourcecode]
Pantaila babeslea kendu
Pantaila beltza ez dadin edo beste edozein pantaila babesle ez dadin piztu, lehenik instalatu behar dugu:
[sourcecode]sudo apt-get install x11-xserver-utils[/sourcecode]
Eta gero '~/.config/lxsession/LXDE-pi/autostart' fitxategia aldatu’ fitxategiaren bukaeran gehituz:
[sourcecode]@xset s noblank
@xset s off
@xset -dpms[/sourcecode]
Y por último añadimos en el fichero /etc/lightdm/lightdm.conf y debajo de [Seat:*] lo siguiente:
[sourcecode]xserver-command=X -s 0 -dpms[/sourcecode]
Quitar alerta de voltaje
Para quitar el rayito ese amarillo o vaya, el warning de poca txitxa, añadimos en ‘/boot/config.txt’ azken finean:
[sourcecode]avoid_warnings=1[/sourcecode]
Módulo de Monitorización con Nagios o Centreon
Vamos a añadir un módulo a Magic Mirror muy interesante, uno que va mucho con el estilo del blog, podría mientras me lavo la cara ver como está mi negocio o mi hogar inteligente? Pues sí, siguiendo estos pasos instalarás el módulo necesario en Magic Mirror para poder saber qué pasa, ya que se conectará a tu Nagios o a tu Centreon y te lo mostrará.
[sourcecode]cd ~/MagicMirror/modules
git clone https://github.com/qistoph/MMM-nagios.git nagios
cd nagios
npm install[/sourcecode]
Eta Magic Mirror-eko konfigurazio fitxategian hurrengo kodea gehitzen badugu, lortu ahal izango dugu!
[sourcecode]{
module: “nagios”,
position: “top_left”,
header: “Etxe Adimendunaren Egoera”,
config: {
statusUrl: “http://DIRECCION_IP_CENTREON_O_NAGIOS/statusJson.php”,
user: “admin”,
password: “xxxx”,
reloadInterval: 60000
}
},[/sourcecode]
Plugin honi buruzko informazio gehiago nahi baduzu: https://github.com/qistoph/MMM-nagios
Centreon aldean, ‘/var/log/centreon-engine/status.dat’ fitxategia esportatu behar dugu’ JSON formatuan, hurrengo moduan oso erraza:
[sourcecode]git clone https://github.com/lizell/php-nagios-json.git
cp php-nagios-json/php-nagios-json/statusJson.php /var/www/html/[/sourcecode]
Eta hortik ‘/var/www/html/statusJson.php’ fitxategia editatzen dugu, Zuretzat funtzionatzeko aldaketa batzu egin beharko ditugu 🙂 Lehenik eta behin, ‘$statusFile’ aldagaia jarri’ .dat fitxategiaren path-a zuzen duzula eta Centreon erabiltzen badugu agian ez digula bertsiorik detektatuko, beraz, iruzkin egiten badugu ziur joango dela:
[sourcecode]// if ($nag_version == 4) {
$data = getData4($statusFile);
// } bestela if ($nag_version == 3) {
// $data = getData3($statusFile);
// } else {
// $data = getData2($statusFile);
// }[/sourcecode]
Aurretik aurreikusitako denbora 1 aste
Modulu hau lehenetsi bezala instalatuta dator, Aktibatzeko, nahikoa da beheko kodea gehitzea Magic Mirror-en konfigurazioko fitxategian:
[sourcecode]{
module: “weatherforecast”,
position: “top_left”,
config: {
kokapena: “Bilbao”,
locationID: “6362436”,
appid: “82537b248dxxxxxxxxxxxxxxxxxxx”,
showRainAmount: true
}
},[/sourcecode]
Konfigurazioa sinplea da, locationID eta appid www.openweathermap.org/help/city_list.txt-n lor daitezke http://www.openweathermap.org Eta http://www.openweathermap.org/help/city_list.txt.
Informazio gehiagorako: https://github.com/MichMich/MagicMirror/tree/master/modules/default/weatherforecast.
Uneko eguraldia
Beste modulu oso erabilia eta oso sinplea, nahikoa da beheko kodea jartzea Magic Mirror-en konfigurazioko fitxategian:
[sourcecode]{
module: ‘currentweather’,
position: ‘top_right’,
config: {
kokapena: ‘Bilbao’,
locationID: '6362436', //ID from bulk.openweather.org/sample/
appid: '82537b248d2xxxxxxxxx',
updateInterval: '3600000',
onlyTemp: true
}
},[/sourcecode]
Informazio gehiagorako: https://github.com/MichMich/MagicMirror/tree/master/modules/default/currentweather
Emails en pantalla
Si te apetece leer los mails que tienes nuevos y quieres verlos en tu espejito mágico, en mi caso me conecto mediante IMAP, aún que se puede conectar contra todo, incluso Office 365, estos serían los pasos para instalar el módulo:
[sourcecode]cd ~/MagicMirror/modules
git clone https://github.com/ronny3050/email-mirror.git
cd email
npm install[/sourcecode]
Y añadimos en el fichero de configuración de MagicMirror el siguiente código
[sourcecode]{
module: 'email',
position: 'top_left',
config: {
user: “mi*****@*****io.com“,
password: “xxxxx”,
host: “mail.dominio.com”,
port: 143,
tls: false,
authTimeout: 10000,
numberOfEmails: 5,
fade: false
}
},[/sourcecode]
Para más info sobre el módulo: https://github.com/ronny3050/email-mirror
Noticias RSS
Si te apetece estar al día mientras te miras al espejo y quieres leer los titulares o las noticias que te interesen, bastará con habilitar un módulo de Magic Mirror y meter todas las direcciones RSS que quieras seguir! Añadiendo esta configuración en el fichero de configuración de Magic Mirror lo conseguirás:
[sourcecode]{
module: “newsfeed”,
position: “bottom_bar”,
config: {
feeds: [
{
title: “Deia”,
url: “http://www.deia.com/rss/general.xml”
},
{
title: “El Correo”,
url: “http://www.elcorreo.com/bizkaia/rss/atom/portada”,
encoding: “ISO-8859-1”
},
],
showSourceTitle: false,
showPublishDate: false
}
},[/sourcecode]
Para más info sobre este módulo: https://github.com/MichMich/MagicMirror/tree/master/modules/default/newsfeed
Agenda
Si te apetece meter tu calendario, en mi caso uso el de Google Calendar, baina hori bai, , que con cualquier fichero ics puedes montartelo!
[sourcecode]{
module: “calendar”,
header: “Calendario Hector”,
position: “top_left”,
config: {
calendars: [
{
symbol: “calendar-check-o “,
url: “https://calendar.google.com/calendar/ical/lfmkxxxxxxxxxxxxxxxxxjk@group.calendar.google.com/private-fbdba546xxxxxxxxxxx827/basic.ics”
}
]
}
},[/sourcecode]
Informazio gehiagorako: https://github.com/MichMich/MagicMirror/tree/master/modules/default/calendar
Estado del tráfico de la carretera
Si queremos saber cuánto tiempo vamos a tardar en llegar a algún sitio, por ejemplo al trabajo, podemos conocer en tiempo real siempre lo que tardaremos en llegar, te imaginas pintarte los labios mientras ves que vas a llegar tarde? A lo loco! 😛
[sourcecode]cd ~/MagicMirror/modules
git clone https://github.com/SamLewis0602/MMM-Traffic.git
cd MMM-Traffic
npm install[/sourcecode]
Añadimos en el fichero de configuración el siguiente código:
[sourcecode]{
module: ‘MMM-Traffic’,
position: ‘bottom_right’,
classes: ‘dimmed medium’, //optional, default is ‘bright medium’, only applies to commute info not route_name
config: {
api_key: ‘AIzaSyDr1y9oxxxxxxxxxxxxxxxxxuvA’,
mode: ‘driving’,
origin: ‘Federico Moyúa Plaza, 3, 48009 Bilbo, Bizkaia’,
destination: ‘Parque Tecnológico de Zamudio, 48170, Vizcaya’,
route_name: ‘Ruta a la ofi’,
changeColor: true,
showGreen: false,
limitYellow: 5, //Greater than 5% of journey time due to traffic
limitRed: 20, //Greater than 20% of journey time due to traffic
traffic_model: ‘pessimistic’,
interval: 120000 //2 minutes
}
},[/sourcecode]
Noski, hasiera/amaiera ibilbidea aldatuko dugu eta gure Google API gakoa sartuko dugu.
Modulu honi buruzko informazio gehiago lortzeko: https://github.com/SamLewis0602/MMM-Traffic
Zerrenda egiteko gaien zerrenda (Wunderlist)

Beste modulu oso interesgarri bat ohiko gogorarazpen zerrenda izan daiteke, Nire kasuan, Wunderlist zalea naiz, Beraz, martxan jartzeko beharrezko pausoak adierazten dizkizuet:
[sourcecode]cd ~/MagicMirror/modules
git clone https://github.com/qistoph/MMM-nagios.git nagios
cd nagios
npm install[/sourcecode]
Instalazioa egin ondoren, honako kodea gehitzen dugu Magic Mirror-en konfigurazio fitxategian:
[sourcecode]{
module: ‘MMM-Wunderlist’,
position: ‘top_right’,
header: ‘Erosketen zerrenda’,
config: {
accessToken: ‘9f3de965af18647aexxxxxxxxxxxxxxxxxxxxxxxx960’,
clientID: ‘9052dxxxxxxxxxxxxx3’,
lists: [“Erosketak”]
}
},[/sourcecode]
AccessToken eta clientID honek webgunean eskatu behar direla gogoratuko zaizu: https://developer.wunderlist.com.
Ondo, eta hau webgune honetan esaten dena https://github.com/MichMich/MagicMirror/wiki/3rd-Party-Modules o en Internet puedes buscar múltiples módulos o hacerte los tuyos propios. Y eso, tras la configuración, eso, hay que hacer bricolaje, hacer un marco de madera y meter los monitores que necesitemos dentro, colocaremos el espejo que realmente no es un espejo, si no que es una lamina acrílico de espejo de 2 caras. Si vas a cualquier cristalería seria explicándote sabrán qué cristal quieres, no es muy caro, y recuerdo que el cristalero me dejaba piezas diferentes para hacer varias pruebas. Si alguien está perdido le paso el telefono de la cristaleria =)
Luego cada uno puede completar el proyecto como quiera, para no tener siempre el monitor encendido, se puede poner un sensor de movimiento y mediante un relé encenderlo cuando haya movimiento, y claro, todo esto hasta que te de la imaginación, le puedes poner una cámara de video a la Raspberry y que con OpenCV reconozca tu rostro y en pantalla muestre otro tipo de información, o a un niño unos dibujos animados saludando… así como reconocimiento de voz para que te muestre cualquier otro tipo de información, eta abar…
Y más o menos así quedaría, y sí, ese soy yo, con algún dibujito más de Grafana, eta abar… esta imagen es bastante vieja, un día pongo paneles chulos para daros más ideas!

















































