You shouldn’t be modifying the compliments.js file. Any new compliments should be placed in the appropriate section of the config.js file. Or if you like, you can create a compliments.json file and load them. Check the module READ.ME file for exact syntax.
Read the statement by Michael Teeuw here.
Posts
-
RE: Compliments not showing up when edited from default
-
RE: [MMM-RTSPStream] - Video Streaming from Live Feeds & Security Cameras
@bhepler Additionally, when I’m running this module, I cannot tell PM2 to restart the MM process. Any attempt to shut down the Magic Mirror and then start it again results in an error claiming that port 8080 is already in use. I have to reboot the Pi in order to get MM running again.
Error message:Whoops! There was an uncaught exception... 0|mm | { Error: listen EADDRINUSE ::: 8080 0|mm | at Object.exports._errnoException (util.js:1022:11) 0|mm | at exports._exceptionWithHostPort (util.js:1045:20) 0|mm | at Server._listen2 (net.js:1262:14) 0|mm | at listen (net.js:1298:10) 0|mm | at Server.listen (net.js:1376:9) 0|mm | at new Server (/home/pi/MagicMirror/js/server.js:26:9) 0|mm | at /home/pi/MagicMirror/js/app.js:219:18 0|mm | at loadNextModule (/home/pi/MagicMirror/js/app.js:168:5) 0|mm | at /home/pi/MagicMirror/js/app.js:163:6 0|mm | at Class.loaded (/home/pi/MagicMirror/modules/node_modules/node_helper/index.js:19:3) 0|mm | code: 'EADDRINUSE', 0|mm | errno: 'EADDRINUSE', 0|mm | syscall: 'listen', 0|mm | address: '::', 0|mm | port: 8080 }Which is weird, because when I shut down MM,
netstat -ldoesn’t show anything listening on port 8080. A before-and-after shows the following two processes started (8027 is the port for my IP camera):tcp 0 0 *:8027 *:* LISTEN tcp6 0 0 [::]:http-alt [::]:* LISTEN -
RE: Shutting down/restarting via PM2 not closing server
Update: I’ve traced this to the MMM-RTSPStream module. Disabling this module lets PM2 restart the process normally. I’ll take this problem over there. Feel free to close this out.
-
RE: Magic Mirror black screen Pi Zero W
Heh. Well, I recognize which thread you used as a basis.
Okay, one last stupid question: Are you SSH into your Pi Zero, or are you working directly on it with it connected to a monitor right in front of you? -
RE: Magic Mirror black screen Pi Zero W
@Zelocked No worries. We all were where you are at some point. Let me take a look.
-
RE: [MMM-RTSPStream] - Video Streaming from Live Feeds & Security Cameras
@shbatm Again, thanks for all the hard work. Here are my findings (all taken from the development branch):
- The video was displaced from the border only on the PI, but not on Chrome nor Firefox whilst viewing the PI’s interface.
- Viewing the interface via Chrome or Firefox did show a video image, but it started up FFMPEG and started to heat the Pi up.
- Removing the 47 pixel offset made everything line up perfectly on the mirror itself.
- Removing the 47 pixel offset made no difference in border position when viewing the Magic Mirror interface via Chrome or Firefox. Everything lined up perfectly.

-
RE: Magic Mirror black screen Pi Zero W
Let’s back up a bit. How did you install the Mirror on your Pi Zero? Which steps did you follow?
-
Shutting down/restarting via PM2 not closing server
I’m using PM2 to monitor the MagicMirror2 process as per the Autostarting Magic Mirror tutorial. When I make a change and wish to restart the mirror process, I enter
pm2 restart mmand let PM2 do its thing. However, when I do so I get the following error:Whoops! There was an uncaught exception... 0|mm | { Error: listen EADDRINUSE :::8080 0|mm | at Object.exports._errnoException (util.js:1022:11) 0|mm | at exports._exceptionWithHostPort (util.js:1045:20) 0|mm | at Server._listen2 (net.js:1262:14) 0|mm | at listen (net.js:1298:10) 0|mm | at Server.listen (net.js:1376:9) 0|mm | at new Server (/home/pi/MagicMirror/js/server.js:26:9) 0|mm | at /home/pi/MagicMirror/js/app.js:219:18 0|mm | at loadNextModule (/home/pi/MagicMirror/js/app.js:168:5) 0|mm | at /home/pi/MagicMirror/js/app.js:163:6 0|mm | at Class.loaded (/home/pi/MagicMirror/modules/node_modules/node_helper/index.js:19:3) 0|mm | code: 'EADDRINUSE', 0|mm | errno: 'EADDRINUSE', 0|mm | syscall: 'listen', 0|mm | address: '::', 0|mm | port: 8080 }This normally occurs when you have MM2 running and attempt to start the mirror again. But that’s not the case as far as I can tell. If I use PM2 to stop the MM2 process,
netstat -ldoesn’t show anything listening on port 8080, but I still get the error above if I start the mirror process.This only started after I upgraded to v2.1.2, if that helps. A full reboot will have the mirror start normally. Any ideas?
-
RE: Magic Mirror black screen Pi Zero W
@Zelocked Can you expand on the log messages you receive? What versions of electron and node did you install?
-
RE: Compliments not showing up when edited from default
Okay, first step: Let’s format your post correctly. Please follow the markdown conventions to help us read your
config.jsfile. For example, please surround the contents of yourconfig.jsfile with a separate line that contains three “back tick” characters. (`).I don’t think we need the contents of the
compliment.jsfile, so you can just remove that. -
RE: Magic Mirror black screen Pi Zero W
@Zelocked Well. Let’s start with some basic questions:
- How did you install the Magic Mirror framework?
- Did you install node and electron separately?
- Did you run
npm installin the/home/pi/MagicMirrorfolder? - Did you copy
config.js.sampletoconfig.jsin the/home/pi/MagicMirror/configfolder?
-
RE: MagicMirror not starting
It looks like you installed Magic Mirror as root. I would start by removing the Magic Mirror directory, switch user to the Pi user account, change to the home folder and then re-run the installation command. Hopefully that will solve it.
-
RE: MagicMirror not starting
@Brian2312 A couple basic questions, if you don’t mind:
- What version of Raspberry Pi are you using? (or other hardware)
- Which installation path did you follow (such as the installation command from the GitHub page, or the complete startup tutorial, or other)?
- Is this a new installation that has never worked or is this a previously working installation which has somehow stopped working?
-
RE: Frameless Illuminated Motion Sensitive SmartMirror
@pascal456 Thank you. I find your build process intriguing.
Do you have any concerns about the adhesion of the glass and the tape? I suppose I don’t know much about frameless mirrors. I have no idea how commercial mirrors are constructed.
-
RE: Frameless Illuminated Motion Sensitive SmartMirror
@pascal456 That looks awesome! Do you have a build log? Or pictures of the back? What are you using to attach the mirror to the monitor?
-
RE: [MMM-RTSPStream] - Video Streaming from Live Feeds & Security Cameras
Success! I tried the omxplayer version of this module and it works like a charm. The video updates about half a second behind, but that’s well within acceptable limits. The RasPi also is running much cooler and isn’t giving me temperature warnings.
The only problem I have at this point is that the border around the module doesn’t line up with the video. And all things considered, not a big deal. Great work!

-
RE: Motion Detector
@Kimzer I wrote up a method using a version of Motion for the RasPi. It’s under the tutorials section of the forum. It’s a non-module solution, so there’s some weirdness involved. But I did get it to work with a Raspicam.
@mickyas - This module doesn’t switch off the pi, it just switches off the output to the monitor.
-
RE: Magic Mirror on the Raspberry Pi 1, agonizingly difficult
No problem. It’s confusing at first for just about everybody.
@MMRPi1 said in Magic Mirror on the Raspberry Pi 1, agonizingly difficult:
The contents of mm.sh
cd ~/MagicMirror
DISPLAY=:0 npm start
node serveronly
chromium-browser --noerrdialogs --disable-session-crashed-bubble -incognito --kiosk http://localhost:8080Your script is attempting to start the Magic Mirror twice.
DISPLAY=:0 npm startwill start the mirror via electron. That line would normally blank the Pi’s screen, start up the MM process and display the interface. You probably want to remove this line.
The linenode serveronlystarts up the MM process as well, but only to provide the interface to web browsers. And your final line opens the web browser.So. Try deleting the
DISPLAY=:0 npm startline and then testing your script.cd ~ ./mm.shThat should start the MM process and open up your web browser to the interface. Let us know how it goes!
I’'ve also got the following at the end of the LXDE autostart file
@pm2 start mm.shYeah, delete that line.
BTW: when I run pm2 start mm.sh from the terminal the mirror starts up just fine, so I don’t know why it doesn’t autostart properly…
Oh. Easy enough to fix. Do just what you said, run
pm2 start mm.sh. Once the browser is up, switch to the terminal on the pi and tell PM2 to save the current state.pm2 save. One you do that, PM2 should start with the pi and then start the MM process and your browser.Edited to add: Did you run the
pm2 startupand then copy & paste the command it gave as per the instructions? -
RE: Magic Mirror on the Raspberry Pi 1, agonizingly difficult
@MMRPi1 Did you try the pm2 route from the Auto Starting Magic Mirror? @Sean gave you the link a few days ago.
In your case, you’ll want to change the
mm.shscript to start in server-only mode and then launch your web browser. If you really want to bulletproof your installation, you can create a separate script for the mirror in server-only mode and another for keeping the browser up & pointed at the correct location. Let PM2 manage both as separate processes. -
RE: Config.js file Syntax
@amosh83 - Well, progress. You have a
config.jsfile in the right place and it’s passing the syntax checks. Let’s start at basic functionality and move to a working mirror.First, edit your
config.jsto allow everyone to connect and see the interface. Change this line:
ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"], // Set [] to allow all IP addresses.
to read like this:
ipWhitelist: [],Next, let’s turn off pm2 management:
pm2 stop mm
And finally, let’s start the server and see if you can get an interface:cd /home/pi/MagicMirror node serveronlyWatch for any lines that say “error”. Don’t worry about lines that say “warn”. Once the console stops spitting out lines of text, try to view your pi in your browser. If you’re using the browser on the pi, then
http://localhost:8080should work. If you’re using the browser on another computer, thenhttp://(pi ip address):8080should work. You should see a basic mirror interface in your web browser.Give it a go and let us know if you have any success. We’ll get the fullscreen interface up afterwards.